Phương pháp liên hợp gradient

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 32)

Trong phương pháp xuống dốc từng bước thực hiện tìm kiếm tuyến tính tại mỗi bước lặp. Các hướng tìm kiếm ở các bước lặp liên tục là trực giao nhau. Hàm bậc hai với các đường đồng mức elíp sẽ cho ta

một quỹ đạo tìm kiếm zig-zag trên đó. Có lẽ các hướng tìm kiếm bậc hai không phải là sự lựa chọn tốt

nhất, có một phương pháp có thể đó là liên hợp gradient sẽ được trình bày sau đây.

Giả định rằng chúng ta mong muốn tìm điểm cực tiểu của hàm bậc hai:

Một tập các véctơ gọi là liên hợp lẫn nhau đối với một ma trận Hessian A xác định dương nếu và chỉ

nếu

(2.83)

Đối với các véctơ trực giao, có một số hữu hạn các tập liên hợp lẫn nhau các véctơ mà trải rộng một

không gian n chiều. Một tập các véctơ liên hợp bao gồm các véctơ riêng của A. Đặt và là các trị riêng và véctơ riêng của ma trận Hessian. Để thấy được các véctơ là liên hợp, thay pk bằng zk trong công thức (2.83) ta có:

(2.84)

Trong đó đẳng thức cuối cùng được giữ bởi vì các véctơ riêng của một ma trận đối xứng là trực giao

lẫn nhau. Vì thế các véctơ riêng vừa cả liên hợp cả trực giao.

Chúng ta có thể cực tiểu chính xác một hàm bậc hai bằng việc tìm kiếm theo các véctơ riêng của ma trận Hessian, khi chúng hình thành các trục nguyên lý của các đường đồng mức. Tuy trong thực tế

không hợp lý khi chúng ta phải tìm ma trận Hessian trước khi tìm các véctơ riêng. Chúng ta cần một thuật toán không đòi hỏi tính toán nhiều về đạo hàm bậc 2.

Chúng ta thấy rằng nếu làm một thứ tự chính xác các tìm kiếm tuyến tính theo bất kz một tập các

hướng liên hợp , thì cực tiểu chính xác của bất kz một hàm bậc hai, với n tham số, sẽ đạt được trong

nhiều nhất n lần tìm kiếm. Tuy nhiên bằng cách nào chúng ta có thể xây dựng được các hướng tìm

kiếm liên hợp?. Đầu tiên chúng tôi muốn trình bày lại điều kiện liên hợp, đ• được đưa ra trong công thức (2.83), nhưng không sử dụng ma trận Hessian.

Chúng ta có đạo hàm bậc nhất của hàm bậc hai là:

(2.85)

và đạo hàm bậc 2 của nó là:

(2.86)

Kết hợp các đẳng thức này với nhau ta có được sự thay đổi gradient tại bước lặp thứ k+1 là: (2.87)

Trong đó theo công thức (2.54) chúng ta có

(2.88)

và được chọn để cực tiểu F(x) trong hướng pk.

Chúng ta có thể phát biểu lại điều kiện liên hợp ở công thức (2.83): (2.89)

Điều kiện liên hợp ở đây chúng ta không cần ma trận Hessian, nhưng theo sự thay đổi gradient tại các bước lặp liên tiếp của thuật toán. Các hướng tìm kiếm sẽ liên hợp nếu chúng là trực giao với sự thay đổi trong gradient.

Hướng tìm kiếm đầu tiên p0 là tùy ý và p1 là một véctơ bất kz trực giao với . Vì thế có một số hữu hạn các tập các véctơ liên hợp. Thông thường bắt đầu tìm kiếm trong hướng của phương pháp xuống dốc từng bước:

(2.90)

Sau đó tại mỗi bước lặp chúng ta cần xây dựng một véctơ pk, sao cho nó trực giao với , có thể được

hình thành đơn giản như sau:

(2.91)

