Thông tin tài liệu
i LỜI CAM ĐOAN Tôi xin cam đoan, toàn bộ nội dung liên quan tới đề tài được trình bày trong luận văn là bản thân tôi tự tìm hiểu và nghiên cứu, dưới sự hướng dẫn khoa học của TS Vũ Tất Thắng Viện công nghệ thông tin thuộc Viện Khoa học và Công nghệ Việt Nam Các tài liệu, số liệu tham khảo được trích dẫn đầy đủ nguồn gốc. Thái Nguyên, ngày 20 tháng năm 2016 Học viên Vũ Mạnh Hùng ii LỜI CẢM ƠN Tôi xin gửi lời cảm ơn tới trường Đại học CNTT&TT – Đại học Thái Nguyên tạo điều kiện tổ chức khóa học để có điều kiện tiếp thu kiến thức có thời gian để hoàn thành Luận văn Cao học Tôi xin cảm ơn TS.Vũ Tất Thắng, người tận tình dẫn suốt trình xây dựng đề cương hoàn thành luận văn Tôi xin chân thành cảm ơn thày cô truyền đạt cho kiến thức quý báu trình học Cao học làm Luận văn Tôi chân thành cảm ơn bạn bè, anh chị em lớp cao học K13 giúp đỡ, đóng góp ý kiến chia kinh nghiệm học tập, nghiên cứu suốt khóa học Cuối kính gửi thành đến gia đình người thân tôi, người hết lòng chăm sóc, dạy bảo động viên để có kết ngày hôm Mặc dù cố gắng hoàn thành Luận văn phạm vi khả cho phép chắn không tránh khỏi thiếu sót Xin kính mong nhận cảm thông tận tình bảo quý Thầy Cô bạn Thái Nguyên, ngày 20 tháng năm 2016 Học viên Vũ Mạnh Hùng iii MỤC LỤC LỜI CAM ĐOAN i LỜI CẢM ƠN ii MỤC LỤC iii DANH MỤC ẢNH v DANH MỤC BẢNG BIỂU vi LỜI MỞ ĐẦU 1 CHƯƠNG 1: GIỚI THIỆU ĐỀ TÀI 4 1.1. Giới thiệu về bài toán nhận dạng 4 1.1.1. Các giai đoạn phát triển . 4 1.1.2. Tình hình nghiên cứu trong nước . 5 1.1.3. Tình hình nghiên cứu ở nước ngoài 6 1.2. Các bước xử lý cho bài toán nhận dạng hoàn chỉnh . 7 1.3. Kết luận chương 9 CHƯƠNG 2: MÔ HÌNH MẠNG NEURON VÀ MÔ HÌNH HỌC SÂU 11 2.1. Tổng quan về mô hình mạng neuron 11 2.1.1. Giới thiệu về mạng Neuron 11 2.1.1.1. Định nghĩa: 11 2.1.1.2. Lịch sử phát triển mạng neuron . 11 2.1.1.3. So sánh mạng neuron với máy tính truyền thống 14 2.1.2. Cấu trúc và hoạt động của mạng Neuron 15 2.1.2.1. Neuron sinh học 15 2.1.2.2. Cấu trúc của một neuron . 17 2.1.2.3. Hoạt động của mạng neuron 19 2.1.2.4. Hàm truyền 25 2.1.3. Mô hình và huấn luyện trong bài toán nhận dạng . 26 2.1.3.1. Mạng neuron và bài toán phân loại mẫu 26 2.1.3.2. Khả năng học và tổng quát hóa . 27 2.1.3.3. Các phương pháp huấn luyện mạng 27 2.2. Mô hình học sâu 29 2.2.1. Mạng nhiều tầng truyền thẳng (MLP) 29 2.2.1.1. Chuẩn bị dữ liệu 30 a. Kích thước mẫu 30 b. Mẫu con 32 c. Sự phân tầng mẫu 32 d. Chọn biến 33 2.2.1.2. Xác định các tham số cho mạng 34 iv a. Chọn hàm truyền 34 b. Xác định số neuron tầng ẩn 35 c. Khởi tạo trọng 36 2.2.1.3. Vấn đề lãng quên (catastrophic forgetting) 37 2.2.1.4. Vấn đề quá khớp 38 a. Khái niệm quá khớp 38 b. Giải quyết quá khớp 38 2.2.2. Hopfield Network 39 2.2.2.1. Cấu trúc mạng Hopfield 40 2.2.2.2. Mạng Hopfield rời rạc 42 2.2.2.3. Mạng Hopfield liên tục 43 2.2.3. Boltzmann Machines . 45 2.2.4. Restricted Boltzmann Machines . 49 2.2.5. Thuật toán lan truyền ngược 50 2.3. Kết luận chương 52 CHƯƠNG 3: CÀI ĐẶT CHƯƠNG TRÌNH THỬ NGHIỆM 53 3.1. Môi trường thực nghiệm 53 3.2. Dữ liệu thực nghiệm 53 3.3. Huấn luyện mô hình và kết quả thực nghiệm với mô hình MLP 54 3.3.1. Mô hình huấn luyện 54 3.3.2. Kết quả thực nghiệm 54 3.4. Huấn luyện mô hình và kết quả thực nghiệm với mô hình RBM . 56 3.4.1. Mô hình huấn luyện 56 3.4.1.1. Cấu trúc mô hình 56 3.4.1.2. Phương pháp huấn luyện và quy trình nhận dạng 57 3.4.2. Giao diện chính của chương trình 58 3.4.3. Kết quả thực nghiệm 60 3.5. Đánh giá kết quả thực nghiệm của hai mô hình. 61 3.6. Kết luận chương 62 KẾT LUẬN CHUNG 63 1. Các kết quả đã đạt và chưa đạt được 63 2. Hướng nghiên cứu và phát triển 63 TÀI LIỆU THAM KHẢO 65 v DANH MỤC ẢNH Hình 1- 1: Các bước trong nhận dạng chữ viết tay 7 Hinh 2- 1: Cấu trúc của một neuron sinh học điển hình 16 Hinh 2- 2: Cấu trúc của một neuron 18 Hinh 2- 3: Cấu trúc chung của mạng neuron 20 Hinh 2- 4: Mạng tự kết hợp 22 Hinh 2- 5: Mạng kết hợp khác kiểu 22 Hinh 2- 6: Mạng truyền thẳng 23 Hinh 2- 7: Mạng phản hồi 23 Hinh 2- 8: Perceptron 24 Hinh 2- 9: Mạng MLP tổng quát 29 Hinh 2- 10: Mối liên hệ giữa sai số và kích thước mẫu . 31 Hinh 2- 11: Huấn luyện luân phiên trên hai tập mẫu 37 Hinh 2- 12: Cấu trúc của mạng Hopfield 40 Hinh 2- 13: Đồ thị hàm satlins 41 Hinh 2- 14: Mạng Hopfield liên tục sử dụng mạch điện tử. 44 Hinh 2- 15: Một Boltzmann Machine với 3 nút ẩn . 45 Hinh 2- 16:Một RBM đơn giản với 3 hidden units và 2 visible units. 49 Hình 3- 1: Mô hình huấn luyện mạng (MLP) . 54 Hình 3- 2: Mô hình huấn luyện mạng (RBM) . 56 Hình 3- 3: Giao diện chính của chương trình nhận dạng chữ viết tay 58 Hình 3- 4: Chương trình khi nhận dạng 1 ảnh bất kỳ 59 Hình 3- 5: Chương trình khi nhận dạng toàn bộ ảnh trong một thư mục . 59 Hình 3- 6: Nhận dạng bằng mô hình RBM có kết quả sai chữ với M 60 vi DANH MỤC BẢNG BIỂU Bảng 2- 1: Các hàm truyền cơ bản 26 Bảng 2- 2: Thuật toán lan truyền ngược . 52 Bảng 3- 1: Kết quả thực nghiệm sử dụng mô hình MLP . 55 Bảng 3- 2: Chi tiết kết quả thực nghiệm sử dụng mô hình MLP 55 Bảng 3- 3: Kết quả thực nghiệm sử dụng mô hình RBM 60 Bảng 3- 4: Chi tiết kết quả thực nghiệm sử dụng mô hình RBM 60 Bảng 3- 5: Bảng so sánh kết quả giữa hai mô hình . 61 1 LỜI MỞ ĐẦU Nhận dạng chữ viết tay là bài toán khó trong lớp các bài toán nhận dạng chữ, và vẫn luôn thu hút được nhiều sự quan tâm nghiên cứu của các nhà khoa học. Đặc biệt là trong vài thập niên gần đây, do sự thúc đẩy của quá trình tin học hóa trong mọi lĩnh vực, ứng dụng nhận dạng chữ càng có nhiều ý nghĩa khi được sử dụng cho các bài toán trong thực tế. Cũng như nhiều bài toán nhận dạng tiếng nói, hình ảnh… khác, thì độ chính xác của hệ thống vẫn tiếp tục cần phải cải thiện nhằm vươn tới khả năng nhận dạng giống như con người. Tuy nhiên, với bài toán nhận dạng chữ viết tay thì vấn đề trở nên phức tạp hơn nhiều so với bài toán nhận dạng chữ in thông thường ở những vấn đề sau đây: Với chữ viết tay thì không thể có các khái niệm font chữ, kích cỡ chữ. Các kí tự trong một văn bản chữ viết tay thường có kích thước khác nhau. Thậm chí, cùng một kí tự trong một văn bản do một người viết nhiều khi cũng có độ rộng, hẹp, cao, thấp khác nhau, Với những người viết khác nhau chữ viết có độ nghiêng khác nhau (chữ nghiêng nhiều/ít, chữ nghiêng trái/phải ). Các kí tự của một từ trên văn bản chữ viết tay đối với hầu hết người viết thường bị dính nhau vì vậy rất khó xác định được phân cách giữa chúng. Các văn bản chữ viết tay còn có thể có trường hợp dính dòng (dòng dưới bị dính hoặc chồng lên dòng trên). Trong những năm gần đây, mô hình mạng Neuron theo hướng học sâu đã cho thấy những kết quả tốt trong nhiều bài toán khác nhau, trong đó có nhận dạng chữ. 2 Xuất phát từ yêu cầu thực tế, đang rất cần có nhưng nghiên cứu về vấn đề này. Chính vì vậy học viên đã chọn đề tài “Nghiên cứu mô hình học sâu (deep-learning) và ứng dụng trong nhận dạng chữ viết tay” làm luận văn tốt nghiệp với mong muốn phần nào áp dụng vào bài toán thực tế. Bài toán đã đặt ra phải giải quyết được những yêu cầu sau: Nhận dạng được các ký tự từ ảnh đầu vào Tiến hành nhận dạng kí tự đơn lẻ sử dụng mạng Neuron nhân tạo theo phương pháp học sâu Restricted Boltzmann machine (RBM). Đánh giá kết quả và so sánh với mô hình mạng neuron Với những yêu cầu đã đặt ra ở trên, cấu trúc của luận văn sẽ bao gồm những nội dung sau đây: Chương 1: Tổng quan đề tài Giới thiệu về bài toán nhận dạng chữ viết tay, tình hình nghiên cứu trong và ngoài nước, quy trình chung để giải quyết bài toán và các phương pháp điển hình trong việc huấn luyện nhận dạng, phạm vi của đề tài. Chương 2: Mô hình mạng neuron mô hình học sâu Trình bày về cơ sở lý thuyết của mô hình neuron và huấn luyện trong bài toán nhận dạng chữ viết tay. Cơ sở lý thuyết của mô hình học sâu: Hopfield network, Boltzmann Machines, Restricted Boltzmann Machines và thuật toán lan truyền ngược. Chương 3: Kết thực nghiệm đánh giá Trình bày các kết quả thực nghiệm của hai mô hình mạng neuron và mô hình học sâu, đưa ra kết quả đánh giá nhận dạng chữ viết tay giữa mô hình mạng neuron và mô hình học sâu. 3 4 CHƯƠNG 1: GIỚI THIỆU ĐỀ TÀI 1.1 Giới thiệu toán nhận dạng Nhận dạng chữ in: đã được giải quyết gần như trọn vẹn (sản phẩm FineReader 11 của hãng ABBYY có thể nhận dạng chữ in theo 192 ngôn ngữ khác nhau, phần mềm nhận dạng chữ Việt in VnDOCR 4.0 của Viện Công nghệ Thông tin – Viện Hàn lâm Khoa học và Công nghệ Việt Nam có thể nhận dạng được các tài liệu chứa hình ảnh, bảng và văn bản với độ chính xác trên 98%). Nhận dạng chữ viết tay vẫn còn là vấn đề thách thức lớn đối với các nhà nghiên cứu. Bài toàn này chưa thể giải quyết trọn vẹn được vì nó hoàn toàn phụ thuộc vào người viết và sự biến đổi quá đa dạng trong cách viết và trạng thái sức khỏe, tinh thần của từng người viết. 1.1.1 Các giai đoạn phát triển Giai đoạn (1900 - 1980) Nhận dạng chữ được biết đến từ năm 1900, khi nhà khoa học người Nga Alan Turing (1912-1954) phát triển một phương tiện trợ giúp cho những người mù. Các sản phẩm nhận dạng chữ thương mại có từ những năm1950, khi máy tính lần đầu tiên được giới thiệu tính năng mới về nhập và lưu trữ dữ liệu hai chiều bằng cây bút viết trên một tấm bảng cảm ứng. Công nghệ mới này cho phép các nhà nghiên cứu làm việc trên các bài toán nhận dạng chữ viết tay online. Mô hình nhận dạng chữ viết được đề xuất từ năm 1951 do phát minh của M. Sheppard được gọi là GISMO, một robot đọc-viết. Năm 1954, máy nhận dạng chữ đầu tiên đã được phát triển bởi J. Rainbow dùng để đọc chữ in hoa nhưng rất chậm. 52 Bảng 2- 2: Thuật toán lan truyền ngược Ngoài những thành công của giải thuật học lan truyền ngược, vẫn còn có một số khía cạnh làm cho giải thuật trở nên chưa được bảo đảm là mọi lúc đều tốt. Khó khăn chủ yếu là ở quá trình huấn luyện lâu. Có thể do nhịp độ học và động lực không tối ưu. Sự sai sót trong việc huấn luyện nói chung xuất hiện từ hai nguồn: mạng liệt và những cực tiểu địa phương. Mạng liệt: xảy ra khi những trọng số được điều chỉnh tới những giá trị rất lớn. Tổng đầu vào của một đơn vị ẩn hoặc đơn vị đầu ra có thể bởi vậy mà đạt giá trị rất cao (hoặc dương hoặc âm), và qua hàm kích hoạt sigmoid, đơn vị sẽ có một giá trị kích hoạt rất gần 0 hoặc rất gần 1. Giá trị hiệu chỉnh trọng số gần 0, và quá trình huấn luyện có thể đi đến một trạng thái dừng ảo. Cực tiểu địa phương: bề mặt sai số của mạng rất phức tạp đầy những ngọn đồi và những thung lũng. Bởi vì sự hạ độ dốc, mạng có thể bị mắc bẫy tại một cực tiểu địa phương khi có nhiều cực tiểu thấp hơn gần bên cạnh. Những phương pháp thống kê có thể giúp để tránh cái bẫy này, nhưng chúng làm chậm. Một phương án khác là tăng thêm số lượng đơn vị ẩn. Như vậy sẽ làm việc trong không gian sai số nhiều chiều, nên cơ hội gặp bẫy nhỏ hơn. Tuy nhiên việc tăng cũng có giới hạn trên, khi vượt qua giới hạn này, cơ hội mắc bẫy lại tăng lên. 2.3 Kết luận chương Trong chương này được trình bày chủ yếu về mô hình Mạng nhiều tầng truyền thẳng (MLP) và mô hình học sâu (mô hình mạng neuron nhân tạo theo phương pháp học sâu). Ngoài ra, chương này còn trình bày một số lý thuyết về mạng neuron nhân tạo và một số đặc trung của nó. Bên cạnh đó, trong chương này trình bày thêm về thuật toán lan truyền ngược được ứng dụng trong quá trình huấn luyện mạng của mô hình học sâu. 53 CHƯƠNG 3: CÀI ĐẶT CHƯƠNG TRÌNH THỬ NGHIỆM 3.1 Môi trường thực nghiệm Chương trình được thử nghiệm trên hệ điều hành Windows 10, máy tính PC core i7 tốc độ 3.40GHz, bộ nhớ 8GB RAM. Đối với mô hình MLP:Chương trình được cài đặt trên ngôn ngữ Python 2.7.6, sử dụng thư viện sklearn (scikit - learn) và một số thư viện bổ trợ khác như: matplotlib, numpy, scipy. Thư viện này là thư viện mã nguồn mở chứa các thuật toán được sử dụng trong Data Mining. Đối với mô hình RBM: Chương trình được cài đặt trên Matlab và sau khi huấn luyện xong mô hình, học viên sử dụng bộ trọng số của mô hình để xây dựng chương trình ứng dụng nhận dạng ký tự viết tay trên ngôn ngữ C#. Trong mô hình này học viên có tham khảo một số tài liệu và mã nguồn của nhóm nghiên cứu do Giáo sư Hinton của đại học Toronto, Canada phụ trách. Trong khi huấn luyện mô hình, học viên đã thay đổi và sửa chữa một số các thông số của mô hình để đảm bảo về mặt tài nguyên cũng như tốc độ chạy của chương trình. Trong quá trình xây dựng mô hình, học viên có thêm vào lớp RBM để nâng cao chất lượng của mô hình. 3.2 Dữ liệu thực nghiệm Ở đây, học viên đã tiến hành nhận dạng ký tự với các bộ dữ liệu thực nghiệm: Bộ dữ liệu chữ viết tay của người Việt được trích xuất từ các phiếu số 1 trong kì thi tuyển sinh đại học, cao đẳng năm 2013. Bộ dữ liệu này được học viên trích xuất từ các phiếu số 1 của kì thi tuyển sinh đại học, cao đẳng năm 2013 gồm 60.000 mẫu học (gồm các ký tự A, B, C, D, H, K, L, M, N, P, mỗi ký tự chứa 6.000 mẫu học) và 10.000 mẫu thử (gồm các ký tựA, B, C, D, H, K, L, M, N, P, mỗi ký tự chứa 1.000 mẫu thử). 54 3.3 Huấn luyện mô hình kết thực nghiệm với mô hình MLP 3.3.1 Mô hình huấn luyện Hình 3- 1: Mô hình huấn luyện mạng (MLP) Trong mô hình MLP học viên sử dụng hai lớp ẩn để huấn luyện với các thông số như sau: Lớp đầu vào (Visible Units): Với 784 nút đầu vào, mỗi một nút đầu vào đại diện cho một điểm ảnh, với giá trị là mức xám của điểm ảnh đó (0 255). Các lớp ẩn (Hidden Units): Tại các lớp này học viên sử dụng 2 lớp ẩn với các lớp tương ứng với 800, 800 nút. Lớp đầu ra (Visible Units): Gồm có 10 nút, mỗi nút tương ứng với giá trị của các chữ cái (A, B, C, D, H, K, L, M, N, P). 3.3.2 Kết thực nghiệm Với việc sử dụng môi trường thực nghiệm và bộ dữ liệu thực nghiệm như trên, học viên rút ra một số kết luận như sau: 55 Bảng 3- 1: Kết thực nghiệm sử dụng mô hình MLP Các thông số Bộ liệu Tuyển Sinh Số mẫu học 60.000 Số mẫu nhận dạng 10.000 Thời gian học > 30 giờ Thời gian nhận dạng
Ngày đăng: 16/04/2017, 17:26
Xem thêm: Nghiên cứu mô hình học sâu (deep learning) và ứng dụng trong nhận dạng chữ viết tay , Nghiên cứu mô hình học sâu (deep learning) và ứng dụng trong nhận dạng chữ viết tay