Giáo trình xử lý ảnh y tế Tập 3 P4 pptx

9 363 0
Giáo trình xử lý ảnh y tế Tập 3 P4 pptx

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

Thông tin tài liệu

282 hàng trăm phép lặp, và để giải quyết hết các vấn đề thì số phép lặp lên đến hàng nghìn. Một perceptron có hai đầu vào và vì vậy có hai trọng số có thể thay đổi được, phần tử mà tự nó có thể chia được hai lớp màu riêng biệt nhau, đòi hỏi một số lượng phép tính như trong trường hợp phân chia lớp màu trong file "TINT.DAT". Nếu tất cả các phép tính này cần thoả mãn cho một bài toán đơn giản như vậy, thì bạn tưởng tượng điều gì sẽ xảy ra nếu chúng ta dùng phương pháp này để dạy cho một cấu trúc thần kinh đa chức năng. Vấn đề cấp thiết đặt ra là phải tìm cách để đảm bảo sự hội tụ xảy ra với tốc độ nhanh hơn. Yêu cầu thực tế bây giờ là phải tối thiểu hoá, và đòi hỏi cho sự tối thiểu hoá này là hàm sai lệch tổng: E d y i i i M      1 2 2 0 1 ( ) (12.5) ở đây d i là đáp ứng ra mong muốn cho các mẫu X i = [ x 0 , x 1 , , x N-1 ], và y i là đáp ứng ra thực sự cho cùng các mẫu đầu vào này. Nếu y i là một hàm phi tuyến của trọng số có thể thay đổi được : W = [ w 0 , w 1 , , w N ], vấn đề trở thành bài toán tối thiểu hoá một hàm phi tuyến. Vì vậy, chúng ta sẽ tìm kiếm các phương pháp từ phạm vi phi tuyến đã được chứng minh để có kết quả trong việc giải quyết các vấn dề tương tự. 12.5.1 Phương pháp tìm kiếm bất biến Một phương pháp hay dùng nhất để rút ra giá trị nhỏ nhất của một hàm đơn biến là phương pháp tỷ lệ vàng (Golden Section). Phương pháp này dựa trên một giản đồ loại trừ miền, và giả thiết rằng hàm chỉ có một giá trị nhỏ nhất trong một miền xác định trước. Hàm như thế gọi là hàm đơn điệu. Giản đồ loại trừ miền trong trường hợp tổng quát có thể giải thích bằng biểu đồ như trong hình 12.7. 283 Hình 12.7 Sơ đồ loại trừ miền. Trong hình 12.7, nếu hai điểm được chọn trong miền giữa w 0 và w 1 , và nếu y 2 > y 1 thì rõ ràng giá trị cực tiểu nằm giữa w 1 và a 2 . Vì vậy, miền [a 2 , w 2 ] có thể loại trừ khỏi vùng tìm kiếm. Nếu hai điểm khác được lựa chọn trong miền nhỏ hơn và phép xử lý được lặp lại, miền tìm kiếm sẽ bị co hẹp lại. Cuối cùng, giá trị nhỏ nhất được thu hẹp nằm trong một vùng rất nhỏ. Một câu hỏi đặt ra: Bằng cách nào chúng ta chọn được các điểm nằm bên trong này? Một câu hỏi khó hơn nữa sẽ là: Có điều kiện gì cho việc tìm kiếm một dãy các điểm này để giá trị nhỏ nhất thu hẹp trong một vùng có độ rộng 2  sau một số xác định các bước? Câu trả lời cho vấn đề này đã được Kiefer tìm ra vào năm 1953. Cách tìm kiếm lần lượt được biết dưới tên tìm kiếm Fibonacci. Phép tìm kiếm này dựa trên dãy số nguyên do Fibonacci đưa ra vào thế kỉ 13. Một phương pháp tìm kiếm không đòi hỏi toàn bộ dãy số nguyên Fibonacci được đưa ra dưới tên là tìm kiếm tỷ lệ vàng (Golden Section). Chứng minh của phương pháp này vẫn chưa được trình bày trong cuốn sách này; nhưng bởi vì nó đơn giản và tôi đoán chắc là bạn muốn tìm hiểu, nên tôi sẽ trình bày với bạn phần chứng minh: Chúng ta sẽ giả sử rằng việc tìm kiếm cho tìm kiếm Fibonacci sẽ tiến hành trên miền chuẩn hoá [0, 1]. Dãy số nguyên Fibonacci được định nghĩa bằng các biểu thức: F 0 = F 1 = 1 (12.6) F n = F n-1 + F n-2 n = 2,3, Nếu N các giá trị hàm được dùng để tính  , nếu chúng ta đã bắt đầu lùi từ phía sau kết quả và chuyển dịch về phía trước tới đầu miền trong khi mở rộng miền 284 trong tất cả các bước giới thiệu dưới đây Hình 12.8 Tìm kiếm Fibonacci. L N = 2  = F 2  L N-1 = 3  = F 3  (12.7) L N-2 = 5  = F 4  . . . L 2 = F N  L 1 = F N+1  ở đây L i là khoảng cách trong lần lặp thứ i, và F k , k = 2, 3, , N+1 là các số Fibonacci. Nếu khoảng cách đầu tiên là [0,1] thì biểu thức cuối cùng của (12.7) có thể viết thành    1 1 F N hoặc F N   1 1  và vì thế, nếu  được cho, thì N có thể xác định từ F N    1 1  tương tự, nếu N đã được cho, thì một kết quả lớn hơn    1 1 F N không được mong đợi. Các bước thực hiện của tìm kiếm Fibonacci rất đơn giản. Hai giá trị hàm ban đầu được xác định tại a 2 = L 2 = F N  và a 1 = 1 - L 2 = 1 - F N  . Dựa trên kết quả, khoảng cách giữa [0,a 1 ] hoặc [a 2 ,1] được loại trừ và một điểm mới được lấy ra trong phần đối xứng khoảng cách còn lại với sự lưu tâm đến điểm bên trong. Bước xử lý này được lặp lại cho đến khi tất cả N giá trị hàm đã được xác định. 285 Tìm kiếm tỷ lệ vàng được tính từ tìm kiếm Fibonacci. Nếu L F N2   và    1 1 F N thì L F F N N 2 1   Giả sử L 2 được chọn từ giả thuyết rằng một số lớn các giá trị hàm sẽ được tạo ra (thậm chí ngay cả khi chúng ta không có ý định tạo ra chúng). Hãy xấp xỉ L 2 bằng L 2 . Vì thế L F F N N N 2 1    lim Cho N lớn 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 0618   . (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). 286 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 . 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 287 ))(()()()( 2313213 12 12 1333 xxxxaxx xx ff fxqxff     (12.12) Để 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 lưu đồ 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 dx = 2.0 * dx 288 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 chưa 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. Nhưng 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 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. 289 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: 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 290 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). 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 . x = x 3 287 ))(()()()( 231 32 13 12 12 133 3 xxxxaxx xx ff fxqxff     (12.12) Để 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. 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 .  f(X). 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

Ngày đăng: 10/07/2014, 22:20

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

Tài liệu liên quan