CHƢƠNG 2 : KỸ THUẬT NHẬN DẠNG SỬ DỤNG MẠNG NƠRON
2.2. Mạng nơ-ron lan truyền thẳng nhiều lớp
2.2.2. Mạng perceptron nhiều lớp
Mạng perceptron nhiều lớp (Multilayer Perceptron –MLP) còn đƣợc gọi là mạng truyền thẳng nhiều lớp là sự mở rộng của mô hình mạng perceptron với sự bổ sung thêm những lớp ẩn và các nơ-ron trong các lớp ẩn này có hàm chuyển (hàm kích hoạt) dạng phi tuyến. Mạng MLP có một lớp ẩn là mạng nơ-ron nhân tạo đƣợc sử dụng phổ biến nhất, nó có thể xấp xỉ các hàm liên tục đƣợc định nghĩa trên một miền có giới hạn cũng nhƣ những hàm là tập hợp hữu hạn của các điểm rời rạc.
a. Giải quyết bài toán XOR với mạng MLP
Ta thấy có thể dùng hai đƣờng thẳng để phân tách với trƣờng hợp hàm XOR.
-0,5+x1+x2=0 và -1,5+x1+x2=0 Hay ta giải hệ bất phƣơng trình
Dễ thấy mỗi bất phƣơng trình ở trên có thể đƣợc thực hiện bằng một nơ- ron và đầu ra của hai nơ-ron này (2 bất phƣơng trình) là đầu vào của một hàm AND. Do vậy có thể sử dụng mạng MLP sau để thực hiện chức năng của hàm XOR nhƣ sau:
Hình 2.8 Thực hiện hàm XOR bằng mạng MLP
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.