Giới thiệu

Một phần của tài liệu Nhận dạng chữ viết tay tiếng Việt sử dụng mạng nơron (Trang 36 - 37)

Trong phần trƣớc chúng ta đã nghiên cứu một số loại mạng nơron. Trong khi mạng nơron truyền thẳng 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 (hay còn gọi là SOM (Self-Organizing Maps) - Bản đồ tự tổ chức) là một trong nhiều loại mạng thông minh nhân tạo (AI) do cố giáo sƣ, tiến sĩ Teuvo Kohonen đề xƣớng vào những năm 70 của thế kỷ trƣớc. Ông là một trong những nhà nghiên cứu nổi tiếng và có nhiều công trình trong lĩnh vực tính toán nơron.

Thông thƣờng, mạng nơron Kohonen gồm một lớp đầu vào và lớp đầu ra. Mạng này đƣợc đặt tên bởi tên ngƣời lập ra nó, cố giáo sƣ, tiến sĩ T. 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ào. Xa hơn là nó không sử dụng loại trọng số bias nào.

Đầ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 va mạng nơron truyền thẳng lan truyền ngƣợc 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 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ể huấn luyện rất nhanh.

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

Thông thƣờng, mạng nơron Kohonen gồm một lớp đầu vào và một lớp đầu ra. Đầu tiên chúng ta xét về đầu vào và đầu ra của mạng.

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 đấy. Đố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 truyền thẳng, nếu có năm nơron đầu vào 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 đƣợc cho nhƣ hình 1.7:

Hình 1.8 dƣới đây là một mạng Kohonen điển hình.

Hình 1.8: Mạng nơron Kohonen điển hình 1.3.3. Thực hiện mạng nơron Kohonen [9]

1.3.3.1 Chuẩn hóa đầu vào

Mạng Kohonen yêu cầu đầu vào đƣợc chuẩn hóa. Dữ liệu đầu vào nên có giá trị nằm trong khoảng -1 đến 1. Nếu một 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 véctơ của dữ liệu đầu vào:

length(x) =   N i 1 x2 i (1.14)

Sử dụng chiều dài véctơ, chúng ta có thể quyết định hệ số chuẩn hóa:

   N i i x 1 2 1  (1.15)

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

Để tính toán đầu ra cho mỗi véctơ đầu vào thì phải cùng xem xét véctơ đầ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ối. Tích vô hƣớng đƣợc tính bằng cách nhân mỗi phần tử trong hai véctơ với nhau. Ta tính tổng của tích các phần tử của véctơ trọng số và véctơ đầu vào. Giả sử đầu vào là: X= {x1, x2, ... ,xN}, trọng số là W={wjl, wj2, ... , wjN} thì tích vô hƣớng của X và W là: t = ji N i iw x  1 (1.16)

Xét đầu ra của nơron 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.

output(j) = ( ji N i iw x  1 )   N i i x 1 2 1 (1.17)

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 va chia cho 2, ta đƣợc:

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