Giá trị vô hướng có thể được chọn bằng một số phương pháp khác nhau, theo Hestenes và Steifel, thông thường ta chọn

(2.92)

theo Fletcher và Reeves, ta chọn

(2.93)

theo Polak và Ribiére, ta chọn

(2.94)

Phương pháp liên hợp có thể được trình bày bởi các bước sau đây:

1. Chọn hướng tìm kiếm ban đầu trái dấu với gradient, như trong công thức (2.90).

2. Thực hiện một bước theo công thức (2.88), chọn tốc độ học để cực tiểu hàm theo hướng tìm kiếm.

Đối với hàm bậc hai chúng ta sử dụng công thức (2.76).

3. Chọn hướng tìm kiếm tiếp theo theo công thức (2.92), công thức (2.93) hoặc (2.94) để tính .

4. Nếu thuật toán chưa hội tụ, ta quay lại bước 2.

Xét ví dụ minh họa cho thuật toán này, sử dụng phương pháp xuống dốc từng bước với cực tiểu tuyến

tính:

với điểm ban đầu là

Theo phương pháp xuống dốc từng bước, hướng tìm kiếm đầu tiên là trái dấu với gradient:

Từ công thức (2.76), tốc độ học cho bước lặp đầu tiên sẽ là

Bước lặp đầu tiên của thuật toán liên hợp gradient như sau:

Hướng tìm kiếm ở bước tiếp theo từ công thức (2.91), ta phải tính gradient tại x1:

Chúng ta tìm :

Sử dụng phương pháp Fletcher và Reeves (công thức (2.93)). Hướng tìm kiếm tiếp theo được tính bởi công thức (2.91):

Từ công thức (2.76) ta tính tốc độ học cho bước lặp tiếp sẽ là:

Bước lặp thứ hai của thuật toán liên hợp gradient như sau:

Hình 2.95- Quỹ đạo thể hiện tìm kiếm theo 2 phương pháp chương 3

một số phương pháp huấn luyện mạng nơron

Trong chương này chúng tôi sẽ trình bày một số lớp khác nhau các phương pháp học mạng nơron, bao

gồm học liên hợp – Associative learning, học cạnh tranh – Competitive learning và học hiệu suất –

Performance learing, cùng với thuật toán lan truyền ngược - Back propagation. 3.1. Mạng Perceptron và quy tắc học Perceptron

Năm 1943, Warren McCulloch và Walter Pitts giới thiệu một nơron nhân tạo đầu tiên. Đặc trưng của mô hình nơron này là tổng trọng số các đầu vào được so sánh với một độ lệch để xác định đầu ra của nơron theo cách: nếu tổng đó lớn hơn độ lệch thì đầu ra sẽ là 1, ngược lại sẽ là 0.

Sau đó, những năm 50 được Frank Rosenblatt và các nhà nghiên cứu phát triển thành một mạng nơron

được gọi là mạng perceptron. Trong mạng này mô hình nơron vẩn giữ nguyên, đóng góp chính của Rosenblatt là giới thiệu quy tắc học cho mạng để giải quyết vấn đề nhận dạng mẫu. Ông đ• chứng minh rằng quy tắc học này sẽ luôn luôn hội tụ tới đích nếu có nghiệm.

Tuy nhiên mạng perceptron có những hạn chế nhất định. Dẫn chứng là nó không có khả năng thực hiện xấp xỉ các hàm đơn giản. Cho đến những năm 1980 những hạn chế này được phát triển bằng việc

sử dụng nhiều lớp, kết hợp với thuật toán học.

Hiện nay mạng perceptron vẩn được xem như một mạng quan trọng. Nó giữ được đặc tính nhanh và

tin cậy của mạng cho việc phân lớp mà nó có thể. Hơn nữa việc hiểu sự hoạt động của mạng dễ hơn những mạng phức tạp khác.

3.1.1. Kiến trúc perceptron

Mạng perceptron được thể hiện như hình vẽ 3.1, và đầu ra được tính như sau:

Hình 3.1- Mạng perceptron

