ở đây chúng tôi sử dụng MTKNT để thử nghiệm hiệu chỉnh sản phẩm của mô hình số, cụ thể là lượng mưa của mô hình phân giải cao HRM, theo số liệu quan trắc trong 3 tháng mùa mưa 6, 7, 8 nă
Trang 1Thử nghiệm dự báo lượng mưa ngày bằng phương pháp dùng mạng thần kinh nhân tạo hiệu chỉnh sản phẩm
mô hình số
Hồ Thị Minh Hà, Nguyễn Hướng Điền
Khoa Khí tượng-Thuỷ văn và Hải dương học Trường Đại học Khoa học Tự nhiên, ĐHQG Hà Nội
1 Mở đầu
Trên thế giới có rất nhiều nhà khí tượng đã quan tâm tới mạng thần kinh nhân tạo (MTKNT) vì nó có khả năng học và xử lý tính phi tuyến của các quá trình biến đổi phức tạp mà các phương pháp dự báo khác không thực hiện được MTKNT đã được ứng dụng trong rất nhiều lĩnh vực khoa học như điều khiển tự động, nhận dạng dấu vân tay, và cũng được các nhà khí tượng sử dụng trong dự báo thời tiết, khí hậu Có thể
kể ra một số công trình nghiên cứu đã sử dụng MTKNT như dự báo giáng thuỷ hạn dài
ở California, mô hình hoá ôzôn, dự báo mưa đá nguy hiểm, dự báo giáng thủy hạn ngắn, Tuy nhiên, trong nước mới chỉ có rất ít các nghiên cứu về lĩnh vực này và chưa
có công trình nào được áp dụng vào thực tiễn ở đây chúng tôi sử dụng MTKNT để thử nghiệm hiệu chỉnh sản phẩm của mô hình số, cụ thể là lượng mưa của mô hình phân giải cao HRM, theo số liệu quan trắc trong 3 tháng mùa mưa (6, 7, 8) năm 2004 nhằm nâng cao chất lượng của sản phẩm dự báo số Trước hết ta sẽ xem xét cấu trúc và hoạt
động của một mạng thần kinh đơn giản cũng như phương pháp học giảm gradient của MTKNT, sau đó sẽ tiến hành hiệu chỉnh sản phẩm của mô hình số và đánh giá kết quả
2 Khái niệm về MTKNT và phương pháp học giảm gradient
2.1 Cấu trúc và hoạt động của MTKNT
Tổng có trọng số của các giá trị
đầu vào Giá trị đầu vào 1
Giá trị đầu vào n
Hàm truyền
(a) (b)
Hình 1 Sơ đồ mạng thần kinh sinh học (a) và cấu trúc của MTKNT một nút ẩn (b)
- Mạng thần kinh sinh học bao gồm nhánh thần kinh (dendrites), tế bào thần kinh (cell body), trục thần kinh (axon) và các xung thần kinh (electrical spike) tương
ứng với 3 phần chính bao gồm đầu vào, lớp ẩn và kết xuất của MTKNT
1
Trang 2- Đầu vào của MTKNT bao gồm N giá trị x i và các trọng số tương ứng Kết quả
lấy tổng có trọng số của các x
ij
a
i sẽ được nhập vào lớp ẩn :
1
n
i
=
= + ∑ ij (1)
- Lớp ẩn bao gồm hàm truyền, có thể là hàm sigma, hàm tang-hypebol,…Người ta thường sử dụng hàm sigma có dạng:
1 exp
x
x
σ = (2)
Thay giá trị của uj vào hàm truyền sẽ được đầu ra của lớp ẩn, ký hiệu là y j (j=1, , H)
- Các giá trị đầu ra của lớp ẩn là đầu vào của kết xuất, thực hiện tương tự như đối
với lớp ẩn được giá trị kết xuất, ký hiệu là z k (k = 1, , K)
- Kết xuất đích mà ta muốn mạng học được là các giá trị t k (k = 1, , m)
= +
i ij i o
u
1
( )j
=
+
j jk j o
z
1
jk b ij
a
Hình 2 Quá trình lan truyền tiến
- Một quá trình đi từ đầu vào, qua lớp ẩn và đến kết xuất là một quá trình lan truyền tiến (feed-forward) của mạng (Hình 2) Quá trình này cũng tương tự như quá trình nhận, xử lý thông tin và truyền thông tin đến não bộ của một tế bào thần kinh sinh học
2.2 Phương pháp học giảm gradient (giảm dốc nhất)
Bản chất của phương pháp này là cực tiểu hoá hàm lỗi (sai số trung bình bình
phương) giữa kết xuất z k và kết xuất đích t k Hàm lỗi E là hàm của trọng số:
=
ư
= m
k
k
k z t E
1
2
2
1
với ω r là vectơ các trọng số, ứng với mỗi vectơ ω r ta có một giá trị sai số và các giá trị
này lập thành một mặt lỗi trong không gian Để dễ hình dung ta giả sử có 2 trọng số w 1
và w 2 và ta có thể biểu diễn hàm E là một mặt lỗi theo 2 biến này
w 2
E
Trang 3Mục tiêu của mạng là tìm được điểm trũng nhất trên mặt lỗi, nơi đó z k và t k gần nhau nhất Ban đầu, khi chọn một cặp trọng số bất kỳ ta được một điểm trên mặt lỗi và mạng phải đi theo một đường nào đó để tìm được điểm trũng nhất Hướng đi của mạng qua từng bước là hướng làm giảm sai số của bước trước nó
Biểu diễn toán học của quá trình cực tiểu hoá sai số được trình bày dưới dây
Thiết kế một MTKNT gồm đầu vào bao gồm n mẫu, mỗi mẫu gồm các giá trị input x i
(i=1 N), lớp ẩn gồm các nút y j (j=1 H) và kết xuất là các giá trị đích t k (k=1 K) Ký hiệu lại hàm truyền sigma là g(x):
x x
g
ư +
= exp 1
1
(4)
x1
x2
…
xN
a0
a1 1
a2 2
a1 H
aN 2
y1
y2
…
yH
b0
b1 1
b2 1
b1 K bH 1
b2 k
…
u1
u2
…
uH
v1
…
vK
z1
…
…
zK
t1
…
…
tK
g(uj) g(vk)
Hình 4: Các thành phần chủ yếu của một mẫu của MTKNT
Đối với mỗi mẫu, trước hết ta tính tổng trọng số các giá trị đầu vào:
(5)
∑
=
+
i i ij
u
1
Hàm truyền sigma được áp dụng cho lớp ẩn:
( )j j
j
u u
g y
ư
1 +
=
=
exp 1 ) (
)
(6)
Lấy tổng trọng số các nút ẩn y j :
= +
j
j jk k
v
1
áp dụng hàm truyền sigma cho lớp xuất:
( k k
k
v v
g z
ư +
=
=
exp 1
1 )
( (8)
Bước (8) được thực hiện nếu như giá trị đích là biến nhị phân Nếu là các giá trị
thực thì z k được gán trực tiếp bằng v k tương ứng
Sai số tổng cộng của mỗi mẫu là:
Trang 4∑
=
ư
k
k
z E
1
2
) (
2
1
(9)
Để sai số này đạt cực tiểu thì đạo hàm của E theo các trọng số phải tiến dần đến 0
Ta tính đạo hàm riêng của E theo từng trọng số Trước hết là theo trọng số của
lớp xuất:
jk k k k k
v v
z z
E b
E
∂
∂
∂
∂
∂
∂
=
∂
∂
.
k
t z z
E
ư
=
∂
∂
k
v
z
ư
=
∂
∂
(12)
và j
jk
k y b
v
=
∂
∂
(13)
Khi đó: j. k.( 1 k).( k k)
jk
t z z z y b
∂
∂
Đặt: pk = zk.( 1 ư zk).( zk ư tk) (15)
jk
p y b
E
.
=
∂
∂
Tiếp theo là đạo hàm theo trọng số của lớp ẩn:
ij i i j K
k k k k ij
i i j
j
u u
y b
v v
z z
E a
u u
y y
E a
E
∂
∂
∂
∂
⎟
⎟
⎠
⎞
⎜
⎜
⎝
⎛
∂
∂
∂
∂
∂
∂
=
∂
∂
∂
∂
∂
∂
=
∂
=
.
.
1
(17)
Sử dụng phương trình (16) ta được:
ij i i j K
k
jk k
u u
y b p a
E
∂
∂
∂
∂
⎟
⎠
⎞
⎜
⎝
⎛
=
∂
∂
∑
=
.
1
, (18)
i
j
y y
u
y
ư
=
∂
∂
(19)
ij
i x
a u =
∂
∂
(20)
K
k
jk k ij
x y y
b p a
E
).
1 (
.
1
ư
⎟
⎠
⎞
⎜
⎝
⎛
=
∂
∂
=
(21)
Trang 5Nếu g(x) là hàm hybepol hay tang hypebol thì đạo hàm của E theo các trọng số sẽ
khác
Các trọng số a ij và b jk được cập nhật sao cho gradient tổng cộng của sai số theo
mọi trọng số trên tất cả các mẫu giảm đi Gọi d là tổng gradient sai số theo mọi trọng số
(ký hiệu chung là ω) của bước trước nó:
i
n
i
E
d ∑
=
⎟
⎠
⎞
⎜
⎝
⎛ ω
∂
∂
= 1
(22)
với ∂ ∂ω E / là đạo hàm riêng tổng cộng của E theo trọng số của mẫu thứ i, n là số lượng mẫu Hướng giảm dốc nhất là hướng ngược lại của hướng d Như vậy, mỗi trọng số sau
một bước sẽ được cập nhật mới:
ω ω
trong đó ε là hệ số học, là hệ số thực nghiệm do người sử dụng tự chọn, ở đây chọn hệ
số học ε = 0 05 Theo dõi sự biến thiên của sai số E theo thời gian đến khi E giảm ít
hoặc hầu như không giảm nữa thì dừng lại và chọn số thế hệ luyện phù hợp Quá trình luyện được thực hiện nhiều lần để tránh rơi vào các cực tiểu địa phương trên mặt lỗi hay còn gọi là bị rơi vào “bẫy”
Như vậy, trên lý thuyết MTKNT có thể tìm được sai số cực tiểu, có thể bằng 0 và kết xuất sẽ hoàn toàn trùng khớp với kết xuất đích Nhưng có một số vấn đề làm cho MTKNT không tìm đến được điểm trũng nhất của mặt lỗi Việc học của MTKNT hoàn toàn độc lập với con người, con người không tác động đến bất cứ một hoạt động nào của
nó nhưng việc chọn số nút, số lớp ẩn, số thế hệ quá nhiều hoặc quá ít lại có thể làm cho MTKNT không tìm được sai số cực tiểu Ngoài ra mạng còn thường gặp phải một vấn đề nữa là vấn đề quá khớp Khi kiểm nghiệm cho thấy đối với tập số liệu luyện, sai số rất nhỏ nhưng với tập số liệu độc lập dùng để đánh giá thì sai số lại tăng lên Điều này phần lớn là do mạng đã luyện với quá nhiều thế hệ Những vấn đề này chỉ có thể hạn chế được nhờ việc luyện nhiều lần và lấy tổ hợp các kết quả nhận được hoặc tiến hành kiểm nghiệm chéo (không trình bày chi tiết ở đây) Sau đây sẽ sử dụng MTKNT để thử nghiệm hiệu chỉnh cho lượng mưa dự báo của mô hình phân giải cao HRM
3 Thử nghiệm hiệu chỉnh lượng mưa dự báo của mô hình HRM
3.1 Số liệu sử dụng
- Số liệu bao gồm các giá trị lượng mưa ngày dự báo trước 24h bởi mô hình HRM với độ phân giải ngang 14km và 31 mực thẳng đứng, được nội suy về 314 trạm trên khu vực Việt Nam và lượng mưa quan trắc tại các trạm đó trong thời gian từ tháng 6 đến tháng 8 năm 2004
- Hai tập số liệu này được xử lý loại bỏ những ngày không đủ số liệu quan trắc hoặc dự báo Sau khi luyện mạng xong sẽ phục hồi các vị trí thiếu giá trị bằng –9999 và
đánh giá chất lượng dự báo theo các chỉ số, chủ yếu là lượng mưa trung bình ngày, sai
số trung bình toàn phương (RMSE), sai số hệ thống (BIAS) và độ lệch tuyệt đối trung
Trang 6bình (MAE) cho từng trạm, từng vùng (Bắc Bộ, Trung Bộ, Nam Bộ) và toàn bộ Việt Nam
3.2 Chạy mô hình
Phần xử lý số liệu đầu vào, số liệu đầu ra được thực hiện bằng lập trình Fortran trên hệ điều hành Linux Phần luyện mạng, kiểm nghiệm và hiển thị được thực hiện nhờ phần mềm Matlab
a/ Phần luyện mạng: Số liệu đầu vào (input) của mạng là chuỗi giá trị lượng mưa ngày dự báo đã được nội suy về 314 trạm trên Việt Nam Đích cần học là các giá trị mưa quan trắc trên các trạm tương ứng Mạng được thiết kế bao gồm 2 lớp ẩn và 1 lớp xuất Lớp ẩn thứ nhất có 3 nút ẩn, lớp thứ 2 có 5 nút ẩn, số thế hệ học là 300 thế hệ Số thế hệ này được chọn sau một vài lần luyện mạng Các bộ trọng số tại 2 lớp ẩn và 1 lớp xuất được lưu lại để kiểm nghiệm
b/ Phần tái tạo, kiểm nghiệm và đánh giá:
- Tái tạo: Nhân bộ trọng số với chính số liệu input được đưa vào mạng học, kết quả so sánh với đích học xem mức độ trùng khớp được bao nhiêu
- Kiểm nghiệm: Nhân bộ trọng số ở trên với chuỗi dự báo của tập số liệu kiểm nghiệm, kết quả so sánh với chuỗi quan trắc của tập số liệu kiểm nghiệm
- Đánh giá: Hiển thị giá trị mưa trung bình theo thời gian cho 314 trạm đối với
cặp số liệu input-tái tạo và input-kiểm nghiệm Tính các chỉ số RMSE, BIAS, MAE đối với quá trình luyện và quá trình kiểm nghiệm
N
2
i 1
1 RMSE (fcst obs )
N =
N
i
i 1
1
= ∑ ư i ; N
i 1
1
trong đó N là số ngày của chuỗi, fcst i là dự báo thứ i, obs i là quan trắc thứ i tương ứng
4 Kết quả thử nghiệm
Sau đây là một số kết quả dự báo lượng mưa ngày bằng phương pháp dùng MTKNT hiệu chỉnh sản phẩm của mô hình HRM Số liệu luyện và dự báo bao gồm cả
314 trạm trên Việt Nam sau đó tách ra làm 3 chuỗi gồm 159 trạm trên Bắc Bộ (19.5-24
độ Bắc, 100-110 độ Đông), 95 trạm trên Trung Bộ (12-19.5 độ Bắc, 100-110 độ Đông) và
57 trạm trên Nam Bộ (7-12 độ Bắc, 100-110 độ Đông), loại ra 3 trạm nằm ngoài đảo và trên nước Lào
Trên mỗi hình vẽ biểu diễn lượng mưa ngày trung bình theo thời gian của các trạm trên từng khu vực, đường chấm chấm là số liệu dự báo 24h của HRM, đường liền
Trang 7nÐt cã dÊu hoa thÞ lµ sè liÖu ®−îc hiÖu chØnh bëi MTKNT vµ ®−êng liÒn nÐt lµ sè liÖu quan tr¾c t−¬ng øng
H×nh 5 L−îng m−a ngµy (mm/ngµy) trung b×nh th¸ng 6 vµ th¸ng 7 cña B¾c bé, tËp sè liÖu input vµ t¸i t¹o
H×nh 6 L−îng m−a ngµy (mm/ngµy) trung b×nh th¸ng 8 cña B¾c bé, tËp sè liÖu input vµ kiÓm nghiÖm
H×nh 7 L−îng m−a ngµy (mm/ngµy) trung b×nh th¸ng 6 vµ th¸ng 7 cña Trung bé, tËp sè liÖu input vµ t¸i t¹o
Trang 8H×nh 8 L−îng m−a ngµy (mm/ngµy) trung b×nh th¸ng 8 cña Trung bé, tËp sè liÖu input vµ kiÓm nghiÖm
H×nh 9 L−îng m−a ngµy (mm/ngµy) trung b×nh th¸ng 6 vµ th¸ng 7 cña Nam bé, tËp sè liÖu input vµ t¸i t¹o
H×nh 10: L−îng m−a ngµy (mm/ngµy) trung b×nh th¸ng 8 cña Nam bé, tËp sè liÖu input vµ kiÓm nghiÖm
Trang 9Bảng 1: Đánh giá sai số tổng quát của quá trình luyện mạng và quá trình kiểm nghiệm
BIAS
(mm/ngày)
MAE
(mm/ngày)
RMSE
(mm/ngày)
Trung bình dự báo (mm/ngày)
Trung bình quan trắc
(mm/ngày)
HRM 6.585 7.547 9.835 13.654 Việt
Nam MTKNT 0.002 2.710 3.563 7.071
7.069
HRM 9.692 10.265 12.516 17.872 Bắc Bộ
MTKNT 0.276 2.577 3.609 8.457
8.180
HRM 3.337 4.721 6.065 9.014 Trung
Bộ MTKNT -0.288 2.840 3.456 5.390
5.678
HRM 3.445 4.843 5.759 9.881
Luyện
(06-07/2004)
Nam Bộ
MTKNT -0.341 2.912 3.666 6.090
6.432
HRM 6.179 7.663 9.884 13.898 Việt
Nam MTKNT -0.499 3.007 4.058 7.220
7.719
HRM 10.306 10.704 12.677 20.265 Bắc Bộ
MTKNT -0.673 2.823 3.939 9.287
9.959
HRM 0.980 4.153 5.384 5.942 Trung
Bộ MTKNT -0.518 3.454 4.462 4.444
4.961
HRM 3.469 5.249 6.355 9.730
Kiểm
nghiệm
(08/2004)
Nam Bộ
MTKNT -0.077 2.824 3.744 6.184
6.261
Từ hình 5 đến hình 10 và bảng 1 ta thấy MTKNT đã hiệu chỉnh sản phẩm của HRM về gần với quan trắc hơn, sai số ở tập luyện nhỏ hơn sai số trên tập kiểm nghiệm Nhìn chung, tính trung bình cho cả chuỗi thời gian (2 tháng đối với tập luyện và 1 tháng đối với tập kiểm nghiệm) thì các đường biểu diễn lượng mưa trung bình theo thời gian tại 314 trạm của MTKNT và quan trắc khá sát nhau, trong khi đó sản phẩm của HRM thường cho lượng mưa lớn hơn nhiều so với quan trắc Điều này thể hiện rõ hơn trong các chỉ số ở bảng 1 Tính cho tất cả các ngày và tất cả các trạm thì lượng mưa dự báo trung bình của HRM khoảng hơn 13mm/ngày trong khi lượng mưa trung bình của quan trắc và MTKNT chỉ khoảng 7-8mm/ngày Do đó, các sai số RMSE, BIAS và MAE của MTKNT nhỏ hơn hẳn so với HRM Tuy nhiên, những ngày mưa lớn trong tập số liệu luyện rất ít so với số ngày không mưa hoặc mưa rất nhỏ, nên MTKNT học được ít thông tin về mưa lớn Vì vậy, MTKNT không hiệu chỉnh tốt đối với những ngày có mưa lớn Như thấy trên hình 5 đến hình 10, tại một vài trạm thường có mưa lớn trong 3 tháng mùa hè năm 2004, đường mô phỏng của MTKNT không gần với đường quan trắc
và chỉ số BIAS có giá trị âm, trong khi đó dự báo của HRM lại nắm bắt tốt
5 Kết luận
- MTKNT đã hiệu chỉnh sản phẩm của HRM về gần với quan trắc hơn, sai số ở tập luyện nhỏ hơn sai số trên tập kiểm nghiệm
- MTKNT đã thiết lập có thể hiệu chỉnh tốt đối với những số liệu mưa vừa và mưa nhỏ trong khoảng 5-15mm, chưa hiệu chỉnh tốt đối với những ngày mưa lớn và những trạm thường có mưa lớn
Trang 10Để cải tiến kết quả hiệu chỉnh cần thay đổi một số tham số của mạng như hệ số học, số lớp ẩn, số nút ẩn của mỗi lớp ẩn và luyện mạng nhiều lần để chọn được một MTKNT phù hợp nhất Phức tạp hơn, ta có thể thiết lập nên MTKNT với mục tiêu học không chỉ là cực tiểu hoá sai số trung bình bình phương mà còn tăng thêm trọng số đối với những quan trắc đích có giá trị lớn để đưa thêm thông tin về những ngày mưa lớn cho mạng học Sau khi chọn được mạng phù hợp nhất ta có thể lưu trữ lại mạng để dùng cho các mô phỏng tiếp sau mà không cần luyện lại mạng
Bài báo được hoàn thành với sự hỗ trợ kinh phí của đề tài NCCB 733104
Tài liệu tham khảo
1 Caren Marzban and Arthur Witt, A Bayesian Neural Network for Severe-Hail Size
Prediction, Weather and Forecasting, Volume 16, 2000, p600-610
2 David Silverman and John A Dracup, Artificial Neural Networks and Long-Range
Precipitation Prediction in California, Monthly weather review, JANUARY 2000, p.57-66
3 Narasimhan et al., Ozone Modeling Using Neural Networks, Monthly weather review,
MARCH 2000, p291-296
4 Robert J Kuligowski and Ana P Barros, Experiments in Short-Term Pricipitation
Forecasting Using Artifical Neural Networks, Monthly weather review, 2000, Volume 126,
p.470-482
5 Tom M Mitchell, Machine Learning, Chapter 4, 1996, p81-127
VNU JOURNAL OF SCIENCE, Nat., Sci., & Tech., T.xXII, n 0 1AP., 2006
An Experiment in Daily Rainfall Forecasting Using Artificial Neural Network to Adjust Numerical
Model Output
Ho Thi Minh Ha, Nguyen Huong Dien
Department of Hydro-Meteorology & Oceanography
College of Science, VNU
Artifical Neural Network (ANN) is one kind of Decision Support Systems It has the similar structure and behaviours to that of biological neuron It can learn and simulate the information as a brain through a learning course The most common learning method is folowing the gradient descent rule In this paper it’s used for HRM rainfall output adjustment The input data is rainfall field predicted by HRM (with the horizontal resolution14km and 31 vertical levels) and the observation data, respectively in the period of time between 01th June 2004 and 31th August 2004 at 314 stations in Vietnam Data is divided into 2 parts One part is used for neural network learning and the other one for prediction and test The average rainfall, root mean square error (RMSE), mean absolute error (MAE) and mean bias error (BIAS) are the indices used to verify the results All the indices show that the rainfall adjusted by ANN is closer to observation than that of HRM output in general In particle, however the rainfall of ANN is smaller than that of HRM in the heavy rainfall days The best results are get in the North of Vietnam and they’re very not good in the South of Vietnam The reason is maybe the lack of station in this area