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 3 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 và tổ chức khóa học này để tôi có thể có điều kiện
tiếp thu kiến thức mới và có thời gian để hoàn thành Luận văn Cao học này.
Tôi xin được cảm ơn TS.Vũ Tất Thắng, người đã tận tình chỉ dẫn tôi
trong suốt quá trình xây dựng đề cương và hoàn thành luận văn.
Tôi xin chân thành cảm ơn các thày cô đã truyền đạt cho chúng tôi
những kiến thức quý báu trong quá trình học Cao học và làm Luận văn.
Tôi chân thành cảm ơn các bạn bè, anh chị em trong lớp cao học K13
đã giúp đỡ, đóng góp ý kiến chia sẽ những kinh nghiệm học tập, nghiên cứu
trong suốt khóa học.
Cuối cùng tôi kính gửi thành quả này đến gia đình và người thân của
tôi, những người đã hết lòng chăm sóc, dạy bảo và động viên tôi để tôi có kết
quả ngày hôm nay.
Mặc dù tôi đã cố gắng hoàn thành Luận văn trong phạm vi và khả năng
cho phép nhưng chắc chắn không tránh khỏi những thiếu sót. Xin kính mong
nhận được sự cảm thông và tận tình chỉ bảo của quý Thầy Cô và các bạn.
Thái Nguyên, ngày 20 tháng 3 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 về đề 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 và 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 quả thực nghiệm và đá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 về bài 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 1 (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.
5
Năm 1967, Công ty IBM đã thương mại hóa hệ thống nhận dạng chữ.
Giai đoạn 2 (1980 - 1990)
Với sự phát triển của các thiết bị phần cứng máy tính và các thiết bị thu
nhận dữ liệu, các phương pháp luận nhận dạng đã được phát triển trong giai
đoạn trước đã có được môi trường lý tưởng để triển khai các ứng dụng nhận
dạng chữ.
Các hướng tiếp cận theo cấu trúc và đối sánh được áp dụng trong nhiều
hệ thống nhận dạng chữ.
Trong giai đoạn này, các hướng nghiên cứu chỉ tập trung vào các kỹ
thuật nhận dạng hình dáng chứ chưa áp dụng cho thông tin ngữ nghĩa. Điều
này dẫn đến sự hạn chế về hiệu suất nhận dạng, không hiệu quả trong nhiều
ứng dụng thực tế.
Giai đoạn 3 (1990 - nay)
Các hệ thống nhận dạng thời gian thực được chú trọng trong giai đoạn
này.
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 áp dụng rất hiệu quả.
Một số công cụ học máy hiệu quả như mạng Neuron, mô hình Markov
ẩn, SVM (Support Vector Machines) và xử lý ngôn ngữ tự nhiên...
1.1.2. Tình hình nghiên cứu trong nước
Tại Việt Nam, trong những năm gần đây có rất nhiều những nhóm
nghiên cứu về nhận dạng chữ viết tay sử dụng các mô hình phổ biến hiện nay
như: SVM (Support Vector Machine), HMM (Hidden Markov Model), mạng
Neuron… Nhưng nhìn chung thì chất lượng nhận dạng của các mô hình này
đều chưa cao vì chữ viết tay còn nhiều các yếu tố tác động đến như: độ cao,
độ nghiêng, các nét liền… của chữ viết đều ảnh hưởng rất nhiều đến quá trình
nhận dạng. Hiện tại, chúng ta mới chỉ có được những sản phẩm thử nghiệm
6
như hệ thống nhận dạng chữ số và chữ cái viết tay rời rạc trên các phiếu xuất
nhập cảnh của nhóm nghiên cứu ở Đại học quốc gia thành phố Hồ Chí Minh,
…
1.1.3. Tình hình nghiên cứu ở nước ngoài
Nhận dạng chữ viết đã được nghiên cứu hơn 40 năm qua. Ngày nay
nhận dạng chữ viết đã nhận được sự quan tâm đáng kể do sự phát triển của
các máy tính cầm tay và điện thoại cầm tay dựa trên các bàn phím, chuột và
nhiều dạng thiết bị định vị khác. Nhận dạng chữ viết tay được thực hiện qua
hai hình thức là nhận dạng online và nhận dạng offline. Nhận dạng online có
nghĩa là máy tính sẽ nhận dạng các chữ được viết lên màn hình ngay sau khi
nó được viết. Đối với những hệ nhận dạng này, máy tính sẽ lưu lại các thông
tin về nét chữ như thứ tự nét viết, hướng và tốc độ của nét viết trong khi nó
đang được viết ra. Đây chính là cơ sở để máy tính nhận dạng được chữ cái, do
đó việc nhận dạng không gặp quá nhiều khó khăn. Hệ thống nhận dạng chữ
viết tay trực tuyến trên một trạm làm việc của IBM do nhóm nghiên cứu gồm
H.S.M.Beigi, C.C.Tapert, M.Ukeison và C.G.Wolf ở phòng thực hành
Watson IBM cài đặt là một trong những sản phẩm nhận dạng chữ viết tay
online tiêu biểu nhất. Tuy nhiên, do chưa có nhiều ứng dụng thực tế nên nhận
dạng chữ viết tay trực tuyến chưa được biết đến nhiều và khi nhắc đến nhận
dạng chữ viết tay chúng ta thường hiểu nhình thức nhận dạng ở đây là offline.
Các kết quả nhận dạng chữ viết tay offline hiện này còn rất hạn chế.
Các kết quả nghiên cứu chưa tìm được giải pháp đủ tốt để giải quyết hết
những khó khăn tiêu biểu sau của bài toán nhận dạng chữ viết tay:
Kích thước của chữ viết tay không đồng đều.
Kiểu dáng chữ của mỗi người viết đều rất khác nhau.
Giữa các kí tự trong cùng một từ thường có nét nối, thậm chí
dính liền vào nhau.
7
Các kí tự có thể thiếu hoặc thừa nét.
Xuất hiện tình trạng dính dòng.
Do những khó khăn trên nên khi giải quyết bài toán nhận dạng chữ viết
tay đều buộc phải giới hạn trong một phạm vi nào đó với những tiêu chuẩn cụ
thể cho mẫu chữ nhận dạng. Chính vì vậy, các kết quả thu được cũng chỉ
được áp dụng một cách hạn chế ở lĩnh vực hẹp trong một bài toán cụ thể nào
đó.
Một số hệ nhận dạng chữ viết tay tiêu biểu có thể kể đến như: hệ thống
nhận dạng chữ viết tay trong lĩnh vực kiểm tra tài khoản ở ngân hàng của
nhóm nghiên cứu Simon và O.Baret (Laoria/CNRS & ENPC, Paris), hệ thống
phân loại tự động địa chỉ thư ở bưu điện của M.Pfister, S.Behnke và R.Rojas
ở Đại học tổng hợp Berlin, Đức….
1.2. Các bước xử lý cho bài toán nhận dạng hoàn chỉnh
Nhận dạng chữ viết tay thường bao gồm năm giai đoạn: tiền xử lý
(preprocessing), tách chữ (segmentation), trích chọn đặc trưng
(representation), huấn luyện và nhận dạng (training and recognition), hậu xử
lý (postprocessing).
Hình 1- 1: Các bước trong nhận dạng chữ viết tay
8
Tiền xử lý (preprocessing): giảm nhiễu cho các lỗi trong quá
trình quét ảnh, hoạt động viết của con người, chuẩn hóa dữ liệu
và nén dữ liệu.
Tách chữ (segmentation): chia nhỏ văn bản thành những thành
phần nhỏ hơn, tách các từ trong câu hay các kí tự trong từ.
Trích trọn đặc trưng (representation): giai đoạn đóng vai trò
quan trọng nhất trong nhận dạng chữ viết tay. Để tránh những
phức tạp của chữ viết tay cũng như tăng cường độ chính xác, ta
cần phải biểu diễn thông tin chữ viết dưới những dạng đặc biệt
hơn và cô đọng hơn, rút trích các đặc điểm riêng nhằm phân biệt
các ký tự khác nhau. Trong luận văn này, tôi nghiên cứu và tìm
hiểu về mô hình học máy theo chiều sâu, trong mô hình này thì
khi huấn luyện và sử dụng dữ liệu chúng ta không cần sử dụng
đặc trưng của ảnh đầu vào nên có thể bỏ qua bước trích rút đặc
trưng.
Huấn luyện và nhận dạng (training and recognition): phương
pháp điển hình so trùng mẫu, dùng thống kê, mạng neuron, mô
hình markov ẩn, trí tuệ nhân tạo hay dùng phương pháp kết hợp
các phương pháp trên.Trong luận văn này, tôi sử dụng mô hình
học máy theo chiều sâu (deep learning) để huấn luyện và nhận
dạng, nội dung này sẽ được trình bày trong các chương sau của
luận văn.
Hậu xử lý (postprocessing): sử dụng các thông tin về ngữ cảnh
để giúp tăng cường độ chính xác, dùng từ điển dữ liệu.
Ban đầu các văn bản chữ viết tay được scan và đưa vào hệ thống nhận
dạng, với quá trình tiền xử lý thì ảnh sẽ được một ảnh mà do hệ thống yêu cầu
để huấn luyện và nhận dạng (có thể là ảnh nhị phân hay ảnh đa mức xám).
9
Trong mô hình học máy theo chiều sâu, ảnh được sử dụng để huấn luyện và
nhận dạng là ảnh đa mức xám (các pixel được biểu diễn bởi các giá trị từ 0
đến 255). Tại quá trình tiền xử lý thì ảnh cũng đã được xử lý lọa bỏ nhiễu, các
giá trị không cần thiết trong ảnh đầu vào.
Tại bước tách chữ thì với ảnh đã được tiền xử lý, khi đi qua bước này
sẽ được thực hiện tách dòng, tách chữ, tách kí tự để thực hiện nhận dạng, tùy
theo quy định của một hệ thống khi huấn luyện. Khi đã được tách rời các kí tự
thì việc tiếp theo ảnh để nhận dạng sẽ được lưu dưới dạng ma trận điểm, với
tùy từng vị trí của điểm ảnh mà giá trị có thể khác nhau (từ 0 đến 255), trong
mô hình Deep Learning thì ma trận điểm ảnh sẽ được quy về dạng chuẩn là
28x28.
Sau khi qua các bước xử lý ở trên thì ảnh chính thức được đưa vào
huấn luyện và nhận dạng, trong quá trình huấn luyện và nhận dạng sẽ sử dụng
các mô hình và thuật toán cần thiết để thực hiện tính toán và xử lý, những
thuật toán và quá trình xử lý sẽ được trìn bày chi tiết trong các phần sau của
luận văn.
Cuối cùng khi các ảnh đầu vào đã được đưa vào nhận dạng và cho ra
kết quả thì bước quan trọng không kém là quá trình hậu xử lý với các kết quả
ở trên, và trả lại kết quả cho người dử dụng.
1.3. Kết luận chương
Luận văn “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” được thực hiện với mục đích giải quyết một
lớp con các bài toán nhận dạng chữ viết tay mà cụ thể nhận dạng các kí tự đơn
lẻ là các chữ cái từ A đến Z.
Từ đó sẽ tạo cơ sở tiếp theo để có thể xây dựng tiếp mô hình nhận dạng
các chữ cái trong tiếng Việt, đây là bước cần thiết trong bài toán nhận dạng
10
chữ viết tiếng Việt các từ tiếng Việt đơn lẻ, và sẽ tiến tới xây dựng một hệ
thống nhận dạng văn bản viết tay tiếng Việt hoàn chỉnh.
Luận văn sẽ tập trung vào nghiên cứu về cơ sở lý thuyết mô hình Deep
Learning, các thuật toán được sử dụng, thực hiện huấn luyện bằng mô hình
Deep Learning, từ đó cài đặt chương trình mô phỏng trên ngôn ngữ Matlab,
PHP, C#...
11
CHƯƠNG 2: MÔ HÌNH MẠNG NEURONVÀ MÔ HÌNH HỌC SÂU
2.1.
Tổng quan về mô hình mạng neuron
2.1.1. Giới thiệu về mạng Neuron
2.1.1.1. Định nghĩa:
Mạng neuron nhân tạo, Artificial Neural Network (ANN) gọi tắt là
mạng neuron, neural network, là một mô hình xử lý thông tin phỏng theo cách
thức xử lý thông tin của các hệ neuron sinh học. Nó được tạo lên từ một số
lượng lớn các phần tử (gọi là phần tử xử lý hay neuron) kết nối với nhau
thông qua các liên kết (gọi là trọng số liên kết) làm việc như một thể thống
nhất để giải quyết một vấn đề cụ thể nào đó.
Một mạng neuron nhân tạo được cấu hình cho một ứng dụng cụ thể
(nhận dạng mẫu, phân loại dữ liệu, ...) thông qua một quá trình học từ tập các
mẫu huấn luyện. Về bản chất học chính là quá trình hiệu chỉnh trọng số liên
kết giữa các neuron.
2.1.1.2. Lịch sử phát triển mạng neuron
Các nghiên cứu về bộ não con người đã được tiến hành từ hàng nghìn
năm nay. Cùng với sự phát triển của khoa học kĩ thuật đặc biệt là những tiến
bộ trong ngành điện tử hiện đại, việc con người bắt đầu nghiên cứu các
neuron nhân tạo là hoàn toàn tự nhiên. Sự kiện đầu tiên đánh dấu sự ra đời
của mạng neuron nhân tạo diễn ra vào năm 1943 khi nhà thần kinh học
Warren McCulloch và nhà toán học Walter Pitts viết bài báo mô tả cách thức
các neuron hoạt động. Họ cũng đã tiến hành xây dựng một mạng neuron đơn
giản bằng các mạch điện. Các neuron của họ được xem như là các thiết bị nhị
phân với ngưỡng cố định. Kết quả của các mô hình này là các hàm logic đơn
giản chẳng hạn như “ a OR b” hay “a AND b”.
12
Tiếp bước các nghiên cứu này, năm 1949 Donald Hebb cho xuất bản
cuốn sách Organization of Behavior. Cuốn sách đã chỉ ra rằng các neuron
nhân tạo sẽ trở lên hiệu quả hơn sau mỗi lần chúng được sử dụng.
Những tiến bộ của máy tính đầu những năm 1950 giúp cho việc mô
hình hóa các nguyên lý của những lý thuyết liên quan tới cách thức con người
suy nghĩ đã trở thành hiện thực. Nathanial Rochester sau nhiều năm làm việc
tại các phòng thí nghiệm nghiên cứu của IBM đã có những nỗ lực đầu tiên để
mô phỏng một mạng neuron. Trong thời kì này tính toán truyền thống đã đạt
được những thành công rực rỡ trong khi đó những nghiên cứu về neuron còn
ở giai đoạn sơ khai. Mặc dù vậy những người ủng hộ triết lý “thinking
machines” (các máy biết suy nghĩ) vẫn tiếp tục bảo vệ cho lập trường của
mình.
Năm 1956 dự án Dartmouth nghiên cứu về trí tuệ nhân tạo (Artificial
Intelligence) đã mở ra thời kỳ phát triển mới cả trong lĩnh vực trí tuệ nhân tạo
lẫn mạng neuron. Tác động tích cực của nó là thúc đẩy hơn nữa sự quan tâm
của các nhà khoa học về trí tuệ nhân tạo và quá trình xử lý ở mức đơn giản
của mạng neuron trong bộ não con người.
Những năm tiếp theo của dự án Dartmouth, John von Neumann đã đề
xuất việc mô phỏng các neuron đơn giản bằng cách sử dụng rơle điện áp hoặc
đèn chân không. Nhà sinh học chuyên nghiên cứu về neuron Frank Rosenblatt
cũng bắt đầu nghiên cứu về Perceptron. Sau thời gian nghiên cứu này
Perceptron đã được cài đặt trong phần cứng máy tính và được xem như là
mạng neuron lâu đời nhất còn được sử dụng đến ngày nay. Perceptron một
tầng rất hữu ích trong việc phân loại một tập các đầu vào có giá trị liên tục
vào một trong hai lớp. Perceptron tính tổng có trọng số các đầu vào, rồi trừ
tổng này cho một ngưỡng và cho ra một trong hai giá trị mong muốn có thể.
Tuy nhiên Perceptron còn rất nhiều hạn chế, những hạn chế này đã được chỉ
13
ra trong cuốn sách về Perceptron của Marvin Minsky và Seymour Papert viết
năm 1969.
Năm 1959, Bernard Widrow và Marcian Hoff thuộc trường đại học
Stanford đã xây dựng mô hình ADALINE (ADAptive LINear Elements) và
MADALINE. (Multiple ADAptive LINear Elements). Các mô hình này sử
dụng quy tắc học Least-Mean-Squares (LMS: Tối thiểu bình phương trung
bình). MADALINE là mạng neuron đầu tiên được áp dụng để giải quyết một
bài toán thực tế. Nó là một bộ lọc thích ứng có khả năng loại bỏ tín hiệu dội
lại trên đường dây điện thoại. Ngày nay mạng neuron này vẫn được sử dụng
trong các ứng dụng thương mại.
Năm 1974 Paul Werbos đã phát triển và ứng dụng phương pháp học lan
truyền ngược (back-propagation). Tuy nhiên phải mất một vài năm thì
phương pháp này mới trở lên phổ biến. Các mạng lan truyền ngược được biết
đến nhiều nhất và được áp dụng rộng dãi nhất nhất cho đến ngày nay.
Thật không may, những thành công ban đầu này khiến cho con người
nghĩ quá lên về khả năng của các mạng neuron. Chính sự cường điệu quá mức
đã có những tác động không tốt đến sự phát triển của khoa học và kỹ thuật
thời bấy giờ khi người ta lo sợ rằng đã đến lúc máy móc có thể làm mọi việc
của con người. Những lo lắng này khiến người ta bắt đầu phản đối các nghiên
cứu về mạng neuron. Thời kì tạm lắng này kéo dài đến năm 1981.
Năm 1982 trong bài báo gửi tới viện khoa học quốc gia, John Hopfield
bằng sự phân tích toán học rõ ràng, mạch lạc, ông đã chỉ ra cách thức các
mạng neuron làm việc và những công việc chúng có thể thực hiện được. Cống
hiến của Hopfield không chỉ ở giá trị của những nghiên cứu khoa học mà còn
ở sự thúc đẩy trở lại các nghiên cứu về mạng neuron.
Cũng trong thời gian này, một hội nghị với sự tham gia của Hoa Kỳ và
Nhật Bản bàn về việc hợp tác/cạnh tranh trong lĩnh vực mạng neuron đã được
14
tổ chức tại Kyoto, Nhật Bản. Sau hội nghị, Nhật Bản đã công bố những nỗ lực
của họ trong việc tạo ra máy tính thế hệ thứ 5. Tiếp nhận điều đó, các tạp chí
định kỳ của Hoa Kỳ bày tỏ sự lo lắng rằng nước nhà có thể bị tụt hậu trong
lĩnh vực này. Vì thế, ngay sau đó, Hoa Kỳ nhanh chóng huy động quĩ tài trợ
cho các nghiên cứu và ứng dụng mạng neuron.
Năm 1985, viện vật lý Hoa Kỳ bắt đầu tổ chức các cuộc họp hàng năm
về mạng neuron ứng dụng trong tin học (Neural Networks for Computing).
Năm 1987, hội thảo quốc tế đầu tiên về mạng neuron của Viện các kỹ
sư điện và điện tử IEEE (Institute of Electrical and Electronic Engineer) đã
thu hút hơn 1800 người tham gia.
Ngày nay, không chỉ dừng lại ở mức nghiên cứu lý thuyết, các nghiên
cứu ứng dụng mạng neuron để giải quyết các bài toán thực tế được diễn ra ở
khắp mọi nơi. Các ứng dụng mạng neuron ra đời ngày càng nhiều và ngày
càng hoàn thiện hơn. Điển hình là các ứng dụng: xử lý ngôn ngữ (Language
Processing), nhận dạng kí tự (Character Recognition), nhận dạng tiếng nói
(Voice Recognition), nhận dạng mẫu (Pattern Recognition), xử lý tín hiệu
(Signal Processing), Lọc dữ liệu (Data Filtering),…..
2.1.1.3. So sánh mạng neuron với máy tính truyền thống
Các mạng neuron có cách tiếp cận khác trong giải quyết vấn đề so với
máy tính truyền thống. Các máy tính truyền thống sử dụng cách tiếp cận theo
hướng giải thuật, tức là máy tính thực hiện một tập các chỉ lệnh để giải quyết
một vấn đề. Vấn đề được giải quyết phải được biết và phát biểu dưới dạng
một tập chỉ lệnh không nhập nhằng. Những chỉ lệnh này sau đó phải được
chuyển sang một chương trình ngôn ngữ bậc cao và chuyển sang mã máy để
máy tính có thể hiểu được.
Trừ khi các bước cụ thể mà máy tính cần tuân theo được chỉ ra rõ ràng,
máy tính sẽ không làm được gì cả. Điều đó giới hạn khả năng của các máy