b. Thuật toán học theo phƣơng pháp lan truyền ngƣợc sai số
Thuật toán học theo phƣơng pháp lan truyền ngƣợc sai số do Rumelhart và cáccộng sự đề xuất [10] là một trong số những kết quả nghiên cứu quan
trọng nhất đối với sự phát triển của mạng nơ-ron nhân tạo. Thuật toán này đƣợc áp dụng cho mạng truyền thẳng nhiều lớp trong đó các nơ-ron có thể sử dụng các hàm chuyển là các hàm liên tục có các dạng khác nhau.
Thuật toán sử dụng một tập các mẫu gồm các cặp đầu vào - đầu ra để luyện mạng. Với mỗi cặp đầu vào - đầu ra (x(k)
,d(k)) thuật toán lan truyền ngƣợc sai số thực hiện hai giai đoạn sau:
• Giai đoạn thứ nhất, mẫu đầu vào x(k)
đƣợc truyền từ lớp vào tới lớp ra, và ta có kết quả đầu ra tính toán đƣợc là y(k)
.
• Giai đoạn tiếp theo, tín hiệu lỗi đƣợc tính toán từ sự khác nhau giữa đầu ra quan sát đƣợc d(k)
với đầu ra tính toán y(k) sẽ đƣợc lan truyền ngƣợc lại từ lớp ra đến các lớp trƣớc để điều chỉnh các trọng số của mạng. Để làm ví dụ ta xét mạng truyền thẳng có một lớp ẩn dƣới đây, đối với các mạng có kích thƣớc lớn hơn thì thao tác cũng tƣơng tự.
Mạng nơ-ron đƣợc xét có m nơ-ron ở lớp vào, l nơ-ron trong lớp ẩn và n nơ-ron ở lớp ra. Đƣờng kẻ liền thể hiện luồng tín hiệu đƣợc truyền từ đầu vào tới đầu ra còn các đƣờng kẻ nét đứt thể hiện luồng tín hiệu lỗi đƣợc truyền ngƣợc trở lại từ đầu ra.
Hình 2.9: Lan truyền tín hiệu trong quá trình học theo phương pháp lan truyền ngược sai số
Chúng ta xét một cặp đầu vào - đầu ra để luyện mạng (x,d), để đơn giản chúng ta bỏ ký hiệu mũ k thể hiện số thứ tự của cặp mẫu này trong bộ mẫu dùng để luyện mạng. Khi đƣa vào đầu vào x, nơ-ron thứ q trong lớp ẩn sẽ nhận tín hiệu vào của mạng là:
(2.2)
nơ-ron q ở lớp ẩn sẽ tính toán và tạo kết quả ở đầu ra của nó là:
(2.3)
Do đó tín hiệu vào của nơ-ron thứ i trên lớp ra sẽ là:
(2.4) Và cuối cùng, đầu ra của nơ-ron i trên lớp ra sẽ là:
(2.5) Công thức trên cho biết quá trình lan truyền tín hiệu từ đầu vào qua lớp ẩn tới đầu ra. Tiếp theo chúng ta xét tín hiệu lỗi đƣợc lan truyền ngƣợc lại từ lớp ra. Trƣớc hết, đối với mỗi cặp giá trị vào – ra chúng ta xây dựng một hàm giá nhƣ sau:
(2.6)
Nhƣ vậy với một tập gồm p mẫu học, chúng ta lần lƣợt xây dựng đƣợc p hàm giá nhƣ vậy. Việc học của mạng hay nhiệm vụ của giải thuật thực chất là tìm kiếm tập trọng số W trong không gian RM (M là số trọng số có trong mạng) để lần lƣợt tối thiểu hoá các hàm giá nhƣ vậy. Điều đáng chú ý là việc tối thiểu hoá đƣợc tiến hành liên tiếp nhau và theo chu kỳ đối với các hàm giá.
Để tối thiểu hoá các hàm giá nhƣ vậy, giải thuật lan truyền ngƣợc sai số sử dụng phƣơng pháp giảm gradient để điều chỉnh các trọng số liên kết giữa các nơ-ron. Bản chất của phƣơng pháp này là khi sai số E đƣợc vẽ nhƣ hàm của tham số gây ra sai số sẽ phải có một cực tiểu tại bộ giá trị nào đó của tham số. Khi quan sát độ dốc của đƣờng cong, chúng ta quyết định phải thay đổi tham số thế nào để có thể tiến gần đến cực tiểu cần tìm kiếm hơn. Trong hình vẽ dƣới đây, giá trị của trọng số phải giảm nếu đạo hàm dE/dW là dƣơng
Hình 2.10. Sai số E được xét là hàm của trọng số W
Bằng biểu thức, chúng ta có thể biểu diễn phƣơng pháp giảm gradient nhƣ sau: ∆w= w(new)
– w(old) = -η.∂E/∂w (2.7)
Ở đây η là hằng số dƣơng xác định tốc độ giảm giá trị của w, còn dấu âm chỉ chiều giảm gradient.
Áp dụng phƣơng pháp giảm gradient đối với các trọng số liên kết giữa các nơ- ron trong lớp ẩn tới các nơ-ron của lớp ra ta có:
(2.8)
Do hàm sai số E là một hàm phức tạp và là hàm gián tiếp của trọng số wiq (công thức 2.6). Sử dụng nguyên tắc tính đạo hàm của hàm gián tiếp cho
ta có:
(2.9)
Trong đó δoi là tín hiệu sai số và chỉ số oi có nghĩa là nút thứ i trong trên lớp ra. Tín hiệu sai số đƣợc tính nhƣ sau:
(2.10)
Trong đó neti là tín hiệu vào của nơ-ron thứ i trên lớp ra và g’(neti) = ∂g(neti)/∂net. Kết quả này tƣơng tự luật học delta áp dụng cho mạng perceptron một lớp với đầu vào bây giờ là đầu ra zq của lớp ẩn.
Để điều chỉnh trọng số của các liên kết giữa lớp vào tới lớp ẩn ta cũng sử dụng phƣơng pháp giảm gradient và lấy đạo hàm theo các biến trung gian nhƣ đã áp ở trên. Xét liên kết giữa nơ-ron thứ j ở lớp vào và nơ-ron thứ q trên lớp ra:
(2.11)
Từ công thức (2.6) mỗi thành phần lỗi [di-yi] , i=1, 2,..., n, là hàm của zq
do vậy công thức trên có thể tiếp tục biến đổi:
(2.12)
Sử dụng công thức (2.6) chúng ta viết lại biểu thức (2.8) nhƣ sau:
(2.13)
Trong đó δhq là tín hiệu lỗi của nơ-ron thứ q trong lớp ẩn và đƣợc định nghĩa nhƣ sau:
(2.14)
Với netq là tín hiệu vào của nơ-ron thứ q, nhƣ vậy tín hiệu lỗi của nơ-ron trên lớp ẩn khác với tín hiệu lỗi của nơ-ron trên lớp ra (xem công thức 2.10 và 2.14.). Vì sự khác nhau này, thủ tục điều chỉnh trọng số đƣợc gọi là luật học delta mở rộng. Nhìn lại công thức (2.14) tín hiệu lỗi δhq của nơ-ron thứ q
trong lớp ẩn đƣợc xác định từ các tín hiệu lỗi δoi, của các nơ-ron trên lớp ra. Tổng quát đối với lớp bất kỳ, luật lan truyền ngƣợc có dạng:
(2.15)
Trong đó “output_i ” là đầu ra của nơ-ron i và “ input_j ” là đầu vào của nơ-ron j, δi là tín hiệu học.
Từ các phân tích trên, thuật toán lan truyền ngƣợc sai số đƣợc xây dựng nhƣ sau:
Xét một mạng nơ-ron truyền thẳng có Q lớp, q = 1, 2, ..., Q, và gọi neti và yi là tín hiệu vào và ra của nơ-ron thứ i trong lớp q. Mạng này có m đầu vào và n đầu ra.Đặt qwij là trọng số của liên kết từ nơ-ron thứ j trong lớp q-1
tới nơ-ron thứ i tronglớp q.
Đầu vào : Một tập các cặp mẫu học {(x(k)
,d(k)) | k= 1, 2, ..., p } và véc tơ đầu vào đƣợc bổ sung thêm x(k)
m+1 = - 1 .
Bƣớc 0 (khởi tạo) Chọn một hằng số η > 0 và Emax (dung sai cho phép). Khởi tạo ngẫu nhiên các trọng số trong khoảng giá trị nhỏ. Đặt E =0 và k = 1.
Bƣớc 1 (thực hiện một quá trình lặp cho việc huấn luyện mạng) Sử dụng mẫu học thứ k :
Tại lớp vào (q =1), với mọi i ta có : q
yi =1yi = x(k)i
Bƣớc 3 (Xác định tín hiệu lỗi Qδi tại lớp ra)
Bƣớc 4 (Lan truyền ngƣợc sai số) Lan truyền ngƣợc sai số để điều chỉnh các trọng số và tính toán tín hiệu lỗi q-1δi cho các lớp trƣớc:
Bƣớc 5 (Kiểm tra điều kiện lặp) Kiểm tra: if ( k < p ) then Begin k=k+1; Goto bƣớc1; End Else Goto bƣớc6;
Bƣớc 6 (Kiểm tra lỗi tổng cộng hiện thời đã chấp nhận đƣợc chƣa) If (E < Emax) then {kết thúc quá trình học và đƣa ra bộ trọng số cuối cùng}
Begin E=0; K=1;
Goto bƣớc1 {để bắt đầu một lần học tiếp theo }; End;
Mỗi lần toàn bộ tập mẫu học đƣợc lan truyền qua mạng đƣợc gọi là một epoch. Số epoch phụ thuộc vào từng trƣờng hợp cụ thể và sự khởi tạo ban đầu. Có trƣờng hợp thuật toán phải sau hàng chục nghìn epoch mới hội tụ tới lời giải. Nếu tham số khởi tạo không phù hợp có thể làm cho quá trình học không đạt kết quả mong muốn. Đối với mỗi epoch ta tính sai số trung bình của mạng theo công thức sau:
(2.16)
Trong đó p là số mẫu đƣợc dùng để luyện mạng, n là số biến của véc-tơ đầu ra. Sai số RMS thƣờng đƣợc dùng để đánh giá kết quả học của mạng nơ-ron.
c. Một số yếu tố ảnh hƣởng đến quá trình học theo phƣơng pháp lan truyền ngƣợc sai số
Khởi tạo các trọng số
Các giá trị đƣợc khởi tạo ban đầu cho các trọng số trong mạng lan truyền ngƣợc sai số ảnh hƣởng rất lớn đến kết quả học cuối cùng của mạng. Các giá trị này thƣờng đƣợc khởi tạo ngẫu nhiên trong phạm vi giá trị tƣơng đối nhỏ.
Thông thƣờng hàm chuyển sử dụng cho mạng MLP là hàm sigmoid, do vậy nếu ta chọn các giá trị trọng số khởi tạo lớn thì các hàm này có thể bão hoà ngay từ đầu và dẫn tới hệ thống có thể bị tắc ngay tại một cực tiểu địa phƣơng hoặc tại một vùng bằng phẳng nào đó gần điểm xuất phát.
Theo nghiên cứu của Wessels và Barnard, năm 1992 [9], thì việc khởi tạo các trọng số liên kết wij nên trong phạm vi
với ki là số liên kết của các nơ-ron j tới nơ-ron i .
Hằng số học η
Hằng số học η cũng là một yếu tố quan trọng ảnh hƣởng đến hiệu quả và độ hội tụ của giải thuật lan truyền ngƣợc sai số. Không có hằng số η phù hợp cho tất cả các bài toán khác nhau. Hằng số học này thƣờng đƣợc chọn bằng thực nghiệm cho mỗi bài toán ứng dụng cụ thể bằng phƣơng pháp thử sai.
Trong nhiều ứng dụng thực tế cho thấy một hằng số học có thể phù hợp ở thời điểm bắt đầu của quá trình học nhƣng lại không phù hợp với giai đoạn sau của quá trình học. Do đó, có một phƣơng pháp hiệu quả hơn đó là sử dụng hằng số học thích nghi. Một cách xử lý đơn giản cho vấn đề này đó là kiểm tra xem các trọng số mới có làm giảm hàm giá hay không, nếu không thì có thể các trọng số đã vƣợt quá xa vùng cực tiểu và nhƣ vậy hằng số η cần phải giảm. Trái lại, nếu sau vài vòng lặp hàm giá liên tục giảm thì ta có thể thử tăng hằng số η để đẩy nhanh hơn tốc độ hội tụ đến giá trị cực tiểu. Năm 1991, trong nghiên cứu của mình Hertz và các cộng sự [5] đã đề xuất luật điều chỉnh hằng số học nhƣ sau:
trong đó ∆E là thay đổi của hàm giá, a và b là các hằng số dƣơng, việc ∆E luôn nhỏ hơn 0 đƣợc đánh giá dựa trên k bƣớc lặp liên tiếp.
Hằng số quán tính
Tốc độ học của giải thuật lan truyền ngƣợc sai số có thể rất chậm nếu hằng số học nhỏ, nhƣng nếu hằng số học lớn thì nó lại có thể gây ra sự dao động lớn trong quá trình tìm giá trị cực tiểu theo phƣơng pháp giảm gradient. Để giải quyết vấn đề này ngƣời ta thƣờng thêm thành phần quán tính vào các phƣơng trình hiệu chỉnh trọng số nhƣ sau:
∆w(t) = -η∇E(t) + α ∆w( t-1) (α là hằng số quán tính, α∈[ 0, 1] )
Nhờ thành phần này, quá trình học có thể vƣợt qua điểm cực tiểu địa phƣơng để tìm đến điểm cực tiểu toàn cục, đồng thời thành phần quán tính cũng ngăn cản sự thay đổi đột ngột của các trọng số theo hƣớng khác với hƣớng mà lời giải đang di chuyển đến.
Hình 2.11. Minh họa về ý nghĩa của quán tính trong thực tế
Hàm giá:
Trong phần nghiên cứu trên hàm giá đƣợc chọn là hàm bình phƣơng sai số .Tuy nhiên, nó có thể đƣợc thay thế bằng một hàm F(yi, di)bất kỳ có đạo hàm và đạt cực tiểu khi hai đối số di và yi bằng nhau. Thông thƣờnghàm giá đƣợc chọn có dạng :
Nhƣ vậy khi chọn p = 2 ta có hàm giá là hàm bình phƣơng sai số nhƣ đã xét ở trên.
2.2.3 Một số vấn đề cần chú ý khi sử dụng mạng MLP
Mạng nơ-ron perceptron nhiều lớp là loại mạng nơ-ron đƣợc sử dụng trong nhiều ứng dụng thực tế. Tuy nhiên, để mạng có thể đƣa ra kết quả tốt, chúng ta cần quan tâm đến một số vấn đề có ảnh hƣởng khá quan trọng đến hiệu quả làm việc của nó bao gồm: vấn đề chuẩn hoá số liệu đầu vào, vấn đề học chƣa đủ và học quá của mạng, vấn đề lựa chọn một cấu trúc mạng phù hợp với bài toán.
a. Vấn đề chuẩn hoá số liệu đầu vào
Mạng MLP thƣờng sử dụng hàm chuyển là hàm sigmoid có dạng nhƣ sau:
Hình 2.12. Hàm sigmoid g(x) = 1/(1+e-x)
Với dạng hàm này, giá trị ở đầu ra của mỗi nơ-ron nằm trong phạm vi khoảng (0,1) và nó đạt các giá trị bão hoà ( xấp xỉ 0 hay 1 ) khi ⎢x ⎢ lớn. Do đó, khi đầu vào của mạng có giá trị tuyệt đối lớn thì ta cần chuẩn hoá nó về khoảng có giá trị nhỏ, nếu không thì các nơ-ron tại các lớp ẩn ngay ban đầu đã có thể đạt giá trị bão hoà và quá trình học của mạng không đạt kết quả mong muốn. Với dạng hàm nhƣ trên thì giá trị đầu vào của mạng thƣờng đƣợc chuẩn hoá về khoảng thuộc đoạn [-3, 3] . Mặtkhác, do tín hiệu đầu ra của nơ- ron nằm trong khoảng giá trị (0,1) nên các giá trị đầu ra thực tế trong các mẫu học cũng cần chuẩn hoá về khoảng giá trị này để có thể dùng cho quá trình
luyện mạng. Do vậy trong quá trình tính toán, để có các giá trị thực tế ở đầu ra của mạng chúng ta cần phải chuyển các giá trị trong khoảng (0,1) về miền các giá trị thực tế.
b. Vấn đề học chưa đủ và học quá thuộc của mạng
Vấn đề mấu chốt khi xây dựng một mạng nơ-ron nhân tạo là làm thế nào mạng có khả năng tổng quát hoá cao để đƣa ra kết quả tốt cả với những trƣờng hợp đầu vào của mạng không nằm trong tập mẫu đã dùng để luyện mạng. Giống nhƣ các mô hình hồi quy phi tuyến khác, đối với mạng nơ-ron nhân tạo ta cũng phải giải quyết hai vấn đề là ANN học chƣa đủ (underfitting) và học quá (overfitting). Khi mạng có cấu trúc (số nút ẩn và liên kết) cũng nhƣ số lần học chƣa đủ so với nhu cầu của bài toán thì sẽ dẫn tới tình trạng mạng không đủ khả năng mô tả gần đúng mối quan hệ tƣơng quan giữa đầu vào và đầu ra của quá trình cần dự báo và dẫn tới học chƣa đủ.
Trái lại, nếu mạng quá phức tạp (quá nhiều nút ẩn và quá nhiều tham số) và đƣợc học “quá khít” đối với các mẫu dùng để luyện mạng thì có thể dẫn tới tình trạng mạng học cả thành phần nhiễu lẫn trong các mẫu đó, đây là tình trạng “học quá thuộc” của mạng. Vấn đề nêu trên có thể làm cho nhiều loại mạng nơ-ron, đặc biệt là mạng MLP có thể có những trƣờng hợp cho kết quả dự đoán rất sai lệch với thực tế.
Một số giải pháp cho vấn đề học quá của mạng:
• Sử dụng tập số liệu có tính đại diện tốt để luyện mạng: Đây đƣợc xem là một cách khá tốt để tránh hiện tƣợng overfitting. Khi tập mẫu dùng để luyện mạng thể hiện đƣợc nhiều trạng thái có thể xẩy ra của quá trình cần nghiên cứu thì sau khi học mạng sẽ có khả năng tổng quát hoá tƣơng đối tốt từ tập dữ liệu đó và sẽ không chịu ảnh hƣởng nhiều của hiện tƣợng overfitting. Ngoài ra một số biện pháp dƣới đây cũng có thể góp phần quan trọng giúp khắc phục hiện tƣợng overfitting của mạng.
• Lựa chọn cấu trúc mô hình phù hợp: Việc lựa chọn mô hình của mạng (số lớp ẩn, số nơ-ron trên mỗi lớp ẩn) có ảnh hƣởng quan trọng đến hiện tƣợng học chƣa đủ (underfitting) và học quá (overfitting) của mạng. Nghiên cứu của Steve Lawrence và C.Lee Giles [6] về bài toán nội suy hàm y = sin(x/3) + v, 0≤ x ≤20. với v là biến ngẫu nhiên nằm trong khoảng (- 0.25 , 0.25) cho thấy nếu mạng chỉ gồm một nút ẩn thì mạng không thể học đƣợc hàm này. Mạng có hai nút ẩn có khả năng tổng quát hoá tốt nhất (tuy không chính xác hoàn toàn với các mẫu nhƣng nó tạo nên giáng điệu gần với hàm cần xấp xỉ nhất và nó đã không quá khít với nhiễu của mẫu học). Các mạng có độ phức tạp hơn (10 nút ẩn, 50 nút ẩn) tuy nó có thể học khá chính xác các mẫu đƣợc sử dụng nhƣng chính điều này lại làm cho nó học quá nhiều cả thành phần nhiễu nên khả năng tổng quát hoá giảm và dẫn tới hiện tƣợng học quá (overfitting).
Hình 2.13. Nội suy hàm y = sin(x/3) + v, 0≤ x ≤ 20 sử dụng MLP
Dừng học đúng lúc: Năm 1991, trong một nghiên cứu về vấn đề học quá của mạng, hai tác giả Nelson và Illingworth [8] đã đƣa ra giải pháp dừng học