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

Ứng dụng mô hình ngôn ngữ cho bài toán 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 (4.56 MB, 85 trang )

BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
—————————————

Nguyễn Thái Bình

ỨNG DỤNG MƠ HÌNH
NGƠN NGỮ CHO BÀI TOÁN
NHẬN DẠNG CHỮ VIẾT TAY
Chuyên ngành: Khoa học dữ liệu

LUẬN VĂN THẠC SĨ KHOA HỌC
KHOA HỌC DỮ LIỆU

NGƯỜI HƯỚNG DẪN KHOA HỌC:
TS. Nguyễn Bình Minh

HÀ NỘI - 2019


CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM
Độc lập – Tự do – Hạnh phúc

BẢN XÁC NHẬN CHỈNH SỬA LUẬN VĂN THẠC SĨ
Họ và tên tác giả luận văn : Nguyễn Thái Bình
Đề tài luận văn: Ứng dụng mơ hình ngơn ngữ cho bài tốn nhận dạng
chữ viết tay
Chun ngành: Khoa học dữ liệu
Mã số SV: CB180056
Tác giả, Người hướng dẫn khoa học và Hội đồng chấm luận văn
xác nhận tác giả đã sửa chữa, bổ sung luận văn theo biên bản họp Hội đồng


ngày 26/10/2019 với các nội dung sau:
1. Bổ sung phân tích kết quả, thời gian thực thi (Chương 6, trang 75):
“Hình 6.2 là một số mẫu dữ liệu được tiến hành kiểm thử. Bảng 6.5 là kết
quả đầu ra của các mơ hình nhận dạng. Nhìn chung, kết quả tốt hơn
thuộc về các mơ hình có sự kết hợp của mơ hình ngơn ngữ. Lấy ví dụ
trong mẫu dữ liệu e, ký tự ‘a’ bị nhận nhầm là ‘à’ khi sử dụng mơ hình
CRNN, nhưng nếu mơ hình nhận dạng khơng dấu và sửa lại thành có
dấu thì hiện tượng này khơng cịn. Kết quả cửa mơ hình OCRLMPipeline
và mơ hình OCRLMJoint trong mẫu d thể hiện thành phần mơ hình ngơn
ngữ trong mơ hình OCRLMPipeline có tính chất suy diễn khi chuyển từ
‘Bình Thuận’ sang ‘Bình Phước’. Ví dụ c cho thấy mơ hình OCRLMJoint
hoạt động khá tốt khi có thể đưa ra được hai số ‘0’.”
“Bảng 6.5 so sánh kết quả thực thi mô hình trên tồn bộ tập dữ liệu kiểm
thử. Thời gian chạy được tiến hành đo đạc trên hai thiết bị phần cứng là
CPU (2.9 GHz Intel Core i9) và GPU (GTX 2080 Ti). Bảng kết quả cho
thấy mơ hình OCRLMJoint có tốc độ thực thi nhanh nhất trong khi mơ
hình OCRLMPipeline có thời gian chạy lâu nhất do phải kết hợp chạy
hai mơ hình con.”
SĐH.QT9.BM11

Ban hành lần 1 ngày 11/11/2014


2. Trình bày thêm nghiên cứu liên quan tới nhận dạng tiếng Việt
Nhận dạng chữ viết tay tiếng Việt bước đầu cũng có những sự quan tâm.
Hướng tiếp cận chủ yếu vẫn là rời rạc hoá các ký tự và tiến hành nhận
dạng ký tự đơn lẻ. Việc phân tách ký tự được nghiên cứu với đề xuất của
Van cùng cộng sự, 2015 [34] dựa trên các đặc trưng như độ dốc, cấu trúc
và độ lõm của hình ảnh ký tự để phân tách hiệu quả. Nghiên cứu của
Pham-Van cùng cộng sự, 2014 [28] thực hiện nhận dạng ký tự tiếng Việt

rời rạc. Với mỗi ký tự sau khi được phân tách sẽ được phân loại sơ bộ
bằng việc đếm các thành phần liên thơng của ảnh. Sau đó sử dụng đặc
trưng wavelet Haar tạo thành 256 đặc trưng và sử dụng bộ phân loại
SVM để tiến hành gán nhãn chi tiết.
3. Hiệu chỉnh lỗi soạn thảo:
Vị trí

Lỗi

Sau khi chỉnh sửa

Trang 37 dòng 11, 12, 13

label

nhãn

Trang 37 dòng 11

training set

Dữ liệu huấn luyện

Trang 37 dòng 12

test data

Điểm dữ liệu kiểm thử

Trang 37 dòng 14, 21


test

Kiểm thử

Trang 24 dòng 17

Đại diện từ

Biểu diễn từ

Trang 44

ground truth

Nhãn thực tế

Trang 24

Word embedding

Đại diện từ

Ngày 04 tháng 11 năm 2019
Giáo viên hướng dẫn

Tác giả luận văn

CHỦ TỊCH HỘI ĐỒNG


SĐH.QT9.BM11

Ban hành lần 1 ngày 11/11/2014


Lời cam đoan
Tơi - Nguyễn Thái Bình - cam kết luận văn này là cơng trình nghiên cứu của bản thân
tơi, dưới sự hướng dẫn của TS. Nguyễn Bình Minh. Các kết quả công bố trong báo
cáo này là trung thực, không phải là sao chép của bất kỳ một cá nhân, hoặc tổ chức đã
được công bố nào khác. Tất cả các trích dẫn được tham chiếu rõ ràng.
Ngày 8 tháng 11 năm 2019
Tác giả luận văn:

