Để có một cái nhìn trực quan hơn về phương pháp này, học viên xin trình bày luận văn: “Nghiên cứu áp dụng kỹ thuật học sâu deep learning cho bài toán nhận dạng ký tự Latinh”.. Máy học tậ
Trang 1BỘ GIAO THÔNG VẬN TẢI BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC HÀNG HẢI VIỆT NAM
Trang 2BỘ GIAO THÔNG VẬN TẢI BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC HÀNG HẢI VIỆT NAM
CN TRẦN QUYẾT CƯỜNG
NGHIÊN CỨU ÁP DỤNG KỸ THUẬT HỌC SÂU (DEEP LEARNING) CHO BÀI TOÁN NHẬN DẠNG
KÝ TỰ LATINH
LUẬN VĂN THẠC SĨ KỸ THUẬT
NGÀNH: CÔNG NGHỆ THÔNG TIN MÃ SỐ: 60480201 CHUYÊN NGÀNH: CÔNG NGHỆ THÔNG TIN
Người hướng dẫn khoa học: TS Hồ Thị Hương Thơm
HẢI PHÒNG - 2016
Trang 3i
LỜI CAM ĐOAN
Học viên xin cam đoan đây là công trình nghiên cứu của riêng mình dưới sự hướng dẫn khoa học của TS Hồ Thị Hương Thơm Các nội dung nghiên cứu, kết quả nêu trong luận văn là xác thực và chưa từng được công bố trong bất kỳ các công trình nào khác
Các thông tin sử dụng trong luận văn là có cơ sở và nguồn gốc rõ ràng Học viên xin hoàn toàn chịu trách nhiệm về tính xác thực và nguyên bản của luận văn
Hải Phòng, ngày tháng năm 2016
Trang 4ii
LỜI CẢM ƠN
Trong quá trình hoàn thành luận văn, các thầy cô tại trường Đại học Hàng hải Việt Nam đã giúp đỡ và tạo điều kiện cho học viên rất nhiều Học viên xin gửi lời cảm ơn chân thành nhất đến các thầy cô khoa Công nghệ thông tin, Viện Đào tạo sau Đại học và đặc biệt là TS Hồ Thị Hương Thơm đã chỉ bảo, hướng dẫn học viên thực hiện đề tài: “Nghiên cứu áp dụng kỹ thuật học sâu (Deep Learning) cho bài toán nhận dạng ký tự Latinh”
Học viên muốn gửi lời cảm ơn sâu sắc đến gia đình, bạn bè đã động viên, giúp
đỡ trong suốt quá trình nghiên cứu, học tập và hoàn thiện đề tài
Bước đầu làm quen với công tác nghiên cứu khoa học còn nhiều bỡ ngỡ và hạn chế về kiến thức cũng như kinh nghiệm nên không tránh khỏi những thiếu sót nhất định Rất mong nhận được những góp ý của thầy, cô và các bạn để đề tài được hoàn thiện hơn
Xin chân thành cảm ơn!
Trang 5iii
MỤC LỤC
LỜI CAM ĐOAN i
LỜI CẢM ƠN ii
MỤC LỤC iii
DANH MỤC CÁC CHỮ VIẾT TẮT VÀ KÝ HIỆU v
DANH MỤC CÁC BẢNG vi
DANH MỤC CÁC HÌNH vii
LỜI MỞ ĐẦU 1
CHƯƠNG 1: TỔNG QUAN VỀ HỌC MÁY VÀ NHẬN DẠNG 4
1.1 Học máy (Machine learning) 4
1.1.1 Khái niệm 4
1.1.2 Phân loại 5
1.2 Nhận da ̣ng 10
1.2.1 Nhận dạng 10
1.2.2 Nhận dạng ký tự quang học 11
CHƯƠNG 2: KỸ THUẬT HỌC SÂU CHO BÀI TOÁNNHẬN DẠNG KÝ TỰ LATINH 14
2.1 Mạng nơ-ron nhân tạo 14
2.1.1 Perceptron và sigmoid 14
2.1.2 Kiến trúc của mạng nơ-ron 17
2.1.3 Quá trình xử lý thông tin của một ANN 18
2.1.4 Quá trình học (Learning Processing) của ANN 20
2.1.5 Giao thức huấn luyện (Training protocols) 21
2.2 Mạng nơ-ron xoắn 22
2.2.1 Trường tiếp nhận cục bộ 23
Trang 6iv
2.2.2 Trọng số chung và định hướng 25
2.2.3 Lớp tổng hợp 28
2.3 Áp dụng phương pháp học sâu vào nhận dạng ký tự Latinh 30
2.3.1 Cơ sở dữ liệu 30
2.3.2 Quá trình nhận dạng 30
CHƯƠNG 3: XÂY DỰNG CHƯƠNG TRÌNH, CÀI ĐẶT, THỬ NGHIỆM VÀ ĐÁNH GIÁ 37
3.1 Xây dựng chương trình 37
3.1.1 Yêu cầu phần cứng 37
3.1.2 Ngôn ngữ và công cụ lập trình 38
3.1.3 Chương trình demo 39
3.2 Thử nghiệm và đánh giá kết quả 43
3.2.1 Thử nghiệm 43
3.2.2 Đánh giá kết quả 45
KẾT LUẬN 47
TÀI LIỆU THAM KHẢO 48
Trang 7v
DANH MỤC CÁC CHỮ VIẾT TẮT VÀ KÝ HIỆU
Trang 9vii
DANH MỤC CÁC HÌNH
1.1 Quá trình nhận dạng đối tượng của con người 11
2.6b Hàm tổng đối với nhiều nơ-ron trong cùng một lớp 19
2.8 Phân loại học dựa theo thuật toán và kiến trúc 21
Trang 101
LỜI MỞ ĐẦU
Nhận dạng ký tự được biết đến đầu thế kỷ XX và luôn được quan tâm phát triển cùng với tiến bộ của khoa học máy tính Từ ý tưởng ban đầu nhằm tạo ra công cụ hỗ trợ người khiếm thị, cho đến nay, nhận dạng ký tự đã ngày càng trở nên quan trọng vì nhiều lý do Ví như việc số hóa nhằm lưu trữ các tài liệu có niên đại cổ rất khó đọc do thời gian hay tác động của môi trường, hoặc chuyển những cuốn sách viết tay thành văn bản số… mà các chương trình nhận dạng có thể giúp con người tiết kiệm được rất nhiều công sức cũng như thời gian Ngoài ra, nhận dạng ký tự còn góp phần không nhỏ vào trong nhiều lĩnh vực của cuộc sống như: bảo mật và lưu trữ thông tin, ngân hàng…
Nhận dạng ký tự có thể được biết đến với hai mục tiêu chính: nhận dạng chữ in và nhận dạng chữ viết tay, trong đó, vấn đề nhận dạng chữ in đã được các chuyên gia giải quyết và đưa ra sản phẩm có thể nhận dạng nhiều loại ký tự của nhiều nước khác nhau Tại Việt Nam, nhiều nhà nghiên cứu cũng đã đưa ra các chương trình nhận dạng chữ Việt in dưới dạng tệp văn bản chứa hình ảnh với độ chính xác lên đến hơn 98% Có thể nói chúng ta đã giải quyết gần như trọn vẹn bài toán nhận dạng chữ in Tuy nhiên, nhận dạng chữ viết tay vẫn là một bài toán tương đối phức tạp đối với chúng ta bởi mỗi người có nét chữ khác nhau và biến đổi đa dạng tùy theo trạng thái của người viết Đôi khi chính người viết cũng không thể xác định được những chữ họ đã viết ra, vậy thì làm cách nào mà máy tính có thể “đọc” và đưa ra chính xác chữ viết tay của người nào đó để tất cả mọi người đều có thể hiểu được ý nghĩa chúng hiển thị? Việc tìm ra phương án giải quyết vấn đề này là động lực thúc đẩy các nhà nghiên cứu cho ra đời các kỹ thuật nhận dạng chữ viết tay khác nhau
Đã có nhiều bước tiến đáng kể trong lĩnh vực nhận dạng ký tự viết tay, trong
đó, phải kể đến các kỹ thuật nhận dạng kết hợp với các phương pháp luận trong lĩnh vực học máy (Machine Learning) Có nhiều cách tiếp cận để giải bài toán nhận dạng ký tự viết tay trong học máy như kỹ thuật mạng Nơ-ron, Support Vector
Trang 112
Machine (SVM), Markov… Mỗi cách tiếp cận có ưu điểm và khuyết điểm riêng với tỉ lệ thành công nhất định, trong đó, phương pháp học sâu (Deep learning) ngày càng trở nên nổi trội và có nhiều đóng góp không nhỏ trong lĩnh vực nhận dạng Để có một cái nhìn trực quan hơn về phương pháp này, học viên xin trình bày luận văn: “Nghiên cứu áp dụng kỹ thuật học sâu (deep learning) cho bài toán nhận dạng ký tự Latinh”
Mục tiêu của đề tài:
Mục tiêu của đề tài là nghiên cứu áp dụng kỹ thuật học sâu cho bài toán nhận dạng ký tự Latinh
Đối tượng và phạm vi nghiên cứu:
Đối tượng nghiên cứu của đề tài:
- Đầu vào 10 ký tự Latinh dạng số viết tay từ 0-9, dưới dạng tập cơ sở dữ liệu MNIST
- Kỹ thuật học sâu và phương pháp nhận dạng
Phạm vi nghiên cứu:
- Dựa trên lý thuyết về học sâu và nhận dạng để đưa ra phương pháp cụ thể nhận dạng ký tự Latinh dưới dạng tệp ảnh đầu vào
- Xây dựng chương trình thử nghiệm
Phương pháp nghiên cứu:
Cơ sở lý thuyết: Nhận dạng ký tự Latinh bằng kỹ thuật học sâu, từ đó cài đặt thử nghiệm trên tập mẫu để có thể nhận xét, đánh giá phương pháp tìm hiểu được
Dự kiến kết quả đạt được:
Đưa ra kết quả nghiên cứu về mặt lý thuyết cơ sở của kỹ thuật học sâu trong nhận dạng ký tự Latinh Xây dựng được chương trình thử nghiệm và đánh giá dựa trên một tập học và tập test trong bộ dữ liệu MNIST, từ đó nêu ra một số vấn đề ứng dụng trong thực tế
Trang 123
Báo cáo toàn văn được trình bày trong 3 chương, cụ thể như sau:
Chương 1: Tổng quan về học máy và nhận dạng: Trình bày khái niệm,
các nội dung cơ bản của học máy và nhận dạng Các ứng dụng của học máy trong thực tế
Chương 2: Kỹ thuật học sâu cho bài toán nhận dạng ký tự Latinh:
Nghiên cứu cụ thể áp dụng kỹ thuật học sâu cho bài toán nhận dạng ký tự Latinh
Chương 3: Xây dựng chương trình, cài đặt, thử nghiệm và đánh giá:
Trên cơ sở lý thuyết đã trình bày ở chương 2, cài đặt chương trình demo, thử nghiệm và đánh giá kết quả
Trang 134
CHƯƠNG 1: TỔNG QUAN VỀ HỌC MÁY VÀ NHẬN DẠNG
1.1 Học máy (Machine learning)
1.1.1 Khái niệm
Học máy (hay máy học) là một phần của khoa học máy tính đã dần được cải tiến từ các nghiên cứu về nhận dạng mẫu và trí tuệ nhân tạo Năm 1959, Arthur Samuel định nghĩa máy học như là một "lĩnh vực nghiên cứu cung cấp cho máy tính khả năng học mà không được lập trình một cách rõ ràng " Máy học tìm hiểu nghiên cứu và xây dựng các thuật toán có thể học hỏi và đưa ra dự đoán về dữ liệu Thuật toán này hoạt động bằng cách xây dựng một mô hình từ ví dụ đầu vào
để đưa ra dự đoán dựa trên dữ liệu hoặc quyết định Ta có thể hiểu:
Học máy là một lĩnh vực của trí thông minh nhân tạo (AI) cung cấp cho máy tính khả năng học hỏi mà không được lập trình một cách rõ ràng Máy học tập trung vào sự phát triển của các chương trình máy tính để có thể tự mình phát triển và thay đổi khi tiếp xúc với dữ liệu mới
Quá trình học máy cũng tương tự như khai thác dữ liệu Cả hai hệ thống đều thông qua dữ liệu để tìm kiếm các mẫu Tuy nhiên, thay vì giải nén dữ liệu để hiểu con người như các ứng dụng khai thác dữ liệu thì học máy sử dụng dữ liệu
đó để phát hiện các mẫu trong dữ liệu và điều chỉnh chương trình hành động phù hợp
Theo sự phát triển của khoa học, học máy được sinh ra trong quá trình khai phá trí tuệ nhân tạo Ngay trong những ngày đầu của ngành học trí tuệ nhân tạo, một số nhà nghiên cứu đã quan tâm đến việc máy học từ dữ liệu Họ cố gắng để tiếp cận vấn đề với những phương pháp khác nhau, dẫn đến sự ra đời và phát triển của mạng nơ-ron Tuy nhiên, việc chú trọng hơn vào các phương pháp tiếp cận dựa trên logic gây ra sự ngăn cách giữa AI và học máy
Học máy được tổ chức lại thành một lĩnh vực riêng biệt và bắt đầu phát triển mạnh những năm 1990 Các lĩnh vực thay đổi mục tiêu của mình từ việc đạt
Trang 145
được trí thông minh nhân tạo thành giải quyết các vấn đề có tính chất thực tế Chuyển trọng tâm từ cách tiếp cận mang tính biểu tượng thừa hưởng từ trí tuệ nhân tạo, và hướng tới các phương pháp, mô hình từ thống kê và lý thuyết xác suất
Máy học, khai thác dữ liệu thường sử dụng cùng phương pháp và lồng ghép lên nhau Có thể chia thành các giai đoạn như sau:
Máy học tập trung vào dự đoán, dựa trên dữ liệu học được từ dữ liệu huấn luyện
Khai thác dữ liệu tập trung vào việc phát hiện thuộc tính chưa biết trước trong dữ liệu Đây là bước phân tích kiến thức, khai phá trong cơ sở dữ liệu
Máy học và khai thác dữ liệu được lồng ghép lên nhau theo cách: khai thác dữ liệu sử dụng nhiều phương pháp học máy, nhưng mỗi phương pháp thường có mục đích khác nhau Mặt khác, học máy cũng sử dụng phương pháp khai thác dữ liệu là "học không giám sát" như là một bước tiền xử lý để cải thiện
độ chính xác của việc học
Học máy cũng có quan hệ mật thiết với tối ưu hóa: nhiều vấn đề học được xây dựng nhằm giảm thiểu một số chức năng bị mất trên một tập huấn luyện Chức năng mất thể hiện sự khác biệt giữa các tiên đoán của mô hình được đào tạo và những trường hợp thực tế Sự khác biệt giữa hai trường phát sinh từ mục tiêu tổng quát Trong khi các thuật toán tối ưu hóa có thể giảm thiểu sai số trên một tập huấn luyện thì học máy liên quan với việc giảm thiểu sự mất mát trên các mẫu ẩn
1.1.2 Phân loại
Có nhiều phương pháp học máy khác nhau, trong đó phải kể đến một số loại phương pháp học phổ biến nhất là học không giám sát, học bán giám sát, học giám sát, học tăng cường và học sâu
1.1.2.1 Học không giám sát (Unsupervised Learning)
* Khái niệm học không giám sát
Học không giám sát là một loại thuật toán học máy sử dụng để suy luận từ các tập dữ liệu bao gồm các dữ liệu đầu vào mà không được dán nhãn
Trang 156
Phương pháp học không giám sát phổ biến nhất là phân cụm, được sử dụng
để phân tích dữ liệu thăm dò tìm ra các khuôn mẫu ẩn hoặc nhóm trong dữ liệu Các cụm được mô phỏng bằng biện pháp tương tự như việc xác định theo số liệu Euclide hay khoảng cách xác suất
* Một số thuật toán học không giám sát
Phân cụm cấu trúc: xây dựng một hệ thống đa phân cụm bằng cách tạo ra một cây phân cụm
Phân cụm k-Means: phân vùng dữ liệu vào k cụm khác nhau dựa trên khoảng cách với trọng tâm của từng cụm
Mô hình hỗn hợp Gaussian: mô hình cụm như một hỗn hợp của các thành phần mật độ bình thường đa biến
Ánh xạ tự tổ chức: sử dụng mạng nơ-ron học và phân phối dữ liệu
Mô hình Markov ẩn: sử dụng quan sát dữ liệu để khôi phục lại trình tự của các trạng thái
Phương pháp học không giám sát được sử dụng trong sinh học để phân tích trình tự và phân nhóm di truyền; trong khai thác dữ liệu dùng để phân tích trình
tự và khai thác mô hình; trong y tế dùng cho phân vùng ảnh; và trong thị giác máy tính được dùng để nhận dạng đối tượng
1.1.2.2 Học bán giám sát (Semi-Supervised Learning)
* Khái niệm học bán giám sát
Học bán giám sát là sự kết hợp giữa một lớp các tác vụ giám sát việc học
và kỹ thuật đào tạo sử dụng dữ liệu không dán nhãn - thường là một lượng nhỏ dữ liệu được dán nhãn cùng với một số lượng lớn các dữ liệu không có nhãn Học bán giám sát là sự kết hợp giữa học không giám sát và học có giám sát
Nhiều nhà nghiên cứu học máy đã tìm thấy rằng dữ liệu không có nhãn, khi được sử dụng kết hợp với một lượng nhỏ dữ liệu có nhãn có thể cải thiện đáng kể
sự chính xác khi học
* Một số thuật toán học bán giám sát
Trang 167
Một số thuật toán bán giám sát thường dùng:
Thuật toán Cực đại kỳ vọng (EM), SVM truyền dẫn (TSVM), Co-training, Self-training, và các phương pháp dựa trên đồ thị (graph-based)
1.1.2.3 Học giám sát (Supervised Learning)
* Khái niệm học có giám sát:
Học có giám sát suy luận một chức năng từ dữ liệu huấn luyện được dán nhãn Dữ liệu đào tạo bao gồm một tập các ví dụ huấn luyện Học có giám sát thường dùng cho các bài toán phân lớp
Trong học có giám sát, mỗi ví dụ là một cặp bao gồm một đối tượng đầu vào (thường là một vector) và một giá trị đầu ra mong muốn (còn gọi là các tín hiệu giám sát) Thuật toán học có giám sát phân tích các dữ liệu đào tạo và suy diễn ra chức năng, có thể được sử dụng để lập bản đồ ví dụ mới Một kịch bản tối
ưu sẽ cho phép các thuật toán xác định chính xác các nhãn lớp cho các trường hợp không nhìn thấy Điều này đòi hỏi các thuật toán học để khái quát từ dữ liệu huấn luyện cho những tình huống vô hình một cách hợp lý
* Một số thuật toán học có giám sát:
Một số thuật toán học có giám sát thường dùng khi phân lớp: lan truyền ngược, k láng giềng gần nhất (KNN); máy vector hỗ trợ (SVM); cây quyết định (DT);tiếp cận xác suất thống kê (NB); dựa trên vector trọng tâm (Centroid–base vector); mạng nơron (Nnet) hay tuyến tính bình phương nhỏ nhất (LLSF)
1.1.2.4 Học tăng cường (Reinforcement Learning)
* Khái niệm học tăng cường:
Học tăng cường là một loại của học máy và cũng là một nhánh của trí tuệ nhân tạo Nó cho phép máy và tác tử phần mềm tự động xác định các hành vi lý tưởng trong một bối cảnh cụ thể, để tối đa hóa hiệu quả của nó
Học tăng cường được xác định không phải bằng cách mô tả phương pháp học mà bằng cách mô tả vấn đề học Bất kỳ phương pháp phù hợp để giải quyết vấn đề đều được coi là một phương pháp học tăng cường
* Một số thuật toán học tăng cường:
Trang 178
Sau khi đã định nghĩa hàm trả về thích hợp cần được cực đại hóa, ta cần chỉ
rõ thuật toán sẽ được sử dụng để thu được kết quả trả về cao nhất Có hai cách tiếp cận chính, cách tiếp cận hàm giá trị và cách tiếp cận trực tiếp Ngoài ra, còn một số phương pháp khác để tìm chiến lược tối ưu là tìm trong không gian chiến lược, hoặc Q-learning, Temporal difference learning [2]
1.1.2.5 Học sâu (Deep learning)
* Khái niệm học sâu:
Học sâu là một nhánh của lĩnh vực học máy, dựa trên một tập hợp các thuật toán nhằm cố gắng mô hình dữ liệu trừu tượng hóa ở mức cao bằng cách sử dụng nhiều lớp xử lý với cấu trúc phức tạp, hoặc bao gồm nhiều biến đổi phi tuyến
Có một số cách để mô tả học sâu Học sâu là một lớp của các thuật toán máy học mà:
Sử dụng một tầng (cascade) nhiều lớp các đơn vị xử lý phi tuyến để trích trọn đặc trưng và chuyển đổi Mỗi lớp kế tiếp dùng đầu ra từ lớp trước làm đầu vào Thuật toán này có thể được giám sát hoặc không cần giám sát và được ứng dụng cho các mô hình phân tích (không có giám sát) và phân loại (giám sát)
Dựa trên học (không có giám sát) của nhiều cấp các đặc trưng hoặc đại diện của dữ liệu Các tính năng cao cấp bắt nguồn từ các tính năng thấp cấp hơn để tạo thành một đại diện thứ bậc
Là một phần của lĩnh vực máy học và rộng lớn hơn về việc học đại diện dữ liệu
Học nhiều cấp độ đại diện tương ứng với các mức độ trừu tượng khác nhau; các mức độ hình thành một hệ thống phân cấp của các khái niệm
* Nội dung cơ bản của phương pháp ho ̣c sâu:
Các lớp được sử dụng trong học sâu bao gồm các lớp ẩn của một mạng ron nhân tạo và tập các công thức mệnh đề phức tạp Chúng cũng có thể bao gồm các biến tiềm ẩn được tổ chức thành các lớp chọn lọc trong các mô hình thể sinh (có khả năng sinh ra) sâu như các nút trong Deep Belief Networks và Deep Boltzmann Machines
Trang 18nơ-9
Các thuật toán học sâu tương phản với các thuật toán học nông bởi số biến đổi được tham số hóa một tín hiệu gặp phải khi nó lan truyền từ các lớp đầu vào đến lớp đầu ra, nơi một biến đổi được tham số hóa là một đơn vị xử lý có các thông số có thể huấn luyện được, chẳng hạn như trọng số và ngưỡng Một chuỗi các biến đổi từ đầu vào đến đầu ra là một đường gán kế thừa (CAP- credit assignment path) CAP mô tả các kết nối quan hệ nhân quả tiềm năng giữa đầu vào và đầu ra và có thể thay đổi chiều dài Về cơ bản, học sâu khác với học nông
ở chỗ nó sử dụng nhiều lớp ẩn thay vì chỉ một lớp ẩn như học nông, bên cạnh đó, học sâu còn cần truyền tín hiệu giữa các lớp ẩn qua thuật toán lan truyền
Các thuật toán học sâu dựa trên các đại diện phân tán Giả định tiềm ẩn đằng sau các đại diện phân tán là các dữ liệu được tạo ra bởi sự tương tác của các yếu tố được tổ chức theo lớp Học sâu thêm giả định rằng các lớp của các yếu tố này tương ứng với các mức độ trừu tượng hay theo thành phần Các con số khác nhau của các lớp và kích thước của lớp có thể được sử dụng để quy định các lượng trừu tượng khác nhau
Học sâu khai thác ý tưởng thứ bậc các yếu tố được tổ chức theo lớp ở cấp cao hơn, những khái niệm trừu tượng cao được học từ các cấp độ thấp hơn Những kiến trúc học sâu này thường được xây dựng với phương pháp lớp chồng lớp tham lam Học sâu giúp tháo gỡ những khái niệm trừu tượng và chọn ra những đặc trưng cần thiết cho việc học
Đối với học có giám sát, phương pháp học sâu sẽ tránh kỹ thuật đặc trưng (feature engineering), bằng cách ánh xạ các dữ liệu vào các đại diện trung gian nhỏ gọn, và lấy được các cấu trúc lớp mà loại bỏ sự dư thừa trong đại diện
Rất nhiều thuật toán học sâu được áp dụng cho học không có giám sát Đây
là yếu tố quan trọng bởi vì dữ liệu không dán nhãn (chưa phân loại) thường phong phú hơn các dữ liệu dán nhãn
* Một số thuâ ̣t toán ho ̣c sâu:
Có nhiều biến thể của kiến trúc ho ̣c sâu đươ ̣c sinh ra từ mô ̣t kiến trúc cha ban đầu Vì ho ̣c sâu có nhiều thuâ ̣t toán khác nhau nên nó phát triển rất nhanh,
Trang 1910
nhiều biến thể và thuâ ̣t toán mới ra đời liên tu ̣c trong thời gian ngắn, có thể kể đến
một số thuâ ̣t toán như: Ma ̣ng nơ-ron sâu (DNN - Deep Nơ-ron Network), ma ̣ng niềm tin sâu (Deep Belief Network), mạng nơ-ron châ ̣p, ma ̣ng lâ ̣p trình sâu, các
mạng bô ̣ nhớ…
Hiện nay, phương pháp ho ̣c sâu được các nhà nghiên cứu đánh giá rất cao
và đươ ̣c áp du ̣ng vào rất nhiều lĩnh vực đă ̣c biê ̣t là lĩnh vực nhâ ̣n da ̣ng
Dạng được chia thành các loại khác nhau dựa theo tiêu thức và thủ tục được
sử dụng để phân loại
Theo tính chất của đối tượng, dạng được chia thành ba loai: dạng hệ thống nhiều
người, dạng không có con người, và dạng một người
Theo tính chất vật lý, dạng chia thành dạng vật và dạng người
Theo công cụ nhận dạng, dạng chia thành: dạng nhận theo ngôn ngữ tắt mở, và
dạng nhận theo ngôn ngữ khác
b Nhận dạng
Nhận dạng là quá trình nhận biết một phần tử nào đó của đối tượng phải nghiên cứu thuộc vào một dạng cho trước, từ đó rút ra các thuộc tính vốn có của
nó để đưa ra các phương thức xử lý đối tượng
Trong hình 1.1 dưới đây chỉ ra rằng:
- Trước một đối tượng chưa biết, con người cần vận dụng tất cả tri thức liên quan để hiểu biết khái quát về đối tượng Hay còn gọi là quá trình tổng hợp sơ lược về đối tượng
Trang 2011
Hình 1.1: Quá trình nhận dạng đối tượng của con người
- Tiếp đó, cần phân tích những đặc điểm, thuộc tính của đối tượng và mối quan hệ giữa chúng làm sâu sắc hơn quá trình nhận thức Đây là quá trình nhận thức mang tính chất trực quan, sinh động nhằm tìm ra những thuộc tính riêng lẻ của đối tượng Quá trình mà con người đưa ra các giả thiết để nhận thức đối tượng sâu sắc hơn là quá trình nhận thức theo giả thiết
- Cuối cùng là quá trình tổng hợp chung, đây là quá trình nhận thức sâu sắc nhất; ở đây sẽ có sự đối chiếu, so sánh để khái quát hóa nhiều thuộc tính riêng lẻ của đối tượng cần nghiên cứu thành các thuộc tính chung mang tính bản chất, tính quy luật của cả một nhóm các đối tượng cùng loại Đây là quá trình tư duy trừu tượng của con người mà kết quả cuối cùng là sự hiểu biết bản chất của đối tượng
cho dưới hình thức dạng một cách tư duy thường thấy của con người [1]
Các nhà nghiên cứu dựa trên quá trình nhận dạng của con người tạo ra kỹ thuật giúp máy tính có khả năng nhận dạng, điển hình là nhận dạng ký tự quang học
1.2.2 Nhận dạng ký tự quang học
Nhận dạng ký tự quang học (OCR), là loại phần mềm máy tính được tạo ra
để chuyển các hình ảnh của chữ viết tay hoặc chữ đánh máy thành các văn bản tài liệu OCR được hình thành từ một lĩnh vực nghiên cứu về nhận dạng mẫu, trí tuệ nhận tạo và thị giác máy tính Mặc dù công việc nghiên cứu học thuật vẫn tiếp tục
Đối tượng Chưa biết Tổng hợp sơ lược
Phân tích Giả thiết
Tổng hợp
Trang 21Ba nguyên tắc cơ bản của OCR là tính toàn vẹn, tính mục đích và khả năng thích ứng (IPA) Những nguyên tắc này tạo thành cốt lõi của các phần mềm nhận dạng ký tự hiện nay
Các chương trình OCR thường hoạt động như sau:
Đầu tiên, chương trình phân tích cấu trúc của tài liệu hình ảnh Nó chia trang thành các yếu tố như khối văn bản, bảng biểu, hình ảnh,…Các dòng được chia thành các từ và sau đó là các ký tự Một khi các ký tự đã được chỉ ra, chương trình so sánh chúng với một tập các hình ảnh mẫu Nó đưa ra rất nhiều giả thuyết
về ký tự Dựa trên những giả thuyết các chương trình phân tích các biến thể khác nhau của sự chia tách dòng thành từ và từ thành ký tự Sau khi xử lý số lượng lớn các giả thuyết xác suất như vậy, chương trình sẽ đưa ra kết quả nhận dạng dưới dạng văn bản điện tử Ngoài ra, đa số phần mềm OCR cung cấp từ điển hỗ trợ nhiều loại ngôn ngữ khác nhau Điều này cho phép phân tích thứ cấp các yếu tố văn bản với mức độ từng từ Với sự hỗ trợ của từ điển, các chương trình đảm bảo phân tích chính xác hơn để nhận dạng các văn bản và đơn giản hóa quá trình xác minh kết quả nhận dạng
Các hệ thống nhận dạng ký tự quang học tiên tiến nhất, như ABBYY FineReader OCR, đang tập trung vào tái tạo tự nhiên hoặc nhận dạng loài động vật Cốt lõi của các hệ thống này luôn tuân theo ba nguyên tắc cơ bản IPA Nguyên tắc toàn vẹn nghĩa là đối tượng quan sát phải luôn luôn được coi là một "toàn bộ" bao gồm nhiều bộ phận liên quan đến nhau Nguyên tắc mục đích giả định rằng bất kỳ giải thích các dữ liệu phải luôn luôn phục vụ mục đích rõ ràng Và nguyên tắc về khả năng thích ứng có nghĩa là chương trình phải có khả năng tự học
Trang 2213
Với mức chính xác từ 80% đến 90%, những ký tự viết tay sạch đẹp có thể được nhận ra, nhưng với độ chính xác đó vẫn tạo ra hàng chục lỗi mỗi trang, khiến cho công nghệ đó chỉ hiệu quả trong vài trường hợp nào đó Sự đa dạng của OCR hiện nay được biết đến trong công nghiệp là Nhận dạng ký tự thông minh (ICR)
Nhận dạng chữ viết tay là một lĩnh vực nghiên cứu sôi nổi Hầu như không thể nâng cao tỉ lệ nhận dạng chữ viết tay nếu không sử dụng thông tin về ngữ pháp
và văn cảnh Ví dụ như nhận dạng cả một chữ từ một cuốn từ điển thì dễ hơn là việc cố gắng lấy ra những ký tự rời rạc từ chữ đó Nếu có kiến thức về ngữ pháp của một ngôn ngữ được scan cũng có thể giúp xác định một từ có thể là động từ hay danh từ, như vậy, sẽ cho phép độ chính xác cao hơn Chỉ dựa vào hình dạng của ký tự thì không đủ thông tin để nhận dạng chính xác chữ viết tay [8]
Ngoài vấn đề về ngữ cảnh thì việc chữ viết tay đôi khi rất khó đọc do cách viết của mỗi người, hoặc một số văn bản viết tay bị nhòe hoặc mờ đi theo thời gian khiến chúng ta rất khó phân biệt cũng là thách thức cho các nhà nghiên cứu
Giải pháp hàng đầu trong lĩnh vực nhận dạng ký tự hiện nay đó là học máy Mỗi phương pháp học trong học máy có những ưu điểm và khuyết điểm nhất định nhưng được quan tâm phát triển hơn cả chính là phương pháp học sâu Sử dụng học sâu để nhận dạng ký tự, cụ thể là ký tự Latinh như thế nào? Chúng ta sẽ cùng tìm hiểu chi tiết hơn trong chương tiếp theo
Trang 232.1 Mạng nơ-ron nhân tạo
Mạng nơ-ron nhân tạo (còn gọi là mạng nơ-ron) là một mô hình toán học hay mô hình tính toán được xây dựng dựa trên các mạng nơ-ron sinh học Nó gồm
có một nhóm các nơ-ron nhân tạo (nút) nối với nhau, và xử lý thông tin bằng cách truyền theo các kết nối và tính giá trị mới tại các nút Để hiểu rõ hơn mạng nơ-ron nhân tạo, chúng ta cần tìm hiểu hai loại nơ-ron nhân tạo là perceptron và sigmoid
2.1.1 Perceptron và sigmoid
2.1.1.1 Perceptron
Perceptron được phát triển vào những năm 1950 và 1960 bởi nhà khoa học Frank Rosenblatt Ngày nay, nó phổ biến trong nhiều mô hình mạng nơ-ron khác nhau
Một perceptron có một số đầu vào (input) nhị phân, x1, x2, , và tạo ra một đầu ra (output) nhị phân duy nhất:
Hình 2.1: Một perceptron với ba đầu vào [4]
Trong hình 2.1, perceptron có ba đầu vào, x1, x2, x3 Cũng có thể có nhiều hơn hoặc ít hơn số đầu vào Rosenblatt đề xuất một quy tắc đơn giản để tính toán
Trang 2415
đầu ra Các trọng số w1, w2, là các số thực thể hiện tầm quan trọng của các yếu
tố đầu vào tương ứng với đầu ra Các nơ-ron đầu ra 00 hoặc 11, được xác định bởi tổng Σjwjxj là nhỏ hơn hoặc lớn hơn so với một vài giá trị ngưỡng (threshold) Cũng giống như các trọng số, ngưỡng là số thực và là tham số của nơ-ron Khi đó đầu ra được tính như sau:
mô hình ra quyết định tối ưu, do đó ta có một mạng lưới kết hợp nhiều perceptron
để có thể đưa ra quyết định chính xác hơn:
Hình 2.2: Mạng nơ-ron gồm nhiều perceptron Trong hình 2.2, cột đầu tiên hay còn gọi là lớp đầu tiên của perceptron có thể đưa ra ba quyết định từ đầu vào Còn trong lớp perceptron thứ hai, mỗi perceptron được quyết định bởi trọng số lên các đầu ra từ lớp đầu tiên Perceptron trong lớp thứ hai có thể đưa ra quyết định ở mức độ phức tạp và trừu tượng hơn perceptron trong lớp đầu tiên Và thậm chí quyết định phức tạp hơn có thể được thực hiện bởi các perceptron trong lớp thứ ba, thứ tư Bằng cách này, một mạng lưới nhiều lớp của perceptron có thể tham gia vào việc ra quyết định phức tạp
Khi xác định perceptron ta hiểu rằng một perceptron chỉ có một đầu ra duy nhất Trong mạng trên perceptron trông giống như có nhiều đầu ra nhưng thực ra chúng chỉ có một đầu ra Việc nhiều mũi tên đầu ra chỉ là một cách hữu hiệu cho
(2.1)
Trang 25vô cùng khó khăn đối với mạch thông thường
là điều rất quan trọng cho phép một mạng lưới các nơ-ron sigmoid có thể học
Cũng giống như perceptron, các nơ-ron sigmoid có đầu vào, x1, x2, Nhưng thay vì chỉ 00 hoặc 11, các đầu vào có thể đưa vào bất cứ giá trị nào giữa 00 và
11 Ví dụ, 0,638 là một đầu vào có giá trị trong một nơ-ron sigmoid Các nơ-ron sigmoid cũng có trọng số cho mỗi đầu vào là w1, w2 …và định hướng b Nhưng
đầu ra không phải là 00 hoặc 11 Thay vào đó, đầu ra là σ(w⋅x + b), trong đó σ
được gọi là hàm sigmoid và được xác định bằng:
σ(z) ≡ 1 1
1 e Một nơ-ron sigmoid với đầu vào x1, x2, trọng số w1, w2 thì khi đó định
Trang 26mới có nhiều sai lệch so với perceptron
2.1.2 Kiến trúc của mạng nơ-ron
Giả sử chúng ta có một mạng như hình 2.3:
Hình 2.3: Mạng nơ-ron một lớp ẩn Đây là mạng nơ-ron đơn giản với một lớp ẩn, lớp ngoài cùng bên trái trong mạng này được gọi là lớp đầu vào, và các nơ-ron trong lớp này được gọi là nơ-ron đầu vào Lớp ngoài cùng bên phải hoặc đầu ra chứa các nơ-ron đầu ra, như trong trường hợp này chỉ có một nơron đầu ra duy nhất Lớp giữa được gọi là lớp
ẩn, các nơ-ron trong lớp này không phải đầu vào cũng không đầu ra Mạng trên
có một lớp ẩn duy nhất, nhưng một số mạng có nhiều lớp ẩn Ví dụ, mạng bốn lớp trong hình 2.4 có hai lớp ẩn:
Trang 2718
Hình 2.4: Mạng nơ-ron hai lớp ẩn [4]
Trong khi việc thiết lập lớp đầu vào và đầu ra của một mạng nơ-ron thường đơn giản, thì việc tạo các lớp ẩn thường mất nhiều thời gian và công sức Do đó, các nhà nghiên cứu mạng nơ-ron đã phát triển nhiều công nghệ tự động thiết kế cho các lớp ẩn, giúp mọi người có được những đầu ra theo hướng mình mong muốn Điều này có thể được sử dụng để cân bằng số lớp ẩn với thời gian cần thiết
để đào tạo mạng
2.1.3 Quá trình xử lý thông tin của một ANN
Hình 2.5: Quá trình xử lý thông tin của ANN [6]
Inputs: Mỗi Input tương ứng với 1 thuộc tính của dữ liệu
Output: Kết quả của một ANN là một giải pháp cho một vấn đề cụ thể Connection Weights (Trọng số liên kết) : Đây là thành phần rất quan trọng của một ANN, nó thể hiện mức độ quan trọng của dữ liệu đầu vào đối với quá trình xử lý thông tin (quá trình chuyển đổi dữ liệu từ lớp này sang lớp khác) Quá
Trang 2819
trình học (Learning Processing) của ANN thực ra là quá trình điều chỉnh các trọng
số (Weights) của các dữ liệu đầu vào để có được kết quả mong muốn [6]
Summation Function (Hàm tổng): Tính tổng trọng số của tất cả phần tử xử
lý PE Hàm tổng của một nơ-ron đối với n đầu vào được tính theo công thức sau:
nơ-ra một đầu nơ-ra hoặc không sinh nơ-ra đầu nơ-ra nào trong ANN (nói cách khác rằng đầu
ra của một nơ-ron có thể được chuyển đến lớp tiếp theo trong mạng nơ-ron hoặc không) Mối quan hệ giữa nội kích hoạt và kết quả được thể hiện bằng hàm chuyển đổi (Transfer Function)
(2.4)
(2.5)