a) Chuẩn bị dữ liệu
Kích thƣớc mẫu : Không có nguyên tắc nào hƣớng dẫn kích thƣớc mẫu phải là bao nhiêu đối với một bài toán cho trƣớc.
Ở đây sử dụng mẫu lớn nhất có thể sao cho đủ khả năng lƣu trữ trong bộ nhớ trong. Tập mẫu dƣợc chia thành 2 tập con: một để xây dựng mô hình gọi là tập huấn luyện (training set), và một để kiểm nghiệm mô hình gọi là tập kiểm tra (test set). Trong chƣơng trình dùng 2/3 mẫu cho huấn luyện và 1/3 cho kiểm tra.
b) Xác định các tham số cho mạng
Chọn hàm truyền
Không phải bất kỳ hàm truyền nào cũng cho kết quả nhƣ mong muốn. Cần chọn các hàm truyền sao cho kiến trúc mạng nơron là đối xứng (tức là với
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 vào ngẫu nhiên thì đầu ra có phân bố đối xứng). Nếu một mạng nơron không đối xứng thì giá trị đầu ra sẽ lệch sang một bên, không phân tán lên toàn bộ miền giá trị của output. Điều này có thể làm cho mạng rơi vào trạng thái bão hòa, không thoát ra đƣợc.
Trong quá trình xây dựng mạng nơron Perceptron, hàm truyền dạng – S đƣợc sử dụng là hàm Sigmoid: ) 1 ( 1 ) ( x e x f Xác định số nơron tầng ẩn
Việc chọn số lƣợng nơron trong tầng ẩn của một mạng Perceptron phụ thuộc vào bài toán cụ thể và vào kinh nghiệm của nhà thiết kế mạng. Nếu tập dữ liệu huấn luyện đƣợc chia thành các nhóm với các đặc tính tƣơng tự nhau thì số lƣợng các nhóm này có thể đƣợc sử dụng để chọn số lƣợng nơron ẩn. Trong trƣờng hợp dữ liệu huấn luyện nằm rải rác và không chứa các đặc tính chung, số lƣợng kết nối có thể gần bằng với số lƣợng các mẫu huấn luyện để mạng có thể hội tụ.
Trong quá trình xây dựng mạng nơron Perceptrong sử dụng thuật toán lan truyền ngƣợc, lƣợng nơron tầng ẩn h trong một mạng phải thỏa mãn:
2) (n 1) (p h Trong đó:
+ p là số lượng mẫu huấn luyện + n là số lượng đầu vào của mạng.
Khởi tạo trọng số
Các trọng số khởi tạo với giá trị nhỏ: Trọng số nơ ron đầu vào bằng 1, trọng số nơ ron tầng ẩn và tầng ra lấy ngẫu nhiên quanh giá trị 0
Các ngƣỡng khởi tạo với giá trị nhỏ: Ngƣỡng của nơ ron đầu vào bằng 1, ngƣỡng của nơ ron tầng ẩn và tầng ra khởi tạo trong khoảng 0.25 đến 1
Thời gian học η = 0.2 cho nơ ron tầng ẩn, và η = 0.15 cho nơ ron tầng ra. Lỗi chấp nhận đƣợc là 0.05
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
c) Huấn luyện mạng nơron Perceptron
Thuật toán huấn luyện mạng là thuật toán lan truyền ngƣợc đã trình bày ở chƣơng 2. Quá trình huấn luyện bao gồm các bƣớc:
- Thiết lập các tham số đầu vào.
- Tất cả các mẫu đầu vào đƣợc lấy mẫu hình ảnh ký tự xuống lƣới kích thƣớc 10*10. Ta đƣợc một ma trận hai chiều kích thƣớc 10*10 có các giá trị tƣơng ứng với giá trị các điểm ảnh.
- Chuyển thành các vector đầu vào có kích thƣớc 10*10. - Đƣa các vector đầu vào vào mạng
- Thực hiện tìm ma trận trọng số tốt nhất theo thuật toán lan truyền ngƣợc
d) Nhận dạng mạng nơron Perceptron
Quá trình nhận dạng đƣợc diễn ra theo các bƣớc sau:
- Bƣớc 1: Ngƣời sử dụng vẽ ký tự cần nhận dạng.
- Bƣớc 2: Ký tự đƣợc lấy mẫu xuống lƣới kích thƣớc 10*10. Ta đƣợc
một ma trận hai chiều kích thƣớc 10*10 có các giá trị tƣơng ứng với giá trị các điểm ảnh.
- Bƣớc 3: Chuyển ma trận điểm ảnh thành vector đầu vào có kích thƣớc
10*10 bao gồm các giá trị 0.5, - 0.5.
- Bƣớc 4: Vector đầu vào đƣợc đƣa vào mạng nơron để tính toán đầu ra - Bƣớc 5: Tính toán đầu ra của mạng
- Bƣớc 6: Cập nhật đầu ra của mạng để tìm ra kí tự tƣơng ứng
- Bƣớc 7: Hiển thị kết quả nhận dạng đƣợc tƣơng ứng với ký tự đƣợc vẽ. 3.4.2. Xây dựng mạng nơron Kohonen.
a) Xây dựng mạng
Một việc rất quan trọng ở đây là việc quyết định cỡ của mạng. Việc định cỡ đầu vào phụ thuộc vào việc định cỡ lƣới lấy mẫu xuống. Nếu ta chia ảnh ký tự thành ma trận có kích thƣớc lớn thì ký tự sẽ đƣợc biểu diễn một cách chi tiết. Tuy nhiên, việc này dẫn đến chi phí xử lý các ma trận rất lớn. Ngƣợc lại, nếu ta dùng ma trận kích thƣớc nhỏ để biểu diễn ảnh ký tự sẽ dẫn đến việc
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
mất mát thông tin. Để cho cân bằng và hợp lý, ta sẽ chuẩn hóa cỡ của ma trận bằng 10*10, tức là ảnh sẽ đƣợc biểu diễn bởi 100 phần tử.
Lớp đầu vào gồm 100 nơron nhận giá trị từ 100 thành phần tƣơng ứng của vector đầu vào. Dữ liệu đầu vào này có đƣợc từ việc vector hóa từ ma trận điểm ảnh ký tự bằng phƣơng pháp chia lƣới.
Lớp đầu ra có số nơron bằng với số mẫu nhập vào.
b) Huấn luyện mạng nơron Kohonen
Một mạng nơron đã đƣợc xây dựng sẽ phải đƣợc huấn luyện trên một không gian đầu vào đã đƣợc chuẩn bị trƣớc. Khi hoạt động, mạng nơron sẽ đọc giá trị đã đƣợc huấn luyện.
Sự phức tạp của các tham số cho việc huấn luyện mạng: Việc chọn giá trị cho các tham số (tốc độ học, số lần lặp cần thiết, giá trị ngƣỡng của lỗi…) đƣợc dựa vào kinh nghiệm và qua những lần tiến hành thực nghiệm.
Mục đích của quá trình huấn luyện là hiệu chỉnh trọng số W sao cho giống với vector đầu vào nhất. Thực hiện hiệu chỉnh các vector trọng số ứng với từng ký tự mẫu. Kết quả thu đƣợc một ma trận trọng số W giống với tập vector đầu vào. Huấn luyện bao gồm các bƣớc:
- Thiết lập các tham số đầu vào.
- Tất cả các mẫu đầu vào đƣợc lấy mẫu hình ảnh ký tự xuống lƣới kích thƣớc 10*10. Ta đƣợc một ma trận hai chiều kích thƣớc 10*10 có các giá trị tƣơng ứng với giá trị các điểm ảnh.
- Chuyển thành các vector đầu vào có kích thƣớc 10*10. - Đƣa các vector đầu vào vào mạ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
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
3.5. Chƣơng trình minh họa
3.5.1. Các chức năng của chƣơng trình
Hình 3.5 Giao diện chƣơng trình minh họa Ký tự: Chứa các ký tự mẫu dùng để huấn luyện
Giá trị: Lƣu trữ giá trị các ký tự mẫu dùng để huấn luyện
Nhận dạng kí tự: Vùng để vẽ ký tự lên.
Tập mẫu: Chứa các ký tự mẫu dùng để huấn luyện.
Tải mẫu: Tải tập ký tự mẫu đã tạo sẵn trong file: TapMau.xml
Thêm ký tự: Ghi lại tập ký tự mẫu vào file: TapMau.xml
Học theo Kohonen: Huấn luyện mạng nơron Kohonen.
Học theo Perceptron: Huấn luyện mạng nơron Perceptron.
Xóa ký tự: Xóa một ký tự mẫu đƣợc chọn ra khỏi file TapMau.xml
Nhận dạng: Nhận dạng ký tự vẽ vào.
Giới thiệu: Giới thiệu sơ bộ về chƣơng trình
Chúng ta có thể tải tập huấn luyện ra từ file tạo sẵn TapMau.xml bằng cách nhấn nút “Tải mẫu” hoặc chúng ta có thể tự nhập mẫu để huấn luyện bằng cách vẽ ký tự vào vùng vẽ ký tự rồi nhấn “Thêm ký tự”, khi đó có một hộp
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
thoại nhắc bạn đánh vào ký tự tƣơng ứng để khi nhận dạng nó sẽ chỉ ra ký tự tƣơng ứng với ký tự vừa vẽ.
Sau khi nhập xong tập mẫu thì nhấn nút “Học theo Kohonen” để huấn luyện cho mạng nơron Kohonen hoặc nhấn nút “Học theo Perceptron” để huấn luyện cho mạng nơron Perceptron. Quá trình huấn luyện hoàn thành, có thể thực hiện nhận dạng ký tự bằng cách vẽ ký tự rồi nhấn “Nhận dạng”. Khi đó ký tự đƣợc hiển thị trên lƣới kích thƣớc 10*10.
Có thể xóa ký tự hoặc xóa mẫu trong tập mẫu bằng cách chọn ký tự cần xóa rồi nhấn nút “Xóa ký tự”.
3.5.2. Kết quả nhận dạng
- Để nhận dạng ký tự ta vẽ ký tự cần nhận dạng vào vùng vẽ chữ (vùng chữ nhật màu trắng, ngay bên dƣới phần “Nhận dạng ký tự”).
- Ký tự đồng thời đƣợc hiển thị trên lƣới kích 10*10 (vùng ô vuông màu xanh, bên phải giao diện chƣơng trình).
-Nhấn nút nhận dạng.
Ký tự nhận dạng tƣơng ứng với ký tự cần nhận dạng đã đƣợc vẽ sẽ đƣợc hiển thị ra màn hình.
Một số kết quả minh họa
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
Hình 3.7 Nhận dạng ký tự e bằng mạng 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
Hình 3.9 Thêm mẫu mới
3.6. Đánh giá, nhận xét
Có nhiều phƣơng pháp để giải quyết bài toán nhận dạng ký tự viết tay tiếng Việt. Nếu áp dụng mạng nơron để giải quyết, thông thƣờng ngƣời ta hay sử dụng mạng dẫn tiến đa lớp cho việc thực hiện nhận dạng. Nhƣng chúng ta sẽ thấy một số khó khăn trong vấn đề tìm ra số nơron trong từng lớp, nhất là lớp ẩn. Thuật toán lan truyền ngƣợc cũng phức tạp hơn, nhiều công thức tính toán hơn, lại phải xét trên từng lớp mạng. Trong khi đó mạng nơron Kohonen cũng là một loại mạng rất phổ biến có cấu trúc đơn giản hơn, các bƣớc thực hiện đơn giản, rõ ràng, dễ dàng lựa chọn và hiệu chỉnh các tham số đầu vào, quá trình huấn luyện mạng nhanh, dễ hội tụ.
Vì vậy lựa chọn mạng nơron Kohonen để giải quyết bài toán nhận dạng ký tự viết tay tiếng việt rời rạc trực tuyến sẽ đơn giản hơn, hiệu quả hơn.
Chƣơng trình có thể nhận dạng với độ chính xác rất cao. Nếu ký tự nhận dạng chƣa đƣợc chính xác ta có thể thêm mẫu và huấn luyện lại cho ký tự đó đến khi nhận dạng đƣợc ký tự đó chính xác. Nếu các ký tự gần giống nhau khi nhận dạng dễ lẫn sang nhau thì khi huấn luyện ta thêm mẫu tƣơng ứng với các ký tự đến khi nào đạt đƣợc tỷ lệ nhận dạng 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
Chƣơng trình nhận dạng chính xác hơn với các ký tự không dấu đến 96%, đối với ký tự có dấu thì độ chính xác lớn hơn 85%. Đối với ký tự có dấu độ chính xác giảm hơn so với trƣờng hợp không có dấu vì trƣờng hợp này các ký tự khác nhau rất ít, nên số lƣợng mẫu huấn luyện cho các các ký tự có dấu cần nhiều hơn.
Để nhận dạng đƣợc nhiều kiểu viết khác nhau thì tập mẫu huấn luyện cho mỗi ký tự phải có nhiều dạng phong phú, tƣơng ứng với các cách viết mà ngƣời sử dụng có thể viết ra. Quá trình huấn luyện này giải quyết đƣợc khía cạnh phức tạp của bài toán nhận dạng chữ viết tay đó là sự đa dạng của chữ viết tay, đặc biệt là chữ viết tay tiếng Việt.
Nhƣ vậy chƣơng trình minh họa cho nhận dạng ký tự viết tay tiếng Việt trực tuyến đã đạt đƣợc mục tiêu của bài toán phức đặt ra. Nghiên cứu về mạng nơron đã là một hƣớng nghiên cứu hiện nay còn rất mới mẻ và có nhiều hứa hẹn. Với hƣớng tiếp cận mới này áp dụng cho giải quyết bài toán nhận dạng ký tự viết tay tiếng Việt trực tuyến vốn rất phức tạp ở những đặc điểm:
- Ký tự viết tay trực tuyến phải thêm phần tạo giao diện để vẽ ký tự, so với việc nhập đầu vào là file ảnh của ký tự viết tay.
- Ký tự viết tay thì hình dạng của ký tự rất phong phú đa dạng phụ thuộc nhiều vào ngƣời viết, bởi mỗi ngƣời có một cách viết khác nhau.
- Ký tự viết tay tiếng Việt có số lƣợng lớn, lớn hơn rất nhiều so với các ký tự theo các chuẩn khác. Ví dụ: chuẩn tiếng Việt có 89 ký tự gồm ký tự không dấu và có dấu, chuẩn tiếng Anh chỉ gồm 26 ký tự không dấu. Mặt khác các ký tự lại rất giống nhau nên dễ nhầm lẫn trong quá trình nhận dạng.
- Nhƣ vậy khi giải quyết bài toán ở đây phải đáp ứng đƣợc các yêu cầu: - Giải quyết đƣợc sự phức tạp của việc xử lý dữ liệu đầu vào.
- Giải quyết đƣợc việc xử lý khối lƣợng dữ liệu lớn.
- Giải quyết đƣợc độ chuẩn xác trong quá trình nhận dạng.
- Giải quyết đƣợc mức độ tổng quát, đa dạng, phong phú trong quá trình xây dựng và huấn luyện mạng để đạt đƣợc độ chính xác cao khi nhận dạ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
KẾT LUẬN VÀ HƢỚNG PHÁT TRIỂN 1. Những kết quả mà luận văn đã đạt đƣợc
Về mặt lý thuyết
Tìm hiểu về những thành phần cơ bản và các kiểu kiến trúc cơ bản của mạng nơron, phân biệt đƣợc một số loại mạng nơron.
Nắm đƣợc ý nghĩa của việc học hay tích luỹ, trong đó có vai trò to lớn của các quy tắc học, mô hình học và thuật toán học đối với nhiều khả năng ứng dụng khác nhau.
Tìm hiểu các ứng dụng của mạng nơron trong thực tế.
Nắm đƣợc những kiến thức cơ bản về mô hình mạng nơron Kohonen và cách xây dựng một mô hình mạng nơron trong thực tế.
Nắm đƣợc quy trình chung trong xây một dựng hệ thống nhận dạng ký tự viết tay tiếng Việt trực tuyến.
Vận dụng mạng nơron Kohonen để xây dựng mô phỏng nhận dạng ký tự viết tay tiếng Việt rời rạc trực tuyến.
Về mặt thực tiễn
Đƣa ra phƣơng pháp xử lý với ký tự viết tay tiếng Việt rời rạc, xây dựng thành công hệ thống nhận dạng ký tự viết tay tiếng Việt rời rạc sử dụng mô hình mạng nơron Perceptron và Kohonen. Xây dựng đƣợc chƣơng trình minh họa.
Tuy biết rằng những điều thu nhận đƣợc mới chỉ là một phần rất nhỏ trong một ngành nghiên cứu lớn, tôi tự nhận thấy đã gặt hái đƣợc những thành công nhất định trong giai đoạn nghiên cứu đầu tiên.
2. Hƣớng phát triển tiếp theo
Bên cạnh các kết quả đã đạt đƣợc, còn có những vấn đề chƣa đƣợc luận văn này giải quyết hay đề cập tới. Trong thời gian tới tôi sẽ tiếp tục nghiên cứu và hoàn thiện đề tài với các mục tiêu chính đƣợc đặt ra nhƣ sau:
- Nâng cao hiệu quả và độ chính xác trong hệ thống nhận dạng ký tự viết tay rời rạc tiếng Việt trực tuyến.
- Xây dựng đƣợc hệ thống nhận dạng cả chữ viết tay tiếng Việt sử dụng mạng nơron.
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
TÀI LIỆU THAM KHẢO Tiếng việt
1. Nguyễn Tân Ân, Bài giảng mạng nơron, Đại học Sƣ Phạm Hà Nội, 2011. 2. Ngô Quốc Tạo, Phạm Văn Hùng, Xây dựng tham số cho mạng nơron lan truyền ngược, Kỷ yếu hội thảo Quốc gia, Thái Nguyên, 8-2003.
3. Nguyễn Đình Thúc, Trí tuệ nhân tạo Mạng nơron phương pháp & ứng dụng, Nhà xuất bản Giáo Dục, 2000.
4. Ngô Quốc Tạo, Nghiên cứu phương pháp nhận dạng chữ viết tay hạn chế trực tuyến, Đề tài nghiên cứu cơ sở mã số CS04.09 Viện CNTT, 2004.
5. Lê Nam Quang 2010, Ứng dụng mạng neural trong nhận dạng kí tự, Luận văn tốt nghiệp, Trƣờng Đại học Bách Khoa Hà Nội, 2010.
6. Lƣơng Mạnh Bá, Nguyễn Thanh Thủy , Nhập môn xử lý ảnh số, Nhà xuất bản khoa học và kỹ thuật, Hà Nội, 1999.
7. Ngô Xuân Bách , Ứng dụng mô hình mạng nơron trong nhận dạng ký tự viết