Xác nhận của người hướng dẫn

2


Lời cảm ơn
Đầu tiên, em xin được gửi lời cảm ơn chân thành đến các thầy giáo, cô giáo thuộc
trường đại học Bách Khoa Hà Nội. Đặc biệt là các thầy giáo, cô giáo thuộc Viện
Công nghệ Thông tin và Truyền Thơng. Chính các thầy cơ giáo đã trang bị cho em
những kiến thức quý báu trong thời gian em học tập và nghiên cứu tại trường. Đồng
thời em cũng xin được gửi lời cảm ơn đặc biệt đến TS. Nguyễn Bình Minh. Các thầy
là người đã chỉ dẫn tận tình, cho em những kinh nghiệm quý báu để em có thể hồn
thành luận văn tốt nghiệp này. Thầy cơ ln động viên, giúp đỡ em trong những thời
điểm khó khăn nhất.
Em xin gửi lời cảm ơn tới gia đình và bạn bè. Lời động viên tinh thần từ gia đình
và bạn bè ln là động lực để em tiến lên phía trước.
Học viên: Nguyễn Thái Bình, CB180056, khố 2018B, lớp 18B.KHDL.KH


3


Tóm tắt nội dung
Việc số hố dữ liệu là một trong những mục tiêu quan trọng trong nhiều ngành nghề
lĩnh vực, Một trong những điểm làm hạn chế việc số hố hồn tốn chính là việc nhận
dạng chữ viết tay. Đã có nhiều nghiên cứu về bài tốn này nhưng tới nay việc nhận
dạng chữ viết tay vẫn còn nhiều vấn đề khó giải quyết, một phần do mỗi người có một
phong cách viết khác nhau nên chữ viết tay rất đa dạng, phần khác do vấn đề về mặt
dữ liệu, việc thu thập chữ viết tay và gán nhãn là điều gặp rất nhiều khó khăn và đặc
biệt với những ngơn ngữ ít phổ biến như tiếng Việt.
Luận văn sẽ trình bày đề tài nghiên cứu nhận dạng chữ viết tay tiếng Việt. Luận
văn sẽ đưa ra những thành tựu nổi bật trong lĩnh vực này, tổng hợp những nghiên cứu
liên quan, những điểm khó khăn trong bài tốn nhận dạng chữ viết tay nói chung và
chữ viết tay tiếng Việt nói riêng. Từ đó đề xuất hướng nghiên cứu cho bài tốn này
giúp cải thiện độ chính xác trong nhận dạng. Do khơng có bộ dữ liệu chuẩn, nghiên
cứu đầu tiên sẽ tập trung vào việc tiến hành thu thập, xây dựng tập dữ liệu chữ viết
tay tiếng Việt, tiếp theo sẽ thực hiện nghiên cứu, đề xuất giải pháp giúp làm tăng chất
lượng nhận dạng bằng cách áp dụng mơ hình ngơn ngữ vào bộ nhận dạng chữ viết tay.

4


Mục lục
Lời cam đoan

2

Lời cảm ơn


3

Tóm tắt nội dung

4

Danh sách hình vẽ

8

Danh sách bảng

9

Tổng quan

12

1.1

Động lực nghiên cứu . . . . . . . . . . . . . . . . . . . . . . . . . . 12

1.2

Mục tiêu nghiên cứu . . . . . . . . . . . . . . . . . . . . . . . . . . 14

1.3

Đóng góp của nghiên cứu . . . . . . . . . . . . . . . . . . . . . . . . 14


1.4

Cấu trúc luận văn . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

Cơ sở lý thuyết

16

2.1

Học máy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

2.2

Mạng neural . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

2.3

Thị giác máy tính . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26

2.4

Xử lý ngôn ngữ tự nhiên . . . . . . . . . . . . . . . . . . . . . . . . 32

Các nghiên cứu liên quan
3.1

36


Nhận dạng ký tự đơn lẻ . . . . . . . . . . . . . . . . . . . . . . . . . 36
5


3.2

Nhận dạng chuỗi ký tự . . . . . . . . . . . . . . . . . . . . . . . . . 39

3.3

Connectionist Temporal Classification (CTC) . . . . . . . . . . . . . 43

3.4

Mơ hình ngơn ngữ . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45

3.5

Mô hình ngơn ngữ có điều kiện . . . . . . . . . . . . . . . . . . . . . 49

3.6

Mơ hình transformer . . . . . . . . . . . . . . . . . . . . . . . . . . 52

Dữ liệu chữ viết tay

57

4.1


Thu thập dữ liệu chữ viết tay . . . . . . . . . . . . . . . . . . . . . . 57

4.2

Tạo chữ viết tay từ font . . . . . . . . . . . . . . . . . . . . . . . . . 58

4.3

Các phương pháp tăng cường dữ liệu . . . . . . . . . . . . . . . . . . 59

Mơ hình đề xuất

61

5.1

Vấn đề cần giải quyết . . . . . . . . . . . . . . . . . . . . . . . . . . 61

5.2

Mô hình ghép nối (OCRLMPipeline) . . . . . . . . . . . . . . . . . . 62

5.3

