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 theo. Các nơron chiến thắng là khác nhau đối với các mẫu khác nhau. 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.
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
Đầ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:
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ào.
Nếu tỷ lệ lỗi chỉ cải thiện rất nhỏ thì chu kỳ này sẽ đƣợc bỏ qua. 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ỳ huấn luyện mới đƣợc bắt đầu. 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.
a) 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ẫu. 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ày. Phƣơng pháp này cho phép tăng tốc độ huấn luyện ban đầu.
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 cao.
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
b) Hiệu chỉnh trọng số
Toàn bộ bộ nhớ của mạng nơron Kohonen đƣợc lƣu trong trọng số kết nối giữa đầu vào và lớp đầu ra. Trọng số đƣợc hiệu chỉnh ở mỗi thời kỳ. Một thời kỳ 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 ra. 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ới. 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ới. 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ào. 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ới. 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)
wt1 wt e
(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.
c) 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
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
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ỗi. 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ào. Chúng ta sẽ xem xét hai phƣơng pháp để tính toán lỗi. 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 ra. 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 ji i w x 1 2 ) ( (2.9) 2.3.3. Nhận xét
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 ra. 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ểu. 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.
Kết luận chương 2:
Qua nghiên cứu về bài toán nhận dạng chữ viết tay và áp dụng mạng nơron vào bài toán để nhận dạng chữ viết tay cụ thể là dung mạng nơron perceptron và mạng nơron Kohonen để nhận dạng. Từ đó thấy đƣợc ƣu nhƣợc điểm của 2 phƣơng pháp này.
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
Chƣơng 3
XÂY DỰNG CHƢƠNG TRÌNH NHẬN DẠNG CHỮ VIẾT TAY TRỰC TUYẾN
3.1. Giới thiệu
Trong luận văn này do hạn chế về mặt thời gian và độ phức tạp của nhận dạng chữ viết tay tiếng Việt cho nên tôi chỉ hạn chế mô phỏng nhận dạng ký tự viết tay tiếng Việt rời rạc trực tuyến. Các ký tự tiếng Việt gồm ký tự không dấu {A, B, C, D, Đ, E, G, H, I, K, L, M, N, O, P, Q, R, S, T, U, V, X, Y} và ký tự có dấu {Ă, Â, À, Ả, Ã, Á, Ạ, Ằ, Ẳ, Ẵ, Ắ, Ặ, Ầ, Ẩ, Ẫ, Ấ, Ậ, Ê, È, Ẻ, Ẽ, É, Ẹ, Ề, Ể, Ễ, Ế, Ệ, Ì, Ỉ, Ĩ, Í, Ị, Ô, Ơ, Ò, Ỏ, Õ, Ó, Ọ, Ồ, Ổ, Ỗ, Ố, Ộ, Ờ, Ở, Ỡ, Ớ, Ợ, Ƣ, Ù, Ủ, Ũ, Ú, Ụ, Ừ, Ử, Ữ, Ứ, Ự, Ỳ, Ỷ, Ỹ, Ý, Ỳ}.
Chƣơng trình này đƣợc huấn luyện để có thể nhận dạng ký tự viết tay do ngƣời sử dụng vẽ chúng, chức năng này tƣơng tự nhƣ nhận dạng ký tự viết tay sử dụng các thiết bị cầm tay PDA (Personal Digital Assistant ). Chƣơng trình gồm một giao diện đơn giản cho phép ngƣời sử dụng dùng chuột vẽ ký tự cần nhận dạng và tiến hành nhận dạng.
Khi vẽ ký tự có một hình chữ nhật xung quanh ký tự đó. Mục đích của hình chữ nhật này là để cắt bất kỳ khoảng trắng nào không liên quan đến ký tự làm cho chƣơng trình có khả năng không cần quan tâm đến vị trí của ký tự đƣợc viết. Ta có thể vẽ ký tự ở giữa, trên, dƣới hay bất kỳ một vị trí khác nhƣng chƣơng trình vẫn có khả năng nhận dạng đúng.
Sau khi vẽ ký tự, ký tự đƣợc cắt bỏ khoảng trắng xung quanh mà không liên quan đến ký tự, sau đó đƣợc lấy mẫu xuống bởi vì ký tự đƣợc vẽ có độ phân giải quá cao mà mạng nơron không hiểu đƣợc. Giảm mẫu hình ảnh, hình ảnh đƣợc ánh xạ vào một lƣới nhỏ có kích thƣớc 10*10. Nhìn vào đây ta có thể thấy đƣợc hình ảnh của ký tự. Nhờ lấy mẫu xuống nên số đầu vào ít hơn khi ký tự đầy đủ kích thƣớc. Đồng thời ký tự đƣợc quy về kích thƣớc cố định, do đó không còn phải quan tâm ký tự đƣợc vẽ lớn, hay nhỏ khi huấn luyện hay khi nhận dạng.
Các bƣớc giải quyết bài toán sử dụng mạng nơron nhận dạng ký tự:
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
- Xử lý dữ liệu (phân tích ảnh). - Xây dựng mạng nơron
- Huấn luyện mạng nơron - Nhận dạng mạng nơron.