Báo cáo đồ án trí tuệ nhân tạo: Xây dưng chương trình nhận dạng số viết tay dùng mạng noron

21 1.1K 6
Báo cáo đồ án trí tuệ nhân tạo: Xây dưng chương trình nhận dạng số viết tay dùng mạng noron

Đ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

CHƯƠNG 1: CĂN BẢN VỀ MẠNG NEURAL 1. Lý thuyết : 1.1. Cấu trúc mạng Nơron : + Mạng Nơron một tầng : Một mạng Nơron một tầng gồm S nơron được cho bởi hình dưới đây. Chú ý rằng mỗi môt đầu vào của R đầu vào được nối với mỗi Nơron và do đó trọng số W bây giờ là ma trận cấp SxR. Tầng mạng bao gồm ma trận trọng số, các bộ tổng, véctơ bias b, các hộp hàm truyền và véctơ đầu ra a. Ở đây : p = [p1, p2, p3, ..., pR]TRx1; b = [b1 b2 .... bS]TSx1 n = [n1 n2 .... nS]TSx1 ; a = [a1 a2 .... aS]TSx1 ; a = f(n) = [f(n1) f(n2) .... f(ns)]TSx1 at = f(nt) = f(wt.p + bt). t = 1...S. trong đó Wt =[wt1 wt2 ..... wtR] là hàng thứ t của W. + Mạng nơron nhiều tầng Đối với mạng Nơron nhiều tầng, mỗi tầng có ma trận trọng số W riêng của nó, có véctơ bias b riêng. Khi đó các đầu ra của tầng thứ i bất kỳ không phải là tầng cuối cùng là đầu vào của tầng thứ i+1. Dưới đây là một mô hình mạng nhiều tầng (ví dụ 3 tầng) : 1.2.Perceptron đa lớp và giải thuật lan truyền ngược (BP) a. Mạng Perceptron đa lớp : Ta xét ví dụ mạng Perceptron 3 lớp sau : Đầu ra của lớp thứ nhất là đầu vào của lớp thứ hai và đầu ra của lớp thứ hai là đầu vào của lớp thứ ba. Mỗi một tầng có thể có số lượng các nơron khác nhau, thậm chí là cả hàm truyền khác nhau. Tầng nhận tín hiệu gọi là tầng vào và tầng cuối cùng gọi là tầng ra. Các tầng giữa hai tầng này gọi là tầng ẩn. Việc chọn số lượng các nơron của các tầng và số tầng cho mạng là tương đối động, ta sẽ chọn tùy thuộc vào từng bài toán cụ thể. Thông thường, ta chỉ cần chọn số tầng từ 2 đến 3 là đủ để huấn luyện mọi bài toán phân lớp. Số nơron của tầng vào khoảng bằng một nửa số thuộc tính của đầu vào và số nơron của đầu ra bằng số chiều của vectơ đầu ra của mạng. Trong bài toán cụ thể của chúng tôi, chúng tôi đã dùng số nơron là 1 hoặc 5 cho lớp thứ nhất và 1 nơron cho lớp thứ hai để so sánh độ chính xác của mạng.