Mơ hình kết hợp (OCRLMJoint) . . . . . . . . . . . . . . . . . . . . 65

Thử nghiệm đánh giá

68


6.1

Dữ liệu kiểm thử . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68

6.2

Cài đặt kiểm thử . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69

6.3

Kết quả thử nghiệm và đánh giá . . . . . . . . . . . . . . . . . . . . 72

Kết luận

76

6


Danh sách hình vẽ
2.1

Multilayer perceptron . . . . . . . . . . . . . . . . . . . . . . . . . . 21

2.2

Kiến trúc CNN cho bài toán nhận dạng thực thể trong thị giác máy tính 27

2.3


Ứng dụng nhân chập để làm mờ ảnh . . . . . . . . . . . . . . . . . . 28

2.4

Ứng dụng nhân chập để phát hiện cạnh . . . . . . . . . . . . . . . . . 28

2.5

Một số ứng dụng của phép nhân chập . . . . . . . . . . . . . . . . . 28

2.6

Minh họa hoạt động của phép nhân chập . . . . . . . . . . . . . . . . 29

2.7

Minh họa hoạt động của max pooling layer . . . . . . . . . . . . . . . 31

3.1

Các ví dụ từ tập MNIST test . . . . . . . . . . . . . . . . . . . . . . 36

3.2

Kiến trúc mơ hình CRNN được đề xuất bởi Shi cùng cộng sự, 2016 [31] 41

3.3

Ánh xạ giữa các phần của ảnh đầu vào sang vector đặc trưng . . . . . 42


3.4

Kết hợp CTC với mạng neural trong bài toán OCR . . . . . . . . . . . 43

3.5

Gán nhãn ảnh theo không gian . . . . . . . . . . . . . . . . . . . . . 44

3.6

Kết hợp CTC với mạng neural trong bài toán OCR . . . . . . . . . . . 45

3.7

Kiến trúc mơ hình Window-base language model . . . . . . . . . . . 48

3.8

Kiến trúc mơ hình RNN language model . . . . . . . . . . . . . . . . 50

3.9

Kiến trúc mơ hình Encoder - Decoder . . . . . . . . . . . . . . . . . 51

3.10 Kiến trúc mơ hình Transformer . . . . . . . . . . . . . . . . . . . . . 53
3.11 Scale Dot-Product Attention . . . . . . . . . . . . . . . . . . . . . . 54
3.12 Multi-head attention . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
4.1

Mẫu dữ liệu ảnh chữ viết tay địa chỉ ở Việt Nam . . . . . . . . . . . . 57


4.2

Mẫu dữ liệu ảnh chữ viết tay sinh ra từ font . . . . . . . . . . . . . . 58

4.3

Tăng cường dữ liệu bằng phép biến đổi Skewing . . . . . . . . . . . . 59
7


4.4

Tăng cường dữ liệu bằng phép biến đổi Distortion . . . . . . . . . . . 59

4.5

Tăng cường dữ liệu bằng phép biến đổi Blurring . . . . . . . . . . . . 60

4.6

Tăng cường dữ liệu bằng cách thay đổi nền . . . . . . . . . . . . . . . 60

4.7

Mẫu dữ liệu chữ viết tay sinh ra từ cách ghép từ đơn . . . . . . . . . . 60

5.1

Mơ hình CRNN đề xuất bởi Wang cùng cộng sự . . . . . . . . . . . . 63


5.2

Mơ hình sequence to sequence . . . . . . . . . . . . . . . . . . . . . 63

5.3

Kết hợp mơ hình nhận dạng ký tự quang học với mơ hình dịch . . . . 63

5.4

Kiến trúc mơ hình OCRLMJoint . . . . . . . . . . . . . . . . . . . . 65

6.1

Thống kê số lượng ký tự trong một nhãn dữ liệu . . . . . . . . . . . . 69

6.2

Một số mẫu dữ liệu kiểm thử . . . . . . . . . . . . . . . . . . . . . . 74

8


Danh sách bảng
3.1

So sánh hiệu năng giữa transformer và mạng hồi quy sử dụng LSTM.
Kết quả thực hiện trong nghiên cứu của Lakew cùng cộng sự, 2018 [20] 54


6.1

Kiến trúc thực nghiệm mơ hình CRNN . . . . . . . . . . . . . . . . . 71

6.2

So sánh lỗi nhận dạng giữa các mô hình . . . . . . . . . . . . . . . . 72

6.3

So sánh lỗi nhận dạng tiếng Việt không dấu . . . . . . . . . . . . . . 73

6.4

So sánh ảnh hưởng của mơ hình ngơn ngữ tới độ lỗi của các mơ hình . 73

6.5

So sánh thời gian chạy mỗi mơ hình thực hiện trên dữ liệu test . . . . 74

6.6

Kết quả nhận dạng một số mẫu dữ liệu kiểm thử . . . . . . . . . . . . 75

9


Danh sách từ viết tắt
ANN


Artificial Neural Network

BPTT

Backpropagation Through Time

LSTM

Long Short-Term Memory

NLP

Natural Language Processing

RNN

Recurrent Neural Network

RNN-LSTM Recurrent Neural Network sử dụng Long Short-Term Memory
Seq2seq

Sequence to Sequence

10


Danh sách các kí hiệu
Phép nhân từng thành phần (element-wise multiplication).
m


Số chiều vector input.