Ma trận trọng số W có kích thước SxR như sau: (3.2)

Chúng ta định nghĩa một hàng của ma trận trong số ký hiệu bằng iw như sau:

(3.3)

Kết quả véctơ ra của mạng được xác định là: ai = hardlim(ni) = hardlim(iwTp+b) với hàm hardlim được tính như sau:

(3.4)

3.1.2. Quy tắc học perceptron

Quy tắc học perceptron là học có giám sát (suppervisor learning). Giả sử tập dữ liệu học là , trong đó

pq là đầu vào của một mẫu học thứ q và tq là đầu ra mong muốn. Khi đầu vào pq được đưa vào mạng, ta tính kết quả đầu ra aq và so sánh với đầu ra mong muốn tq. Học tức là điều chỉnh trọng số liên kết và độ lệch để đưa mạng dần tới đầu ra mong muốn.

Điều chỉnh trọng số liên kết theo công thức: (3.5)

Điều chỉnh độ lệch bằng biểu thức:

(3.6)

3.1.3. Xét sự hội tụ của thuật toán học

Mặc dù quy tắc học perceptron là đơn giản nhưng nó khá mạnh. Trong thực tế, nó cho thấy sự hội tụ

tới trọng số mà ở đó mạng đạt được yêu cầu phân lớp. ở đây chúng tôi xem xét sự hội tụ của một nơron như hình sau.

Hình 3.7- Nơron perceptron đơn

Các ký hiệu sử dụng biểu diễn dưới dạng véctơ

, (3.8)

Từ đó ta có tổng đầu vào của mạng là

(3.9)

Từ công thức điều chỉnh trọng số 3.5 và độ lệch 3.6 theo quy tắc perceptron ta viết gộp lại dưới dạng

ký hiệu véctơ sẽ là

Sai số e của mạng có thể là 1, -1, hoặc 0. Nếu e=0 thì không có sự thay đổi trong số và độ lệch. Nếu e=1 thì véctơ x (bao gồm trọng số và độ lệch) được cộng thêm véctơ vào y. Nếu e=-1 thì sẽ trừ đi. Nếu

chúng ta chỉ đếm những lần lặp mà véctơ x bị thay đổi thì quy tắc học trở thành như sau

x(k)=x(k-1) + y’(k-1) (3.10)

trong đó y’(k-1) là các phần tử trong tập hợp sau với q=1,2,...,Q (3.11)

Chúng ta giả sử có tồn tại một véctơ trọng số và độ lệch là x* phân lớp chính xác Q véctơ vào {(pq,tq)}

với q=1, 2, ..., Q. Khi đó ta có

với q=1,2,...,Q (3.13)

Để đảm bảo cho sự hội tụ của thuật toán chúng ta đưa ra ba tiêu chuẩn sau:

1. Bài toán có lời giải, tức là công thức 3.16 trong phần chứng minh được đảm bảo.

2. Véctơ trọng số chỉ được cập nhật khi véctơ vào chưa được phân đúng lớp, vì vậy công thức 3.22 được thoả m•n.

3. Có tồn tại giới hạn trên của độ dài của các véctơ vào, đó là ?. Chứng minh:

Mục tiêu của việc chứng minh là tìm ra giới hạn trên và dưới của độ dài véctơ trọng số tại mỗi vòng

lặp của thuật toán.

Giả sử rằng thuật toán học bắt đầu với véctơ trọng số là zero: x(0) = 0 (không ảnh hưởng đến trường hợp tổng quát). Khi đó sau k lần lặp (thay đổi véctơ trọng số) chúng ta có:

x(k) = y’(0) + y’(1) + ... + y’(k-1) theo (3.10) (3.14)

Nhân véctơ trọng số sau k lần lặp với véctơ trọng số của lời giải x* ta được:

x*T.x(k) = x*T.y’(0) + x*T.y’(1) + ... + x*T.y’(k-1) (3.15) Theo các công thức 3.11, 3.12 và 3.13 ta có:

