Ứng dụng của mạng nơron

Một phần của tài liệu nghiên cứu mạng nơron và ứng dụng mạng nơron trong nhận dạng chữ viết tay tiếng việt (Trang 45)

Trong một vài năm trở lại đây, mạng nơron đã được nhiều người quan tâm và

đã được áp dụng thành công trong nhiều lĩnh vực khác nhau, như tài chính, y tế, địa chất và vật lý,... Thật vậy, bất cứ ở đâu có vấn đề về dự báo, phân loại và điều khiển, mạng nơron đều có thể ứng dụng được. Ta có thể kể ra như khả năng nhận dạng mặt người trong các hệ thống quản lý thông tin liên quan đến con người (quản lý nhân sựở các doanh nghiệp, quản lý sinh, sinh viên trong các trường học… ), các ngành khoa học hình sự, khoa học tướng số và tử vi, v.v…

Kết hợp chặt chẽ với logic mờ, mạng nơron nhân tạo đã tạo nên cuộc cách mạng thực sự trong việc thông minh hóa và vạn năng hóa các bộđiều khiển kỹ thuật cao cho cả hiện nay và trong tương laị Ví dụ nhưứng dụng tựđộng điều khiển hệ

thống lái tàu, hệ thống dự báo sự cố,…

Mạng nơron thực hiện việc mô phỏng cấp thấp hệ thống nơron sinh học. Trong tương lai với sự phát triển mô phỏng nơron sinh học, chúng ta có thể có loại máy tính thông minh thật sự.

Dưới đây liệt kê ra một sốứng dụng chính của mạng nơron:

¾ Aerospace: Phi công tự động, giả lập đường bay, các hệ thống điều khiển lái máy bay, bộ phát hiện lỗị

¾ Automotive: Các hệ thống dẫn đường tự động cho ô tô, các bộ phân tích hoạt

động của xẹ

¾ Banking: Bộđọc séc và các tài liệu, tính tiền của thẻ tín dụng.

¾ Defense: Định vị - phát hiện vũ khí, dò mục tiêu, phát hiện đối tượng, nhận dạng nét mặt, các bộ cảm biến thế hệ mới, xử lý ảnh radar,...

¾ Electronics: Dựđoán mã tuần tự, sơđồ chip IC, điều khiển tiến trình, phân tích nguyên nhân hỏng chip, nhận dạng tiếng nói, mô hình phi tuyến.

¾ Financial: Định giá bất động sản, cho vay, kiểm tra tài sản cầm cố, đánh giá mức độ hợp tác, phân tích đường tín dụng, chương trình thương mại qua giấy tờ, phân tích tài chính liên doanh, dự báo tỷ giá tiền tệ.

¾ Insurance: Đánh giá việc áp dụng chính sách, tối ưu hóa sản phẩm.

Kết luận:

Có rất nhiều lọai mạng nơron và cũng có nhiều thuật toán học, tuy nhiên trong chương này tôi chỉ trình bày một số mạng nơron cơ bản nhất tiêu biểu là mạng dẫn tiến đa và trình bày thuật toán lan truyền ngược, một thuật toán kinh điển trong phương pháp học có giám sát. Mục đích lựa chọn các nội dung trình bày trên là để

chúng ta có những kiến thức cơ bản về mạng nơron , đồng thời có những cái so sánh với mạng Kohonen mà tôi sẽ trình bày trong chương 2.

CHƯƠNG 2

MẠNG NƠRON KOHONEN

Trong chương này tôi xin trình bày lý thuyết cơ bản về mạng nơron Kohonen mà kiến thức về mạng này sẽđược sử dụng trong phần ứng dụng vào nhận dạng ký tự viết tay tiếng Việt rời rạc trực tuyến sẽđược trình bày trong các chương saụ Nội dung chính về mạng nơron Kohonen bao gồm: giới thiệu về mạng, cấu trúc mạng, các bước thực hiện trong mạng: chuẩn hóa đầu vào, tính toán đầu ra, tìm nơron chiến thắng, quá trình huấn luyện mạng.