n

Kích thước tầng ẩn.

k

Số chiều vector ouput.

L

Số tầng RNN trong mạng Deep RNN.

D

Tập dữ liệu.

Et

Hàm lỗi tương ứng với input xt .

xt

Vector input thứ t trong chuỗi input.

yt

Vector kì vọng tương ứng xt .


ot

Vector output thứ ứng với đầu vào xt .

b

Ma trận thành phần bias giữa các tầng.

U

Ma trận trọng số liên kết tầng input và tầng ẩn.

W

Ma trận trọng số liên kết 2 tầng ẩn.

V

Ma trận trọng số liên kết tầng ẩn và tầng output.

∆U

Ma trận cập nhật cho trọng số U.

∆W Ma trận cập nhật cho trọng số V.
∆V

Ma trận cập nhật cho trọng số W.

11



1. Tổng quan
1.1

Động lực nghiên cứu

Nhận dạng ký tự quang học (OCR) là một lĩnh vực nghiên cứu quan trọng, có tính ứng
dụng cao trong hầu hết các lĩnh vực ngành nghề, giúp tiết kiệm công sức lao động.
Với OCR, một lượng lớn các tài liệu giấy được số hoá, khơng chỉ giúp lưu trữ hiệu
quả mà cịn giúp dữ liệu có thể được truy cập, tiếp cận dễ dàng hơn.
Tính ứng dụng của cơng nghệ OCR thể hiện trong nhiều ngành nghề lĩnh vực, ví
dụ:
• Lĩnh vực tài chính ngân hàng sử dụng OCR trong xử lý séc, form mẫu đơn điền
thơng tin. Với quy trình truyền thống hiện tại, séc viết ra sẽ được scan, số hoá,
chữ ký được xác minh và séc sẽ được hủy ngay sau đó. Các bước hiện tại đều
phải được xử lý bởi con người, OCR nếu có sẽ góp phần rất lớn làm tăng quá
trình xử lý truyền thống, tiết kiệm thời gian và cơng sức.
• Trong ngành pháp lý, rất nhiều giấy tờ, văn bản được tạo ra như văn bản luật,
bản khai, hồ sơ, di chúc. Với OCR, việc số hố sẽ giúp việc tìm kiếm, tra cứu dễ
dàng, nhất với các công ty đa quốc gia, cần tra cứu, luật pháp ở thị trường các
nước.
• Lĩnh vực y tế cũng là lĩnh vực cần ứng dụng OCR, đơn thuốc, phác đồ điều trị,
chuẩn đoán, kết luận của bác sĩ có thể được số hố. Các thơng tin này nếu được
tổng hợp trên tất cả các bệnh viện, cơ sở y tế có thể tạo ra cơ sở dữ liệu chăm sóc

12


sức khoẻ từ đó có thể khai thác giải quyết các bài tốn khó trong dự đốn, điều

trị bệnh.
Lợi ích của OCR được thể hiện qua các điểm:
• Khả năng tìm kiếm: Khi các văn bản giấy được số hố, có thể dễ dàng lưu trữ
dưới dạng tệp tài liệu thơng dụng như word, pdf, txt. Những file này có thể được
tìm kiếm sử dụng những trình tìm kiếm thơng dụng.
• Khả năng chỉnh sửa: Đơi khi những văn bản giấy cần được chỉnh sửa nội dung,
khi đã được số hố, việc này trở nên rất đơn giản.
• Khả năng truy cập: khi tài liệu được số hoá bởi OCR và lưu trữ trong các cơ sở
dữ liệu, nó có thể được truy cập từ mọi nơi.
• Khả năng lưu trữ, sao lưu: Số hố tài liệu giúp giảm khơng gian lưu trữ cho cùng
một loại thông tin. Đồng thời cũng dễ dàng được sao lưu, khôi phục trong trường
hợp bị mất.
• Khả năng dịch: một hệ thống OCR có thể số hoá nhanh các tài liệu giấy, khi kết
hợp với hệ thống dịch thuật, một văn bản ở một ngơn ngữ có thể được chuyển
sang một ngơn ngữ bất kỳ.
Hiện nay nhận dạng ký tự Latin đánh máy được xem là bài tốn đã được giải quyết,
tỷ lệ chính xác thực tế đã đạt hơn 99% (một số ứng dụng địi hỏi tỷ lệ chính xác cao
vẫn cần có con người kiểm tra lại lỗi). Với chữ viết tay, đây vẫn là đề tài cần nhiều
nghiên cứu. Độ chính xác nhận dạng với văn bản chữ viết tay hiện nay còn khá thấp
từ 80% tới 90% chủ yếu là do tính đa dạng trong cách viết và chất lượng của văn
bản scan. Với những ngơn ngữ phổ biến, có nhiều dữ liệu như tiếng Anh, tiếng Nhật,
chất lượng nhận dạng chữ viết tay có thể cao hơn tới 98%, tuy nhiên với những ngôn
ngữ không phổ biến như tiếng Việt, bài tốn nhận dạng chữ viết tay vẫn cịn rất nhiều
thách thức, chủ yếu là do lượng dữ liệu cịn hạn chế từ đó ít được giới nghiên cứu quan
tâm.
13


1.2


Mục tiêu nghiên cứu