x*T.y’(i) > ? với i=0,1,... (3.16) Vì thế

x*T.x(k) > k.? (3.17)

Theo bất đẳng thức Cauchy-Schwartz (côsi) ta có

(x*T.x(k))2 ? || x*||2 ||x(k)||2, (3.18) trong đó

||x||2 = xT.x (3.19)

Theo công thức 3.17 và 3.18 ta có thể thấy giới hạn dưới của bình phương độ dài véctơ trọng số tại bước lặp thứ k:

Chúng ta xét giới hạn trên của độ dài véctơ trọng số bắt đầu bằng việc tìm sự thay đổi độ dài tại bước lặp thứ k:

(3.21) Ta đ• có

xT(k-1).y’(k-1) ? 0 (3.22) Cho nên từ công thức 3.21 ta suy ra (3.23)

Chúng ta có thể lặp lại với các cuối cùng ta được

(3.24) Nếu đặt thì ta có

(3.25)

Ta có giới hạn dưới là công thức 3.20 và giới hạn trên là công thức 3.25 của bình phương độ dài véctơ

trọng sốở bước thứ k. Nếu chúng ta kết hợp hai giới hạn ta được:

(3.26)

Số bước lặp k trong quá trình học có giới hạn trên do vậy véctơ trọng số sẽ được thay đổi trong một

số giới hạn lần. Kết luận thuật toán học perceptron sẽ hội tụ trong một số hữu hạn bước lặp.

Số bước lặp tối đa của véctơ trọng số tỷ lệ nghịch với bình phương của ?. Điều này có nghĩa nếu các lớp vào là khó tách thì thuật toán cần nhiều bước lặp để hội tụ.

3.1.4. Minh hoạ

Chúng ta xét ví dụ có 4 lớp của véctơ vào:

(3.27)

Thiết kế mạng perceptron:

Để thực hiện phân 4 lớp như trên ta phải có ít nhất 2 nơron, vậy mạng perceptron có thể phân tách được 22 lớp khác nhau. Mạng perceptron được biểu diễn như sau:

Hình 3.28- Mạng perceptron có 2 nơron

Biểu diễn các véctơ vào lên hệ toạ độ đề các ta được:

Hình 3.29- Các lớp điểm cần phân lớp

Hình 3.30- Các lớp sẽ được phân bởi 2 đường biên

Mỗi đường biên là thể hiện của 1 nơron perceptron có 2 đầu vào dạng . Kết hợp 2 đường biên để xác

định 1 lớp và chúng ta có 4 lớp như trên hình vẽ.

3.1.5. Những hạn chế của luật học perceptron

Luật học perceptron đảm bảo hội tụ sau một số hữu hạn bước lặp nếu bài toán có lời giải. Mỗi nơron

perceptron chỉ có thể phân tách tuyến tính ra 2 miền bởi công thức sau.

Vậy mạng perceptron chỉ có thể phân lớp tuyến tính cho các đầu vào, bằng cách kết hợp các nơron

Hình 3.31- Kết hợp nhiều nơron perceptron để phân lớp

3.2. Thuật toán học Widrow-Hoff

Trong phần này sẽ áp dụng một nguyên lý học hiệu quả hơn tới mạng nơron tuyến tính một lớp, đó là

thuật toán Widrow-Hoff. Thuật toán này là một thuật toán xấp xỉ xuống dốc từng bước, trong đó hàm

đặc trưng thực hiện (performance index) là sai số bình phương trung bình. Thuật toán Widrow-Hoff rất quan trọng để xem xét với 2 lý do sau: Thứ nhất nó được sử dụng rộng r•i hiện nay trong nhiều ứng dụng xử lý tín hiệu. Thứ 2 nó là tiền thân của thuật toán lan truyền ngược (backpropagation) cho mạng

nhiều lớp, sẽ được trình bày ở phần sau.