2.1 Giới thiệu về mạng nơron Kohonen

Trong phần trước chúng ta đã nghiên cứu mạng nơron dẫn tiến sử dụng phương pháp lan truyền ngược. Trong khi mạng nơron dẫn tiến rất phổ biến thì một cấu trúc mạng khác cũng rất phổ biến là mạng Kohonen.

Mạng nơron Kohonen chỉ gồm một lớp đầu vào và lớp đầu rạ Không có lớp

ẩn trong mạng. Mạng này được đặt tên bởi tên người lập ra nó Tuevo Kohonen. Mạng Kohonen khác biệt so với mạng nơron lan truyền ngược dẫn tiến ở cách huấn luyện và cách nó nhớ lại một mô hình. Mạng Kohonen không sử dụng một loại hàm kích hoạt nàọ Xa hơn là nó không sử dụng loại trọng số bias nàọ

Đầu ra của mạng Kohonen không bao gồm đầu ra của một số nơron. Khi có một mẫu được đưa vào mạng thì chỉ có một nơron đầu ra được lựa chọn gọi là nơron chiến thắng. Nơron chiến thắng này chính là đầu ra của mạng Kohonen. Thông thường thì các nơron chiến thắng này đại diện cho các nhóm dữ liệu đưa vào mạng Kohonen.

Điểm khác biệt quan trọng nhất giữa mạng Kohonen và mạng nơron lan truyền ngược dẫn tiến là mạng nơron Kohonen học theo phương pháp học không giám sát, có nghĩa là mạng nơron Kohonen thao tác với dữ liệu nhưng đầu ra chính

xác tương ứng với dữ liệu vào không được chỉ định trước. Sử dụng mạng mạng nơron Kohonen dữ liệu có thểđược phân thành các nhóm.

Mạng nơron Kohonen được sử dụng bởi vì nó là một mạng tương đối đơn giản về cấu trúc, và có thểđào tạo rất nhanh.

2.2 Cấu trúc của mạng nơron Kohonen [9]

Mạng nơron Kohonen chỉ gồm một lớp đầu vào và lớp đầu rạ Không có lớp

ẩn trong mạng. Đầu tiên chúng ta xét vềđầu vào và đầu ra của mạng. (adsbygoogle = window.adsbygoogle || []).push({});

Các nơron đầu vào chỉ đơn giản cung cấp dữ liệu vào cho mạng chứ không có chức năng xử lý gì trên đấỵ Đối với mạng nơron Kohonen yêu cầu đầu vào được chuẩn hóa có giá trị trong phạm vi từ -1 đến 1.

Đầu ra của mạng Kohonen không bao gồm đầu ra của một số nơron. Đối với mạng nơron dẫn tiến nếu có năm nơron đầu ra thì một đầu ra bao gồm năm giá trị. Còn mạng nơron Kohonen khi có một mẫu được đưa vào mạng thì chỉ có một nơron

đầu ra được lựa chọn gọi là nơron chiến thắng. Nơron chiến thắng này chính là đầu ra của mạng nơron Kohonen. Đầu ra của mạng nơron Kohonen thường là chỉ số của nơron chiến thắng ví dụ Nơron #5. Thông thường thì các nơron chiến thắng này đại diện cho các nhóm dữ liệu đưa vào mạng Kohonen. Cấu trúc của một mạng nơron Kohonen điển hình được cho như sau:

2.3 Thực hiện mạng nơron Kohonen [9] 2.3.1 Chuẩn hóa đầu vào 2.3.1 Chuẩn hóa đầu vào