HỌC VIỆN KỸ THUẬT QUÂN SỰ KHOA CÔNG NGHỆ THÔNG TIN BÁO CÁO MÔN HỌC TRÍ TUỆ NHÂN TẠO Giáo viên hướng dẫn: Ngô Hữu Phúc HÀ NỘI 3/2010 CHƯƠNG 1: CĂN BẢN VỀ MẠNG NEURAL 1. Lý thuyết : 1.1. Cấu trúc mạng Nơron : + Mạng Nơron một tầng : Một mạng Nơron một tầng gồm S nơron được cho bởi hình dưới đây. Chú ý rằng mỗi môt đầu vào của R đầu vào được nối với mỗi Nơrondo đó trọng số W bây giờ là ma trận cấp SxR. Tầng mạng bao gồm ma trận trọng số, các bộ tổng, véctơ bias b, các hộp hàm truyền và véctơ đầu ra a. Ở đây : p = [p 1 , p 2 , p 3 , , p R ] T Rx1 ; b = [b 1 b 2 b S ] T Sx1 n = [n 1 n 2 n S ] T Sx1 ; a = [a 1 a 2 a S ] T Sx1 ; a = f(n) = [f(n 1 ) f(n 2 ) f(n s )] T Sx1 a t = f(n t ) = f(w t .p + b t ). t = 1 S. trong đó W t =[w t1 w t2 w tR ] là hàng thứ t của W. + Mạng nơron nhiều tầng Đối với mạng Nơron nhiều tầng, mỗi tầng có ma trận trọng số W riêng của nó, có véctơ bias b riêng. Khi đó các đầu ra của tầng thứ i bất kỳ không phải là tầng cuối cùng là đầu vào của tầng thứ i+1. Dưới đây là một mô hình mạng nhiều tầng (ví dụ 3 tầng) : 1.2.Perceptron đa lớp và giải thuật lan truyền ngược (BP) a. Mạng Perceptron đa lớp : Ta xét ví dụ mạng Perceptron 3 lớp sau : Đầu ra của lớp thứ nhất là đầu vào của lớp thứ hai và đầu ra của lớp thứ hai là đầu vào của lớp thứ ba. Mỗi một tầng có thể có số lượng các nơron khác nhau, thậm chí là cả hàm truyền khác nhau. Tầng nhận tín hiệu gọi là tầng vào và tầng cuối cùng gọi là tầng ra. Các tầng giữa hai tầng này gọi là tầng ẩn. Việc chọn số lượng các nơron của các tầng và số tầng cho mạng là tương đối động, ta sẽ chọn tùy thuộc vào từng bài toán cụ thể. Thông thường, ta chỉ cần chọn số tầng từ 2 đến 3 là đủ để huấn luyện mọi bài toán phân lớp. Số nơron của tầng vào khoảng bằng một nửa số thuộc tính của đầu vào và số nơron của đầu ra bằng số chiều của vectơ đầu ra của mạng. Trong bài toán cụ thể của chúng tôi, chúng tôi đã dùng số nơron là 1 hoặc 5 cho lớp thứ nhất và 1 nơron cho lớp thứ hai để so sánh độ chính xác của mạng. b.Giải thuật lan truyền ngược : Bước 1 : Truyền giá trị đầu vào xuôi theo mạng Khởi tạo : Các nơron ở tầng thứ nhất nhận các giá trị đầu vào bên ngoài. a 0 = p Đối với mạng có M lớp thì đầu ra mỗi tầng là đầu vào của tầng tiếp theo, do vậy ta có công thức biểu diễn các thao tác này là : a m+1 = f m+1 (W m+1 a m +b m+1 ) với m=0,1, ,M-1. Bước 2 : Truyền độ nhạy ngược lại trong mạng : Độ nhạy được tính từ tầng cuối cùng là lan truyền ngược lại cho đến tầng đầu : theo công thức : trong đó : Một số Heuristics cho giải thuật lan truyền ngược : • Cập nhật theo chế độ tuần tự (online) hay batch (epoch) : Thường việc học theo chế độ tuần tự giúp BP hội tụ nhanh hơn, đặc biệt khi dữ liệu lơn và dư thừa. • Chuần hóa giá trị đầu ra : Đảm bảo giá trị đầu ra nằm trong miền giá trị của hàm chuyển trên các nơron đầu ra tương ứng. • Chuẩn hóa giá trị đầu vào : Đảm bảo giá trị trung bình gần 0 hoặc nhỏ so với độ lệch tiêu chuẩn. Các giá trị tốt nhất phải độc lập với nhau. • Khởi tạo giá trị trọng số • Kết thức sớm : Khi liên tiếp n epoch traning mà không có sự cải thiện đáng kể lỗi hay không có sự thay đổi đáng kể của các trọng số. • Tốc độ học : Tốc độ học của các Nơron nên đều nhau. Vì vậy nơron tầng sau (thường có gradient lớn hơn tầng trước) nên có tốc độ học nhỏ hơn tầng trước, Nơron có ít input nên có tốc độ học lớn hơn Nơron có nhiều input. • Kiểm tra chéo : Tách tập dữ liệu làm hai tập độc lập (training and testing). Tỷ lệ thường là 2/3:1/3. Thực hiện việc học trên tập trainining và kiểm tra khả năng khái quát hóa của mạng trên tập testing. 4.2. Mạng BackPropagation 4.2.1. Giới thiệu chung Mạng lan truyền ngược đôi khi còn được coi như là mạng đa tầng hướng tiến (feedforward). Hiện nay được sử dụng rộng rãi trong mô hình mạng Neuron.Mạng lan truyền ngược đạt được tính tổng quát bởi vì kỹ thuật cơ bản trong lan truyền ngược là cập nhật trọng số theo hướng giảm gradient. Một mạng lan truyền tổng quát là mạng có n (n > 2) lớp: Lớp thứ nhất gọi là lớp vào, lớp thứ n là lớp ra, và (n-2) là lớp ẩn. Trong mạng lan truyền mỗi nút ở lớp thứ i (0 < i < n) liên kết với nút ở lớp thứ (i+1) và các nút trong cùng một lớp không liên kết với nhau.Mỗi cung trong mạng được gắn một trọng số W ∈ R. Mạng lan truyền chỉ có thể ở 1 trong 2 trạng thái: trạng thái lan truyền và trạng thái học. Trạng thái lan truyền, thông tin lan truyền từ lớp nhập đến lớp xuất. Trạng thái học, thông tin lan truyền theo hai chiều nhiều lần để học các trọng số.Trạng thái lan truyền, mạng xử lý mỗi lần một mẫu. Trước tiên giá trị của các biến độc lập chuyển tới các nút vào của mạng. Các nút của lớp vào không tính toán gì cả. Các nút của lớp ẩn tính tổng trọng hóa của tất cả các dữ liệu bằng cách cộng dồn tất cả các tích giữa giá trị nút ẩn với trọng số của cung liên kết giữa nút nhập và nút ẩn. Kế tiếp, một hàm truyền được áp dụng trên tổng trọng hóa này cùng với ngưỡng của nút ẩn nào đó để cho ra giá trị thực cho nút ẩn. Sau khi nén tổng trọng hóa của nó, đến lượt mình, mỗi nút ẩn sẽ gửi đến tất cả các nút của lớp ra. Mỗi nút của lớp ra thực hiện các công việc tương tự như đã thực hiện trong nút ẩn để cho ra giá trị của nút xuất. Giá trị của các nút xuất chính là giá trị thực, nghĩa là giá trị của các biến phụ thuộc cần xác định. Bản chất ánh xạ do mạng thực hiện tùy thuộc vào giá trị các trọng số trong mạng. Lan truyền ngược là một phương pháp cho phép xác định tập trọng số tốt nhất trong mạng giải quyết một bài toán được cho. Việc áp dụng phương pháp lan truyền ngược là một quá trình lặp đi lặp lại nhiều lần hai tiến trình: Lan truyền tiến và lan truyền ngược sai số. Hai tiến trình này được áp dụng trên tập mẫu xác định. Ta gọi chung tiến trình này là luyệng mạng hay còn gọi là học. Quá trình luyện mạng được bắt đầu với các giá trị trọng số tùy ý, có thể là các số ngẫu nhiên và tiến trình lặp đi lặp lại. Mỗi lần lặp được gọi là một thế hệ. Trong mỗi thế hệ, mạng điều chỉnh các trọng số sao cho sai số giảm dần (sai sốđộ lệch giữa các kết xuất thực và kết xuất đích). Tiến trình điều chỉnh nhiều lần giúp cho trọng số dần đạt được tập hợp các giá trị tối ưu. Thường mạng cần thực hiện nhiều thế hệ trước khi việc luyện mạng hoàn tất. Để cập nhật trọng số trong mỗi thế hệ, mạng phải xử lý tất cả các mẫu trong tập mẫu. Đối với từng mẫu, mạng thực hiện phép toán sau đây: Trước tiên, mạng thực hiện quá trình lan truyền tiến, nghĩa là mạng ánh xạ các biến nhập của mẫu hiện hành các giá trị xuất như đã trình bày ở trên, sử dụng các giá trị của trọng số hiện hành. Ở các thế hệ đầu, các kết xuất thường chưa chính xác vì các trọng số ban đầu chưa có gì là đúng. Kế tiếp sai số được tính dựa trên giá trị kết xuất và giá trị đích. Trên cơ sở sai số tính toán được, mạng sẽ cập nhật lại các trọng số theo nguyên tắc lan truyền ngược sai số gọi là giai đoạn lan truyền ngược. Như vậy, để học một mẫu, mạng thi hành hai bước: Lan truyền tiến – thực hiện ánh xạ và lan truyền ngược sai số - cập nhật lại các trọng số. 4.2.2. Nội dung giải thuật lan truyền ngược Để huấn luyện cho mạng Neuron nhiều lớp bằng giải thuật lan truyền ngược, thường gọi là mạng Neuron lan truyền ngược, cần phải có một tập mẫu học {X s , Y s }. Mỗi đầu vào X s sẽ được lan truyền từ lớp vào cho tới lớp ra, quá trình lan truyền này sẽ tạo ra đầu ra O s của mạng. Giá trị đầu ra này thường có sai số so với giá trị đầu ra mong muốn Y s tương ứng với mỗi mẫu học X s . Các sai số sẽ được tính và lan truyền ngược từ lớp ra về các lớp phái trước để cập nhật lại các trọng số liên kết giữa các Neuron của các lớp. Để tiện minh họa về quá trình lan truyền ngược trong mạng lan truyền hướng tiến nhiều tầng, chúng ta hãy khảo sát mạng 3 lớp có kiến trúc sau: Kiến trúc mạng được tóm tắt như sau: • Mạng có 3 lớp Neuron: - Lớp vào có m Neuron, ký hiệu x i (i=1 m) - Lớp ẩn có l Neuron, ký hiệu p j (j=1 l) - Lớp ra có n Neuron, ký hiệu o k (k=1 n) • Mỗi Neuron ở lớp sau được liên kết đầy đủ với các Neuron ở lớp trước bởi các trọng số w, liên kết được thể hiện bằng các đường nét liền. • Sự lan truyền ngược các sai số phát sinh được thể hiện bằng các đường nét đứt. • Sự lan truyền ngược các sai số phát sinh được thể hiện bằng các đường nét đứt. • Không sử dụng hệ số bias. • Hàm kích hoạt trong các Neuron là hàm sigmoid đơn cực. 4.2.2.1. Giải thuật lan truyền ngược Khi mạng muốn học một mẫu học (X, Y) trong đó X là các vectơ tín hiệu đầu vào và Y là các vectơ tín hiệu đầu ra mong muốn. Các thành phần x i của X sẽ được đưa vào các Neuron tương ứng của lớp vào. Vì các Neuron của lớp vào chỉ có trách nhiệm nhận tín hiệu vào, không có bất kỳ xử lý nào, cho nên đầu ra của các Neuron lớp vào cũng chính là các giá trị x i . Các tín hiệu đầu ra của lớp vào sẽ được truyền cho các Neuron của lớp ẩn. Vì các Neuron lớp vào liên kết với các Neuron lớp ẩn bởi các trọng số w ịj cho nên mỗi Neuron thứ j của lớp ẩn sẽ nhận được tổng tín hiệu đầu vào có trọng số net j được tính theo công thức: ∑ = = m i iijj xwnet 1 Sau khi nhận được tổng tín hiệu vào có trọng số net j , hàm kích hoạt (hay còn gọi là hàm truyền) sẽ được sử dụng để biến đổi tạo ra tín hiệu ra của các Neuron ẩn. Giả sử hàm truyền sigmoid đơn cực (ký hiệu là g()) được dùng để xử lý các tín hiệu vào của mỗi Neuron thì tín hiệu ra z j của mỗi Neuron j được tính như sau: ( )       == ∑ = m i iijjj xwgnetgz 1 Các tín hiệu ra z j cùng với các trọng số liên kết w jk lại tiếp tục được truyền cho Neuron thứ k của lớp ra: ∑ = = l j jjkk zwnet 1 Tín hiệu ra o k của mỗi Neuron thứ k của lớp ra sẽ là: ( )         == ∑ = l j jjkkk zwgnetgo 1 Như vậy, với đầu vào là vectơ X, sau khi lan truyền tiến qua mạng, ta sẽ nhận được đầu ra là vectơ O. Tín hiệu đầu ra O này không thể trung khớp hoàn toàn với tín hiệu đầu ra mong muốn Y. Sai số tổng thể E của mạng được tính dựa trên sai lệch giữa O và Y theo công thức bình phương: ( ) ∑ = −= n k kk oyE 1 2 2 1 Để điều chỉnh cho các tín hiệu ra o k tiến gần đến các tín hiệu y k , các trọng số liên kết giữa các Neuron cần được cập nhật lại. Theo quy tắc Delta (hay còn gọi là phương pháp giảm theo hướng dốc nhất), các trọng số liên kết từ Neuron thứ j tại lớp ẩn tại Neuron thứ k tại lớp ra được cập nhật theo công thức: jkjkjk www ∆+= Biến thiên trọng số jk w∆ của các trọng số liên kết w jk được tính như sau: jkjk zw δη =∆ với: - η là hệ số học - z j là đầu ra của Neuron thứ js - k δ là sai số mà Neuron thứ k phải chịu trách nhiệm, được xác định theo công thức: ( ) kkk netgE , .= δ Ở đây: E k là đạo hàm của hàm lỗi E(E k = o k - y k ), net k là tổng tín hiệu vào có trọng số của Neuron thứ k và , g () là đạo hàm của hàm kích hoạt g() được dùng trong các Neuron. Nếu hàm g() là hàm sigmoid đơn cực thì ))(1)(()( , xgxgxg −= . Vậy công thức trên sẽ viết lại là: )1).().(( kkkkk oooy −−= δ Các trọng số liên kết từ Neuron i tại lớp vào tới Neuron j tại lớp ẩn cũng được hiệu chỉnh theo cách mà các trọng số liên kết từ Neuron thứ j tại lớp ẩn tới Neuron thứ k của lớp ra, tuy nhiên sai số mà các Neuron ở lớp ẩn phải chịu trách nhiệm sẽ được tính theo cách khác: jjjjij www ∆+= Với: ijjj xw δη =∆ Do đầu ra của các Neuron lớp vào chính là đầu vào của mạng nên trong công thức trên viết là x i (chứ không phải z j ) Ta biết rằng một Neuron j ở lớp ẩn được liên kết đầy đủ với các Neuron k ở lớp ra. Như vậy nó phải chịu trách nhiệm đối với các sai số của mỗi Neuron k ở lớp ra. Tổng sai số mà Neuron thứ j phải chịu trách nhiệm là: ∑ = = n k kjkjj wnetg 1 , )( δδ hay ( ) ∑ = −= n k kjkjjj wzz 1 1 δδ Thao tác cập nhật các trọng số w ij , w jk được coi là lan truyền ngược sai số. Các thao tác lan truyền tiến, tính sai số và lan truyền ngược sai số sẽ được lặp lại nhiều lần cho đến khi thảo mãn một điều kiện nào đấy của sai số, hoặc đủ một số lần quy định nào đấy thì sẽ dừng lại. Quá trình này chính là nội dụng của giải thuật truyền ngược. 4.2.2.2. Thuật toán Trên đây, chúng ta đã nghiên cứu về giải thuật lan truyền ngược áp dụng cho mạng Neuron 3 lớp. Nội dung tổng quát của giải thuật lan truyền ngược cho mạng Neuron nhiều lớp có thể được viết lại như sau: Đầu vào: Tập mẫu học được cung cấp dưới dạng {x=(x 1 , x 2 ,…,x s ) và y=(y 1 ,y 2 ,…,y s )} với số lượng mẫu là M, số lớp mạng là T. Đầu ra: Các ma trận trọng số w 1 , w 2 , …, w m . Bước 1: Khởi tạo: Chọn giá trị hệ số học 0 < η < 1 và giá trị cực đại sai số cho phép ε . Mạng có số lớp là T. Và số lần huấn luyện h. Tùy thuộc vào số lượng các Neuron lớp vào, số lượng lớp ẩnsố lượng Neuron trên lớp ra mà chúng ta sẽ khởi tạo các ma trận trọng số với các thành phần là các giá trị ngẫu nhiên rất nhỏ. Khởi tạo m = 1 (mẫu học thứ m), h = 1 (lần huấn luyện thứ h), q = 1 (lớp 1). Bước 2: Đưa mẫu huấn luyện thứ m vào mạng. Bước 3: Lan truyền xuôi tín hiệu đầu vào lần lượt qua các lớp Neuron cho đến khi q > T (từ lớp ẩn thứ nhất, qua lớp ẩn thứ hai,… đến lớp đầu ra) để tính đầu ra tương ứng tại các lớp theo công thức: ( )       == ∑ = − s i q i q ij q j q j owgnetgo 1 1 đối với Neuron thứ j thuộc lớp q, 1 < q < T. Bước 4: Tính sai số ở lớp ra của mạng theo công thức: )1.().( kkkkk oooy −−= δ Bước 5: Lan truyền ngược tín hiệu sai số (từ đầu ra, qua lớp ẩn cuối cùng,…, đến lớp ẩn đầu tiên) để cập nhật trọng số cũng như tín hiệu sai số trước đó theo công thức: ( ) ∑ = −− = n k q k q jk q j q j wnetg 1 1,1 δδ Trong đó: q jk q jk q jk www ∆+= 1 − =∆ q i q k q jk ow δη Bước 6: Nếu m < M (chưa hết số mẫu học) thì m = m+1 quay lại bước 2, ngược lại chuyển sang bước 7. Bước 7: Sai số trung bình của mạng được tính theo công thức: RMS= ( ) nM oy M m n k kmkm × − ∑∑ = =1 1 2 Trong đó n là số thành phần của vectơ ra. Nếu RMS < ε thì kết thúc. Ngược lại gán h = h+1 rồi lặp lại các bước từ bước 2 đến bước 7, bắt đầu một chu kỳ học mới. Ta thấy: • Trong quá trình chuyển thẳng các tham số mạng là cố định, ngược lại trong quá trình lan truyền ngược các tham số này được hiệu chỉnh và cập nhật để mạng có thể nhận dạng các mẫu đã học một cách chính xác. • Có nhiều yếu tố ảnh hưởng đến quá trình huấn luyện mạng đó là: hàm truyền, hàm sai số E, hệ số học α và các tham số khởi tạo. Do đó ta cần lưu ý trong việc lựa chọn các yếu tố này sao cho phù hợp. 4.2.2.3.Sơ đồ thuật toán [...]... nhau Vì thế, ta sẽ khởi tạo các trọng số nút ẩn từng cặp đôi một đối xứng nhau Chúng có thể là những con số ngẫu nhiên và phải đủ nhỏ để bảo đảm là tổng của bất cứ nút nào trên bất cứ mẫu nào xấp xỉ 0 Chương II: Xây dưng bài toán nhận dạng số viết tay dùng mạng noron A.Xác định các thành phần của bài toán: 1.Đầu vào bài toán: Đầu vào bài toán là ảnh của 1 chữ số viết tay Sau khi được lượng tử hóa với... chương trình sẽ khởi tạo ngẫu nhiên ma trận trọng số +Nút Trainning: Sẽ học lấy bộ trọng số và ghi cập nhật cho số tương ứng ghi ở ô textbox, với ý là bộ trọng số đó là bộ trọng số cần lưu lại của số trong textbox +Bảng các giá trị: Ghi ra giá trị sai lệch của hình vẽ sau khi nhận dạng ứng với từng số +Nút nhận dạng: Sauk hi vẽ hình trên bảng đen, nhấn nút nhận dạng để tiến hành nhận dạng Thuật toán... toán nhận dạng sử dụng trong bài toán rất đơn giản : Ứng với từng bộ trọng số đã có và đầu vào đã vẽ ở bảng đen, ta xem xem bộ trọng số thứ I nào cho ra sai số bé nhất thì số nhận ra chính là số thứ I đó +Nút xóa: Xóa hình vẽ, để chuẩn bị vẽ mới 2.Quá trình kiểm tra: Số mẫu dùng để kiểm tra: 80 mẫu.(Mỗi số 8 mẫu) Ta có bảng kết quả của quá trình kiểm tra như sau: Số noron ẩn Hệ số học n Sai số tổng... đại diện cho số 0 0001 đại diện cho số 1 … 1001 đại diện cho số 9 Số noron ra kí hiệu là k _noron_ out=4 noron 3.Xác định cấu trúc mạng sử dụng: Mạng noron 2 lớp với đầu vào và đầu ra xác định như trên Lớp ẩnsố noron là : (n_noronin + k _noron_ out)/2 = 114 noron Hàm chuyển sử dụng ở lớp vào tới lớp ẩn và lớp ẩn tới lớp ra đều là hàm logsig : f(n)= Như vậy mạng sử dụng có ma trận trọng số của lớp vào... trình huấn luyện: Ban đầu với mỗi số, ta khởi tạo ngẫu nhiên các bộ trọng số, giá trị khởi tạo được xây dựng nằm trong đoạn [-0.5,0.5]/{0} Ta tập huấn mạng cho từng số một Với mỗi số, ta đưa toàn bộ ảnh dữ liệu của số đó để huấn luyện cho ra các bộ trọng số, với mỗi bộ trọng số đó lại dùng để làm bộ trọng số huấn luyện cho mẫu tiếp theo Hệ số học sử dụng trong chương trình : n=0.14 Giá trị số sai số. .. luyện : e=0.001 Số lần vòng lặp xác định: epoch=10000 Sai số để có thể kết thúc sớm vòng lặp nếu bộ trọng số ít thay đổi: ew=0.0001 B .Chương trình: 1.Sử dụng chương trình: +Sử dụng chuột : nhấn chuột trái lên màn hình đen, rồi di chuột đề viết số +Nút InitMLP: sử dụng để khởi tạo lại ma trận trọng số trong chương trình: Nếu chọn Yes: chương trình sẽ khởi tạo lại trọng số đã có ứng với số ghi trong textbox... cỡ 114x4 Số noron lớp ẩn có thể thay đổi sao cho kết quả nhận được là tốt nhất 4.Chuẩn bị dữ liệu: Dữ liệu đầu vào được viết trực tiếp bằng chuột trên chương trình Truyền vào dưới dạng ảnh và sẽ được đi qua hàm lượng tử hóa vào chương trình Để thực hiện nhanh quá trình này Ta chuẩn bị sẵn 1 loạt các ảnh về số, mỗi số 20 ảnh Ảnh đã được làm xám và được lọc phân ngưỡng để tách biệt điểm ảnh của số và nền... học của mạng (0 < < 1), hệ số này giúp cho thuật toán học mạng hội tụ nhanh hơn RMS (sai số trung bình của mạng) , trong đó: M RMS = n ∑∑ ( y m =1 k =1 km − okm ) 2 M ×n 4.3 Một số mô hình mạng thường dùng với BackPropagation 4.3.1 Mô hình tổng quát Mạng với R đầu vào, với mỗi đầu vào có một giá trị trọng số w thích hợp, tổng các trọng số và bias là đầu vào cho hàm chuyển f, mạng có thể thay đổi hàm chuyển... ban đầu Số noron đầu vào được xác định : n _noron_ in=15x15=225 noron Chú ý là các đầu vào sau khi được chuẩn hóa, sẽ được đổi sang các giá trị 1 và -1 tương ứng với điểm ảnh đen và trắng 2.Đầu ra của bài toán: Đầu ra , hay các noron đầu ra là 4 bit giá trị Việc xác định 4 bit vì ta cần nhận dạng 10 chữ số viết tay từ 0 đến 9 Như vậy , 4 bit là đủ để có thể biểu diễn 10 chữ số này Với các ánh xạ thể... Sai số tổng e Epoch Sai số Ew Kết quả m _noron_ out 114 0.14 0.001 10000 0.0001 56% 104 0.13 0.0005 10000 0.0001 69% 124 0.12 0.0001 10000 0.0001 87% Kết quả ở cấu trúc mạng thứ 3 tiệm cận với giá trị chấp nhận được Và cũng một phần do chưa có đủ thời gian nên chương trình đã sử dụng cấu trúc mạng này 3.Lời kết: Mặc dù bài toán này chỉ là một trong ba bài toán nhận dạng cơ bản với số lượng dữ liệu không . HỌC VIỆN KỸ THUẬT QUÂN SỰ KHOA CÔNG NGHỆ THÔNG TIN BÁO CÁO MÔN HỌC TRÍ TUỆ NHÂN TẠO Giáo viên hướng dẫn: Ngô Hữu Phúc HÀ NỘI 3/2010 CHƯƠNG 1: CĂN BẢN VỀ MẠNG NEURAL 1 khởi tạo trọng số để được kết xuất một nút ở khoảng giữa: • Cách thứ nhất: dùng khởi tạo trọng số các nút ẩn. • Cách thứ hai: Khởi tạo trọng số các nút xuất. Đối với các nút xuất, ta khởi tạo. nào xấp xỉ 0. Chương II: Xây dưng bài toán nhận dạng số viết tay dùng mạng noron A.Xác định các thành phần của bài toán: 1.Đầu vào bài toán: Đầu vào bài toán là ảnh của 1 chữ số viết tay. Sau khi

Ngày đăng: 25/03/2014, 22:20

Từ khóa liên quan

Mục lục

  • Chương 1: Căn bẢn vỀ mẠng Neural

    • a) Hàm truyền Hard Limit:

    • b) Hàm truyền tuyến tính.

    • c) Hàm truyền log.sigmoid.

    • 4.Chuẩn bị dữ liệu:

    • 2.Quá trình kiểm tra:

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

Tài liệu liên quan