Trong bài viết sử dụng hai thuật toán trong học máy: thuật toán lan truyền ngược và Bayes để cùng dự báo thời tiết tỉnh Hải Dương. Dữ liệu cho bài toán thu thập được theo từng ngày từ Trung tâm Khí tượng Thủy văn từ năm 2013 – 2015 dùng cho pha học (70% tổng dữ liệu) và pha chạy (30%). Một số kết quả thử nghiệm ban đầu được trình bày và đối sánh hai phương pháp khác nhau; những nghiên cứu, định hướng phát triển trong tương lai được đề xuất.
ISSN 2354-0575 DỰ BÁO THỜI TIẾT ỨNG DỤNG MẠNG NƠ RON NHÂN TẠO VÀ THUẬT TOÁN BAYES Nguyễn Quang Hoan1, Phạm Thị Trang2, Hồng Hồng Cơng3, Nguyễn Thị Huyền1 Trường Đại học Sư phạm Kỹ thuật Hưng Yên Trường Đại học Thành Đông Trường Cao đẳng nghề Cơ điện Thủy lợi Ngày nhận: 10/12/2016 Ngày sửa chữa: 18/01/2017 Ngày xét duyệt: 05/03/2017 Tóm tắt: Trong báo, chúng tơi sử dụng hai thuật tốn học máy: thuật toán lan truyền ngược Bayes để dự báo thời tiết tỉnh Hải Dương Dữ liệu cho toán thu thập theo ngày từ Trung tâm Khí tượng Thủy văn từ năm 2013 – 2015 dùng cho pha học (70% tổng liệu) pha chạy (30%) Một số kết thử nghiệm ban đầu trình bày đối sánh hai phương pháp khác nhau; nghiên cứu, định hướng phát triển tương lai đề xuất Từ khóa: Mạng nơ ron nhân tạo, dự báo thời tiết, thuật toán lan truyền ngược, thuật toán Bayes Giới thiệu Dự báo sử dụng thơng tin có cách hiệu để định hướng họat động tương lai nhằm đạt mục đích, u cầu tổ chức Dự báo thời tiết tiên đốn, ước lượng, có đánh giá sai lệch kiện xảy tương lai vấn đề quan tâm kết dự báo tác động đến đời sống hàng ngày Trong dự báo thời tiết, nhiều yếu tố biến đổi khó lường thiên nhiên nên có độ phức tạp lớn độ xác hạn chế nên phương pháp để giải trọng Mạng nơ ron nhân tạo mơ hình hoạt động não người, phương pháp tính tốn mềm, chấp nhận thơng tin khơng đầy đủ, xác, dễ thích nghi; khả học tốt; khả chịu lỗi cao Nhiều ứng dụng sử dụng mạng nơ ron nhân tạo nhiều toán khoa học Ứng dụng mạng nơron để toán dự báo thời tiết làm giảm độ tính tốn phức tạp [1, 3, 4, 5, 6, 7] có nhiều hứa hẹn cho độ xác cao Trên giới [7, 8] Việt Nam nhiều nghiên cứu, ứng dụng mạng nơ ron nhận tạo dự báo số tham số khí tượng thủy văn [3, 5, 7]; dự báo nhu cầu dịch vụ viễn thông [1]; dự báo xạ [2, 6]; dự báo giá chứng khoán [4] tiến hành Điều khẳng định khả mạng nơ ron tốn dự báo khả thi cịn phải tiếp tục nghiên cứu, phát triển ứng dụng Hiện nay, nhiều phương pháp dự báo ứng dụng cho nhiều vùng khác mạng nơ ron thuật toán Bayes cho dự báo thời tiết cho Hải Dương (một tỉnh đồng bằng, vựa thóc đồng sông Hồng, gần biển, chịu tác động, ảnh hưởng Khoa học & Công nghệ - Số 13/Tháng - 2017 nhiều thời tiết: mưa, bão, lụt…) chưa thử nghiệm Đó mục đích báo Mạng noron nhân tạo 2.1 Cấu trúc mạng lan truyền ngược Mạng nơ ron có nhiều cấu trúc, luật học khác [4] Trong báo, chọn mạng nơ ron lan truyền ngược khả hiệu chỉnh sai số đầu nhanh (BackPropagation Neural Networks) so với vài luật học khác Mạng chọn ba lớp truyền thẳng (Hình 1): lớp vào, lớp ẩn (ở giữa), lớp ra: đủ khả nhận biết mẫu học (đầu vào); hàm tương tác đầu liên tục, khả vi, bị chặn (cơng thức(3))[7] Hình Sơ đồ cấu trúc mạng nơron ba lớp lan truyền ngược a Lớp vào (Input Layer) Đầu vào: xj, (j = 1, , cho thực nghiệm, x1: nhiệt độ; x2: độ ẩm; x3: mây; x4: mưa) Lớp vào: chọn số nơ ron (q = 1, ,m thực nghiệm chọn nơ ron) q nơ ron thứ q lớp vào; vqj trọng số đầu vào thứ j nối với nơ ron thứ q (tổng số có qj = x =12 trọng số thực nghiệm) Journal of Science and Technology 39 ISSN 2354-0575 m netq = / vqj x j (1) j=1 E b Lớp ẩn (Hidden Layer) Đầu số (Digital Output) lớp vào đầu vào lớp ẩn, hàm đầu vào tương tự (Analog Output) m (2) zq = fq (netq ) = fq ( / vqj x j ) Wij j=1 Hàm tương tác đầu nơ ron tất lớp: chọn hàm Sigmoid fq(.): (3) fq (netq ) = + e -netq Chọn l = 18 nơ ron cho lớp ẩn Số chọn theo thực nghiệm từ kết tối ưu giá trị lỗi trình huấn luyện c Lớp (Output Layer): Tổng đầu nơron thứ i(neti) đầu (bị chặn) yi xác định theo: neti = / wiq zq = / wiq f c / vqj x j m l l m q=1 q=1 j=1 (4) yi = f ^netih = f d / wiq zq n = f d / wiq f c / vqj x j mn l l m (5) i nơ ron thứ i n nơ ron đầu chọn tuỳ thuộc vào cách mã hoá đặc trưng đầu Trong bối cảnh toán nêu, số nơ ron lớp n = q=1 q=1 j=1 2.2 Pha học: dùng thuật học lan truyền ngược sử dụng phương pháp hạ Gradient Hoạt động mạng nơ ron gồm hai giai đoạn, gọi hai pha: pha học: pha xác định tham số wij mạng Sau pha học mạng chuyển sang pha hai: (pha mạng đủ điều kiện để chạy) pha chạy thử để kiểm tra thể khả suy diễn mạng mẫu lạ (chưa học) Mục 2.1 cho ta cấu trúc mạng nơ ron lớp Để mạng hoạt động được, cần xác định giá trị tất tham số wij lớp Phương pháp chung để xác định chúng phương pháp THỬ-SAI-CHỈNH “THỬ” có nghĩa là: thử cho ngẫu nhiên giá trị trọng ban đầu wij (ngoài cần thêm giá trị tốc độ học “η” với độ sai số đầu E (trong công thức (7)) tối thiểu để chạy thuật toán học) “SAI” có nghĩa là: theo học có giám sát: hiệu đầu mong muốn di với đầu thực tế yi nơ ron lớp “CHỈNH” có nghĩa là: điều chỉnh trọng số với giá trị THỬ ban đầu lượng Δwij (7) Có nhiều kỹ thuật xác định Δwij Chúng sử dụng kỹ thuật hạ Gradient cho trường hợp (đạo hàm riêng bậc hàm số bậc nhiều biến (6) tức hàm có dạng parabol có điểm đáy: điểm cực tiểu) là: n (6) E = / ^di - yih2 i=1 40 Hình Minh họa phương pháp gradient Theo phương pháp hạ Gradient: tức tiến trình cập nhật trọng số theo hướng giảm gradient, trọng số liên kết lớp (ví dụ lớp ẩn lớp ra) cập nhật bởi: 2E 2E 2yi 2net (7) Dw iq =- h 2w =- h : 2y D; 2net E; 2w i E iq i i iq đó: η số học Nó tốc độ cập nhật trọng số bước lặp thuật tốn Kỹ thuật hạ Gradient áp dụng để tính trọng wij từ lớp đầu vào đến lớp đầu gọi tính trọng số theo kiểu truyền thẳng Ngược lại, tính trọng số từ lớp ngược lớp đầu (làm cho sai số có xu hướng giảm dần, chóng hội tụ nên ưa sử dụng) Thuật tốn tính ngược từ tới vào gọi thuật toán lan truyền ngược (Backpropagation Algorithm: BP) Tuy nhiên, phương pháp hạ Gradient có hạn chế tối ưu cục (tức hội tụ đáy Đáy đó, nói chung chưa hẳn có giá trị sai số nhỏ gọi tối ưu cục (Hình 2) Để khắc phục tối ưu cục nói dùng giải thuật di truyền để xác định giá trị tối ưu toàn cục Giả sử, thực việc (chúng tơi tiến hành báo khoa học khác) với tập giá trị trọng đưa tối ưu tồn cục Thuật tốn BP tóm tắt sau: Xét mạng với q lớp truyền thẳng, q = 1, 2, …, Q ký hiệu qneti qyi tổng đầu vào đầu nơron thứ i lớp q Mạng có m nút đầu vào n nút đầu qwij biểu thị trọng số liên kết từ q-1yj tới qyi - Đầu vào: Một tập cặp huấn luyện {(x(k), d(k)| k = 1, 2, …, p)} - Bước (khởi tạo): Chọn tốc độ học η = 0.5 Emin = (là giá trị lỗi cực đại chấp nhận được) Khởi tạo trọng số với giá trị ngẫu nhiên nhỏ; cho bước lặp khởi đầu: k = - Bước (lặp huấn luyện): Đưa mẫu đầu vào thứ k tới lớp đầu vào: yi = xi(k) i (8) - Bước (lan truyền tiến): Lan truyền tiến tính tín hiệu qua mạng sử dụng: Khoa học & Công nghệ - Số 13/Tháng - 2017 Journal of Science and Technology ISSN 2354-0575 q yi = f ^qnetih = f a / qw ijq- y j k j (9) Với i q tới đầu lớp yi áp dụng - Bước (tính tốn lỗi): Tính giá trị lỗi E tín hiệu lỗi Qδi cho lớp đầu ra: n (10) E ^k + 1h = / _d i(k) - Qyi i + E (k) i=1 Q P (Ci | X) = n % P (xk | Ci) = P (x1 | Ci) # i=1 (16) # P (x2 | Ci) # # P (xn | Ci) (11) - P(X|Ci) tính với giả định xk độc lập có điều kiện; k = n: - P(xk|Ci) tính sau: +Nếu Ak thuộc tính rời rạc |{X l | xlk = xk / X l ! Ci (17) P (xk | Ci) = | Ci, D | - Bước (lan truyền ngược lỗi): Lan truyền ngược trở lại để cập nhật trọng số tính tốn tín hiệu lỗi q - 1d i cho lớp trước: w ijq = h * d i * q - 1y j (12) +Nếu Ak thuộc tính liên tục P(xk|Ci) ước lượng thơng qua hàm mật độ: (xk - n c1) (18) P (xk | Ci) = g (xk, n c1, v c1) = e 2v2 c1 2rv c1 Q d i = _d i(k) - Qyi i f l (Qneti) w ijq = oldw ijq + w ijq new d i = f l^q - 1netih / qwij qd j q-1 j (13) (14) q = Q, Q-1, …, - Bước (lặp chu kỳ): Kiểm tra toàn tập liệu luyện duyệt Nếu k < p k = k+1 (quay lại bước cho lần lặp mới), khơng thực bước - Bước (kiểm tra lỗi toàn thể): Kiểm tra lỗi tồn thể, E < Emin kết thúc trình huấn luyện, kiểm tra xem đạt đến số chu kỳ (vòng lặp) giới hạn chưa, không E = 0, k = bắt đầu chu kỳ việc quay lại bước 2.3 Pha thử nghiệm Pha thử (Test) thực chất pha chạy Pha chạy hoàn toàn sử dụng lại cấu trúc mạng nơ ron Hình để kiểm tra khả suy diễn mạng nơ ron Quy trình thực pha chạy sau: Bước 1: Chuẩn, mã hóa cho liệu đầu vào; Bước 2: Tính đầu ra; Bước 3: Giải mã đầu để nhận tham số (dự báo) thời tiết Thuật tốn Nạve Bayes[9] Cho trước tập liệu huấn luyện D với mô tả (nhãn) lớp Ci, i = m, trình phân loại đối tượng X = (x1, x2,…, xn) với mạng Bayes sau: - X phân loại theo Ci nếu: P (Ci | X) > P (C j | X) với # j # m ; P (X | Ci) P (Ci) j ! i P (Ci | X) = (15) P (X) + Tối đa hóa P(Ci│X) (Chọn Ci P(Ci│X) giá trị lớn nhất) + Tối đa hóa P(Ci│X)P(Ci) P(C1) = P(C2) = = P(Cm) | Ci, D | P(Ci) = … D Khoa học & Công nghệ - Số 13/Tháng - 2017 Trong đó, μ: giá trị trung bình n n = n / xk k=1 σ: độ lệch chuẩn, : n v = n - / ( x k - n) k=1 (19) (20) Tóm lại, để phân lớp mẫu chưa biết X, ta tính P(X|Ci)P(Ci) cho Ci, gán X vào lớp Ci cho P(X|Ci)P(Ci) lớn max (P (Ci ci ! C n % P (xk | Ci))) k=1 (21) Xây dựng hệ thống dự báo thời tiết 4.1 Phân tích tốn Trong báo, chúng tơi giới hạn tham số ảnh hưởng đến thời tiết là: nhiệt độ, độ ẩm, mây mưa Mỗi yếu tố có thuộc tính độ phụ thuộc khác Ví dụ tùy thuộc vào tháng mà nhiệt độ có giá trị khác Nếu tháng rơi vào mùa mưa nhiệt độ thấp (27.0oC)… Dựa đặc điểm ta xây dựng tốn: Với bốn yếu tố ảnh hưởng đến thời tiết trên, ta phân chia yếu tố thành trường hợp cụ thể sau: a Biến nhiệt độ (kí hiệu ND), có khoảng giá trị: thấp ND từ đến 25.5; trung bình ND từ 25.5 đến 27.0; cao ND từ 27.0 đến 45; b Biến độ ẩm (kí hiệu ĐA):Thấp ĐA từ – 80; Cao ĐA từ 80 - 100 c Biến lượng mưa (kí hiệu M): Không mưa (0); Rải rác: M từ đến 2; Nhỏ: M từ đến 50; lớn: M từ 51 đến 1000 d Biến lượng mây (MA) Ít MA từ đến 20; Nhiều: MA từ 20 đến 30; Rất nhiều lượng mây lớn 30 4.2 Dữ liệu cho thử nghiệm Dữ liệu từ năm 2013 đến năm 2015, Journal of Science and Technology 41 ISSN 2354-0575 thu thập theo ngày từ Trung tâm Khí tượng Thủy văn tỉnh Hải dương với tham số chính: nhiệt độ, độ ẩm, mây mưa với số ghi 1095 Tất liệu chia thành hai phần: 70% liệu dùng để học (800 ghi) 30% liệu để thử (295 ghi) 4.3 Kết đạt Sau phân tích hệ thống tìm hiểu giải thuật, chúng tơi xây dựng chương trình dự báo thời tiết chạy máy tính cá nhân hệ điều hànhWindow 7, vi xử lý Intel Core i3 - 4170 với tốc độ 2.7 GHz, nhớ đệm 2MB Cache, RAM 2GB Chương trình viết ngơn ngữ C# Chúng tơi thử nghiệm hai phương pháp: dùng thuật tốn Bayes (thể kết Hình 3) mạng noron lan truyền ngược (kết thị Hình 4) Trong Hình 5: vùng nhiệt độ, vùng nhiệt độ cao vùng nhiệt độ thấp Ở vùng có đường nhiệt độ thực tế, nhiệt độ dự báo mạng noron, nhiệt độ dự báo mạng noron nhân tạo Trong chương trình ngày khác dự báo tùy theo nhu cầu người dùng Bảng So sánh kết dự báo mạng noron lan truyền ngược và thuật tốn Nạve Bayes TT Tháng Kết Phương pháp thực tế ANN 02/01/2016 16-23 14-20 Thuật tốn Nạve Bayes 12-22 02/02/2016 9-16 8-18 10-16 05/03/2016 17-24 15-25 17-23 06/04/2016 23-28 20-30 22-28 06/05/2016 26-35 24-34 26-32 06/06/2016 27-36 26-36 28-34 06/07/2016 26-30 23-33 25-31 16/08/2016 24-33 24-34 26-32 16/09/2016 26-35 26-32 26-32 Hình Dự báo thời tiết với thuật toán Bayes Hình So sánh kết dự báo mạng noron lan truyền ngược và thuật toán Bayes Hình Dự báo thời tiết với mạng nơ ron Lan truyền ngược 4.4 Đánh giá kết Kết dự báo nhiệt độ mạng nơ ron lan truyền ngược thuật tốn Nạve Bayes thu từ thử nghiệm số ngày năm 2016 Trong phạm vi báo đánh giá kết cho nhiệt độ (về lượng mây, mưa cho giá trị tương tự) 42 Kết luận Đóng góp báo thử nghiệm dự báo nhiệt độ tỉnh Hải Dương sử dụng thuật toán lan truyền ngược sai số thuật toán Bayes cho vài kết khả quan, độ phức tạp lớn Tuy nhiên, thu thập thêm liệu đầy đủ hướng gió, tốc độ gió, áp suất mức độ dự báo phong phú Các tham số mây, mưa hồn tồn số hóa cho kết nhiệt độ (trong phạm vi giới hạn khn khổ báo tạp chí, minh họa tham số) Hệ thống dễ dàng cài đặt sử dụng dựa máy tính cá nhân, có tốc dự báo nhanh Khoa học & Công nghệ - Số 13/Tháng - 2017 Journal of Science and Technology ISSN 2354-0575 Hướng nghiên cứu tiếp theo: Các phương pháp lai khác cho tốn dự báo thời tiết khơng cho tỉnh Hải Dương mà cho vùng miền khác như: lai giải thuật di truyền-Nơron-Mờ, học sâu (Deep Learning) hướng nghiên cứu Mặt khác, nhiều tham số dự báo chưa đề cập báo với khối lượng tính tốn lớn dự kiến thử nghiệm máy tính lớn Tài liệu tham khảo [1] Trần Duy Dũng (2001), Phát triển phần mềm dự báo nhu cầu dịch vụ cho mạng viễn thông Việt nam sử dụng công nghệ AI Mã số:087-2001-TCT-RDP-TH-67, Viện Khoa học Kỹ thuật Bưu điện [2] Nguyễn Hướng Điền, Hoàng Phúc Lâm (2006), Dự báo tổng lượng xạ ngày cho khu vực đồng phía Bắc Việt Nam phương pháp sử dụng mạng thần kinh nhân tạo, Tạp chí khoa học ĐH QGHN, KHTN&CN [3] Hồ Thị Minh Hà, Nguyễn Hướng Điền (2006), Thử nghiệm dự báo lượng mưa ngày quy tắc sử dụng mạng thần kinh nhân tạo hiệu chỉnh sản phẩm mơ hình số, Tạp chí Khoa học – Đại học Quốc gia, Hải Dương [4] Nguyễn Quang Hoan, Hoàng Thị Lan Phương (2006), Dự báo giá chứng khốn sử dụng cơng nghệ mạng nơron, Kỷ yếu hội nghị khoa học lần nghiên cứu, phát triển ứng dụng công nghệ thông tin truyền thơng ICT.rda’06 (20-21/5/2006) [5] Hồng Phúc Lâm (2006), Nghiên cứu ứng dụng mạng thần kinh nhân tạo dự báo số yếu tố khí tượng cho khu vực đồng phía bắc Việt Nam, Luận văn thạc sĩ khoa học [6] Hồng Phúc Lâm, Nguyễn Hướng Điền, Cơng Thanh, Hoàng Thanh Vân (2007), Sử dụng mạng nơron đa lớp truyền thẳng mạng truy hồi dự báo tổng lượng xạ ngày cho số trạm đồng phía bắc Việt Nam, Tạp chí Khí tượng Thủy văn, số 10(559) [7] Bin Li (2002), Spatial Interpolation of Weather Variables using Artificial Neural Network, Master of Science, University of Georgia, Greece [8] David Silverman, John A Dracup (2000), Artificial Neural Networks and Long-Range Precipitation Prediction in California, Journal of Applied Meteorology, vol 39, pp 57-66 [9] Nguyễn Thị Thu Hòa (2011), Ứng dụng phương pháp hồi quy Bayes vào việc dự báo thời tiết, Luận văn thạc sĩ khoa học WEATHER FORECASTING USING ARTIFICIAL NEURAL NETWORK AND BAYES ALGORITHM Abstract: In this paper, we use two algorithms in machine learning: Back Propagation Neural Networks and Bayes algorithm for weather forecasting in the Hai Duong province Data for the forecasting are acquired from the AccWeather on the period time 2013-2015 years (in every day) in which for the learing (include 70% total data) and for the testing (include 30% total data) We received some positive results in the temperature forecasting The comparison of two forecasting results between Back Propagation and Bayes algorithm is proposed Keywords: Artificial Neural Network, Forecast, Back Propagation algorithm, Bayes algorithm Khoa học & Công nghệ - Số 13/Tháng - 2017 Journal of Science and Technology 43 ... Hình Dự báo thời tiết với thuật toán Bayes Hình So sánh kết dự báo mạng noron lan truyền ngược và thuật tốn Bayes Hình Dự báo thời tiết với mạng nơ ron Lan truyền ngược 4.4 Đánh giá kết Kết dự báo. .. báo mạng noron, nhiệt độ dự báo mạng noron nhân tạo Trong chương trình ngày khác dự báo tùy theo nhu cầu người dùng Bảng So sánh kết dự báo mạng noron lan truyền ngược và thuật tốn Nạve Bayes. .. m (5) i nơ ron thứ i n nơ ron đầu chọn tuỳ thuộc vào cách mã hoá đặc trưng đầu Trong bối cảnh toán nêu, số nơ ron lớp n = q=1 q=1 j=1 2.2 Pha học: dùng thuật học lan truyền ngược sử dụng phương