Vào năm 1960 Bernard Widrow và Marcian Hoff, giới thiệu một mạng ADALINE ( ADAptive LInear NEuron), và một luật học gọi là thuật toán LMS ( Least Mean Square - cực tiểu bình phương kz vọng sai số).

Mạng ADALINE của họ rất giống với mạng perceptron, trừ hàm chuyển của nó là linear thay cho hàm hard-lim. Cả 2 mạng ADALINE và perceptron có cùng một hạn chế đó là chúng chỉ có thể giải quyết các

vấn đề phân tách tuyến tính. Tuy nhiên thuật toán LMS mạnh hơn luật học perceptron. Trong khi luật

học perceptron đảm bảo hội tụ tới một kết quả chính xác, mạng thu được sau khi học có thể nhạy

cảm với nhiễu khi các mẫu học thường gần các đường biên phân tách. Thuật toán LMS sẽ tối thiểu bình phương kz vọng sai số, và vì thế nó cố gắng chuyển biên quyết định càng xa các mẫu học càng tốt. Thuật toán LMS tìm thấy nhiều những ứng dụng thực tế hơn perceptron. Điều này đặc biệt đúng trong

lĩnh vực xử lý tín hiệu số. Ví dụ hầu hết các đường điện thoại khoảng cách xa sử dụng mạng ADALINE

cho việc xoá nhiễu.

3.2.1. Mạng ADALINE

Mạng ADALINE được biểu diễn trong hình sau. Cấu trúc của mạng giống với mạng perceptron, chỉ khác

Hình 3.32- Mạng ADALINE Đầu ra của mạng là (3.33) Biểu diễn dưới dạng từng thành phần của đầu ra sẽ là (3.34) trong đó iw là các thành phần ở hàng thứ i của ma trận trọng số W: (3.35)

Xét ví dụ mạng ADALINE đơn giản như sau: có 2 đầu vào và một đầu ra

Hình 3.36- Nơron tuyến tính 2 đầu vào

Dễ dàng nhận thấy mạng ADLINE có biên giống với mạng perceptron, nếu n=0 thì 1wTp+b=0 là một đường thẳng, như hình vẽ sau:

Hình 3.37- Biên quyết định của ADALINE có 2 đầu vào

Nơron sẽ cho đầu ra lớn hơn 0 trong miền xám, trong miền trắng sẽ cho đầu ra nhỏ hơn 0. Chúng ta

thấy rằng ADALINE có thể được sử dụng để phân lớp các đối tượng thành các nhóm. Tuy nhiên nó chỉ

có thể thực hiện được nếu các đối tượng là tách tuyến tính được. Vì vậy mạng ADALINE có hạn chế

như mạng perceptron.

3.2.2. Sai số bình phương trung bình

Chúng ta xem xét các đặc tính của mạng ADALINE, sẽ phát triển thuật toán LMS cho việc học mạng.

Như luật học perceptron, thuật toán LMS là một ví dụ của huấn luyện có thầy (suppervisor learning),

, ,..., (3.38)

Trong đó pq là một đầu vào tới mạng, và tq là đầu ra mong muốn. Với mỗi đầu vào được đưa vào

mạng, đầu ra tương ứng của mạng sẽ được so sánh với đầu ra mong muốn này.

Thuật toán LMS sẽ điều chỉnh các trọng số và độ lệch của mạng ADALINE để tối thiểu hoá bình phương

kz vọng sai số, trong đó sai số là sự khác nhau đầu ra mong muốn và đầu ra của mạng. Chúng ta sẽ xem xét chỉ số hiệu quả. Đầu tiên thử với trường hợp một nơron, ta có:

(3.39)

và sử dụng "1" như là một đầu vào cho véctơ y như sau:

(3.40)

Khi đó đầu ra của mạng sẽ được tính như sau:

(3.41)

hoặc có thể viết lại là (3.42)

Chúng ta sẽ viết biểu thức sai số bình phương trung bình của mạng ADALINE theo cách truyền thống là:

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 32)

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

(96 trang)