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%.
9 trang |
Chia sẻ: honghp95 | Lượt xem: 572 | Lượt tải: 0
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:
- 903_6129_1_pb_1187_2079519.pdf