Mạng thần kinh nhân tạo cho phân lớp màu sắc part 4 pps

11 244 0
Mạng thần kinh nhân tạo cho phân lớp màu sắc part 4 pps

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

288 L F F F F F F F N N N N N N N 2 1 1 2 1 1 hoặc L F F F F L N N N N 2 1 1 2 1 1 1 1 L L 2 2 2 1( ) L 2 1 5 2 L 2 5 1 2 0 618 . (12.8) Trong khoảng [0,1], điểm bắt đầu tìm kiếm là a 1 = 1 0.618 = 0.382 và a 2 = 0.618, không phụ thuộc vào N hoặc . Tỷ lệ 5 1 2 / đợc biết trong toán học và kiến trúc cổ điển dới tên tỷ lệ vàng (Golden Section). Nó chia một đoạn thành hai phần, làm cho một tỷ lệ rất lớn của đoạn ban đầu tơng đơng tỷ lệ nhỏ hơn. Vì lý do này nên kỹ thuật loại trừ này gọi là kỹ thuật tìm kiếm tỷ lệ vàng. Thuật toán cho tìm kiếm tỷ lệ vàng bây giờ có thể trình bày bằng các bớc sau: 1. Xác định hai điểm 1 và 2 mà chứa điểm giá trị nhỏ nhất ( 1 > 2 ). 2. Tính L = 2 - 1 , a 2 = 0.618L + 1 , và a 1 = 1 + 2 - a 2 (tham khảo hình 12.7). 3. Tính tol = 2 - 1 ; 4. Nếu tol < thì dừng lại. 5. Tính y 1 = f(a 1 ) và y 2 = f(a 2 ). 6. Nếu y 1 < y 2 và a 1 > a 2 thì loại trừ miền [ 1 ,a 2 ], cụ thể, 1 = a 2 và a 2 = 1 + 2 - a 1 . Nếu y 1 < y 2 và a 1 < a 2 thì loại trừ miền [a 2 , 2 ], cụ thể, 2 = a 1 và a 2 = 1 + 2 - a 1 . Nếu y 1 > y 2 và a 1 > a 2 thì loại trừ miền [a 1 , 2 ], cụ thể, 2 = a 1 và a 1 = 1 + 2 - a 2 . 289 Nếu y 1 > y 2 và a 1 < a 2 thì loại trừ miền [ 1 ,a 1 ], cụ thể, 1 = a 1 và a 1 = 1 + 2 - a 1 . 7. Chuyển tới bớc ba . Bài tập 12.1 Lập một chơng trình C cho tìm kiếm tỷ lệ vàng. Kiểm tra chơng trình theo các hàm dới đây: f(x) = 6.0 - 11x + 6x 2 - x 3 (Trả lời : 1.42256 cho khoảng [0,2]) f(x) = (100 - x) 2 (Trả lời : 100) f(x) = e x - 3x 2 - 2e -2x (Trả lời : 2.8316) Một phơng pháp đòi hỏi ít các giá trị hàm hơn phơng pháp tỷ lệ vàng đợc phát triển bởi Powell. Cơ sở của phơng pháp này dựa trên đánh giá bậc hai liên tiếp. Phơng pháp đánh giá bậc hai cho rằng một khoảng giới hạn một hàm có thể xấp xỉ bởi một hàm bậc hai. Giá trị cực tiểu của hàm bậc hai này dùng nh đánh giá đầu tiên cho giá trị nhỏ nhất của hàm. Giá trị cực tiểu này cùng với hai điểm nữa dùng để tính ra một xấp xỉ tốt hơn, và cứ tiếp tục nh vậy. Cuối cùng, giá trị cực tiểu của hàm bậc hai sẽ xấp xỉ giá trị nhỏ nhất thực sự trong giới hạn sai số nào đó. Phơng pháp xấp xỉ bậc hai có thể mô tả bằng các bớc sau: Cho ba điểm liên tiếp nhau x 1 , x 2 , x 3 và giá trị hàm tơng ứng của nó f 1 , f 2 , f 3 chúng ta xác định ba hằng số của hàm bậc hai q(x) = a 0 + a 1 (x-x 1 ) + a 2 (x-x 1 )(x-x 2 ) (12.9) Vì f 1 = f(x 1 ) = q(x 1 ) = a 0 chúng ta có a 0 = f 1 (12.0) Vì f 2 = f(x 2 ) = q(x 2 ) =f 1 + a 1 (x 2 - x 1 ) chúng ta có 12 12 1 xx ff a (12.11) Cuối cùng tại x = x 3 ))(()()()( 2313213 12 12 1333 xxxxaxx xx ff fxqxff (12.12) 290 Để rút ra giới hạn cực đại (hoặc cực tiểu) chúng ta lấy vi phân q(x) theo x và cho biểu thức này bằng 0. 0)()( 22121 xxaxxaa dx dq Giải biểu thức trên theo biến x chúng ta rút ra giá trị đánh giá 2 112 22 a axx x (12.13) Chú ý rằng giá trị nhỏ nhất rút ra nếu 02 2 2 2 a xd qd (12.14) Thuật toán Powell dùng để đánh giá bậc hai liên tiếp đợc cho bởi Powell. Tuy nhiên, nếu nh a 2 bằng 0 thì hàm này không thể xấp xỉ bằng hàm bậc hai. Một phơng pháp bao gồm tìm kiếm tỷ lệ vàng và xấp xỉ bậc hai liên tiếp đợc cho bởi Brent. Phơng pháp của Brent đợc dùng cho hàm nhiều biến cho ở phần kế tiếp dới đây. 12.5.2 Thu hẹp giá trị nhỏ nhất Không có phơng pháp nào dùng các phần trên là không có bớc thu hẹp giá trị nhỏ nhất lúc ban đầu. Một lu đồ do Swann phát triển đợc tôi lựa chọn để dùng. Phơng pháp này đợc trình bày tốt nhất qua các thuật toán dới đây. 1. Lựa chọn giá trị ban đầu x 0 và một bớc nhỏ dx. 2. Tính x 1 = x 0 + dx y 1 = f(x 0 ) y 2 = f(x 1 ) 3. Nếu y 1 y 0 thì cho dx = -dx và tính x 1 = x 0 + dx y 1 = f(x 1 ) 4. Tính 291 dx = 2.0 * dx x 2 = x 1 + dx y 2 = f(x 2 ) 5. Lặp lại các bớc dới đây cho đến khi y 2 > y 1 dx = 2.0 * dx x 0 = x 1 y 0 = y 1 x 1 = x 2 y 1 = y 2 x 2 = x 1 + dx y 2 = f(x 2 ) 6. Miền thu gọn là (x 0 ,x 1 ) 12.5.3 Phơng pháp tối thiểu hoá hàm nhiều biến Có một số kỹ thuật có hiệu quả cho tối thiểu hoá một hàm nhiều biến. Phơng pháp mà hay đợc dùng sẽ xác định một hớng tìm kiếm trong không gian nhiều chiều. Tiếp theo, một phép xấp xỉ một biến sẽ xác định giá trị tối thiểu dọc theo hớng này. Mỗi lần một giá trị tối thiểu đợc tìm thấy, một hớng mới đợc tìm tìm thấy và quá trình tìm kiếm lại bắt đầu lại từ đầu. Điều này tiếp tục cho đến khi đạt đợc hội tụ. Quy tắc delta mô tả ở phần trên có liên hệ với một kỹ thuật gọi là sự hạ thấp dốc nhất. Tuy nhiên, vẫn cha có một kết quả nào đợc tạo ra để đa ra một sự tìm kiếm đơn biến dọc theo sự hạ thấp dốc nhất. Một sự khác biệt nữa là các mẫu đợc cho lần lợt tại từng thời điểm bằng sự sửa lại các trọng số. Trong sơ đồ hay đợc dùng nhất thì điều này không xảy ra, tất cả các mẫu đợc cung cấp cho chơng trình để tính một hớng tìm kiếm thuận tiện nhất. Bởi vì đây không phải là một quyển sách tối u, nên tôi sẽ trình bày với các bạn tất cả các phơng pháp tối u hoá cho hàm nhiều biến. Nhng tôi sẽ chỉ trình bày với bạn hai phơng pháp mà tôi thấy có kết quả nhất. Phơng pháp đầu tiên mà tôi trình bày đợc phát triển bởi Fletcher và Reeves gọi là phơng pháp gradient kết hợp. Gradient kết hợp là một hớng cơ sở đợc 292 thiết kế dùng để tối thiểu hoá một hàm bậc hai đầy đủ có N biến sau đúng N bớc. Một phơng pháp khác đợc phát triển bởi Daviđon, Fletcher, Reeves. Phơng pháp này thờng hay đợc dùng để tối thiểu hoá các hàm có số biến lớn. Bạn sẽ không cần phải hiểu các chứng minh của các thuật toán này khi áp dụng. Nếu bạn muốn tìm hiểu thêm, tôi đề nghị bạn hãy tìm đọc các cuốn sách đợc xuất bản gần đây nhất về tối u hoá. Tiếp theo tôi sẽ trình bày hai thuật toán này. Chúng ta sẽ giả thiết rằng hàm N biến đợc tối thiểu hoá cho dới dạng y = f(x 0 ,x 1 ,x 2 , ,x N-1 ) = f(X) và X = [ x 0 x 1 x 2 x N-1 ] 110 N x f x f x f f Phơng pháp gradient kết hợp Fletcher-Reeves. 1. Chọn các giá trị ban đầu cho X = [x 0 x 1 x 2 x N-1 ], và đặt biến đếm số lần lặp bằng không, ví dụ, iter = 0. Chọn số lần lặp lớn nhất cho phép. 2. Tính 110 N x f x f x f f 3. Đặt S = f = [s 0 s 1 s 2 s N-1 ] 4. Tính 1 0 || N i i dftest Nếu test < thì hội tụ đã đạt đợc, trả lại giá trị X và ra khỏi chơng trình. 5. Đặt f p = f. 6. Tối thiểu hoá, dùng một giả thiết không biến, các hàm sau theo 111100 , ,,( NN sxsxsxf 7. Sửa lại X = X + S. 8. Tính f(X). 9. Cập nhật giá trị của S dùng: 293 s XfXf XfXf XfS T pp T )()( )()( )( 10. Nếu 0 i i s x f cho i bất kỳ , đặt S = - f, ví dụ , dùng sự hạ thấp dốc nhất. 11. Tính iter = iter + 1 12. Nếu (iter < số lớn nhất của phép lặp cho phép) thì chuyển tới bớc 4, nếu không thì trả lại giá trị X và thoát ra khỏi chơng trình. Phơng pháp Davidon-Fletcher- Powell. Chúng ta coi rằng hàm N biến đợc tối thiểu cho bởi y = f(x 0 , x 1 , x 2 , , x N-1 ) = f(X). Thuật toán này bao gồm các bớc: 1. Chọn các giá trị ban đầu cho X = [x 0 x 1 x 2 x N-1 ], và đặt biến đếm số lần lặp bằng 0, ví dụ, iter = 0. Chọn số lần lặp lớn nhất cho phép. 2. Tính 110 N x f x f x f f 3. Đặt S = - f = [s 0 s 1 s 2 s N-1 ]. 4. Thiết lập ma trận H đồng nhất N N phần tử, ví dụ H = I. 5. Tính 1 0 || N i i dftest Nếu test < thì hội tụ đã đạt đợc, trả lại giá trị X và ra khỏi chơng trình. 6. Đặt f p = f. 7. Để tối thiểu hoá, dùng một phơng pháp một biến cho hàm dới đây theo biến 111100 , ,,( NN sxsxsxf 8. Thay X = X + S. 9. Tính f(X). 294 10. Tính Y = f - f p . 11. Cập nhật giá trị của H dùng các biểu thức dới đây: )( ))(( T TT YHY HYHY N T T SY SS M NMHH 12. Tính S = -H f. 13. Nếu 0 i i s x f cho i bất kỳ, đặt S = - f, cụ thể, dùng quãng dốc nhất. 14. Tính iter = iter +1. 15. Nếu (iter < giá trị lớn nhất của số lần lặp cho trớc) thì quay về bớc 5, nếu không thì trả lại giá trị X và ra khỏi chơng trình. Cho cả hai phơng pháp trên thì có thể rút ra bằng kỹ thuật tìm kiếm hàng của Brent. Để dùng các lu đồ này, gradient của hàm cần tính sẽ phải đợc tính. Các gradient này đợc cho bởi 1 0 0 0 )1()( M i iiiii xyyyd E (12.15) và 1 0 1 1 )1()( M i iiiii xyyyd E (12.16) Xấp xỉ gradient kết hợp dùng hàm sai lệch tổng chỉ đòi hỏi 36 lần lặp để đạt đợc hội tụ. Giá trị ban đầu đợc cho ngẫu nhiên và kết quả là 0 = 0.010559, 1 = 0.021119, và đợc chọn là 0.1. Giá trị sai lệch ban đầu của hàm là 7.3. Sau 36 lần lặp sai số giảm xuống 0.000134 và kết quả cho bởi 0 = 115.72, 1 = -104.03, và = 0,1. 295 Nhắc lại là quy tắc delta yêu cầu 15,000 phép lặp để sai số giảm xuống nhỏ hơn một một ít. Từ đây, ta có thể lựa chọn mà không nghi ngờ gì một kỹ thuật khi dạy một hệ thống thần kinh nhiều lớp. 12.6 Perceptron nhiều lớp Một perceptron đơn lẻ với hai đầu vào có thể biểu diễn dới dạng sơ đồ bằng một đờng thẳng chia hai lớp (Hình 12.5). Rõ ràng, để vây quanh một miền trong hệ thống hai đầu vào (2-D sysem) đòi hỏi ít nhất ba đờng thẳng (Hình 12.9). Điều này dẫn chúng ta một cách tự nhiên đến sơ đồ perceptron hai lớp cho trong hình (12.10). Hệ thống này bao gồm một lớp đầu vào, một lớp bị che khuất và một lớp đầu ra. Không khó khăn lắm để chỉ ra rằng cho một hệ thống ba đầu vào (3-D system) cần ít nhất bốn mặt dùng để bao kín miền, ví dụ, bốn perceptron hoặc nút sẽ phải cần tới trong lớp bị che khất. Tổng quát, cho một siêu không gian N chiều, (N + 1) siêu mặt phẳng sẽ cần để bao kín miền đợc cho, N + 1 perceptron hoặc nút đợc cần trong lớp bị che khuất. Một miền lồi là một miền mà trong nó bất cứ đờng nào nối các điểm trên đờng bao của miền cũng chỉ đi qua những Hình 12.9 Miền đợc bao quanh. 296 H×nh 12.10 Perceptron ba líp. H×nh 12.11 C¸c kiÓu kh¸c nhau cña miÒn quyÕt ®Þnh. 297 Hình 12.12 Mạng ba lớp tổng quát. điểm trong phạm vi miền đó. Một perceptron ba lớp, nói một cách khác, có thể chia thành các miền tuỳ ý và có thể tách thành các lớp khớp nhau nh trong hình 12.11. Hình 12.12 miêu tả một phần tử hệ thống cảm nhận ba lớp. Các quan hệ nối liền nhau không đợc thể hiện để làm cho sơ đồ không bị phức tạp. Chúng ta sẽ nhận đợc các đạo hàm theo các trọng số cho trờng hợp ba lớp. Chúng ta sẽ tính các biểu thức trong trờng hợp tổng quát, sau đó chúng ta cũng áp dụng các biểu thức này perceptron hai lớp. Sau đây chúng tôi sẽ cung cấp cho các bạn file nguồn cho một chơng trình tổng quát tính có thể dùng cho một hệ thống có kích thớc bất kỳ. Tất nhiên là một ví dụ cũng đợc cho theo kèm. Các trọng số đợc đánh số là ij l , ở đây i = vị trí nút trong lớp l - 1 j = vị trí nút trong lớp l Tổng của các tín hiệu vào vào bất kỳ nút nào đợc ký hiệu là net i l , ở đây i = vị trí nút trong lớp l +1 . Tín hiệu ra của từ bất kỳ nút nào trong mạng đợc ký hiệu là y i l , ở đây i = vị trí nút trong lớp l+1. Từ sơ đồ hình 12.12 chúng ta có thể viết hàm sai lệch tiếp theo: 1 0 2 )2( 1 0 3 )()( 2 1 N i i i M k kykdE (12.17) Để rút ra đạo hàm của E theo các trọng số chúng ta sẽ bắt đầu với các trọng số cung cấp cho lớp ra. Bởi thế, 1 0 )2( )2( )2( 1 0 )2( 3 )( )()( N i mn i ii M k mn ky kykd E Chúng ta có thể viết [...]... k 0 Bằng định nghĩa 2 2 ( m (k ) (d m (k ) y m (k )) f (net m2) (k )) (12.18) chúng ta có thể viết: M 1 E ( ( m2) (k ) y n1) (k ) (1) mn k 0 (12.19) Đạo hàm của E theo các trọng số cung cấp cho lớp ẩn thứ hai có thể rút ra theo: M 1 N 3 1 E yi( 2) (k ) ( 2) (d i (k ) yi (k )) (1 (1 mn) k 0 i 0 mn) Bây giờ yi( 2) (k ) yi( 2) neti( 2) (1) (1 mn neti( 2) mn) Công thức cuối cùng...y i( 2) (k ) ( n2 ) Cho nên y i( 2) (k ) net i( 2) (k ) f (net i( 2) (k )) net i( 2 ) (k ) (2 mn) N 2 1 ( 2) (1) y l (k ) ( 2 il net i( 2) (k ) mn) l 0 0 im f (net ( 2) (k )) y 1 (k ) i m m n M 1 E ( ( . đến sơ đồ perceptron hai lớp cho trong hình (12.10). Hệ thống này bao gồm một lớp đầu vào, một lớp bị che khuất và một lớp đầu ra. Không khó khăn lắm để chỉ ra rằng cho một hệ thống ba đầu vào. khi dạy một hệ thống thần kinh nhiều lớp. 12.6 Perceptron nhiều lớp Một perceptron đơn lẻ với hai đầu vào có thể biểu diễn dới dạng sơ đồ bằng một đờng thẳng chia hai lớp (Hình 12.5). Rõ ràng,. perceptron hai lớp. Sau đây chúng tôi sẽ cung cấp cho các bạn file nguồn cho một chơng trình tổng quát tính có thể dùng cho một hệ thống có kích thớc bất kỳ. Tất nhiên là một ví dụ cũng đợc cho theo

Ngày đăng: 29/07/2014, 04:20

Tài liệu cùng người dùng

Tài liệu liên quan