1.3.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 (khoảng cách nhỏ 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 ra. 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ầu.

1.3.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 1ỗ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 nhận dạng các mẫu riêng biệt của chúng 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.

Đầ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.

1.3.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ụ. Bởi vì dao động của véctơ 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 đƣợ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.

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

Tòan 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:

(1.19)

Biến x là véctơ 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 véctơ. 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:

(1.20) (1.21)

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.

1.3.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ỗ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. Còn phƣơng pháp học không giám sát thì 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 chính thức nào để tính toán lỗi cho mạng nơron Kohonen. Có thể tính lỗi theo tỷ 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à các nhóm đầu ra. Bản thân 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 tlức:

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 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.

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 ở phần trƣớc, 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 có giám sát, học cạnh tranh, mạng nơron Kohonen cấu trúc đơn giản mà hiệu quả cao.

Mạng nơron Kohonen đƣợc sƣ̉ dụng trong rất n hiều ƣ́ng d ụng, thông thƣờng trong việc gom cụm và /hoặc mô hình hóa dƣ̃ liệu đa chiều thành các lƣới có hai hoặc ba chiều . Có thể kể đến là nhận dạng tiếng nói (Kohonen, 1989, robotics (Ritter et al ., 1989), máy ảo (Oja, 1992), tối ƣu tổ hợp (Fort, 1988), phân lớp (Kohonen,1984)....

CHƢƠNG II

ỨNG DỤNG MẠNG NƠRON KOHONEN TRONG BÀI TOÁN NHẬN DẠNG CHỮ VIẾT TAY TIẾNG VIỆT

2.1. Tổng quan về bài toán nhận dạng

Bài toán nhận dạng tuy ra đời từ thập niên 60 của thế kỷ trƣớc nhƣng nó vẫn luôn nhận đƣợc sự quan tâm, nghiên cứu của nhiều nhà khoa học trên thế giới. Đặc biệt là trong những thập kỷ gần đây, cùng với quá trình đẩy mạnh tin học hóa trong mọi lĩnh vực đời sống xã hội, nhận dạng không chỉ còn là lĩnh vực nghiên cứu lý thuyết nữa mà đã đƣợc ứng dụng rộng rãi trong thực tế cuộc sống. Nhận dạng là quá trình phân loại các đối tƣợng đƣợc biểu diễn theo một mô hình nào đó và gán cho chúng vào một lớp dựa theo các quy luật và các mẫu chuẩn. Quá trình nhận dạng dựa vào các mẫu học biết trƣớc gọi là học có giám sát, hoặc không có mẫu thì gọi là học không có giám sát (tự học).

Các bài toán nhận dạng tiêu biểu đƣợc nghiên cứu nhiều nhất hiện nay bao gồm:

- Nhận dạng các mẫu hình học (vân tay, mặt ngƣời, hình khối,…. ).

- Nhận dạng chữ viết (optical character recognition – OCR): từ một văn bản in hoặc viết tay trên giấy, nhận biết từng ký tự và chuyển chúng thành một tệp văn bản trên máy tính.

- Nhận dạng tiếng nói (speech recognition): từ sóng tiếng nói, nhận biết và chuyển chúng thành dữ liệu văn bản tƣơng ứng.

- Dịch tự động (machine translation): từ một tệp dữ liệu văn bản trong một ngôn ngữ (ví dụ nhƣ tiếng Anh), máy tính dịch và chuyển thành một tệp văn bản trong một ngôn ngữ khác.

- Tóm tắt văn bản (text summarization): từ một văn bản dài (gồm nhiều trang chang han), máy tính tóm tắt thành một văn bản ngắn hơn với những nội dung cơ bản.

- Tìm kiếm thông tin (information retrieval): từ một nguồn gồm rất nhiều tệp văn bản hay tiếng nói, tìm ra những tệp có nội dung liên quan đến một vấn đề (một câu hỏi) ta cần biết (hay cần trả lời). Điển hình của công nghệ này là Google, một hệ tìm kiếm thông tin trên Web, mà hầu hết chúng ta đều sử dụng thƣờng xuyên. Cần nói thêm rằng mặc dù hữu hiệu hàng đầu nhƣ vậy, Google mới chỉ có khả năng cho chúng ta tìm kiếm câu hỏi dƣới dạng các từ khóa (keywords) và luôn “tìm” cho chúng ta rất nhiều tài liệu không liên quan, ngƣợc lại, có rất nhiều tài liệu liên quan tồn tại thì Google lại tìm không ra.

- Trích chọn thông tin (information extraction): từ một nguồn rất nhiều tệp văn bản hay tiếng nói, tìm ra những đoạn bên trong, là một số tệp liên quan đến một vấn đề (câu hỏi) ta cần biết (hay cần trả lời). Một hệ trích chọn thông tin có thể “lần” vào từng trang Web liên quan, phân tích bên trong và trích ra các thông tin cần thiết.

- Phát hiện tri thức và khai phá dữ liệu văn bản (knowledge discovery and text data mining): từ những nguồn rất nhiều văn bản thậm chí hầu nhƣ không có quan hệ với nhau, tìm ra đƣợc những tri thức trƣớc đó chƣa ai biết. Đây là một vấn đề rất phức tạp và đang ở giai đoạn đầu của các nghiên cứu trên thế giới.

Ngoài ra, còn nhiều bài toán và công nghệ xử lý ngôn ngữ khác, nhƣ giao diện ngƣời máy bằng ngôn ngữ tự nhiên, các hệ hỏi đáp, các hệ sinh ra ngôn ngữ ... [1]. Chúng đƣợc áp dụng vào nhiều lĩnh vực nhƣ y học, dƣợc học, xây dựng, quản lý giao thông, dự báo cháy rừng, tự động hóa điều khiển robot, điều khiển

Một phần của tài liệu Nhận dạng chữ viết tay tiếng Việt sử dụng mạng nơron (Trang 36 - 37)

Tải bản đầy đủ (PDF)

(86 trang)