Hành vi phổ biến của con người khi đọc một văn bản là đọc lướt, khi đó mắt thu nhận
một phần nội dung và não sẽ xử lý để ghép nối những nội dung cịn thiếu. Ví dụ câu
“Hơm nay tơl đl chơi”. Nhìn qua ai cũng sẽ hiểu nội dung của câu nói đó. Nhưng thực
chất nếu để ý kỹ từng ký tự một, thì chữ ‘i’ trong từ ‘tôi’ và ‘đi’ đã bị thay thế bằng
‘l’. Nếu máy tính xử lý, đây sẽ là một câu ko có ý nghĩa, nhưng với con người điều đó
lại là bình thường.
Hiện tượng thiếu chữ, sai chữ lại càng phổ biến trong văn bản chữ viết tay khi mỗi
người có một phong cách viết khác nhau, cùng một từ mỗi người có thể viết thừa thiếu
chữ cái nào đó. Chất lượng của văn bản scan có thể khơng đồng nhất, nội dung có thể
bị mất hay nhiễu. Điều này khiến cho mơ hình nhận dạng ký tự khơng thể đưa ra được
nội dung chính xác.
Lấy ý tưởng từ hành vi xử lý của con người, đồ án nghiên cứu sự kết hợp giữa xử
lý ảnh truyền thống (trong nhận dạng ký tự quang học) và mơ hình ngơn ngữ (để suy
luận những thơng tin cịn thiếu từ đầu ra của nhận dạng ký tự), từ đó giúp làm tăng
chất lượng nhận dạng.

1.3

Đóng góp của nghiên cứu

Đồ án tập trung vào hai phần chính:
• Xây dựng tập dữ liệu cho nhận dạng chữ viết tay. Do giới hạn về nguồn lực, đồ
án sẽ tập trung xử lý dữ liệu chữ viết tay cho địa chỉ ở Việt Nam. Dữ liệu sẽ được
thu thập từ hai nguồn là dữ liệu thực do người viết và dữ liệu sinh từ font máy
tính.
• Xây dựng mơ hình nhận dạng chữ viết tay tiếng Việt. Đồ án sẽ xoay quanh việc
thử nghiệm các cách kết hợp giữa mơ hình xử lý ảnh và mơ hình ngơn ngữ, so
sánh với các kỹ thuật trong OCR truyền thống và đề xuất mơ hình giải quyết bài

toán nhận dạng chữ viết tay với dữ liệu chữ viết tay địa chỉ.
14


1.4

Cấu trúc luận văn

• Phần đầu của luận văn đưa ra động lực, mục tiêu của nghiên cứu.
• Phần hai sẽ trình bày các khái niệm, cơ sở lý thuyết về học máy, học sâu, các kiến
thức trong xử lý ảnh và xử lý ngôn ngữ tự nhiên. Đây là nền tảng kiến thức phục
vụ cho các phần sau của đồ án.
• Phần ba trình bày các nghiên cứu liên quan. Phần đầu sẽ nói về các kỹ thuật giải
quyết bài toán nhận dạng ký tự quang học. Phần sau sẽ trình bày về mơ hình ngơn
ngữ, các kiến trúc phổ biến để xây dựng mơ hình ngơn ngữ.
• Phần bốn đưa ra các phương pháp xử lý chữ viết tay từ những dữ liệu thực tế do
người viết và đề xuất cách tạo thêm dữ liệu từ các font chữ viết tay sẵn có.
• Phần năm sẽ đề xuất các mơ hình giải quyết bài tốn nhận dạng chữ viết tay. Các
mơ hình đề xuất xoay quanh việc kết hợp giữa mơ hình xử lý ảnh và mơ hình
ngơn ngữ.
• Phần sáu sẽ thực nghiệm các mơ hình, sử dụng dữ liệu đã chuẩn bị ở phần bốn.
Từ đó tiến hành so sánh mơ hình đề xuất với các mơ hình truyền thống trong bài
tốn nhận dạng ký tự quang học.
• Phần bảy đưa ra kết luận cho nghiên cứu, trình bày ưu nhược điểm của mơ hình
đã đề xuất và đưa ra các hướng phát triển cho tương lai.

15


2. Cơ sở lý thuyết

2.1

Học máy

Trong học máy, dữ liệu đầu vào thường được biểu diễn dưới dạng vector x ∈ Rd có d
đặc trưng. Mỗi đặc trưng là một thuộc tính của dữ liệu. Tồn bộ tập dữ liệu được ký
hiệu là X ∈ Rn×d bao gồm n điểm dữ liệu. Trong học có giám sát (supervised learning),
mỗi điểm dữ liệu xi sẽ đi kèm với một nhãn yi . Học không giám sát (unsupervised
learning) ngược lại, sẽ chỉ có tập điểm dữ liệu i mà khơng có thơng tin nhãn. Có hai
lớp bài tốn phổ biến trong học máy có giám sát là bài tốn phân loại (classification)
và bài toán hồi quy (regression). Với bài toán phân loại, nhãn yi sẽ thuộc về một trong
tập những nhãn, lớp cho trước. Trong khi với bài toán hồi quy, nhãn yi là một số thực.
Bài toán phân loại bao gồm các bài tốn con có thể có là phân loại nhị phân, phân
loại đa lớp và phân loại đa nhãn. Với phân loại nhị phân, nhãn yi chỉ thuộc một trong
hai lớp, trong khi phân loại đa lớp, số lượng lớp sẽ lớn hơn hai. Phân loại đa nhãn thì
một điểm dữ liệu xi có thể có nhiều nhãn yi khác nhau.
Cách giải quyết bài tốn Machine Learning có 3 bước chính là Modeling, Learning và Inference. Modeling là việc đi tìm mơt mơ hình thích hợp cho bài tốn cần giải
quyết. Với bài tốn Linear Regression, modeling chính là việc mơ hình dữ liệu đầu ra
(output) như là tổ hợp tuyến tính của dữ liệu đầu vào (input). Với bài tốn k-means
clustering, modeling chính là việc quan sát ra rằng các clusters thường được mô tả bởi
các centroids (hoặc centers) và mỗi điểm được xếp vào cluster tương ứng với centroid
gần nó nhất. Learning là bước tiến hành tối ưu các tham số của mơ hình. Mỗi model
được mơ hình bởi một bộ các tham số (parameters). Với Linear Regression, tham số
16


