Tải bản đầy đủ (.pdf) (72 trang)

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

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.25 MB, 72 trang )


 
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 



 
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 
 



 

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



 
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. 
 
 



 
 
 



 

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. 



 
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 



 
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. 



 

 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



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



 
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 


15 
 
tính truyền thống ở phạm vi giải quyết các vấn đề mà chúng ta đã hiểu và biết 
chính xác cách thực hiện. Các máy tính sẽ trở lên hữu ích hơn nếu chúng có 
thể thực hiện được những việc mà bản thân con người không biết chính xác là 
phải làm như thế nào.  
Các mạng neuron xử lý thông tin theo cách thức giống như bộ não con 
người. Mạng được tạo nên từ một số lượng lớn các phần tử xử lý được kết nối 
với  nhau  làm  việc  song  song  để  giải  quyết  một  vấn  đề  cụ  thể.  Các  mạng 
neuron học  theo  mô hình, chúng không thể được lập trình  để thực  hiện một 
nhiệm vụ cụ thể. Các mẫu phải được chọn lựa cẩn thận nếu không sẽ rất mất 
thời gian, thậm chí mạng sẽ hoạt động không đúng. Điều hạn chế này là bởi vì 
mạng  tự  tìm  ra  cách  giải  quyết  vấn  đề,  thao  tác  của  nó  không  thể  dự  đoán 
được.  
Các mạng neuron và các máy tính truyền thống không cạnh tranh nhau 
mà bổ sung cho nhau. Có những nhiệm vụ thích hợp hơn với máy tính truyền 
thống, ngược lại có những nhiệm vụ lại thích hợp hơn với các mạng neuron. 
Thậm chí rất nhiều nhiệm vụ đòi hỏi các hệ thống sử dụng tổ hợp cả hai cách 
tiếp  cận  để  thực  hiện  được  hiệu  quả  cao  nhất.  (thông  thường  một  máy  tính 
truyền thống được sử dụng để giám sát mạng neuron) 
2.1.2. Cấu trúc và hoạt động của mạng Neuron
2.1.2.1. Neuron sinh học

Qua  quá  trình  nghiên  cứu  về  bộ  não,  người  ta  thấy  rằng:  bộ  não  con 
người bao gồm khoảng 1011 neuron tham gia vào khoảng 1015 kết nối trên 
các  đường  truyền.  Mỗi  đường  truyền  này  dài  khoảng  hơn  một  mét.  Các 
neuron  có nhiều đặc điểm  chung  với  các  tế  bào khác  trong  cơ  thể,  ngoài  ra 
chúng còn có những khả năng mà các tế bào khác không có được, đó là khả 
năng nhận, xử lý và truyền các tín hiệu điện hóa trên các đường mòn neuron, 
các con đường này tạo nên hệ thống giao tiếp của bộ não.  


16 
 

Hinh 2- 1: C
: Cấu trúc của một neuron sinh học điển hình
n hình 
Mỗi neuron sinh h
sinh học có 3 thành phần cơ bản:  
 Các nhánh vào hình cây (dendrites) 
Các nhánh vào hình cây (dendrites)  
 Thân tế bào (cell body) 
bào (cell body)  
 Sợi trục ra (axon) 
c ra (axon)  
Các  nhánh  hình  cây  truyền 
truy tín  hiệu vào  đến  thân  tế  bào.  Thân  ttế  bào 
tổng hợp và xử lý cho tín hi
lý cho tín hiệu đi ra. Sợi trục truyền tín hiệu ra t
u ra từ thân tế bào 
này sang neuron khác. Đi
khác. Điểm liên kết giữa sợi trục của neuron này v

này với nhánh 
hình cây của neuron khác g
khác gọi là synapse. Liên kết giữa các neuron
neuron và độ nhạy 
của  mỗi synapse được xác đ
c xác định bởi quá trình hóa học phức tạạp. Một số cấu 
trúc của neuron được 
c  xác định trước lúc sinh ra. Một số cấu trúc đư
xác đ
u trúc được phát 
triển thông qua quá trình h
n thông qua quá trình học. Trong cuộc đời cá thể, một số liên k
liên kết mới được 
hình thành, một số khác b
khác bị hủy bỏ.  
Như vậy neuron  sinh học hoạt động theo cách thức sau: nh
c sau: nhận tín hiệu 
đầu vào, xử lý các tín hi
lý các tín hiệu này và cho ra một tín hiệu output. Tín hi
u output. Tín hiệu output 
này sau đó được truyền đi làm tín hi
n đi làm tín hiệu đầu vào cho các neuron khác.
khác. 
Dựa  trên  những 
ng  hiểu 
hi biết  về  neuron  sinh  học, 
c,  con  người 
ngư xây  dựng 
neuron nhân tạo với hy v
i hy vọng tạo nên một mô hình có sức mạnh như b

nh như bộ não. 


17 
 
