Tính bình phương sai số E là 2 k k O ) t ( 2 1 E (4.1) Trong đó:
E là giá trị bình phương sai số. tk là giá trị mong muốn.
Ok là ngõ ra tính được tại lớp ngõ ra của mạng.
So sánh giá trị E, nếu E > 0.05 mạng chưa hội tụ, tính giá trị lỗi δk và δh theo công thức như sau:
k k k k k (t O )(1O )O (4.2) 1 h 1 h k 5 1 h (w . )(1O )O (4.3) 2 h 2 h k 6 2 h (w . )(1O )O (4.4)
Cập nhật trọngsố theo quy luật delta như sau:
Δw = η.δ.in (4.5) w_new = w_old + Δw (4.6) Trong đó:
η là hệ số học (η = 0.1).
δ là giá trị lỗi tại lớp ngõ ra và lớp ẩn.
in là giá trị ngõ vào tương ứng với trọng số cập nhật.
Các thông số thực hiện huấn luyện mạng Neural lan truyền thẳng theo thuật toán Backpropagation phải được tương thích với nhau. Dữ liệu ngõ vào in, trọng số w và ngõ ra O biễu diễn là số nhị phân dấu chấm động, sử dụng phép cộng và phép nhân số nhị phân 32 bit (xem xét tính tràn dữ liệu).
GVHD: TS. HOÀNG TRANG 54 HV: Nguyễn Lâm Thương Hàm kích hoạt f1 và f2 được sử dụng hàm kích hoạt Tansig, hàm f3 là hàm kích
hoạt Sigmoid. Trong thiếtkế hệ thống số, các hàm kích hoạt phải được chuyển dưới dạng hàm kích hoạt tương dương số.
4.2 Huấn luy n m ng Neural.
Mạng Neural huấn luyện theo thuật toán Backpropagation thực hiện theo các bước lặp như sau:
Bước 1: Khởi tạo bộ trọng số cho mạng giá trị nhỏ w [w1 , w2 , w3 , w4 , w5 , w6]. Bước 2: Đọc các mẫu ngõ vào in1, in2 và ngõ ra mong muốn tk.
Bước 3: Tính đáp ứng ngõ ra Ok như sau:
Tại Neural 1 y1 = ∑(in1.w1+in2.w2) (4.7) Oh1= tansig(y1) (4.8) Tại Neural 2 y2 = ∑(in1.w3+in2.w4)
Oh2 = tansig(y2) (4.9) Tại Neural 3 y3 = ∑(Oh1 .w5+Oh2 .w6) (4.10) Ok = sigmode(y3) (4.11) Bước 4: Tính E theo công thức (4.1)
2 k k O ) t ( 2 1 E If E < 0.05 then
mạng hội tụ ( mạng được huấn luyện ) else
mạng không hội tụ ( tiếp tục huấn luyện )
Bước 5: Tính giá trị hàm lỗi δk tại mỗi Neural lớp ngõ ra theo công thức (4.2) δk = Ok(1-Ok)(tk-Ok)
GVHD: TS. HOÀNG TRANG 55 HV: Nguyễn Lâm Thương