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

11 224 2
Mạng thần kinh nhân tạo cho phân lớp màu sắc part 1 pot

Đ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

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 cha đạ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 cha 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. 256 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 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 257 đợ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 (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. 258 Hình 12.2 Sơ đồ đơn giản hoá của tế bào thần kinh. 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 cha đợ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). 259 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 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) 260 H×nh 12.4 C¸c phÇn tö tÝnh to¸n cña mét hÖ thèng thÇn kinh. 261 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 : 262 W W E k k k( ) ( ) ( ) 1 ở đâ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, nhng 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> 263 #include <io.h> #include <custom.h> #define eta 0.8 #define alpha 0.2 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; 264 gotoxy(1,10); printf("Press ESC to exit before convergence."); while(ind) { x[0]=x1[i]; 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); printf("\n w[0]=%f W [1] =%f",w[0], w [1] ); exit (1) ; } if(kbhit()!=0) { gotoxy (1, 7); if(getch()==27) { printf("\n w[0]=%f w [1] =%f",w[0],w [1] ); exit (1) ; } } } } Trên đĩa đi kèm đã có sẵn file dữ liệu có tên là "TINT.DAT" rút ra từ sơ đồ màu Dùng = 0.8 và = 0.2, phải mất gần 200 lần lặp để làm cho sai số... Sau 15 ,000 phép lặp sai số đã giảm xuống nhỏ hơn 1 và tiếp tục giảm xuống Thay = 0.2 và = 0.8 sự hội tụ sẽ chậm hơn Trước khi chúng ta nghiên cứu một phương pháp tốt hơn cho tính toán giá trị cảm nhận, chúng tôi sẽ cung cấp cho bạn công cụ thu nhập dữ liệu 12 .4 Thu nhập dữ liệu cho các lớp màu sắc Chương trình cho ở dưới đây chỉ làm việc trên vỉ mạch ATI PIB đã được đề cập đến trong chương 11 Bạn... sửa đổi làm cho nó tương thích với các phần cứng thông dụng; các sửa đổi này không có gì là khó khăn lắm Chương trình này có sử dụng chuột Nếu bạn có vỉ mạch ATI PIB , đầu tiên bạn cần nạp một ảnh trên màn hình PIB Chạy chương trình và con trỏ sẽ xuất hiện trên màn hình Dùng chuột, thay thế con trỏ trên sắc màu mà bạn muốn tách ra (một perceptron đơn thì sẽ không thể tách ra được một sắc màu; chúng... và con trỏ sẽ xuất hiện trên màn hình Dùng chuột, thay thế con trỏ trên sắc màu mà bạn muốn tách ra (một perceptron đơn thì sẽ không thể tách ra được một sắc màu; chúng ta sẽ đề cập đến việc tách các sắc màu ở phần cuối chương này) 265 . 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. đồ đơn giản hoá của tế bào thần kinh. 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 10 0 tỷ phép tính một giây. Một. 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) 260 H×nh 12 .4 C¸c phÇn tö tÝnh to¸n cña mét hÖ thèng thÇn kinh. 2 61 Hình 12 .5 Một hàm phân chia

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

Từ khóa liên quan

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

Tài liệu liên quan