2.1.2.2. Cấu trúc của một neuron
Từ  định  nghĩa  ta  thấy  đơn  vị  hình  thành  nên  mạng  neuron  là  các 
neuron.Chức  năng  của  mạng  neuron  nhân  tạo  tương  tự  như  chức  năng  đơn 
giản nhất của các neuron sinh học đó là tích lũy (ghi nhớ) những tri thức đã 
được học về các sự vật để biết, phân biệt chúng mỗi khi gặp lại. Chức năng 
này được hình thành thông qua một chuỗi liên tiếp các quá trình xử lý thông 
tin của các neuron trong mạng. 
Về  cơ  bản,  mỗi  neuron  sinh  học  thực  hiện  nhiệm  vụ  của  mình  thông 
qua các bước: nhận đầu vào, xử lý đầu vào đó, đưa dữ liệu đã được xử lý ra 
output và liên lạc với các neuron khác để gửi output này đi. Với bản chất là 
mô hình mô phỏng đơn của của neuron sinh học, neuron nhân tạo cũng thực 
hiện nhiệm vụ của mình thông qua các thao tác: nhận đầu vào từ các neuron 
trước nóm xử lý đầu vào bằng cách nhân mỗi đầu vào này với trọng số liên 
kết tương ứng và tính tổng các tích thu được rồi đưa ra một hàm truyền, sau 
đó gửi kết quả cuối cùng cho các neuron tiếp theo hoặc đưa ra output. Cứ như 
vậy các neuron này  hoạt động phối hợp với nhau tạo thành hoạt động chính 
của mạng neuron. 
Chúng  ta  có thể  hình  dung  rõ  rang  hơn quy  trình  xử  lý  thông  tin  của 
một neuron qua cấu trúc của nó được thể hiện trong hình 2-5. 


18 
 

Hinh 2- 2: Cấu trúc của một neuron

Trong hình vẽ trên: 
 ( x1 , x2 ,...., x p ) với 

p1: là các tín hiệu đầu vào của neuron. Các 

tín  hiệu  này có thể là  đầu ra của  các neuron trước  đó hoặc  đầu 
vào  ban đầu  của  mạng và thường  được đưa vào  dưới  dạng  một 
vector p chiều. 
 wk1 , wk 2 ,...., wkp là tập các trọng số liên kết của neuron k với p đầu 
vào  tương  ứng  ( x1 , x2 ,...., x p ) .  Thông  thường,  các  trọng  số  này 
đưuọc khởi tạo một cách ngẫu nhiên ở thời điểm khởi tạo mạng 
và được cập nhật liên tục trong quá trình học của mạng. 




là hàm tổng trên  một neuron, dung để tính tổng các giá trị 

kích hoạt lên neuron đó. Thông thưởng, đây là tổng của các tích 
giữa đầu vào với trọng số liên kết tương ứng của neuron. 
 uk là tổng các giá trị kích hoạt lên neuron thứ k , giá trị này chính 
là đầu ra của hàm tổng. 


19 
 
 bk là ngưỡng (còn gọi là hệ số bias) của neuron thứ k , giá trị này 
được dung như một thành phần phân ngưỡng trên hàm truyền và 
cũng dược cập nhật liên tục trong quá trình học của mạng. 



f (.) là  hàm  truyền,  còn  gọi  là  hàm  kích  hoạt  (activation 
function). Hàm truyền được dùng để giới hạn phạm vi đầu ra của 
nỗi  neuron.  Đối  số  của  hàm  là  giá  trị  hàm  tổng  và  ngưỡng  bk . 
Thông  thường,  phạm  vi  đầu  ra  của  mỗi  neuron  được  giới  hạn 
trong đoạn [0,1] hoặc [-1,1]. Như vậy  miền giá trị của các hàm 
kích  hoạt  cũng  là  một  trong  hai  đoạn  trên.  Có  rất  nhiều  hàm 
truyền thường được dùng, việc lựa chọn hàm truyền nào cho phù 
hợp tùy thuộc vào từng bài toán. 

 yk là tín hiệu đầu ra của neuron thứ k, mỗi neuron thường có một 
đầu  ra  và  tối  đa  là  một  đầu  ra.  Giá  trị  yk được  tính  theo  công 
thức: 
p

 yk  f (uk  bk ) với  uk   wkj x j  
j 1

Như vậy, sau quá trình xử lý của neuron trên tập tín hiệu đầu vào ta sẽ 
thu được một đầu ra duy nhất. 
2.1.2.3. Hoạt động của mạng neuron
Một mạng neuron có thể có nhiều lớp/tầng mạng và ít nhất phải có một 
lớp đó là lớp đầu ra (lớp đầu vào thường không được tính là một lớp mạng). 
Mỗi  lớp  có  thẻ  có  một  hoặc  nhiều  neuron.  Cấu  trúc  tổng  quát  của  mạng 
neuron được thể hiện trong hình 2-5 dưới đây: 


×