Mạng Kohonen yêu cầu đầu vào được chuẩn hóạ Dữ liệu đầu vào nên có giá trị nằm trong khoảng -1 đến 1.Nếu 1 hoặc nhiều hơn nơron đầu vào sử dụng các giá trị chỉ nằm trong khoảng từ 0 đến 1 thì mạng nơron hoạt động không đảm bảo chất lượng. Để chuẩn hóa đầu vào việc đầu tiên chúng ta phải tính chiều dài vector của dữ liệu đầu vào: ∑ = = N i i x x length 1 2 ) ( (2.1)

Sử dụng chiều dài vector chúng ta có thể quyết định hệ số chuẩn hóa: ∑ = = N i i x 1 2 1 σ (2.2)

2.3.2 Tính toán đầu ra cho mỗi nơron

Để tính toán đầu ra cho mỗi vector đầu vào thì phải cùng xem xét vector đầu vào và trọng số . Đầu tiên phải tính tích vô hướng của các nơron đầu vào và các trọng số kết nốị Tích vô hướng được tính bằng cách nhân mỗi phần tử trong hai vector với nhaụ Ta tính tổng của tích các phần tử của vector trọng số và vector đầu vàọ Giả sửđầu vào là: X= {x1, x2, …,xN}, trọng số là W={wj1, wj2,…, wjN} thì tích vô hướng của X và W là: ji N i iw x t ∑ = = 1 (2.3)

Xét đầu ra của nơron đầu ra thứ j bây giờđược chuẩn hóa bằng cách nhân giá trị vừa tính được với hệ số chuẩn hóa được xác định ở trên.

( ) ( ) 1 1 2 1 ∑ ∑ = = = N i i N i ji i x w x j output (2.4)

Giá trị vừa được tính toán phải được ánh xạ thành số lưỡng cực. Để ánh xạ

chúng ta thêm 1 và chia cho 2 ta được:

output(j)=[output(j)+1]*0.5 (2.5)

2.3.3 Chọn nơron chiến thắng

Khi tính toán được đầu ra với từng nơron tiến hành so sánh chúng để tìm xem nơron nào có đầu ra lớn nhất thì nơron đó được quyết định là nơron chiến thắng. Như vậy ta đã tìm ra đầu ra của mạng nơron Kohonen. Ta thấy giá trị này

được quyết định bởi giá trị trọng số giữa đầu vào và đầu rạ Như vậy ta điều chỉnh trọng số này đểđiều chỉnh giá trịđầu ra theo như nhiệm vụ yêu cầụ

2.3.4 Quá trình học của mạng nơron Kohonen

Quá trình học là quá trình hiệu chỉnh trọng số. Toàn bộ quá trình huấn luyện cho mạng nơron Kohonen bao gồm các chu kỳ lặp lại cho đến khi mức lỗi của mạng dưới một mức chấp nhận được. Quá trình huấn luyện cho mạng là cạnh tranh. Với mỗi tập đầu vào sẽ tìm được một nơron chiến thắng. Trọng số của nơron chiến thắng sẽđược hiệu chỉnh, nó sẽ tác động trở lại mạnh mẽ hơn đối với đầu vào ở lần tiếp theọ Các nơron chiến thắng là khác nhau đối với các mẫu khác nhaụ Khả năng của chúng để nhận dạng các mẫu riêng biệt sẽ được tăng lên. Đầu tiên chúng ta xét tổng quan quá trình huấn luyện cho mạng nơron Kohonen.

Hình 2.2 Quá trình huấn luyện mạng nơron Kohonen

Đầu tiên ma trận trọng số được khởi tạo với các giá trị ngẫu nhiên, đưa tập mẫu vào và tính toán tỷ lệ lỗi, hiệu chỉnh trọng số của nơron chiến thắng:

Bắt đầu Khởi tạo ngẫu nhiên ma trận trọng số Tính lỗi Lỗi có chấp nhận được không ? Đưa tập huấn luyện và điều chỉnh các trọng số

trên nơron chiến thắng

Tính lại lỗi xem có cải thiện không. Cải thiện lỗi có đáng kể không ? Vượt quá số chu kỳ lớn nhất ? Tốt hơn ma trận trọng số tốt nhất chưa ? Có ma trận trọng số tốt nhất không ? Chỉđịnh ma trận trọng số là ma trận tốt nhất Kết thúc Có Có Có Có Không Không Không Không Có Không

¾ Nếu tỷ lệ lỗi được cải thiện đáng kể thì quay trở lại tiếp tục đưa mẫu huấn luyện vào và điều chỉnh trọng số của nơron chiến thắng rồi tính toán lại tỷ

lệ lỗi xem mức cải thiện của nó như thế nàọ

¾ Nếu tỷ lệ lỗi chỉ cải thiện rất nhỏ thì chu kỳ này sẽđược bỏ quạ Nếu điều này xảy ra thì xét xem ma trận trọng số này có tốt hơn ma trận trọng số tốt nhất từ trước đến giờ không?

− Nếu tốt hơn thì lưu lại ma trận trọng số tốt nhất.

− Nếu không ma trận trọng số tốt nhất được giữ nguyên từ chu kỳ

trước.

¾ Sau đó ma trận trọng sốđược khởi tạo lại với giá trị ngẫu nhiên và chu kỳ (adsbygoogle = window.adsbygoogle || []).push({});

huấn luyện mới được bắt đầụ Chu kỳ huấn luyện mới này lại tiếp tục giống như chu kỳ trước và sẽ phân tích các thời kỳ để quyết định bỏ qua hay tạo ra tập trọng số mà tạo ra mức lỗi chấp nhận được.

Nếu chúng ta tính toán lỗi nhỏ hơn mức chấp nhận được hoặc nếu số chu kỳ

lặp lớn hơn số chu kỳ lặp lớn nhất cho phép thì quá trình huấn luyện hoàn thành.

2.3.4.1 Tốc độ học

Tốc độ học là một hằng số mà sẽđược sử dụng trong thuật toán học. Nó phải là một số dương nhỏ hơn 1. Tốc độ học điển hình là 0.4 ,0.5. Ký hiệu nó là α.

Thông thường thiết lập giá trị học lớn thì quá trình huấn luyện sẽ nhanh hơn, nhưng nếu thiết lập giá trị này quá lớn có thể làm cho mạng không bao giờ hội tụ. Điều này bởi vì dao động của vector trọng số quá lớn để phân lớp mẫụ Một kỹ thuật khác như là huấn luyện tiến bộ, quá trình huấn luyện bắt đầu với tốc độ học cao và giảm dần tốc độ nàỵ Phương pháp này cho phép tăng tốc độ huấn luyện ban đầụ

Tốc độ học chỉ là một biến mà được sử dụng như một phần của thuật toán dùng đểđiều chỉnh trọng số của nơron. Trong quá trình thực nghiệm tiến hành điều chỉnh tốc độ học này sao cho phù hợp đểđạt được hiệu quả huấn luyện caọ

2.3.4.2 Hiệu chỉnh trọng số

xảy ra khi dữ liệu huấn luyện được đưa vào mạng và trọng số được hiệu chỉnh dựa trên kết quả của dữ liệu huấn luyện này tạo rạ Sự điều chỉnh trọng số làm cho mạng có được kết quả phù hợp hơn trong lần tiếp theo cũng thực hiện trên cùng dữ

liệu huấn luyện đó. Nếu sau mỗi lần đưa mẫu huấn luyện vào, tính mức lỗi thấy có cải thiện đáng kể thì còn quay lại điều chỉnh trọng số. Còn nếu không thì bắt đầu một chu kỳ mớị Khi điều này xảy ra thì toàn bộ ma trận trọng số được điều chỉnh

đến các giá trị ngẫu nhiên mớị Cuối cùng ma trận trọng số sẽ được sử dụng là ma trận trọng số tốt nhất xác định từ mỗi chu kỳ. Bây giờ chúng ta xét làm thế nào trọng sốđược hiệu chỉnh.

Phương pháp ban đầu để tính toán sự thay đổi của trọng số, được đề xuất bởi Kohonen, thường được gọi là phương pháp cộng vàọ Phương pháp sử dụng phương trình sau: w x x w w t t t α α + + = +1 (2.6)

Biến x là vector huấn luyện để đưa vào mạng. Biến wt là trọng số của nơron chiến thắng, và wt+1 là trọng số mớị thể hiện chiều dài vector. Phương pháp này hoạt động rất tốt đối với mạng nơron Kohonen. Trong trường hợp phương pháp này cho thấy sự bất ổn quá mức, mạng không hội tụ. Một phương pháp khác được sử dụng, phương pháp này gọi là phương pháp trừ, sử dụng các công thức sau:

e= xwt (2.7)

wt+1 =wte

(2.8)

Hai phương trình này sẽ chỉ ra sự biến đổi cơ bản trên trọng số của mạng.

2.3.4.3 Tính toán lỗi

Trước khi chúng ta hiểu làm thế nào để tính toán lỗi cho mạng thì đầu tiên chúng ta phải hiểu lỗi có nghĩa là gì. Mạng được huấn luyện theo phương pháp học không giám sát do vậy cách định nghĩa về lỗi hơi khác nhau so với cách nghĩ thông thường về lỗị Như các phần khác đã nghiên cứu huấn luyện có giám sát bao gồm tính

toán lỗi, đó là sự khác biệt giữa đầu ra tính được và đầu ra mong muốn. Đối với phương pháp học không giám sát không có đầu ra mong muốn. Mục đích của mạng nơron Kohonen là để phân các mẫu đầu vào vào các tập. Do đó lỗi ởđây phải có khả

năng đo lường mức độ mạng phân lớp tốt như thế nàọ Chúng ta sẽ xem xét hai phương pháp để tính toán lỗị Không có cách nào chính thức để tính toán lỗi cho mạng nơron Kohonen. Lỗi này chỉ là phần trăm đó là ý tưởng cho biết mạng phân loại tốt như thế nào đối với đầu vào vào các nhóm đầu rạ Bản than lỗi không được sử

dụng để hiệu chỉnh trọng số như đối với thuật toán lan truyền ngược. Ởđây lỗi được xác định bởi công thức: ∑ = − = N i i ji w x 1 2 ) ( ε (2.9) 2.3.5 Kết luận

Mô hình mạng Kohonen này tương đối đơn giản, chỉ gồm hai lớp: lớp nơron

đầu vào và lớp nơron đầu rạ Trong đó lớp đầu vào thực ra chỉ dùng để phân bố dữ

liệu đến lớp nơron đầu ra mà không có chức năng xử lý dữ liệu trên đó. Các bước thực hiện mạng nơron Kohonen tương đối rõ ràng, chi tiết, đơn giản, dễ hiểụ Quá trình huấn luyện mạng với tốc độ hội tụ nhanh, xử lý được khối lượng dữ liệu lớn.

Việc xác lập các tham sốđầu vào cho mạng rất dễ dàng, ta có thể hiệu chỉnh các tham số này bằng thực nghiệm trong quá trình thực hiện bài toán cụ thể để đạt

được kết quả hoạt động tốt.

Qua việc nghiên cứu về mạng nơron Kohonen và nghiên cứu về mạng nơron tổng quan ở chương 1 chúng ta đã thấy được các đặc điểm giống và khác nhau cơ bản của: học có giám sát, mạng dẫn tiến đa lớp, thuật toán lan truyền ngược vốn rất phổ

biến khi nghiên cứu về mạng nơron, so với đặc điểm của học không giám sát, học cạnh tranh, cấu trúc đơn giản mà hiệu quả cao của mạng nơron Kohonen.

CHƯƠNG 3 (adsbygoogle = window.adsbygoogle || []).push({});

ỨNG DỤNG MẠNG NƠRON KOHONEN TRONG BÀI

Một phần của tài liệu nghiên cứu mạng nơron và ứng dụng mạng nơron trong nhận dạng chữ viết tay tiếng việt (Trang 45)