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

9 286 0
Giáo trình xử lý ảnh y tế Tập 3 P1 pdf

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

Thông tin tài liệu

255 CHƯƠNG 12 MẠNG THẦN KINH NHÂN TẠO CHO PHÂN LỚP MÀU SẮC 12.1 Chỉ dẫn Không nghi ngờ gì nữa, con người là cách tốt nhất để phân loại màu sắc. Tuy nhiên, các ứng dụng đòi hỏi sự phân loại màu trực tuyến và sửa lại tín hiệu sắc màu một cách có lựa chọn như trong tín hiệu truyền hình màu, thay thế cho sự phân lớp của con người là cần phải có. May mắn thay, một nhóm các kiểu phân loại được mô hình hoá theo kiểu trí tuệ sinh vật (hệ thống thần kinh nhân tạo) đã được phát triển và nghiên cứu trong một thời gian dài. Mục tiêu của các nghiên cứu này là đạt được tới mức giống như con người. Chúng ta chưa đạt được mục tiêu này. Sự thách thức là chúng ta phải hiểu được bằng cách nào mà một loạt các tác động thần kinh đem lại cho chúng ta khả năng nhìn, nghe, cảm giác, chuyển động Mặc dù chúng ta đã có những hiểu biết đúng đắn cấu tạo của tổ chức bộ não con người, chúng ta vẫn không hiểu một cách đầy đủ bằng cách nào mà con người có thể có một loạt các chức năng như vậy. Khả năng học hỏi và thích nghi của con người vẫn còn là một điều bí ẩn. Một trích dẫn rất đáng quan tâm, "Tôi đã để lại các dấu hiệu như một bằng chứng về sự tồn tại của tôi, cái nào trong số các dấu hiệu này bạn phản đối? Tôi đã tạo ra con người, tôi đã dạy [lập trình] cho họ có khả năng nhận biết " (Kinh Coran, Suret Al-Rahman). Con người nhận ra họ có khả năng phát minh ra các công cụ ngay từ khi họ mới được tạo ra. Phần lớn các sáng tạo của con người đều dựa trên ham muốn tìm hiểu trong lĩnh vực vật lý. Bằng tất cả các khám phá, con người lại quay trở về để tìm hiểu chính bản thân mình. Cùng với sự ra đời của phần mềm, tự động hoá, phỏng sinh học ta đã có thể mô phỏng một số chức năng của con người qua các phần cứng và phần mềm mô phỏng. Giống như khi bắt đầu, hệ thống thần kinh nhân tạo vẫn chưa mô phỏng được dạng thức con người; tuy nhiên, các cấu trúc này có rất nhiều ứng dụng hữu ích. Một trong những ứng dụng sẽ trình bày ở phần dưới đây là phân lớp màu sắc. Trong chương này chúng ta sẽ xem xét một loạt các mô hình thần kinh nhân tạo, cách thức nhận thức của chúng, và hiệu quả trong phân lớp màu. 12.2 Hệ thống thần kinh sinh vật Mắt cảm nhận ánh sáng xung quanh chúng ta và chuyển chúng thành các xung điện, sau đó đưa về bộ nhớ qua các dây thần kinh. Tại phía sau của mắt, một lưới dây thần kinh từ giác mạc tạo thành các dây thần kinh cảm quang. Hai lưới dây thần kinh cảm quang gặp nhau tại một miền có tên là giao thoa thị giác (optic 256 chiasm). Tại miền này hai dây tạo thành một lưới, và được chia làm hai vùng cảm quang đi tới bên trái và bên phải của não. Tất cả các miền này mang tín hiệu từ hai mắt, và não tổng hợp được hình ảnh thực sự. Vùng của não cho các đáp ứng của hình ảnh gọi là vỏ não thị giác (Hình 12.1). Nếu mỗi vùng của não nhận được hai ảnh của vật thể, mỗi ảnh lấy từ một mắt với một góc nhìn khác nhau nhỏ thì kết quả ta sẽ nhận được một hình ảnh ba chiều hay còn gọi là hình ảnh nổi. Tại não, một số khổng lồ các liên lạc của các tế bào thần kinh tạo ra xử lý thông tin. Hình 12.1 Các đường thị giác của bộ não. Hình 12.2 là một sơ đồ đơn giản hoá của tế bào thần kinh. Nó bao gồm một tế bào (soma) với dây thần kinh vào (dendrites) và dây thần kinh ra (axons). Các dây thần kinh vào nhận các tín hiệu kích thích hoặc các tín hiệu kiềm chế. Các tín hiệu kích thích làm tăng và các tín hiệu kiềm chế làm chậm khả năng phát tín hiệu của thần kinh. Các dây thần kinh ra đưa tín hiệu đến một tế bào khác. Thông tin được chuyển qua các hình hành cuối khớp thần kinh (synaptic-end bulbs) và nhận bởi dây thần kinh vào thông qua vùng chuyển tiếp. Hình hành cuối khớp thần kinh và vùng chuyển tiếp được chia ra bằng một lỗ hở vào khoảng một phần triệu inch, và chuyển tiếp tín hiệu qua lỗ hổng này bởi cơ chế hoá điện (hình 12.3). Phần cuối hành và miền chuyển tiếp được gọi là khớp thần kinh (synapse). Tín hiệu đi trong dây thần kinh vào và dây thần kinh ra như một dòng điện. Có rất nhiều kiểu dây thần kinh trong não và một số lớn các tế bào trạng thái và chức năng. Một số hạn chế các xung mà có khả năng làm quá tải mạch cảm biến. Một số đưa tin tức tổng hợp đến bề mặt não, một số khác nhận tín hiệu đưa vào. Các hành ở khớp thần kinh chứa các túi nhỏ bé gọi là các túi khớp thần kinh (hình 12.3). Mỗi túi chứa hàng ngàn các phân tử gọi là chuyển tiếp thần kinh 257 (neurotransmitter). Khi một tín hiệu thần kinh đến hành của khớp thần kinh, các túi hợp nhất với màng, làm tràn các chất chứa bên trong vào các lỗ của khớp thần kinh. Các chuyển tiếp thần kinh gắn chặt với các phần tử tiếp nhận ở tâm của tế bào; làm mở các tuyến tiếp nhận và cho phép các ion natri đi vào trong tâm tế bào và các ion kali đi ra. Dòng của các ion kích thích các màng của tâm tế bào và tạo ra xung điện trong tế bào trung tâm. Hình 12.2 Sơ đồ đơn giản hoá của tế bào thần kinh. 258 Hình 12.3 Các khớp thần kinh. Con người có vào khoảng xấp xỉ 10 11 tế bào thần kinh, ước lượng có khả năng thực hiện trên 100 tỷ phép tính một giây. Một siêu máy tính Cray X_MP, một loại máy tính nhanh nhất hiện nay, có khả làm được 0.8 tỷ phép tính một giây. Con người nhanh hơn 100 lần bất kỳ một loại máy tính hiện đại nào, với ưu điểm hơn hẳn về kích thước nhỏ gọn và đòi hỏi ít hơn hẳn năng lượng. Một tính chất cũng cần phải nói tới là bộ não con người được thiết kế để xử lý ba chiều. Trong khi đó, các mạch tích hợp thường là hai chiều, và với sự tiến bộ ngày nay việc thiết kế mạch tích hợp ba chiều vẫn chưa được hoàn thiện hoặc thậm chí cũng không gần được như kiểu tích hợp ba chiều của bộ não con người. 12.3 Perceptron Hình 12.4 giới thiệu cái mà người ta tin rằng đó là mô hình thuật toán học cho một tế bào thần kinh đơn lẻ. Chú ý là có N đầu vào, cung cấp giá trị ngưỡng  , và cho kết quả đi qua một hàm phi tuyến. Tín hiệu ra có thể là giá trị 1 kích thích cho một dây thần kinh, hoặc là 0 (-1 cũng có thể được dùng). Hàm phi tuyến hay được dùng là hàm xichma và hàm giới hạn (logic ngưỡng). Cấu trúc trong hình 12.4 gọi là perceptron, và là cơ sở cho một cách phân lớp tuyến tính mà có thể chia ra làm hai lớp tách rời nhau như trong hình 12.5. Tín hiệu ra từ perceptron có thể viết dưới dạng y f  ( )  (12.1) ở đây         i i i N x 0 1 (12.2) Một sơ đồ xác định các trọng số {w 0 , w 1 , w 2 , , w N } và có hàm f() chia thành hai lớp A và B phân biệt gọi là sơ đồ nhận thức.  gọi là giá trị ngưỡng, và thường nằm trong khoảng 0 đến 1. Xuất phát từ sơ đồ nhận thức, chúng ta sẽ xem xét một perceptron chỉ có hai đầu vào:        0 0 1 1 x x (12.3) x 0 ký hiệu cho đặc điểm màu x của sơ đồ màu, x 1 là đặc điểm màu y. Nếu chúng ta muốn perceptron phân biệt hai màu A và B, chúng ta sẽ chờ đầu ra cho giá trị 1 nếu (x 0 ,x 1 ) thuộc về màu A, và 0 nếu đầu vào thuộc B. Theo các giả thiết trên chúng ta có thể viết: nếu (x 0 , x 1 )  A d P = 1 259 nếu (x 0 , x 1 )  B d P = 0 ở đây ký hiệu p biểu thị cho một mẫu của (x 0 , x 1 ) và d P biểu thị cho đáp ứng mong muốn cho mẫu này. Nếu (w 0 , w 1 ) đã biết thì đáp ứng ra thực sự y có thể tính từ biểu thức (12.1). Sai số cho việc đọc mẫu này có thể cho bởi E d y p p p   1 2 2 ( ) (12.4) Hình 12.4 Các phần tử tính toán của một hệ thống thần kinh. 260 Hình 12.5 Một hàm phân chia đơn giản của một lớp. Vấn đề cần giải quyết là tối thiểu hoá E P đối với w 0 và w 1 cho tất cả các mẫu lấy vào (x 0 ,x 1 ) P . Biểu thức (12.1) cung cấp sự phân chia chính xác giữa hai lớp màu như trong hình (12.5). E P là hàm phi tuyến của các biến w 0 và w 1 và vì vậy các giản đồ phi tuyến cần được sử dụng để tối thiểu hoá nó. Nếu y cho bởi hàm xichma y f e     ( )   1 1 và sau đó nếu lấy vi phân E P theo w 0 ta được:    E d y y y x p p p p p p 0    ( ) ( )1 0 và theo w 1 ta được :    E d y y y x p p p p p p 1    ( ) ( )1 1 Thuật toán rút ra giá trị của các trọng số theo các bước sau: 1.Cho các trọng số (w 0 , w 1 ) và  các giá trị ngẫu nhiên nhỏ. Tại bước lặp thứ k: 2. Cho một giá trị đầu vào (x 0 , x 1 ) và chọn giá trị đầu ra theo ý thích: 1 nếu thuộc về một lớp màu và 0 nếu thuộc về lớp màu còn lại. 3. Tính tín hiệu ra thực sự y. 4. Tính     ( ) ( )d y y y1 5. Tính các gradient          E E E x       0 1 0 [ ] - x 1 6. Thay đổi các trọng số dùng biểu thức : W W E k k k( ) ( ) ( )    1  261 ở đây W k = [ w 0 w 1 ] (k) = các trọng số tại bước lặp thứ k và  là một phân số dương nhỏ hơn 1. 7. Cho đầu vào giá trị mới hoặc nếu dữ liệu đã được đọc tất cả, đọc lại tập các giá trị của dữ liệu. Quay lại bước 2 và lặp lại cho đến khi hàm trọng số thoả mãn, cụ thể là   i k i k W    1 ( ) i= 0 ,1. Hội tụ trong một số trường hợp sẽ nhanh hơn nếu xung lượng (moment) được cộng thêm vào và trọng số được làm giảm đi bởi: W W E E E k k k k k( ) ( ) ( ) ( ) ( ) (          1 1   ở đây 0 <  <1. Thuật toán trên gọi là quy tắc "delta", được dùng rộng rãi trong tài liệu. Mặc dù thuật toán trên có thể tính trọng số cho các lớp, nhưng nó đòi hỏi một số rất lớn các phép lặp để hội tụ. Việc chọn hai tham số  và  có vẻ như là tuỳ ý. Để cho bạn có thể kiểm tra thuật toán quy tắc delta chúng tôi cho ở dưới đây một chương trình C thiết kế cho một perceptron với hai đầu vào. Chương trình 12.1 “PERECEPT.C” Perceptron học nhận thức bằng quy tắc denlta /*Program 12.1 "PERECEPT.C". Perceptron learning using the delta rule. */ /************************************ * Developed by M.A.Sid_Ahmed. * * ver. I.O. 1992. * * @ 1994 * *************************************/ /* Teaching a single pereptrjon using the delta rule. */ #include <stdio.h> #include <stdlib.h> #include <math.h> #include <conio.h> #include <io.h> #include <custom.h> #define eta 0.8 #define alpha 0.2 262 void main() { unsigned int d[200]; unsigned int N,ind,iter,i; float w[2],x[2],x1[200],x2[200],net,E; float dEp[2],sum,y,theta,dEp_old[2],delta; FILE *fptr; char file_name[14]; clrscr(); N=0; iter=0; gotoxy(1,1); printf("Enter file name containing data >"); scanf("%s", file_name); fptr=fopen(file_name,"r"); if(fptr==NULL) { printf("file %s does not exist.",file_name); exit(1); } while((fscanf(fptr,"%f %f %d ",&x1[N], &x2[N],&d[N])!=EOF)) N++; fclose(fptr); srand(1); w[0]=(float)rand()/32768.00; srand(2); w[1]=(float)rand()/32768.00; theta=0.1; i=0; sum=0.0; ind=1; gotoxy(1,10); printf("Press ESC to exit before convergence."); while(ind) { x[0]=x1[i]; 263 x[1]=x2[i]; gotoxy(1,3); printf("Iteration # %5d ",iter); net=w[0]*x[0]+w[1]*x[1]+theta; if(net>=20) E=0.0; else E=exp(-(double)net); y=1.0/(1.0+E); delta=(d[i]-y)*y*(1.0-y); dEp[0]=x[0]*delta; dEp[1]=x[1]*delta; if(i==0) { w[0]+=eta*dEp[0]; w[1]+=eta*dEp[1]; dEp_old[0]=dEp[0]; dEp_old[1]=dEp[1]; } else { w[0]+=eta*dEp[0]+alpha*(dEp[0]-dEp_old[0]); w[1]+=eta*dEp[1]+alpha*(dEp[1]-dEp_old[1]); dEp_old[0]=dEp[0]; dEp_old[1]=dEp[1]; } sum+=fabs((double)(d[i]-y)); i++; if(i>=N) { gotoxy(1,6); printf(" Square error= %f",sum); i=0; sum=0; iter++; } if(d[i]==1) gotoxy(1,4); else gotoxy(1,5); printf("%d %f", d[i],y); if((i==N)&&(sum<=1.0e-1)) { gotoxy(1,7); . phép tính một gi y. Một siêu m y tính Cray X_MP, một loại m y tính nhanh nhất hiện nay, có khả làm được 0.8 tỷ phép tính một gi y. Con người nhanh hơn 100 lần bất kỳ một loại m y tính hiện đại. Các d y thần kinh ra đưa tín hiệu đến một tế bào khác. Thông tin được chuyển qua các hình hành cuối khớp thần kinh (synaptic-end bulbs) và nhận bởi d y thần kinh vào thông qua vùng chuyển tiếp dạng thức con người; tuy nhiên, các cấu trúc n y có rất nhiều ứng dụng hữu ích. Một trong những ứng dụng sẽ trình b y ở phần dưới đ y là phân lớp màu sắc. Trong chương n y chúng ta sẽ xem xét

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

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

  • Đang cập nhật ...

Tài liệu liên quan