Các bước cài đặt bài toán bằng lệnh trong Matlab:

Một phần của tài liệu Tìm hiểu kỹ thuật mạng nơ ron nhân tạo. đi sâu mạng back propagation of error. cài đặt minh họa (Trang 35)

IV. ỨNG DỤNG CỦA MẠNG NORON

2.Các bước cài đặt bài toán bằng lệnh trong Matlab:

Bước 1: Xây dựng mô hình mạng nơron cho bài toán:

Mô hình mạng được sử dụng là mô hình mạng truyền thẳng MLP gồm các tầng: một tầng vào, một tầng ẩn, và một tầng ra. Số nơron đầu vào bằng số chiều của vector đặc trưng cho mẫu, ở đây là 4 (Độ dài đài hoa, độ rộng đài hoa, độ dài cánh hoa, độ rộng cánh hoa), giả sử có2 nơron tầng ẩn, số nơron đẩu ra là 1.

Sau đây là kiến trúc mạng cho bài toán này:

Các tham số của mạng được lựa chọn như sau: 4.7

3.2

1.3

0.2

- Sử dụng hàm truyền Sigmod: f(x) = 1 / (1 + e-x)

- Các trọng số liên kết và ngưỡng được khởi tạo ngẫu nhiên khi tạo mạng. - Để tạo mạng và huấn luyện mạng, chúng ta cần tạo ra vecto đầu vào và vecto mục tiêu của các mẫu:

>> p=[4.7 6.1 5.6 5.8 6.5; 3.2 2.8 3.0 2.7 3.2; 1.3 4.7 4.1 5.1 5.1; 0.2 1.2 1.3 1.9 2.0]; >> t=[0 1 1 0 0];

- Tạo mạng nơ-ron là net với đầu vào là p và hàm mục tiêu t.

- Tạo mạng với 2 nơ ron lớp ẩn và sử dụng hàm truyền logsig cho cả 2 lớp: >> net=newff(p,t,2,{'logsig' 'logsig'});

Bước 2: Huấn luyện mạng:

- Truyền mẫu A vào mạng: >> p1=[4.7;3.2;1.3;0.2]; >> t1=[0];

Đưa tập huấn luyện vào mạng bằng lệnh train(): >> net=train(net,p1,t1);

Bước 3: Tính vecto đầu ra y của mạng:

Sau khi huấn luyện mạng ta có thể sử dụng chúng bằng cách gọi hàm sim().Ví dụ sử dụng hàm sim() với vectơ đầu vào p ta sẽ thu được kết quả y là mô phỏng của t.

>> y=sim(net,p1) y =

0.5000

Bước 4: Đánh giá lỗi:

Hàm đánh giá lỗi mặc định ở đây là MSE (mean-square error).

>> mse(t1-y) ans =

0.2500

Bước 5: Hiệu chỉnh trọng số:

Sau khi huấn luyện, mạng nơron cho đầu ra y chưa giống với vecto mục tiêu t, mạng tiến hành cập nhật lại trọng số liên kết và ngưỡng theo công thức:

wk+1 = wk – αkgk

αk là hệ số học hiện thời

gk là giá trị gradient hiện thời.

Bước 6: Lặp đi lặp lại các bước từ bước 2 đến bước 5 cho đến khi mạng đạt trạng thái hội tụ.

- Tiếp tục truyền mẫu B vào mạng: >> p2=[6.1;2.8;4.7;1.2]; >> t2=[1]; >> net=train(net,p2,t2); >> y=sim(net,p2) y = 1.0000 >> mse(t2-y) ans = 1.7515e-011

- Truyền mẫu C vào mạng: >> p3=[5.6;3.0;4.1;1.3]; >> t3=[1]; >> net=train(net,p3,t3); >> y=sim(net,p3) y = 1.0000 >> mse(t3-y) ans = 2.1198e-011 … (adsbygoogle = window.adsbygoogle || []).push({});

Chúng ta có thể thay đổi các giá trị khởi tạo của mạng và huấn luyện lại mạng để được kết quả chính xác như mong đợi hơn.

Có thể thực hiện đào tạo mạng hàng loạt với tập mẫu p, t đưa vào: >> net=train(net,p,t); >> y=sim(net,p) y = 0.9954 0.6744 0.9414 0.5000 0.5001 >> mse(t-y) ans = 0.3201 >> net=init(net);

>> net=train(net,p,t); >> y=sim(net,p) y = 0.5000 0.5000 0.5000 0.5000 0.5000 >> mse(t-y) ans = 0.2500 …………..

Một phần của tài liệu Tìm hiểu kỹ thuật mạng nơ ron nhân tạo. đi sâu mạng back propagation of error. cài đặt minh họa (Trang 35)