3.2. Thuật toán học Widrow-Hoff
3.2.3. Thuật toán LMS
Đầu tiên chúng ta phân tích đặc trưng thực hiện (performance index), sau đó trình bày một thuật toán
để xác định điểm cực tiểu. Nếu chúng ta tính toán các số lượng thống kê h và R thì có thể tìm thấy điểm cực tiểu trực tiếp sử dụng công thức 3.51. Nếu chúng ta không muốn tính nghịch đảo của R thì có thể sử dụng thuật toán xuống dốc từng bước, với gradient được tính bằng công thức 3.49. Tuy nhiên
nói chung không yêu cầu hoặc không thích hợp để tính h và R. Lý do là ta có thể sử dụng thuật toán xấp
xỉ xuống dốc từng bước, trong đó ta phải ước lượng gradient.
Điểm mấu chốt của Widrow và Hoff là họ có thểước lượng sai số bình phương trung bình F(x) bằng công thức sau:
(3.52)
Trong đó kz vọng của sai số bình phương được thay thế bởi sai số bình phương ở bước lặp thứ k. Vì
(3.53) R thành phần đầu của là các đạo hàm đối với các trọng số của mạng, trong khi thành phần thứ (R+1) là đạo hàm đối với độ lệch. Vì vậy chúng ta có (3.54) và (3.55)
Chúng ta xem xét các đạo hàm từng phần ở trong các công thức trên. Đầu tiên đánh giá đạo hàm từng phần của e(k) đối với trọng số:
(3.56)
trong đó pi(k) là thành phần thứ i của véctơ vào ở bước lặp thứ k. Ta rút gọn lại là: (3.57)
Tương tự chúng ta có gradient của thành phần cuối cùng: (3.58)
Chú ý rằng pi(k) và 1 là các thành phần của véctơ y, vì vậy gradient của sai số bình phương ở bước lặp
thứ k có thể viết
(3.59)
Chúng ta có thể thấy sự đẹp đẽ của xấp xỉ sai số bình phương trung bình bằng sai sốở bước lặp thứ k,
ở trong công thức 3.52. Để tính gradient xấp xỉ này chúng ta chỉ cần nhân sai số với đầu vào. Xấp xỉ có thể sử dụng trong thuật toán xuống dốc từng bước, ta có:
(3.60) Nếu chúng ta thay thế bằng thì ta được (3.61) hoặc (3.62) và (3.63)
Hai công thức cuối này tạo nên thuật toán cực tiểu sai số trung bình nhỏ nhất (LMS). Phương pháp này khá phổ cập và cũng đ• sử dụng trong thuật toán học Widrow-Hoff.
Các kết quả trên có thể được điều chỉnh để làm việc với trường hợp có nhiều đầu ra, và vì thế sẽ có
nhiều nơron. Để cập nhật hàng thứ i của ma trận trọng số sử dụng công thức sau (3.64)
trong đó ei(k) là thành phần thứ i của véctơ sai số tại bước lặp thứ k. Để cập nhật thành phần thứ i của độ lệch chúng ta sử dụng
(3.65)
Thuật toán LMS có thể được viết gọn dưới dạng ma trận như sau:
(3.66) và
, (3.67)
trong đó sai số e và độ lệch b là dưới dạng véctơ. 3.2.4. Phân tích sự hội tụ
Chúng ta thấy rằng tốc độ học ổn định cực đại cho hàm bậc hai là trong đó là trị riêng lớn nhất của ma
trận Hessian. Bây giờ chúng ta sẽ xem xét sự hội tụ của thuật toán LMS, đó là thuật toán xuống dốc
từng bước xấp xỉ. Chúng ta thấy kết quả như nhau.
Để bắt đầu chúng ta h•y chú { trong thuật toán LMS (công thức 3.61), xk là một hàm của y(k-1), y(k-2), ... , y(0). Nếu chúng ta giả sử rằng các véctơ vào là thoả m•n một cách độc lập thì xk là độc lập với y(k).
Chúng ta sẽ thấy việc xử l{ đầu vào ổn định sẽ gặp điều kiện này, giá trị mong muốn của véctơ trọng số
sẽ hội tụ tới
x* = R-1h (3.68)
Đây là giải pháp sai số bình phương trung bình tối thiểu {E[e2k]}, như đ• thấy trong công thức 10.18. Xét lại công thức 10.28 của thuật toán LMS:
(3.69)
Lấy kz vọng của cả 2 vế của công thức trên ta được:
(3.70)
Thay thế cho sai số ta được: (3.71)
Cuối cùng, thay cho và sắp xếp lại ta được: (3.72)
Vì xk phụ thuộc vào y(k) thì ta có:
(3.73) Có thể viết lại là: (3.74)
Hệ động này sẽổn định nếu tất cả các trị riêng của rơi vào bên trong đường tròn đơn vị. Các trị riêng của sẽ là , trong đó là các trị riêng của R. Vì thế hệ này sẽổn định nếu
(3.75) Vì , luôn nhỏ hơn 1. Điều kiện ổn định sẽ là với (3.76) hoặc (3.77) 3.2.5. Minh hoạ
Xét mạng ADALINE đơn có 1 nơron và thuật toán LMS, để cho đơn giản chúng ta giả sử độ lệch của
mạng bằng 0. Thuật toán LMS cập nhật trọng số được sử dụng để tạo các trọng số mới từng bước trong quá trình huấn luyện với công thức sau:
Đầu tiên ta tính tốc độ học ổn định lớn nhất là . Chúng ta có thể tính bằng cách tìm các trị riêng của ma
trận tương quan đầu vào. Xét các véctơ đầu vào và ra như sau:
Nếu chúng ta giả sử các véctơ đầu vào được sinh ngẫu nhiên với xác suất như nhau, ta có thể tính ma
trận tương quan đầu vào:
Các trị riêng của R là:
Chọn ở mức vừa phải ta đặt . Tuy nhiên trong các ứng dụng thực tế tốc độ học không phải tính từ
ma trận R, mà nó được chọn bằng việc thử và sai.
Chúng ta bắt đầu với các trọng số tuz ý, ở đây đặt các trọng số bằng 0 ( ) và sau đó đưa các đầu vào
theo thứ tự p1, p2, p1, p2, ..., tính các trọng số mới cho mỗi p đưa vào (tuy nhiên thứ tự các đầu vào có thể bất kz, ngẫu nhiên). Tại đầu vào p1 ta có: và Chúng ta tính ma trận trọng số mới sẽ là
Tương tự cho đầu vào tiếp theo là p2, và đầu ra mong muốn là 1:
và sai số là
Tính véctơ trọng số mới
Tương tự cho đầu vào tiếp là p1 ta có:
và sai số là
Véctơ trọng số mới là
Nếu tiếp tục thực hiện thủ tục này, thuật toán sẽ hội tụ tới
Trong phần này chúng tôi trình bày một cách tiếp cận học rất hiệu quả, đó là suy rộng của thuật toán LMS – Least Mean Square. Sự mở rộng này chính là lan truyền ngược, có thể được sử dụng để huấn luyện mạng nhiều lớp. Theo luật học LMS, lan truyền ngược là một thuật toán xấp xỉ xuống dốc từng
bước, trong đó đặc trưng thực hiện là sai số bình phương trung bình. Sự khác nhau giữa thuật toán
LMS và lan truyền ngược chỉ là cách tính đạo hàm. Với mạng tuyến tính một lớp sai số là một hàm hiện
tuyến tính của các trọng số mạng, và đạo hàm của nó với các trọng số được tính dễ dàng. Trong mạng nhiều lớp với hàm chuyển phi tuyến, quan hệ giữa các trọng số mạng và sai số là rất phức tạp. Để tính các đạo hàm, chúng ta cần sử dụng các luật chuỗi của các phép tính. Thực tế đây là một phần rất lớn được trình bày trong phần này.
Luật học perceptron của Frank Rosenblatt và thuật toán LMS của Bernard Widrow và Marcian Hoff được thiết kế để huấn luyện các mạng một lớp kiểu perceptron. Như đ• trình bày ở phần trước, các mạng một lớp này chịu một bất lợi đó là chúng chỉ có khả năng giải quyết các vấn đề phân lớp tuyến tính. Cả Rosenbatt và Widrow đ• nhận thấy những hạn chế này và đề xuất mạng nhiều lớp có thể khắc
phục chúng, nhưng họ không sinh ra các thuật toán để huấn luyện các mạng quá mạnh này.
Nhìn bên ngoài thoạt đầu mô tả về một thuật toán huấn luyện mạng nhiều lớp chứa đựng luận điểm
của Paul Werbos năm 1974. Luận điểm này biểu diễn thuật toán trong ngữ cảnh của mạng tổng quát,
với các mạng nơron như một trường hợp đặc biệt, và không được phổ biến trong mạng nơron. Cho đến giữa những năm 1980 thuật toán lan truyền ngược được khám phá và công bố rộng r•i. Nó đ• được khám phá lại bởi David Parker, Geoffrey Hinton và Ronald Williams một cách độc lập. Thuật toán này được nổi tiếng bởi kết luận của nhà tâm lý học David Rumelhart và James Mc Clelland trong quyển
sách Parallel Distributed Processing. Mạng perceptron nhiều lớp và thuật toán lan truyền ngược hiện
nay được dùng rất rộng r•i trong mạng nơron.
3.3.1. Giới thiệu mạng perceptron nhiều lớp
Hình vẽ sau biểu diễn một mạng perceptron có 3 lớp. Và để đơn giản chúng ta chỉ xem xét mạng 3 lớp.
Đầu ra của lớp thứ nhất là đầu vào của lớp thứ hai và đầu ra của lớp thứ 2 là đầu vào của lớp thứ 3.
Mỗi lớp có một số lượng nơron khác nhau, và thậm chí các hàm chuyển khác nhau. Ma trận trọng số
được đánh chỉ số theo từng lớp như sau: lớp thứ nhất W1, lớp thứ 2 là W2 và lớp thứ 3 là W3.
Để xác định cấu của một trúc mạng nhiều lớp, chúng ta sử dụng các chú thích viết tắt sau, trong đó số
lượng đầu vào được theo sau bởi số lượng nơron trong mỗi lớp:
Hình 3.78- Mạng nơron 3 lớp truyền thẳng
Bây giờ chúng ta h•y xem xét khả năng của mạng percpeptron 3 lớp này. Đầu tiên chúng ta sẽ thấy việc sử dụng mạng nhiều lớp cho vấn đề phân lớp, sau đó sử dụng cho vấn đề xấp xỉ hàm.
3.3.2. Bài toán phân lớp các đối tượng
Để minh hoạ khả năng của mạng percpetron nhiều lớp cho vấn đề phân lớp, các cặp đầu vào/đầu ra
cho một cổng XOR là
Vấn đề này được minh hoạ bằng hình sau, được sử dụng bởi Minsky và Papert năm 1969 để minh hoạ
sự hạn chế của perceptron một lớp. Bởi vì 2 nhóm là không phân tách tuyến tính, mạng perceptron
một lớp không thể thực hiện phân lớp được.
Một mạng 2 lớp có thể thực hiện điều này. Thực tế có nhiều giải pháp mạng khác nhau. Mỗi giải pháp
được sử dụng 2 nơron trong lớp thứ nhất để 2 biên quyết định. Biên thứ nhất chia p1 từ các mẫu, và biên thứ 2 chia p4. Sau đó lớp thứ 2 được dùng để kết hợp 2 biên này lại sử dụng một toán tử AND. Các biên quyết định cho lớp nơron đầu tiên được thể hiện trong hình sau:
Hình 3.79- Các biên quyết định cho mạng XOR
Hình 3.80- Vấn đề phân lớp không tuyến tính
Kết quả mạng 2 lớp 2-2-1 được thể hiện ở hình sau. Toàn bộ các miền quyết định cho mạng này được
Hình 3.81- Mạng XOR 2 lớp
3.3.3. Bài toán xấp xỉ hàm
Ngoài việc phân lớp, chúng ta có thể huấn luyện mạng nơron để xấp xỉ hàm. Ví dụ trong các hệ điều khiển mục tiêu là tìm một hàm hồi quy thích hợp để ánh xạ từ những đầu ra đo được tới các đầu vào điều khiển. Trong việc lọc thích nghi mục tiêu là tìm một hàm để ánh xạ từ những giá trị trễ của một tín
hiệu đầu vào tới một tín hiệu đầu ra thích hợp. Ví dụ sau cho thấy sự mềm dẻo của mạng perceptron
nhiều lớp cho việc thực hiện các hàm.
Xét mạng 2 lớp gồm 1-2-1 như hình vẽ sau. Hàm chuyển ở lớp thứ nhất là log-sigmoid và hàm chuyển
lớp thứ 2 là linear, biểu diễn bằng công thức như sau:
Hình 3.82- Ví dụ mạng nơron xấp xỉ hàm
Giả sử rằng những giá trị của các trọng số và độ lệch cho mạng này là: (3.83)
Phản ứng của mạng với các tham số này được thể hiện trong hình sau, trong đó nét vẽ đầu ra a2 khi
đầu vào p thay đổi trong khoảng [-2,2].
Chú ý phản ứng của mạng gồm có 2 bước, mỗi bước cho một nơron log-sigmoid ở lớp thứ nhất. Bằng
cách điều chỉnh các tham số của mạng chúng ta có thể thay đổi hình trạng và vị trí của mỗi bước, như
chúng ta sẽ thấy ở sau đây:
Các tâm của các bước xẩy ra nơi tổng đầu vào tới một nơron trong lớp thứ nhất là không: (3.84)
(3.85)
Độ dốc của mỗi bước có thể được điều chỉnh bởi việc thay đổi các trọng số liên kết của mạng.
Hình 3.86- Sự phản ứng của mạng theo đầu vào
Hình vẽ sau minh hoạ những tác động của các tham số khi thay đổi trên sự phản ứng của mạng. Đường nét xanh thể hiện phản ứng bình thường. Các đường nét khác thể hiện sự phản ứng khi thay
đổi một tham số tại một thời điểm trong khoảng sau:
Ví dụ này cho chúng ta thấy sự mềm dẻo của mạng nhiều lớp. Nó có thể xuất hiện với vai trò để xấp xỉ
bất kz một hàm số nào, nếu chúng ta có số lượng nơron đủ lớn trong lớp ẩn. Thực tế nó được xuất hiện dưới dạng 3 lớp, với hàm chuyển sigmoid trong lớp ẩn và hàm linear ở lớp ra, mạng này có thể
xấp xỉ gần nhất mọi hàm với độ chính xác bất kz.
3.3.4. Thuật toán lan truyền ngược
Như chúng ta đ• biết thuật toán lan truyền ngược được sử dụng trong mạng nhiều lớp, đầu ra của lớp trước trở thành đầu vào của lớp sau. Các công thức được mô tả như sau:
(3.88)
trong đó M là số lớp của mạng. Nơron trong lớp thứ nhất nhận các đầu vào bên ngoài:
(3.89)
cung cấp cho công thức (3.28) để tính đầu ra của các lớp tiếp theo. Đầu ra của lớp cuối cùng là đầu ra của mạng:
(3.90)
Hình 3.91- Mạng nơron 3 lớp
Thuật toán lan truyền ngược cho mạng nhiều lớp là một suy rộng của thuật toán LMS – Least Mean
trung bình. Thuật toán được cung cấp với một tập các mẫu dữ liệu học về cách ứng xử thích hợp của mạng:
(3.92)
trong đó pq là một đầu vào và tq là đầu ra mong muốn tương ứng. Khi mỗi đầu vào đựơc đưa vào
mạng, kết quả đầu ra sẽ được so sánh với đầu ra mong muốn. Thuật toán sẽ điều chỉnh các tham số
của mạng để tối thiểu sai số bình phương trung bình này: (3.93)
trong đó x là véctơ trọng số và độ lệch của mạng. Nếu mạng có nhiều đầu ta thì sẽ biểu diễn như sau:
(3.94)
Như trong thuậ toán LMS, chúng ta xấp xỉ sai số bình phương trung bình bằng công thức sau:
(3.95)
trong đó kz vọng của bình phương sai số thay bằng bình phương sai sốở bước huấn luyện thứ k. Từng bước điều chỉnh xuống dốc của thuật toán với sự xấp xỉ sai số bình phương trung bình là: (3.96) (3.97) trong đó ? là tốc độ học. Bởi vì sai số là một hàm của trọng số trong lớp ẩn, chúng ta sử dụng tính đạo hàm của hàm hợp. Để xem xét luật dây xích, giải sử chúng ta có một hàm f là một hàm hiện có n biến. Chúng ta tính đạo hàm của hàm f với một biến w là: (3.98) Ví dụ, nếu (3.99) thì (3.100) áp dụng vào công thức (3.96) và (3.97) chúng ta có: (3.101) (3.102)
Với cách thứ 2 này chúng ta có thể dễ dàng tính toán, tổng đầu vào tới lớp thứ m là một hàm hiện của các trọng số và độ lệch trong lớp đó: (3.103) vì vậy (3.104) Nếu chúng ta định nghĩa (3.105)
(độ nhạy của để thay đổi trong thành phần thứ i của tổng đầu vào ở lớp thứ m) thì công thức (3.101)
và (3.102) có thể viết lại đơn giản như sau:
(3.106) (3.107)
Chúng ta có thể biểu diễn thuật toán xuống dốc từng bước xấp xỉ như sau (phương pháp tụt gradient): (3.108) (3.109) Dưới dạng ma trận sẽ viết gọn thành: (3.110) (3.111) trong đó (3.112)
Bây giờ chúng ta tính độ nhạy sm sẽ cần một phương pháp cho cách tính đạo hàm của hàm hợp. Quá
trình này cho ta khái niệm lan truyền ngược, bởi vì nó mô tả một quan hệ quay lui trong đó độ nhạy ở
lớp m được tính từ độ nhạy ở lớp m+1.
Để đưa ra quan hệ quay lui cho các độ nhạy, chúng ta sẽ sử dụng ma trận Jacobian sau đây: (3.113)
Ma trận Jacobian được diễn tả như sau. Xét phần tử i,j của ma trận:
(3.114) trong đó
(3.115)
Vì thế ma trận Jacobian có thể được viết
(3.116) trong đó (3.117)
Chúng ta viết ra quan hệ quay lui cho độ nhạy bằng việc sử dụng cách tính đạo hàm theo luật dây xích