intTypePromotion=1
zunia.vn Tuyển sinh 2024 dành cho Gen-Z zunia.vn zunia.vn
ADSENSE

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

Chia sẻ: Cinny Cinny | Ngày: | Loại File: PDF | Số trang:9

81
lượt xem
5
download
 
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

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...

Chủ đề:
Lưu

Nội dung Text: Giáo trình xử lý ảnh y tế Tập 3 P4

  1. 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: 1 M 1  ( d  yi ) 2 (12.5) E 2 i 0 i ở đây di là đáp ứng ra mong muốn cho các mẫu Xi = [ x0, x1,..., xN-1], và yi là đáp ứng ra thực sự cho cùng các mẫu đầu vào này. Nếu yi là một hàm phi tuyến của trọng số có thể thay đổi được : W = [ w0 , w1, ... , wN], 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. 282
  2. 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 w0 và w1, và nếu y2 > y1 thì rõ ràng giá trị cực tiểu nằm giữa w1 và a2. Vì vậy, miền [a2, w2] 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 = F1 = 1 (12.6) Fn = Fn-1 + Fn-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 283
  3. trong tất cả các bước giới thiệu dưới đây Hình 12.8 Tìm kiếm Fibonacci. LN = 2  = F 2  LN-1 = 3  = F3  (12.7) LN-2 = 5  = F4  . . . L2 = FN  L1 = FN+1  ở đây Li là khoảng cách trong lần lặp thứ i, và Fk, 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  FN 1 hoặc 1 FN 1   và vì thế, nếu  được cho, thì N có thể xác định từ FN 1   1 tương tự, nếu N đã được cho, thì một kết quả lớn hơn 1  FN 1 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 a2 = L2 = FN và a1 = 1 - L2 = 1 - FN. Dựa trên kết quả, khoảng cách giữa [0,a1] hoặc [a2,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. 284
  4. Tìm kiếm tỷ lệ vàng được tính từ tìm kiếm Fibonacci. Nếu 1 F L2  FN  và   thì L2  N FN 1 FN 1 Giả sử L2 đượ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ún g). Hãy xấp xỉ L2 L2 . Vì thế bằng FN L2  lim N  FN 1 Cho N lớn FN F FN 1  N 1  L2  FN 1 FN 2 FN 1  FN FN 1 1 L2    hoặc FN 1 1  FN 1  L2 FN 1  L2  ( L2 ) 2  1 1 5  L2  2 5 1 L2   0.618 (12.8) 2 Trong khoảng [0,1], điểm bắt đầu tìm kiếm là a1 = 1 – 0.618 = 0.382 và a2 = 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, a2 = 0.618L +  1, và a1 =  1 + 2 - a2 (tham khảo hình 12.7). 285
  5. 3. Tính tol = 2 - 1; 4. Nếu tol <  thì dừng lại. 5. Tính y1 = f(a1) và y2 = f(a2). 6. Nếu y1 < y2 và a1 > a2 thì loại trừ miền [1,a2], cụ thể, 1 = a2 và a2 = 1 +  2 - a1 . Nếu y1 < y2 và a1 < a2 thì loại trừ miền [a2, 2], cụ thể, 2 = a1 và a2 =  1 +  2 - a1 . Nếu y1 > y2 và a1 > a2 thì loại trừ miền [a1,  2], cụ thể, 2 = a1 và a1 =  1 +  2 - a2 . Nếu y1 > y2 và a1 < a2 thì loại trừ miền [ 1,a1], cụ thể, 1 = a1 và a1 =  1 + 2 - a1 . 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 + 6x2 - x3 (Trả lời : 1.42256 cho khoảng [0,2]) 2 (Trả lời : 100) f(x) = (100 - x) f(x) = ex - 3x2 - 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 x1, x2, x3 và giá trị hàm tương ứng của nó f1, f2, f3 chúng ta xác định ba hằng số của hàm bậc hai q(x) = a0 + a1(x-x1) + a2(x-x1)(x-x2) (12.9) Vì f1 = f(x1) = q(x1) = a0 chúng ta có a 0 = f1 (12.0) Vì f2 = f(x2) = q(x2) =f1 + a1 (x2 - x1) f 2  f1 chúng ta có (12.11) a1  x 2  x1 Cuối cùng tại x = x3 286
  6. f 2  f1 (12.12) f 3  f ( x3 )  q( x3 )  f1  ( x3  x1 )  a 2 ( x3  x1 )( x3  x 2 ) x 2  x1 Để 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. dq  a1  a 2 ( x  x1 )  a 2 ( x  x 2 )  0 dx Giải biểu thức trên theo biến x chúng ta rút ra giá trị đánh giá x 2  x1 a 1 (12.13) x 2 2a 2 Chú ý rằng giá trị nhỏ nhất rút ra nếu d 2q (12.14)  2a 2  0 d 2x 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ư a2 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 x0 và một bước nhỏ dx. 2. Tính x1 = x0 + dx y1 = f(x0) y2 = f(x1) 3. Nếu y1  y0 thì cho dx = -dx và tính x1 = x0 + dx y1 = f(x1) 4. Tính dx = 2.0 * dx 287
  7. x2 = x1 + dx y2 = f(x2) 5. Lặp lại các bước dưới đây cho đến khi y2 > y1 dx = 2.0 * dx x0 = x1 y0 = y1 x1 = x2 y1 = y 2 x2 = x1 + dx y2 = f(x2) 6. Miền thu gọn là (x0,x1) 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. 288
  8. 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(x0,x1,x2,...,xN-1) = f(X) và X = [ x0 x1 x2 ... xN-1]  f f f  f   ...   x0 x1 x N 1  Phương pháp gradient kết hợp Fletcher-Reeves. 1. Chọn các giá trị ban đầu cho X = [x0 x1 x2 ... xN-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  f f f  f   ...   x0 x1 x N 1  3. Đặt S =  f = [s0 s1 s2 ... sN-1] 4. Tính N 1  | df i | test  i0 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 fp = f. 6. Tối thiểu hoá, dùng một giả thiết không biến, các hàm sau theo  f ( x0  s 0 , x1  s1 ,..., x N 1  s N 1 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: f ( X )f ( X ) T S  f ( X )  s f ( X ) p f ( X ) T p 10. Nếu f si  0 x i 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 289
  9. 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(x0, x1 , x2, ..., xN-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 = [x0 x1 x2 ... xN-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  f f f  f   ...   x0 x1 x N 1  3. Đặt S = -f = [s0 s1 s2 ... sN-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 N 1 test   | df i | i 0 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 fp = 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  f ( x0  s 0 , x1  s1 ,..., x N 1  s N 1 8. Thay X = X + S. 9. Tính f(X). 10. Tính Y = f - fp. 11. Cập nhật giá trị của H dùng các biểu thức dưới đây: ( HY T )(Y T H ) N  (YHY T ) ST S M  SY T H H M N 12. Tính S = -Hf. 13. Nếu 290
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
2=>2