mơ hình là bộ vector hệ số và bias (w, b). Với K-means clustering, tham số mơ hình
có thể được coi là các clusters. Việc đi tìm các tham số cho mơ hình thường được thực
hiện bằng việc giải một bài tốn tối ưu. Q trình giải bài tốn tối ưu, hay chính là q
trình đi tìm tham số của mơ hình, chính là q trình Learning. Sau bước Learning

này, chúng ta thu được các trained parameters. Inference là bước dự đốn ouput của
mơ hình dựa trên các trained parameters. Với Linear Regression, Inference chính là
việc tính y = wT x + b dựa trên bộ các tham số đã được huấn luyện (w, b). Với K-means
clustering, việc inference chính là việc đi tìm centroid gần nhất.
• Maximum likelihood estimation
Giả sử có các điểm dữ liệu x1 , x2 , ..., xn và n điểm dữ liệu này tuân theo một phân
phối nào đó được mơ tả bởi bộ tham số θ. Maximum Likelihood Estimation là
việc đi tìm bộ tham số θ sao cho xác suất sau đây đạt giá trị lớn nhất (công thức
2.1). Đây là xác suất để tất cả các sự kiện x1 , x2 , ..., xn (hay toàn bộ điểm dữ liệu)
xảy ra.
θ = argmax pmodel (x1 , x2 , ..., xn |θ)
θ

(2.1)

Việc giải trực tiếp bài tốn 2.1 thường là phức tạp vì việc đi tìm mơ hình xác suất
đồng thời cho tồn bộ dữ liệu là ít khi khả thi. Một cách tiếp cận phổ biến là giả
sử đơn giản rằng các điểm dữ liệu xi là độc lập với nhau, nếu biết tham số mơ
hình θ. Nói cách khác, ta xấp xỉ likelihood trong 2.1 bởi 2.2. Khi đó 2.1 sẽ trở
thành 2.3.
N

pmodel (x1 , x2 , ..., xn |θ) ≈

pmodel (xn |θ)

(2.2)

n=1


N

θ = argmax
θ

pmodel (xn |θ)

(2.3)

n=1

Việc tối ưu hố một tích thường phức tạp hơn việc tối ưu một tổng, vì vậy việc
tối đa hàm mục tiêu thường được chuyển về việc tối đa log của hàm mục tiêu.
17


Cơng thức tích trong 2.3 sẽ được biến đổi thành công thức tổng log như trong 2.4
N

θ = argmax
θ

log pmodel (xn |θ)

(2.4)

n=1

• Condition maximum likelihood
Ước lượng Maximum likelihood trình bày ở trên chỉ áp dụng cho học khơng giám

sát, vì lúc khi đó ta chỉ có dữ liệu, và tìm mơ hình để cực đại hố xác suất dữ liệu
này xảy ra. Với bài tốn có giám sát, xác suất cần ước lượng là xác suất có điều
kiện. Condition maximum likelihood estimation là việc tìm bộ tham số θ sao so
xác suất có điều kiện sau đạt giá trị lớn nhất 2.5, hay công thức tương đương 2.6
θ = argmax pmodel (y|x1 , x2 , ..., xn ; θ)
θ

(2.5)

N

θ = argmax
θ

log pmodel (y|xn ; θ)

(2.6)

n=1

• Linear regression
Linear regression Modeling phân phối xác suất có điều kiện p(y|x). Nhận đầu
vào là vector x ∈ Rd và dự đoán giá trị số thực y ∈ R sử dụng vector trọng số
θ ∈ Rd và giá trị bias b ∈ R. Khi đó giá trị đầu ra ước lượng yˆ của mơ hình được
tính theo cơng thức 2.8
yˆ (x; θ) = θT x + b

(2.7)

Để học được bộ trọng số θ, cần phải tối thiểu lỗi của mơ hình. Để đo lường độ

lệch giữa giá trị dự đoán yˆ và giá trị đúng y, hàm phổ biến được sử dụng là mean
squared error (MSE) được định nghĩa trong cơng thức 2.8
1
MS E =
n
• Logistic regression
18

n

(ˆyi − yi )2
i=1

(2.8)


Có thể áp dụng linear regression cho bài tốn phân loại. Trong trường hợp phân
loại nhị phân, hai lớp 0 và 1, cách đơn giản nhất có thể đưa giá trị của linear
regression qua một hàm phi tuyến sigmoid hay còn gọi là logistic function σ
được định nghĩa như trong công thức 2.9
σ(x) =

