Phần trên ta đã trình bày giải thuật lan truyền ngược áp dụng cho mạng hai lớp. Trong mục này sẽ trình bày giải thuật lan truyền ngược cho mạng neuron với số lớp bất kỳ:
Đầu vào: Tập mẫu học X=(x1,x2,x3,..xm) và Y=(y1,y2,y3,..yn) với m là số đầu vào n là số đầu ra M là số lượng mẫu T là số tầng mạng.
Đầu ra: Các ma trận trọng số w1
,w2,...,wT .
- Bước 1: khởi tạo chọn giá trị hệ số học 0 <<1 và giá trị cực đại sai số cho phép . Mạng cĩ số lớp T số lần huấn luyện h. Tuỳ thuộc vào số lượng đầu vào và số neuron trên mỗi lớp mà ta sẽ khởi tạo các ma trận trọng số với các thành phần là những số ngẫu nhiên rất nhỏ. Khởi tạo m=1 (mẫu học thứ m), h =1 (lần huấn luyện thứ h), q =1 (lớp thứ q).
- Bước 2: Đưa mẫu huấn luyện thứ m áp lên mạng .
- Bước 3: Lan truyền xuơi tín hiệu đầu vào lần lượt qua các lớp neuron cho đến khi q > T để tính đầu ra tương ứng tại mỗi lớp theo cơng thức:
ojq = f(netqj) = f( 1 1 Sq i wji . oiq-1 ) (2.17) đối với đầu ra thứ j của lớp q lưu ý sq-1 chính là số neuron của lớp q-1.
- Bước 4: Tính sai số ở lớp ra của mạng theo cơng thức:
k =(yk - ok ).ok.(1-ok) đối với neuron thứ k. (2.18)
- Bước 5: Lan truyền ngược tín hiệu sai số cụ thể là từ đầu ra qua lớp ẩn cuối cùng đến lớp ẩn đầu tiên để cập nhật trọng số cũng như tín hiệu sai số trước đĩ theo các cơng thức: jq-1 = f „ (netjq-1). Sq k 1 wqjk . q k (2.19) wqjk = wqjk + wqjk (2.20) wqjk = . q k.ojq-1 (2.21)
- Bước 6: Nếu m < M (chưa hết số mẫu học) thì m = m+1 quay lại bước 2 ngược lại chuyển sang bước 7.
- Bước 7: Sai số trung bình của mạng được tính theo cơng thức : RMS = n M o y M m n k km km . ) ( 1 1 2 (2.22) Trong đĩ n là số thành phần của vector đầu ra.
Nếu RMS < thì kết thúc ngược lại gán h = h + 1 rồi lặp lại các bước từ bước 2 cho tới bước 7 bắt đầu một chu kỳ học mới.
Nhận xét: ta thấy trong quá trình truyền thẳng mạng là cố định ngược lại trong quá trình lan truyền ngược các tham số này được hiệu chỉnh để mạng cĩ thể nhận dạng các mẫu học với độ chính xác nhất định .
Cĩ nhiều yếu tố ảnh hưởng đến quá trình huấn luyện mạng đĩ là: Hàm truyền hàm giá E, hệ số học và các tham số khởi tạo. Do đĩ ta cần phải chọn các tham số này một cách hợp lý.
Huấn luyện mạng
mạng lan truyền ngược. Khi hồn thành một bước lặp qua tồn bộ tập mẫu thì tất cả các trọng số của mạng sẽ được cập nhật dựa vào các thơng tin đạo hàm riêng theo tổng trọng số tích luỹ được các trọng số sẽ được cập nhật theo hướng mà hàm lỗi tụt dốc nhanh nhất.
- Học từng mẫu một: Cĩ một quy tắc cập nhật trọng số khác là trọng số sẽ được cập nhật ngay sau khi mạng học xong một mẫu dựa trên đạo hàm của hàm lỗi của riêng mẫu đĩ. Với cách này thì lỗi trên tập mẫu thường giảm nhanh hơn ở các bước đầu vì mạng khơng cần phải đợi hết một bước đi qua tồn bộ tập mẫu mới học được điều gì đĩ.
Tuy nhiên với một vài bài tốn ta phải cẩn thẩn khi dùng phương pháp học từng mẫu. Thứ nhất khơng phải lúc nào phương pháp này cũng giảm số bước cần thiết để mạng ổn định với tập trọng số tối ưu. Trong nhiều trường hợp khi học mẫu mới mạng cĩ thể đã quên mẫu cũ. Trường hợp này thường xảy ra khi các mẫu kế tiếp nhau trong tập mẫu cĩ sự khác biệt quá lớn .
Thứ hai ngay cả khi học từng mẫu chỉ cần ít bước luyện hơn nhưng chưa chắc tổng thời gian máy tính thực hiện việc tính tốn ít hơn so với học tồn tập mẫu một lần. Bởi vì việc học từng mẫu lại địi hỏi việc tính tốn của máy tính trên mỗi mẫu nhiều hơn trọng số thay đổi phải được tính cho mỗi mẫu khơng tính một lần cho cả bước.
Thứ ba việc học từng mẫu địi hỏi ta phải sắp xếp thứ tự của các mẫu trong tập mẫu. Thường thì các mẫu xuất hiện cuối đợt huấn luyện thường cĩ nhiều ảnh hưởng hơn so với các mẫu xuất hiện lúc đầu.
Một giải pháp dung hịa là cập nhật tập trọng số dựa trên các nhĩm mẫu thay vì từng mẫu nhưng cũng khơng phải trên tồn tập mẫu.
- Quy tắc moment: Nếu các bước học trước đang giảm mạnh thì theo đà bước tới cũng sẽ giảm mạnh ta sẽ tăng hệ số học để biến thiên trọng số tăng lên ngược lại giảm hệ số học.
2.1.4.1. Khởi tạo giá trị trọng số
đĩ là vấn đề khởi tạo các giá trị trọng số. Huấn luyện mạng là một tiến trình lặp qua lặp lại nhiều bước. Trong mỗi bước mạng thi hành ánh xạ với các mẫu trong tập mẫu tính tốn sai số và cập nhật lại sao cho mạng thi hành ngày một tốt hơn. Vấn đề đặt ra là ban đầu để mạng cĩ thể thi hành ở bước học đầu tiên thì các trọng số lấy từ đâu ? Cĩ một cách khá tốt đĩ là khởi tạo trọng số sao cho kết xuất của các giá trị trung dung là 0.5 (chính là trung điểm của hàm logictic). Cĩ hai lý do giải thích cho việc này:
Thứ nhất nếu ta khơng biết gì về kết xuất giá trị ở giữa là giá trị hợp lý nhất. Trong trường hợp một lớp cứ cho rằng tất cả các kết quả đầu ra phân bố xung quanh trung điểm hàm truyền giá trị ở giữa sẽ cực tiểu hố hàm sai số bất kỳ giá trị nào khác cũng sẽ sinh ra sai số lớn hơn.
Thứ hai ta muốn tránh các giá trị kết xuất thái quá vì chúng chứa các đạo hàm của hàm lỗi nhỏ điều này làm cho biến thiên trọng số nhỏ và như thế tiến trình học sẽ chậm.