Phục hồi dữ liệu sóng biển bằng mạng Neuron nhân tạo

This study aims at developing an artificial neural network OceanANN in MATLAB to recover missing wave data. The program OceanANN was designed friendly to the user for their convenient and useful interfaces. Based on the Levenberg-Marquardt algorithm, OceanANN was established with 1 input - layer, 2 hidden - layers and 1 output - layer. Each hidden layer consisting of 30 neurons was used to learn the nature of data series. For the application of OceanANN, the wave data recorded offshore of the Tweed Heads (Australia) in February 1996 was employed. The data set was divided into 3 segments: 70% of the data for learning, 15% for verification and the rest 15% of the data deliberately removed for OceanANN to recover. Artificial neural networks are suitable tools for the application on wave data of high non-linearity and fluctuations. The regression coefficients showing the relationship between the computed data and recorded data with hourly observations for the learning process, verification and testing process are always higher than 98%.

pdf9 trang | Chia sẻ: honghp95 | Lượt xem: 474 | Lượt tải: 0download
Bạn đang xem nội dung tài liệu Phục hồi dữ liệu sóng biển bằng mạng Neuron nhân tạo, để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
17 Tạp chí Khoa học và Công nghệ biển T10 (2010). Số 1. Tr 17 - 25 PHỤC HỒI DỮ LIỆU SÓNG BIỂN BẰNG MẠNG NEURON NHÂN TẠO ðẶNG VĂN TỎ Trường ðại học Khoa học Tự nhiên, Thành phố Hồ Chí Minh Tóm tắt: Nghiên cứu này xây dựng mạng neuron nhân tạo OceanANN trên nền MATLAB ñể phục hồi dữ liệu sóng biển. Chương trình OceanANN ñược thiết kế thân thiện với người sử dụng nhờ các giao diện tiện ích. Dựa trên thuật toán Levenberg-Marquardt, OceanANN ñược thiết kế với 1 lớp nhập, 2 lớp ẩn và 1 lớp xuất. Tổng cộng 30 neuron cho từng lớp ẩn ñược sử dụng ñể học bản chất của chuỗi dữ liệu. ðể áp dụng OceanANN, tập số liệu sóng biển thực ño ngoài khơi ở Tweed Heads (Australia) vào tháng 2 năm 1996 ñã ñược sử dụng. Tập số liệu này ñược chia thành 3 phần: 70% số liệu dùng ñể học, 15% số liệu dùng ñể kiểm ñịnh và 15% số liệu còn lại ñược cố ý làm thất thoát ñể phục hồi. Mạng neuron nhân tạo rất thích hợp ñể sử dụng cho các số liệu sóng biển với ñộ phi tuyến cao và nhiễu ñộng lớn. Các hệ số tương quan giữa số liệu tính toán và số liệu thực ño có thời khoảng quan trắc 1 giờ cho các trường hợp huấn luyện mạng, kiểm ñịnh mạng và mô phỏng mạng ñều có kết quả trên 98%. I. GIỚI THIỆU Kết quả tính toán của nhiều mô hình số không phải lúc nào cũng ñáng tin cậy vì các số liệu thực ño không ñầy ñủ và có ñộ bất ñịnh. Vì thế, các ứng dụng thực tiễn của các mô hình số gặp nhiều hạn chế. Tuy nhiên, việc có ñược các số liệu thực ño, ñầy ñủ và ñáng tin cậy không phải lúc nào cũng dễ dàng thực hiện ñược. Các số liệu sóng hay dòng chảy ño ñạc ngoài khơi thường hay bị thất thoát, thiếu hụt vì nhiều lý do, trong ñó ñiều kiện tự nhiên thay ñổi ñột ngột (như sóng to, gió lớn) hoặc các nguyên nhân từ con người (như cắt phao, lấy cắp thiết bị) thường hay xảy ra. Tất cả các bất ñịnh trên thường nằm ngoài dự kiến của người thực hiện nghiên cứu. Vì vậy, một chuỗi số liệu ño ñạc không phải không có những chỗ gián ñoạn thay vì liên tục như mong ñợi. Trong khi ñó, các mô hình số thường yêu cầu các số liệu ñầu vào liên tục nhằm thoả mãn các ñiều kiện biên và ñiều kiện ban ñầu của mô hình. ðiều này cũng quan trọng trong việc sử dụng số liệu liên tục thực ño ñể cân chỉnh và kiểm ñịnh kết quả mô hình tính toán. Vì thế, việc phục hồi dữ liệu thất thoát trong chuỗi số liệu ño ñạc gián ñoạn có ý nghĩa thực tiễn quan trọng. Bài báo này có mục ñích xây dựng mạng neuron nhân tạo OceanANN trên nền MATLAB ñể phục hồi dữ liệu sóng biển. Cơ sở lý thuyết của mạng neuron nhân tạo, khu 18 vực nghiên cứu và số liệu chuẩn bị nhằm áp dụng cụ thể thuật toán của bài toán lần lượt ñược trình bày kế tiếp theo sau. II. PHƯƠNG PHÁP VÀ TÀI LIỆU 1. Cơ sở lý thuyết mạng neuron nhân tạo (ANN) Mạng neuron nhân tạo ANN là một mô hình thống kê toán học dựa trên sự mô phỏng các hoạt ñộng của hệ thần kinh sinh học. ANN không cố gắng ñể mô phỏng các hoạt ñộng tinh tế của bộ não, nhưng chúng cố gắng tái tạo các hoạt ñộng logic của bộ não bằng cách tập hợp nhiều dữ liệu ñầu vào có dạng neuron thần kinh ñể thực hiện các quá trình tính toán hay nhận thức. Hầu hết các mạng neuron ñều có sơ ñồ chung là neuron và cấu trúc liên kết mạng (hình 1). Mỗi một neuron bao gồm hai phần: hàm số mạng (net function) và hàm số kích hoạt (activation function). Hàm số mạng xác ñịnh phương thức liên kết của dữ liệu nhập {yj ; 1 ≤ j ≤ N} với nhau trong neuron. Trong mô hình neuron này, mối liên kết tuyến tính có trọng số N j j j u w y θ= +∑ ñược áp dụng, với wj là trong số {wj ; 1 ≤ j ≤ N} và θ là ñộ lệch dùng ñể mô phỏng ngưỡng của neuron. Dữ liệu xuất của neuron ñược ký hiệu là ai, nó liên kết với dữ liệu nhập ui của mạng neuron nhờ hàm kích hoạt (hay phép biến ñổi tuyến tính hoặc phi tuyến f): ( )a f u= . Nhiều hàm mạng và hàm kích hoạt khác nhau ñược sử dụng ñể thiết lập cấu trúc mạng neuron khác nhau. Chi tiết có thể tham khảo trong các tài liệu mạng neuron [1]. Hình 1: Mô hình neuron 1.1. Mạng nhận thức nhiều lớp Mạng nhận thức nhiều lớp (MLP) là một mạng lan truyền tiến (feed-forward) ñược xếp thành nhiều lớp. Mỗi một neuron trong mạng MLP có một hàm kích hoạt phi tuyến, thường là hàm sigmoid hay hàm tanhyerbolic. Cấu hình tiêu biểu của mạng MLP ñược thể hiện trong hình 2. Trong hình này, các hình tròn mô tả các neuron và chúng ñược sắp xếp 19 theo từng lớp. Mạng neuron này có 3 lớp: lớp nhập (hình ngũ giác), lớp ẩn (hình tròn M và H) và lớp xuất (hình tròn N). Kết quả của các lớp ẩn thường không nhìn thấy ñược. Hình 2: Cấu hình mạng neuron có 3 lớp Một trong những ñiều kiện áp dụng thành công mô hình MLP là chọn ñúng các ma trận trọng số. Phương pháp phổ biến ñể chọn ñúng các ma trận trọng số là sử dụng phương pháp tối ưu hoá hay phương pháp huấn luyện lan truyền ngược sai số (error back- propagation training method). Phương pháp này ñược biết như sau. Nếu gọi bình phương sai số của mạng: [ ] [ ] [ ]2 2 2 1 1 1 ( ) ( ) ( ) ( ) ( ( )) K K K k k k E e k d k z k d k f k = = = = = − = − ⋅∑ ∑ ∑ W x (1) Trong ñó W là một ma trận trọng số, x là vector dữ liệu nhập, d(k) là dữ liệu huấn luyện {d(k); 1 ≤ k ≤ K}, z(k) là dữ liệu xuất {z(k); 1 ≤ k ≤ K } và e(k) = d(k) – z(k). Như vậy, mục tiêu tìm ma trận trọng số tối ưu W sẽ tương ứng với việc cực tiểu hoá bình phương sai số E. ðiều này dẫn ñến bài toán tối ưu hóa bình phương tối thiểu phi tuyến. Hiện có khá nhiều phương pháp ñể giải bài toán tối ưu loại này, về cơ bản chúng có thể ñược thực hiện bởi công thức lặp nhờ các thuật toán tối ưu sau: ( 1) ( ) ( )t t t+ = + ∆W W W . Ở ñây ∆W(t) là ñộ hiệu chỉnh của các trọng số hiện thời W(t). Các thuật toán khác nhau chủ yếu sẽ khác nhau về dạng của ∆W(t). Nhiều thuật toán như phương pháp gradient liên hiệp, phương pháp Newton thường hay ñược sử dụng [1]. 1.2. Mạng lan truyền ngược (Back Propagation - BP) Mạng lan truyền ngược tiêu biểu thường sử dụng thuật toán gradient hướng xuống (gradient descent) giống như phép học Widrow-Hoff. Trong mạng này, các trọng số ñược thay ñổi hay di chuyển dọc theo giá trị âm của gradient của hàm thực hiện. Thuật ngữ lan truyền ngược ñược sử dụng vì nó liên quan ñến phương cách tính toán gradient của các 20 mạng neuron nhiều lớp phi tuyến. Hiện nay có khá nhiều biến thể của thuật toán cơ bản lan truyền ngược ñược xây dựng, chúng hầu hết dựa trên các kỹ thuật cơ bản của tối ưu hóa như phương pháp gradient liên hợp hoặc phương pháp Newton. Trong thực tế ñể tiến hành thiết kế hoặc sử dụng các mạng neuron lan truyền ngược ñể học hay huấn luyện các mạng truyền thẳng nhằm giải một bài toán cụ thể nào ñó, các bước cơ bản sau ñây thường ñược tiến hành: a) Tập hợp các dữ liệu ñược học hoặc huấn luyện; b) Xây dựng mạng neuron; c) Huấn luyện mạng; d) Ứng dụng mạng neuron ñể mô phỏng các dữ liệu mới. Sơ ñồ khối của mạng lan truyển ngược ñược biết như sau (hình 3). Hình 3: Sơ ñồ khối mạng lan truyền ngược 1.3. Thuật toán lan truyền ngược Levenberg-Marquardt Một số thuật toán huấn luyện lan truyền ngược như gradient huớng dốc xuống có tốc ñộ hội tụ chậm. Vì vậy, một trong những thuật toán cải thiện tốc ñộ hội tụ hay tốc ñộ học của mạng neuron từ 10 cho ñến 100 lần là mạng huấn luyện lan truyền ngược theo thuật toán Levenberg-Marquardt [2, 3]. Thuật toán Levenberg-Marquardt ñược xây dựng có tốc ñộ huấn luyện nhanh cấp 2 mà không cần tính ñến ma trận Hessian giống như phương pháp Newton. Nếu hàm thực thi có dạng tổng các bình phương, lúc ñó ma trận Hessian có thể ñược xấp xỉ như sau: T= ⋅H J J và T= ⋅G J e , trong ñó J là ma trận Jacobian chứa các ñạo hàm bậc nhất của các sai số mạng ñối với trọng số W và ñộ lệch b và e vector sai số của mạng. Ma trận Jacobian có thể ñược tính thông qua kỹ thuật lan truyền ngược chuẩn khi ấy việc tính toán ñơn giản hơn việc tính toán ma trận Hessian [2]. 2. Nguồn số liệu 2.1. Khu vực nghiên cứu Australia có một mạng lưới phao ño sóng hiện ñại ñược thiết lập dọc theo bờ biển Queensland. Trong ñó, phao ño sóng ở Tweed Heads thuộc dự án TRESBP do hai bang New South Wales (NSW) và Queensland (QLD) cùng lắp ñặt ñể sử dụng. Ở Tweed Heads 21 phao ño sóng có tên Waverider ñược ñặt ở ñộ sâu 25 m, có kinh ñộ 28o10.745’ và vĩ ñộ 153o34.597’, cách bờ khoảng 2100 m (hình 4). Số liệu sóng tại Tweed Heads ñược lấy mẫu với thời khoảng 0.78 sec (tần số 1.28 Hz) và ñược ghi thành từng nhóm (burst) 2048 ñiểm (hay khoảng 26 phút) một lần ghi liên tục. Khoảng thời gian ño giữa hai lần ño là 1 giờ (hay obs quan trắc = 1 giờ). Vì thế số liệu sóng thu thập từ phao ño sóng Waverider khá tốt. Khi có bão, số liệu sóng ño ñạc sẽ dầy ñặt hơn. Mặc dù vậy, sự liên tục về số liệu theo yều cầu ñầu vào của mô hình toán, ví dụ 10 phút có một số liệu sóng chẳng hạn, là không thể có. Weipa Townsville Cairns Mackay Hay Point Emu Park Mooloolaba Moreton Bay Gold Coast Tweed Heads Brisbane QUEENSLAND Hình 4: Mạng ño ñạc và phao ño sóng tại Tweed Heads (NSW), Australia 2.2. Chuẩn bị số liệu Trong bài báo này, số liệu sóng thực ño từng giờ tại Tweed Heads vào tháng 02 năm 1996 (hình 5) sẽ ñược sử dụng cho mô hình OceanANN. ðể có thể áp dụng OceanANN phục hồi dữ liệu thất thoát và kiểm tra tính khả thi của mô hình, tổng số 670 số liệu của tháng 2 năm 1996 sẽ ñược chia ra thành 470 số liệu (≈ 70% tổng số số liệu) ñược mô hình OceanANN dùng ñể huấn luyện (train) hay học theo thuật toán có giám sát (supervise), 100 số liệu (≈15% tổng số liệu) sẽ ñược dùng ñể kiểm ñịnh mô hình (verification), 100 số liệu (≈15% số liệu) sẽ ñược chọn ngẫu nhiên và cố ý làm thất thoát trong chuỗi số liệu tổng cộng. Sau ñó mô hình OceanANN sẽ ñược sử dụng ñể mô phỏng (test/model) và phục hồi lại số liệu thất thoát vừa giả ñịnh mất ñi. Số liệu thất thoát ñược mô phỏng bằng mô hình OceanANN sẽ ñược so sánh với 15% số liệu thực ño ñể ñánh giá khả năng ứng dụng cũng như ñộ tin cây của mô hình. Tất cả các ñánh giá sẽ dựa trên hệ số tương quan. 22 01/02/96 05/02/96 09/02/96 13/02/96 17/02/96 21/02/96 25/02/96 28/02/96 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5 5.5 Thôøi gian töøng giôø (h) Ñ oä c ao s où n g b ie ån ( m ) Soá lieäu soùng bieån thöïc ño töøng giôø taïi Tweed Heads, thaùng 2 naêm 1996 Hình 5: Số liệu sóng thực ño vào tháng 2 năm 1996 tại Tweed Heads (NSW) III. KẾT QUẢ TÍNH TOÁN Với các số liệu ñã chuẩn bị, OceanANN sẵn sàng ñược sử dụng và kết quả tính toán ñược trình bày trong hình 6, hình 7. Hình 6 trình bày kết quả tính toán tổng hợp của mô hình OceanANN, trong ñó các ký hiệu hình tam giác có ñỉnh hướng lên trên và hình tam giác có ñỉnh hướng xuống dưới chỉ số liệu nhập và xuất trong lúc học có giám sát khi mô hình ñang ñược xây dựng. Ký hiệu hình tam giác có ñỉnh hướng về phía trái và hình tam giác có ñỉnh hướng về phía phải chỉ số liệu nhập và xuất trong quá trình kiểm ñịnh mô hình. Ký hiệu hình tròn và chữ thập chỉ số liệu ñược mô phỏng hay số liệu thất thoát ñược phục hồi. Chữ thập ký hiệu số liệu thất thoát ñược phục hồi và vòng tròn là số liệu ño ñạc tương ứng với số liệu giả thuyết bị thất thoát ñể so sánh. ðường nét ñứt gãy chỉ khoảng sai số trong các quá trình tính toán. ðường chấm chấm chỉ ñường cong khớp các số liệu thực ño bằng ña thức bậc 10. ðường cong liền nét là ñường cong mô phỏng từ OceanANN với 30 nút ẩn nhằm phục hồi các số liệu thất thoát. Kết quả tính toán cho thấy có sự phù hợp rất tốt của số liệu ñược phục hồi và số liệu thực ño. Chi tiết mô tả về trạng thái học có giám sát của mô hình OceanANN và các ñánh giá sai số MSE ñược trình bày trong tài liệu tham khảo [4]. 23 100 200 300 400 500 600 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5 5.5 Phuïc hoài döõ lieäu thaát thoaùt baèng ANN Ñ oä c ao s où ng m oâ p ho ûn g va ø t hö ïc ñ o (m ) Truïc thôøi gian thaùng 2 naêm 1996 (giôø) Training Targets Training Outputs Validation Targets Validation Outputs Test Targets (Observation) Test Outputs (Missing) Errors 10th degree polynomial Fit Hình 6: Kết quả tính tổng hợp trong việc phục hồi dữ liệu sóng biển Hình 7 mô tả hệ số tương quan của các phép tính trong mô hình. Hình nhỏ góc trái trên cùng mô tả giá trị thực ño và giá trị tính toán của mạng OceanANN. Hình vẽ này cho thấy giá trị thực ño và tính toán từ phép học có sự phù hợp khá cao với hệ số tương quan R = 0.999. ðối với hình nhỏ bên trên góc phải, mạng oceanANN cũng cho kết quả khá tốt. Ở ñây số liệu thực ño và số liệu tính toán từ mô hình ñể kiểm ñịnh có hệ số tương quan R = 0.985. Hình nhỏ bên dưới góc phải mô tả số liệu ñược mô phỏng và số liệu thực ño. Ở ñây số liệu mô phỏng ñược giả sử như là số liệu thất thoát trong chuỗi số liệu cần ñược phục hồi. Kết quả cho thấy số liệu cần ñược phục hồi gần giống với số liệu thực ño với hệ số tương quan R = 0.998. Như vậy, mạng OceanANN có thể ñược sử dụng ñể phục hồi số liệu bị thất thoát với ñộ tin cậy cao. Sau cùng là hình nhỏ ở dưới góc phải chỉ số liệu tính toán và số liệu thực ño bằng mô hình OceanANN cho tất cả ba trường hợp riêng lẻ vừa diễn giải trên. Tóm lại, mô hình vừa ñược xây dựng hoàn toàn học ñược bản chất của số liệu với các hệ số tương quan rất cao (R ~ 0.99). Vì thế nó có thể ñược dùng ñể phục hồi số liệu thất thoát hoặc có thể dùng ñể dự báo số liệu tương lai khi chưa có số liệu ño ñạc dùng cho mô hình số. 24 1 2 3 4 1 1.5 2 2.5 3 3.5 4 4.5 Observation M od el O u tp u t Validation: R=0.98465 Data Fit Y = T 1 2 3 4 1 1.5 2 2.5 3 3.5 4 Observation M od el Ou tp u t (M is si n g) Missng Data / Test: R=0.98794 Data Fit Y = T 1 2 3 4 5 1 1.5 2 2.5 3 3.5 4 4.5 5 Onservation M od el O u tp u t All: R=0.98796 Data Fit Y = T 1 2 3 4 5 1 1.5 2 2.5 3 3.5 4 4.5 5 Observation M od el O u tp u t Training: R=0.98876 Y = T Fit Data Hình 7: Kết quả hệ số tương quan của huấn luyện, kiểm ñịnh, mô phỏng và tổng hợp của mô hình OceanANN IV. KẾT LUẬN Nghiên cứu này ñã xây dựng ñược một mạng trí tuệ nhân tạo có tên OceanANN trên nền MATLAB dùng cho việc xử lý số liệu sóng biển ngoài khơi. Dựa trên mạng lan truyền ngược với thuật toán Levenberg-Marquardt, OceanANN ñược thiết kế với 1 lớp nhập, 2 lớp ẩn và 1 lớp xuất. Tổng cộng 30 neuron cho từng lớp ẩn ñược sử dụng ñể học bản chất của chuỗi dữ liệu. ðể ứng dụng OceanANN, tập số liệu sóng biển ngoài khơi ở Tweed Heads, Australia vào tháng 2 năm 1996 ñã ñược thu thập. Tập số liệu này ñược chia thành 3 phần: 70% số liệu dùng ñể học, 15% số liệu dùng ñể kiểm ñịnh và 15% số liệu còn lại ñược cố ý làm thất thoát ñể phục hồi từ OceanANN. OceanANN khớp dữ liệu sóng tốt hơn nhiều so với việc khớp dữ liệu bằng ña thức bậc 10. Các số liệu sóng có ñộ phi tuyến cao và nhiễu ñộng lớn chỉ thích hợp với việc sử 25 dụng các mạng neuron ñể tính toán. OceanANN ñã ñược sử dụng ñể phục hồi dữ liệu sóng thất thoát tại Australia với kết quả rất tốt. Với thời khoảng ghi số liệu sóng liên tiếp cách nhau 1 giờ, các hệ số tương quan giữa số liệu tính toán và số liệu thực ño cho các trường hợp huấn luyện mạng, kiểm ñịnh mạng và mô phỏng mạng ñều có kết quả trên 98%. Vì thế, OceanANN có thể dùng ñể phục hồi dữ liệu thất thoát hoặc mô phỏng số liệu trong tương lai với ñộ tin cậy cao. TÀI LIỆU THAM KHẢO 1. Hu, Y. H. and Hwang, J. N., 2002. Handbook of neural network signal processing: CRC Press. 2. Hagan, M. T. and Menhaj, M., 1999. Training feed-forward networks with the Marquardt algorithm, IEEE Transactions on Neural Networks, Vol. 5, pp. 989-993. 3. MathWorks, 2008. Neural Network Toolbox for Matlab, www.mathworks.com. 4. ðặng Văn Tỏ, 2009. Phục hồi dữ liệu thất thoát bằng phương pháp mạng neuron, ðề tài nghiên cứu cấp trường, ðại học Khoa học Tự nhiên Tp. HCM. RECOVERY OF WAVE DATA USING AN ARTIFICIAL NEURAL NETWORK DANG VAN TO Summary: This study aims at developing an artificial neural network OceanANN in MATLAB to recover missing wave data. The program OceanANN was designed friendly to the user for their convenient and useful interfaces. Based on the Levenberg-Marquardt algorithm, OceanANN was established with 1 input - layer, 2 hidden - layers and 1 output - layer. Each hidden layer consisting of 30 neurons was used to learn the nature of data series. For the application of OceanANN, the wave data recorded offshore of the Tweed Heads (Australia) in February 1996 was employed. The data set was divided into 3 segments: 70% of the data for learning, 15% for verification and the rest 15% of the data deliberately removed for OceanANN to recover. Artificial neural networks are suitable tools for the application on wave data of high non-linearity and fluctuations. The regression coefficients showing the relationship between the computed data and recorded data with hourly observations for the learning process, verification and testing process are always higher than 98%. Ngày nhận bài: 21 - 10 - 2009 Người nhận xét: TS. Lê ðình Mầu

Các file đính kèm theo tài liệu này:

  • pdf903_6129_1_pb_1187_2079519.pdf