1
1 + e−x

(2.9)

Giá trị xác suất được tạo ra bởi logistic regression được tính như cơng thức 2.10
và 2.11
yˆ i = P(yi = 1|xi ; θ) = σ(θT xi + b)


(2.10)

yˆ i = P(yi = 0|xi ; θ) = 1 − σ(θT xi + b)

(2.11)

Mục tiêu là tìm θ và b sao cho yˆ i gần 0 nếu yi = 0 và gần 1 nếu yi = 1. Đặt
zi = σ(θT xi + b). Công thức 2.10 và 2.11 có thể gộp lại thành cơng thức 2.12.
Mục tiêu muốn mơ hình đưa ra kết quả gần với dữ liệu nhất, tức giá trị xác suất
đạt mức cao nhất. Bài tốn này chính là bài tốn Maximum likelihood estimation
đã giới thiệu ở trên.
P(yi |xi ; θ) = zyi i (1 − zi )1−yi

(2.12)

Hàm mục tiêu tối ưu khi đó trở thành 2.13.
N

zyi i (1 − zi )1−yi

P(y|X; θ) =

(2.13)

i=1

Vì giá trị xác suất trong khoảng (0, 1). Nếu số lượng điểm dữ liệu nhiều, việc lấy
tích số lượng lớn sẽ làm cho giá trị cần tối ưu nhỏ, khó để thực hiện. Ta có thể
lấy log giá trị tối ưu để giải quyết vấn đề này. Việc tối ưu tìm giá trị nhỏ nhất sẽ

dễ dàng hơn việc tìm giá trị lớn nhất, đơn giản lấy ngược dấu giá trị cần tối ưu
sẽ đưa bài tốn về tìm cực tiểu. Công thức 2.13 sẽ trở thành 2.14. Đây chính là
cơng thức hàm mất mát negative log likelihood.
N

J(θ) = P(y|X; θ) = −

(yi log zi + (1 − yi ) log(1 − zi ))
i=1

19

(2.14)


• Gradient Descent
Trong Machine Learning nói riêng và Tốn Tối Ưu nói chung, thường xun phải
tìm giá trị nhỏ nhất (hoặc đôi khi là lớn nhất) của một hàm số nào đó. Ví dụ như
các hàm mất mát J(θ) trong hai bài Linear Regression và Logistic Regression bên
trên. Nhìn chung, việc tìm global minimum của các hàm mất mát trong Machine
Learning là rất phức tạp, thậm chí là bất khả thi. Thay vào đó, người ta thường
cố gắng tìm các điểm local minimum, và ở một mức độ nào đó, coi đó là nghiệm
cần tìm của bài tốn.
Các điểm local minimum là nghiệm của phương trình đạo hàm bằng 0. Nếu bằng
một cách nào đó có thể tìm được tồn bộ (hữu hạn) các điểm cực tiểu, ta chỉ cần
thay từng điểm local minimum đó vào hàm số rồi tìm điểm làm cho hàm có giá
trị nhỏ nhất (đoạn này nghe rất quen thuộc, đúng không?). Tuy nhiên, trong hầu
hết các trường hợp, việc giải phương trình đạo hàm bằng 0 là bất khả thi. Nguyên
nhân có thể đến từ sự phức tạp của dạng của đạo hàm, từ việc các điểm dữ liệu
có số chiều lớn, hoặc từ việc có quá nhiều điểm dữ liệu.

Hướng tiếp cận phổ biến nhất là xuất phát từ một điểm coi là gần với nghiệm
của bài tốn, sau đó dùng một phép tốn lặp để tiến dần đến điểm cần tìm, tức
đến khi đạo hàm gần với 0. Gradient Descent (GD) và các biến thể của nó là một
trong những phương pháp được dùng nhiều nhất. GD sẽ cập nhật tham số của
mô hình θ bằng cách đi ngược lại hướng của gradient ∇θ J(θ). Gradient là vector
chứa đạo hàm từng phần của các phần tử trong vector trọng số θ. GD cập nhật
vector trọng số mơ hình theo cơng thức 2.15. Với η là tốc độ học biểu thị cường
độ của mỗi lần cập nhật θ
θ = θ − η∇θ J(θ)

20

(2.15)


Hình 2.1: Multilayer perceptron

2.2

Mạng neural

Mạng neural nhận tạo đã trở thành lựa chọn không thể thiếu trong những công cụ
giải quyết bài toán học máy (xử lý ảnh, xử lý ngơn ngữ tự nhiên hay nhận dạng giọng
nói,...) trong những năm gần đây. Phần này sẽ trình bày tổng quan về những thành
phần cơ bản cấu thành nên một mạng neural nhân tạo. Mạng neural có thể coi như
một tập hợp các hàm. Trên thực tế có thể coi các mơ hình học máy (linear regression,
logistic regression) như là trường hợp đơn giản của một mạng neural nhân tạo.
Trong bài toán multi-class logistic regression bao gồm hai hàm sau:
f (x) = W x + b


(2.16)

g(y) = so f tmax(y)

(2.17)

