Thuật toán LMS

Một phần của tài liệu Một số quy trình huấn luyện mạng nơron và ứng dụng xấp xỉ hàm số (Trang 47)

Đầ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

Một phần của tài liệu Một số quy trình huấn luyện mạng nơron và ứng dụng xấp xỉ hàm số (Trang 47)

Tải bản đầy đủ (PDF)

(96 trang)