với W ∈ RC×d , x ∈ Rd , b ∈ RC , y ∈ RC , C là số lượng lớp cần phân loại và d là
số lượng chiều của dữ liệu đầu vào. W và b chính là trọng số cần được huấn luyện.
Logistic regression có thể được xem như hàm tích hợp của hai hàm f và g này: g( f (x))
với f (.) là hàm tổng và g(.) là hàm tác động. Trong trường hợp này hàm tác động là
hàm so f tmax
Một mạng neural là tổng hợp của nhiều hàm tổng (tuyến tính) xen kẽ với các hàm
tác động (phi tuyến). Các hàm tác động như softmax, sigmoid hay được sử dụng ở
tầng cuối, tầng output của mạng neural để phân loại đầu ra hay đưa ra một phân phối
21


xác suất. Các tầng khơng phải tầng output cịn được gọi là các tầng ẩn (hidden layer).
Linear Regression có thể xem như một mạng neural khơng có tầng ẩn, sử dụng hàm
kích hoạt tuyến tính. Logistic Regression cũng tương tự khơng có tầng ẩn và sử dụng
hàm kích hoạt phi tuyến (so f tmax, sigmoid). Mơ hình có một tầng ẩn được biết đến
như là one-layer feed-forward neural network (hình 2.1), hay còn gọi là multilayer
perceptron (MLP):
h = σ1 (W1 x + b1 )

(2.18)

y = so f tmax(W2 h + b2 )

(2.19)


Với σ1 là hàm tác động của tầng ẩn đầu tiên. Chú ý là mỗi tầng ẩn sẽ có bộ trọng
số của riêng nó (ma trận trọng số W và giá trị bias b). Mỗi tầng sẽ có một bộ trọng
số, tuy nhiên có thể có trường hợp các tầng chia sẻ với nhau cùng một bộ trọng số
(sharing parameters). h được tính tốn ở tầng ẩn sau đó được truyền vào tầng tiếp theo
(output layer) để đưa ra output của cả mạng. Quá trình này là quá trình lan truyền tiến
(forward propagation). Một hàm tuyến tính có thể được biểu diễn thơng qua một hàm
tuyến tính khác, vì thế, điểm quan trọng của các mạng neural chủ yếu nằm ở hàm tác
động.
Bên cạnh các hàm tác động đã trình bày như sigmoid, so f tmax được sử dụng chủ
yếu trong tầng output, còn một số các hàm tác động khác hay được sử dụng cho tầng
ẩn như rectified linear unit (ReLU), được định nghĩa như sau:
σ(x) = max(0, x)

(2.20)

Một hàm tác động khác cũng hay được sử dụng trong thực tế là hàm hyperbolic tangent
hay hàm tanh có giá trị đầu ra trong khoảng từ (-1, 1) được định nghĩa như sau:
e x − e−x
σ(x) = x
e + e−x

(2.21)

Sau đây sẽ trình bày kiến trúc tầng ẩn và mơ hình thường được sử dụng và đồng
thời cũng được áp dụng trong nghiên cứu này.
• Mạng neural hồi quy (Recurrent neural network)
22



Mạng neural hồi quy là một trong những mạng cơ bản, được sử dụng nhiều nhất
cho những dữ liệu có tính tuần tự (như text, âm thanh,...). Được đề xuất bởi
Elman, 1990 [8], Một mạng RNN có thể nhìn nhận như một mạng truyền thẳng
(feed-forward) với số lượng tầng ẩn trên lý thuyết là không giới hạn, và các tầng
ẩn sử dụng cùng một bộ trọng số. Thay vì trở nên "deep", RNN là một mơ hình
khai thác "wide" của dữ liệu khi nó có khả năng mở rộng tuỳ theo kích thước dữ
liệu (số lượng time-step khơng cố định). Khác với mạng truyền thẳng đã nói tới
trước đó chỉ nhận đầu vào có kích thước cố định. Đặc biệt hơn, một mạng RNN
duy trì thơng tin của tầng ẩn là ht đại diện cho "memory" nội dung của dữ liệu đã
truyền vào trong mạng. ht là "memory" của toàn bộ thông tin được truyền vào từ
time-step đầu tiên cho tới time-step t. Tại mỗi time-step, RNN tính tốn những
giá trị sau:
ht = σh (Wh xt + Uh ht−1 + bh )

(2.22)

yt = σy (Wy ht + by )

(2.23)

Với σh và σy là các hàm tác động. RNN thực hiên biến đổi hidden-state ht−1 từ
time-step phía trước sử dụng bộ trọng số Uh , sử dụng Wh để biến đổi dữ liệu
input tại time-step hiên tại xt để đưa ra giá trị hidden-state cho time-step hiện
tại ht . Không chỉ có hidden-state, tại mỗi time-step RNN cịn output ra giá trị yt .
Trên thực tế, kiến trúc RNN này gặp phải vấn đề tiêu biến đạo hàm (vanishing
gradient) khi số lượng time-step lớn.
• Long-short term memory
Được đề xuất trong nghiên cứu của Hochreiter cùng cộng sự, 1997 [12], LSTM
được ưu tiên sử dụng hơn là kiến trúc RNN truyền thống khi phải xử lý các dữ
liệu tuần tự vì LSTM có thể lưu trữ được thơng tin trong số lượng time-step dài

hơn. LSTM được nhìn nhận như một cell tinh vi hơn so với RNN cell truyền
thống với các cơ chế "remember" và "forget". LSTM bổ sung thêm vào kiến trúc
của RNN truyền thống các cổng forget ft , cổng input it và cổng output ot . Các
23


×