TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
ĐỒ ÁN TỐT NGHIỆP
Bài tốn nhận dạng văn bản
cho tiếng Việt
LÊ VĂN HỒNG
Ngành Cơng nghệ thơng tin
Chun ngành Khoa học máy tính
Giảng viên hướng dẫn:
TS. Đinh Viết Sang
Chữ ký của GVHD
Bộ môn:
Viện:
Khoa học máy tính
Cơng nghệ thơng tin và truyền thơng
HÀ NỘI, 1/2021
Phiếu giao nhiệm vụ đồ án tốt nghiệp
Thông tin sinh viên
Họ và tên : Lê Văn Hoàng
Email
:
Lớp
: CNTT2.03 - Khoá 61
Điện thoại : 0388372328
Hệ đào tạo : Đại học chính quy
Đồ án tốt nghiệp được thực hiện tại: Bộ mơn Khoa học máy tính - Viện
Cơng nghệ thơng tin và truyền thông
Thời gian làm đồ án tốt nghiệp: Từ ngày 15/9/2020 đến ngày 5/1/2021
Mục đích nội dung của đồ án tốt nghiệp
Tìm hiểu, thử nghiệm một số mơ hình phổ biến như CRNN-CTC, Seq2SeqOCR, Transformer-OCR cho bài toán nhận dạng văn bản Tiếng Việt.
Các nhiệm vụ cụ thể của đồ án tốt nghiệp
• Nghiên cứu bài tốn nhận dạng văn bản;
• Tìm hiểu một số mơ hình phổ biến như CRNN-CTC, Seq2Seq-OCR và
Transformer-OCR;
• Tạo bộ dữ liệu huấn luyện cho Tiếng Việt;
• Thực nghiệm, đánh giá kết quả trên bài toán nhận dạng văn bản trong
thực tế.
Lời cam đoan của sinh viên
Tơi - Lê Văn Hồng - cam kết đồ án tốt nghiệp là sản phẩm của bản thân tôi
dưới sự hướng dẫn của TS. Đinh Viết Sang.
Các kết quả trong đồ án là trung thực, không phải sao chép tồn văn của bất
kỳ cơng trình nào khác.
Hà Nội, ngày 5 tháng 1 năm 2021
Sinh viên
Lê Văn Hoàng
Xác nhận của giáo viên hướng dẫn về mức độ hoàn thành và cho phép bảo
vệ: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
...........................................................................
...........................................................................
Hà Nội, ngày 5 tháng 1 năm 2021
Giảng viên hướng dẫn
TS. Đinh Viết Sang
LỜI CẢM ƠN
Như vậy là quãng thời gian của tôi tại Đại học Bách khoa Hà Nội sắp đi tới
hồi kết. Một quãng thời gian học tập, rèn luyện với rất nhiều trải nghiệm đáng
nhớ. Trước hết, tôi muốn gửi lời cảm ơn đến các thầy cô trường Bách khoa Hà
Nội, đặc biệt là các thầy cô Viện Công nghệ thơng tin và truyền thơng. Thầy cơ
đã tận tình truyền đạt kiến thức, rèn dũa để tơi có thể trưởng thành hơn.
Tôi chân thành cảm ơn TS. Đinh Viết Sang đã tận tình hướng dẫn, giúp đỡ
để tơi hồn thành đồ án này.
Nhân dịp này, tôi cũng xin gửi lời cảm ơn đến gia đình, bạn bè đã ln bên
cạnh, cổ vũ, động viên cũng như giúp đỡ tôi trong suốt quá trình học tập và
thực hiện đồ án.
TÓM TẮT NỘI DUNG ĐỒ ÁN
Trong những năm gần đây, bài toán nhận dạng ký tự quang học (OCR) rất
được quan tâm bởi cộng đồng thị giác máy tính vì những ứng dụng thực tế
của nó. Ví dụ như số hố các văn bản giấy hoặc trích xuất thơng tin văn bản từ
hình ảnh. Giải quyết được bài tốn này sẽ giúp tiết kiệm được rất nhiều công
sức, nhân lực cũng như là tài chính cho các doanh nghiệp.
Một bài toán OCR bao gồm các tác vụ riêng biệt như phát hiện văn bản,
nhận dạng văn bản, trích rút thơng tin. Tuy nhiên, đồ án này sẽ tập trung
nghiên cứu cũng như thử nghiệm một số mơ hình phổ biến cho bài tốn nhận
dạng văn bản. Ngồi ra, đồ án cũng đề xuất bộ dữ liệu tự sinh cho tiếng Việt
kết hợp cùng bộ dữ liệu tiếng Anh hiện có để huấn luyện cho ra mơ hình giải
quyết tốt cho cả tiếng Anh và tiếng Việt.
Kết quả đồ án cho thấy khả năng, độ hiệu quả của các mơ hình thử nghiệm
là rất tốt với dữ liệu tự sinh cũng như tiềm năng ứng dụng ra thực tế rất lớn
nếu có đủ dữ liệu thực tế để huấn luyện.
Đồ án tốt nghiệp bao gồm 5 chương:
• Chương 1: Giới thiệu tổng quan về đồ án;
• Chương 2: Cơ sở lý thuyết;
• Chương 3: Một số mơ hình phổ biến;
• Chương 4: Thử nghiệm và đánh giá;
• Chương 5: Kết luận.
Mục lục
1
Tổng quan đồ án
1.1 Giới thiệu bài toán . . . . . . . . . . . . . . . . . . . . . . . . . .
1.2 Mục tiêu đồ án . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.3 Đối tượng và phạm vi nghiên cứu . . . . . . . . . . . . . . . . .
2
Cơ sở lý thuyết
2.1 Mạng nơ-ron tích chập . . . . . . . . . . . . .
2.2 Mạng nơ-ron hồi quy . . . . . . . . . . . . . .
2.2.1 Mạng nơ-ron hồi quy cơ bản . . . . .
2.2.2 Mạng nơ-ron hồi quy mở rộng LSTM
2.3 Cơ chế chú ý . . . . . . . . . . . . . . . . . . .
2.3.1 Cơ chế chú ý mềm . . . . . . . . . . .
2.3.2 Một số cơ chế chú ý phổ biến . . . . .
2.4 Luồng bài toán OCR . . . . . . . . . . . . . .
3
4
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Một số mô hình phổ biến
3.1 CRNN-CTC . . . . . . . . . . . . . . . . . . . . . . .
3.1.1 Kiến trúc mô hình . . . . . . . . . . . . . . .
3.1.2 CTC - Connectionist Temporal Classification
3.2 Seq2Seq-OCR . . . . . . . . . . . . . . . . . . . . . .
3.2.1 Kiến trúc mơ hình . . . . . . . . . . . . . . .
3.3 Transformer-OCR . . . . . . . . . . . . . . . . . . . .
3.3.1 Transformer trong NLP . . . . . . . . . . . .
3.3.2 Kiến trúc Transformer-OCR . . . . . . . . . .
Thử nghiệm và đánh giá
4.1 Môi trường và ngôn ngữ cài đặt
4.2 Bộ dữ liệu . . . . . . . . . . . .
4.2.1 Bộ dữ liệu tự sinh . . . .
4.2.2 Bộ dữ liệu thực tế . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
1
1
2
3
.
.
.
.
.
.
.
.
4
4
8
8
9
11
12
14
15
.
.
.
.
.
.
.
.
17
17
17
21
25
25
32
32
40
.
.
.
.
43
43
44
44
45
4.3
.
.
.
.
.
.
.
.
46
47
49
49
51
53
53
55
Tổng kết
5.1 Kết quả đạt được . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.2 Hướng phát triển . . . . . . . . . . . . . . . . . . . . . . . . . . .
57
57
57
4.4
4.5
4.6
5
Độ đo . . . . . . . . . . . . . . . . . . . . . . . .
4.3.1 Cài đặt các mơ hình . . . . . . . . . . .
Kết quả thử nghiệm . . . . . . . . . . . . . . . .
Đánh giá kết quả . . . . . . . . . . . . . . . . .
4.5.1 Phân tích một số trường hợp sai . . . .
Thử nghiệm một số bài toán ứng dụng thực tế
4.6.1 Bài toán nhận dạng văn bản từ ảnh chế
4.6.2 Bài toán nhận dạng chứng minh thư . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Danh sách hình vẽ
1.1
Bài tốn nhận dạng văn bản . . . . . . . . . . . . . . . . . . . . .
2.1
2.2
2.3
2.4
2.5
2.6
2.7
2.8
Kiến trúc Mạng tích chập
Minh hoạ lớp tích chập . .
Ví dụ max-pooling . . . .
Một số hàm phi tuyến . .
Kiến trúc RNN . . . . . . .
Kiến trúc LSTM . . . . . .
Cơ chế chú ý . . . . . . . .
Luồng xử lý của OCR . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
4
5
6
7
8
9
13
15
3.1
3.2
3.3
3.4
3.5
3.6
3.7
3.8
3.9
3.10
3.11
3.12
3.13
3.14
3.15
3.16
3.17
3.18
3.19
Kiến trúc CRNN-CTC . . . . . . . . . . . . . . .
Chuỗi đặc trưng . . . . . . . . . . . . . . . . . .
Lớp hồi quy - BiLSTM . . . . . . . . . . . . . . .
Ví dụ: Ma trận đầu ra của CRNN . . . . . . . . .
Kiến trúc Seq2Seq-OCR . . . . . . . . . . . . . .
Sự khác nhau giữa CRNN-CTC và Seq2Seq-OCR
Chuỗi đặc trưng trong Seq2Seq-OCR . . . . . . .
Bộ mã hoá của Seq2Seq . . . . . . . . . . . . . . .
Cơ chế chú ý trong Seq2Seq . . . . . . . . . . . .
Bộ giải mã của Seq2Seq . . . . . . . . . . . . . . .
Sự khác nhau giữa Transfomer và Seq2Seq . . .
Kiến trúc mơ hình Transfomer . . . . . . . . . . .
Ma trận mã hố vị trí . . . . . . . . . . . . . . . .
Bộ mã hóa của Transformer . . . . . . . . . . . .
Biểu diễn dạng ma trận của cơ chế tự chú ý . . .
Minh hoạ chú ý đa đầu . . . . . . . . . . . . . . .
Bộ giải mã của Transformer . . . . . . . . . . . .
Mơ hình Transfomer-OCR . . . . . . . . . . . . .
Trích xuất đặc trưng trong Transformer . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
18
19
20
22
25
26
26
27
29
30
32
33
34
35
36
37
39
40
41
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
2
3.20 Cơ chế tự chú ý trong không gian ảnh . . . . . . . . . . . . . . .
42
4.1
4.2
4.3
4.4
4.5
4.6
4.7
44
45
46
49
53
54
56
Bộ dữ liệu với nền đa dạng . . . . . . . . . . . . . . . .
Trang web gán nhãn dữ liệu . . . . . . . . . . . . . . .
Bộ dữ liệu thực tế . . . . . . . . . . . . . . . . . . . . .
Hình vẽ so sánh kết quả ba mơ hình . . . . . . . . . .
Minh họa một số ảnh chế . . . . . . . . . . . . . . . . .
Một số kết quả thử nghiệm trên ảnh chế . . . . . . . .
Một số kết quả thử nghiệm trên ảnh chứng minh thư
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Danh sách bảng
2.1
Một số cơ chế attention phổ biến . . . . . . . . . . . . . . . . . .
14
4.1
4.2
4.3
4.4
Tổng quan bộ dữ liệu phát sinh . . . . . . . . . . . . . . .
Bảng siêu tham số kiến trúc các mơ hình . . . . . . . . . .
Bảng siêu tham số huấn luyện của các mơ hình . . . . . .
Kết quả thử nghiệm của các mơ hình trên hai bộ dữ liệu .
44
47
48
49
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Danh mục từ viết tắt
Từ viết tắt
CNN
NLP
RNN
GRU
LSTM
BiLSTM
OCR
CTC
Nghĩa đầy đủ
Convolution Neural Network
Natural Language Processing
Recurrent Neural Network
Gated Recurrent Unit
Long Short-Term Memory
Bidirectiona Long Short-Term Memory
Optical Character Recognition
Conectionist Temporal Classification
Danh mục từ dịch
Từ gốc
Dataset
Feed-forward network
Encoder
Decoder
Hidden state
Word embedding
Convolutional
Non-linear
Fully connected
Filter
Receptive field
Feature map
Flatten
Recurrent
Từ dịch
Bộ dữ liệu
Mạng truyền thẳng
Bộ giải mã
Bộ mã hoá
Trạng thái ẩn
Từ nhúng
Tích chập
Phi tuyến
Kết nối đầy đủ
Bộ lọc
Vùng tiếp nhận
Bản đồ đặc trưng
Làm phẳng
Hồi quy
1
Chương 1
Tổng quan đồ án
1.1
Giới thiệu bài tốn
Cơng nghệ nhận dạng ký tự quang học (Optical Character Recognition, viết
tắt là OCR) ra đời vào những năm 90 của thế kỉ trước, đã từng là một bước tiến
vượt bậc giúp các doanh nghiệp số hóa giấy tờ. Tuy nhiên, OCR dần trở nên
lỗi thời và bộc lộ nhiều hạn chế. Trong những năm gần đây, thế giới nói chung
hay Việt Nam nói riêng, cuộc cách mạng 4.0 lên ngơi khơng chỉ mang đến sự
bùng nổ về khoa học kỹ thuật, mà cịn kéo theo sự bùng nổ về cơng nghệ giáo
dục, lưu trữ, số hóa tài liệu. Đặc biệt, với sự kết hợp của trí tuệ nhân tạo, OCR
đã hồi sinh mạnh mẽ và nhanh chóng được ứng dụng rộng rãi.
OCR là công nghệ nhận dạng ký tự quang học, cho phép chuyển đổi tài liệu
in, viết tay ở dạng ảnh thành văn bản dạng bản mềm để có thể dễ dàng xử lí
trên máy tính. Hiện nay, các doanh nghiệp khơng sử dụng OCR chỉ để chuyển
đổi tồn bộ văn bản giấy sang định dạng kỹ thuật số. Những gì doanh nghiệp
cần cịn là các trường thơng tin kỹ thuật số. Một số ứng dụng điển hình của
OCR hiện nay như trích xuất thơng tin trên các loại giấy tờ tùy thân (chứng
minh nhân dân, hộ chiếu, giấy phép lái xe), hóa đơn chứng từ (hóa đơn điện
nước, hóa đơn bán lẻ), hoặc bất cứ loại tài liệu đặc thù nào của doanh nghiệp.
Việc giải quyết được bài toán OCR hiệu quả giúp doanh nghiệp nhanh chóng
giải quyết bài tốn số hóa, đơn giản quy trình hoạt động và tối ưu chi phí vận
hành.
Chương 1. Tổng quan đồ án
2
Những ứng dụng rộng rãi ở trên khiến OCR có rất nhiều giá trị thương mại
cũng như nhiều thách thức. Một trong những thác thức đó là vấn đề về dữ
liệu huấn luyện. OCR muốn hiệu quả cần được đào tạo trên một lượng dữ liệu
lớn. Trong khi đó, việc gán nhãn dữ liệu mất rất nhiều công sức, tiền bạc. Giải
quyết được vấn đề dữ liệu giúp bài toán OCR trở nên dễ dàng hơn.
Một bài tốn OCR thơng thường gồm ba bài tốn con tương ứng các bước
sau: phát hiện văn bản, nhận dạng văn bản và trích rút thơng tin. Mỗi bài toán
con yêu cầu phương pháp xử lý, bộ dữ liệu khác nhau. Tất cả đều cần rất nhiều
công sức để giải quyết. Đồ án sẽ giới thiệu cụ thể các bài toán con này ở phần
sau của đồ án. Tuy nhiên, đồ án này sẽ tập trung vào việc giải quyết bài toán
nhận dạng văn bản.
Phát biểu bài toán
Bài toán nhận dạng văn bản có đầu vào là một hình ảnh chứa văn bản, hình
ảnh này thường là đầu ra của bài tốn phát hiện văn bản. Và có đầu ra là văn
bản trong hình ảnh đó.
Hình 1.1: Bài tốn nhận dạng văn bản
1.2
Mục tiêu đồ án
Mục tiêu của đồ án nhằm tìm hiểu bài tốn nhận dạng văn bản, nghiên cứu
phương pháp học sâu để xử lý bài toán.
Bên cạnh đó, đồ án đã nghiên cứu, chỉnh sửa cũng như cải thiện cách sinh
bộ dữ liệu cho tiếng Việt. Bộ dữ liệu đủ đa dạng để có thể áp dụng lên nhiều
bài toán thực tế.
Chương 1. Tổng quan đồ án
3
Sau đó, đồ án đã tiến hành thử nghiệm, đánh giá và so sánh các mơ hình
nhận dạng văn bản. Từ đó, tìm ra mơ hình tốt nhất trên các bộ dữ liệu được sử
dụng.
Với mơ hình phù hợp nhất, đồ án sử dụng để triển khai trên web một số bài
toán như nhận dạng văn bản từ ảnh chế, nhận dạng giấy tờ tùy thân.
1.3
Đối tượng và phạm vi nghiên cứu
Đối tượng: Các hình ảnh đầu ra của bài toán phát hiện văn bản.
Phạm vi nghiên cứu: Đồ án này giới hạn phạm vi nghiên cứu là hình ảnh
chỉ chứa văn bản phơng chữ thẳng hoặc nghiêng nhẹ, kiểu chữ dễ đọc cũng
như văn bản chỉ chứa một từ. Văn bản có thể là tiếng Anh hoặc tiếng Việt.
4
Chương 2
Cơ sở lý thuyết
2.1
Mạng nơ-ron tích chập
Mạng nơ-ron tích chập (Convolutional Neural Network, viết tắt là CNN)
là một trong những mơ hình học sâu phổ biến và ảnh hưởng nhất trong cộng
đồng học sâu. CNN được dùng trong nhiều bài toán như phân loại ảnh, phát
hiện đối tượng, thậm chí là các bài trong lĩnh vực xử lý ngơn ngữ tự nhiên, và
hầu hết đều giải quyết tốt các bài toán này.
CNN cơ bản gồm tập hợp các lớp như: lớp tích chập, lớp phi tuyến, lớp
pooling và lớp kết nối đầy đủ. Các lớp này liên kết với nhau theo một thứ tự
nhất định, có thể kết hợp để tạo ra nhiều mạng CNN khác nhau. Ví dụ cho một
mạng CNN được thể hiện trong hình 2.1
Hình 2.1: Kiến trúc Mạng tích chập [15]
Lớp tích chập
Chương 2. Cơ sở lý thuyết
5
Lớp tích chập là lớp quan trọng nhất cũng như là lớp đầu tiên của mơ hình
CNN. Lớp này có chức năng phát hiện các đặc trưng mang tính khơng gian
hiệu quả. Lớp tích chập có ba đối tượng chính là: bộ lọc (filters), vùng tiếp
nhận (receptive field) và bản đồ đặc trưng (feature map).
Hình 2.2: Minh hoạ lớp tích chập 1
Đầu tiên, ma trận ba chiều (biểu diễn của một bức ảnh) được một bộ lọc cần
phải học trượt qua từng vị trí nhằm tính tích chập giữa bộ lọc và phần tương
ứng trên ma trận. Phần tương ứng này gọi là vùng tiếp nhận, có kích thước
bằng bộ lọc và ma trận đầu ra của quá trình này được gọi là bản đồ đặc trưng.
Như đã đề cập ở trên, lớp tích chập có chức năng chính là phát hiện các đặc
trưng của bức ảnh. Những đặc trưng này có thể cơ bản như góc, cạnh, màu sắc
hoặc phức tạp hơn như hình dạng đối tượng. Do mỗi bộ lọc học một đặc trưng
nhất định nên lớp tích chập sử dụng nhiều bộ lọc có kích thước cụ thể (ví dụ
như 3x3, 5x5,...) giúp phát hiện được nhiều loại đặc trưng khác nhau, tạo tiền
đề cho việc định danh đối tượng tốt hơn.
Lớp pooling
Lớp pooling có chức năng chính là giảm dần kích thước của không gian
biểu diễn, cụ thể là bản đồ đặc trưng nhằm giảm số lượng tham số và tính tốn
của mơ hình, giúp huấn luyện nhanh cũng như kiểm soát vấn đề overfitting.
Một số lớp pooling phổ biến như max-pooling, average pooling. Ví dụ với một
lớp pooling có kích thước 2x2, chúng ta cần trượt bộ lọc 2x2 này trên một vùng
1 />
Chương 2. Cơ sở lý thuyết
6
kích thước tương tự của ma trận đặc trưng rồi tính giá trị tối đa hoặc trung
bình cho vùng đó.
Hình 2.3: Ví dụ max-pooling
Ý nghĩa của lớp pooling có thể hiểu là vị trí tuyệt đối của những đặc trưng
của không gian ảnh không quá cần thiết, thay vào đó vị trí tương đổi giữ các
đặc trưng đã đủ để phân loại đối tượng.
Lớp kết nối đầy đủ
Bản đồ đặc trưng đầu ra của lớp tích chập hoặc lớp pooling được làm phẳng
(flatten) thành mảng 1 chiều và được kết nối với một số lớp kết nối đầy đủ. Gọi
là lớp kết nối đầy đủ vì mỗi đầu vào kết nối với mọi đầu ra. Lớp kết nối đầy đủ
sẽ học một hàm phi tuyến nhằm kết hợp các đặc trưng cấp cao đã được học từ
bản đồ đặc trưng đầu vào. Lớp đầy đủ cuối cùng có số lượng nơ-ron bằng với
số lớp phân loại, mỗi nơ-ron biểu diễn xác suất cho mỗi lớp tương ứng.
Hàm kích hoạt
Hàm kích hoạt hoạt động như một cánh cổng giữa đầu vào nơ-ron hiện tại
và đầu ra của nó để tới lớp tiếp theo. Hay có thể hiểu đơn giản là giúp bật tắt
nơ-ron dựa vào một ngưỡng nào đó. Hàm kích hoạt rất hữu ích vì chúng mang
tính phi tuyến, giúp mạng nơ-ron mạnh mẽ hơn. Một số hàm kích hoạt như
sigmoid, tanh, ReLU.
Chương 2. Cơ sở lý thuyết
7
Hình 2.4: Một số hàm phi tuyến 2
Hàm ReLU được giới thiệu bởi Geoffrey E. Hinton năm 2010 [21] là hàm
kích hoạt phổ biến nhất hiện tại. Trước đó thì các hàm như sigmoid, tanh
thường được sử dụng. Hàm này được ưa chuộng bởi vì tính tốn đơn giản,
giúp hạn chế tình trạng bùng nổ đạo hàm (vanishing gradient). Tuy nhiên hàm
này cũng tiềm ẩn một số nhược điểm như là giá trị của hàm RELU có thể lớn
vơ cùng hoặc khơng có đạo hàm tại điểm 0.
2 />
Chương 2. Cơ sở lý thuyết
2.2
8
Mạng nơ-ron hồi quy
2.2.1
Mạng nơ-ron hồi quy cơ bản
Ý tưởng chính của mạng nơ-ron hồi quy (RNN - Recurrent Neural Network)
là sử dụng chuỗi các thông tin. RNN hoạt động theo cách thực hiện cùng một
tác vụ cho tất cả các phần tử của một chuỗi, với đầu ra phụ thuộc vào kết quả
trước đó. Do đó, RNN có thể tổng hợp thơng tin lịch sử của chuỗi cho đến
bước thời gian hiện tại. Nhược điểm của RNN là khả năng nhớ câu dài kém.
Bài báo của Bengio, et al. (1994) [4] đã chỉ ra những lí do RNN khơng học được.
Ngun nhân chủ yếu đến từ việc hao hụt hoặc bùng nổ đạo hàm. Về cơ bản
một mạng RNN có dạng như sau:
Hình 2.5: Kiến trúc RNN [15]
Xét bài toán dịch máy, đầu vào là một câu tiếng Anh: "I am a student", đầu
ra là một câu tiếng Việt: "Tôi là một sinh viên". Tại thời điểm t của mơ hình
RNN:
• xt là đầu vào. Ví dụ, x0 là một vector nhúng tương ứng với từ thứ nhất
của câu (I)
• st là trạng thái ẩn tại thời điểm t (chính là bộ nhớ của mạng). st được tính
tốn dựa vào các trạng thái ẩn trước đó st−1 và đầu vào xt tại bước t:
st = f (Uxt + Wst−1 )
(2.1)
Hàm f thường là một hàm phi tuyến như là tanh hoặc ReLU, st−1 thường
được khởi tạo giá trị bằng 0.
Chương 2. Cơ sở lý thuyết
9
• Gọi yt là đầu ra tại thời điểm t thì yt chính là một vector xác xuất cho các
từ trong tập từ vựng và có cơng thức:
yt = so f tmax (Vst )
(2.2)
Nhờ những ưu điểm của mình mà mạng RNN được áp dụng rộng rãi,
đặc biệt trong lĩnh vực xử lý ngôn ngữ tự nhiên (NLP - Natural Language
Processing). Cụ thể như các bài tốn: dịch máy, nhận dạng giọng nói, mơ tả
hình ảnh,... Tuy nhiên, trong quá trình huấn luyện RNN, giải thuật lan truyền
ngược (backpropagation) có sự thay đổi một chút. Việc tính tốn đạo hàm tại
mỗi đầu ra phụ thuộc các bước trước đó nữa. Nếu bước phụ thuộc càng xa thì
sẽ xuất hiện vấn đề hao hụt hoặc bùng nổ đạo hàm. Do vậy, một số mạng RNN
mở rộng đã được đề xuất để giải quyết vấn đề này.
2.2.2
Mạng nơ-ron hồi quy mở rộng LSTM
Mạng LSTM (Long Short Term Memory) là một dạng mở rộng của RNN, có
khả năng học được các phụ thuộc xa. LSTM được giới thiệu đầu tiên vào năm
1997 [12] và dần phổ biến đến hiện nay. Kiến trúc LSTM như hình dưới đây:
Hình 2.6: Kiến trúc LSTM 3
Sự khác biệt của LSTM là trạng thái tế bào (cell state) cùng các cổng giúp
LSTM lọc các thông tin không cần thiết và giữ lại các thông tin quan trọng. Các
3 />
Chương 2. Cơ sở lý thuyết
10
thông tin muốn được tiếp nhận phải đi qua các cổng lọc này, nếu không quan
trọng mơ hình sẽ tự loại bỏ để chừa khơng gian lại cho các thông tin quan
trọng khác. Điều này giúp LSTM có khả năng nhớ những thơng tin đã xuất
hiện từ rất lâu trong quá khứ. Chi tiết các cổng bên trong LSTM như sau:
• Cổng quên: Cổng này quyết định xem thông tin nào trong bộ nhớ hiện
tại được giữ và thông tin nào bị bỏ lại. Thông tin đầu vào được cho vào
hàm sigmoid. Đầu ra của hàm này đóng vai trị là mặt nạ để lọc thông tin
từ trạng thái tế bào, vùng chiếu của hàm này chỉ là (0–1) thay vì (-1 - 1)
như hàm tanh. Phần thông tin nào không quan trọng sẽ được chiếu về 0
• Cổng vào: Cổng này dùng để cập nhật bộ nhớ với các thơng tin mới. Ở
đây có xuất hiện 2 hàm sigmoid và hàm tanh. Các cổng sigmoid và tanh
cũng có tác dụng như ở cổng quên. Đầu ra của hàm sigmoid sẽ có tác
dụng lọc thơng tin đã qua xử lý từ đầu ra hàm tanh.
• Cổng ra: Cổng này quyết định đầu ra của từ hiện tại, được lấy thông tin
từ 2 nguồn: trạng thái tế bào và đầu vào hiện tại. Trạng thái tế bào sau
khi chỉnh sửa sẽ đi qua hàm tanh và đầu vào hiện tại thì được đi qua hàm
sigmoid. Từ đây ta kết hợp 2 kết quả trên để có được kết quả đầu ra. Chú
ý rằng cả kết quả đầu ra và cả trạng thái tế bào đều được đưa vào bước
tiếp theo.
Trạng thái của tế bào có thể hiểu như là bộ nhớ của LSTM, muốn được cập
nhật vào bộ nhớ này, các thông tin phải đi qua các cổng. Hay các thông tin
được đưa vào bộ nhớ có chọn lọc. Nhờ đó, LSTM có thể nhớ được các thơng
tin có ý nghĩa từ thời điểm rất lâu trong q khứ. Việc tính tốn trong LSTM
được thể hiện qua các bước sau:
Xét thời điểm t, với đầu vào xt , trạng thái ẩn ht và trạng thái tế bào Ct−1 .
Bước đầu tiên của LSTM là quyết định xem thông tin nào cần bỏ đi từ trạng
thái tế bào. Tầng cổng quên (forget gate layer) sẽ quyết định việc này.
f t = σ (W f · [ h t − 1 , x t ] + b f )
(2.3)
Chương 2. Cơ sở lý thuyết
11
Tầng này lấy đầu vào là ht−1 và xt rồi đưa ra kết qua là một số trong khoảng
[0, 1] cho mỗi số trong trạng thái tế bài Ct−1 . Đầu ra 1 thì sẽ giữ lại tồn bộ
thơng tin cịn lại, cịn 0 thì tồn bộ thơng tin sẽ bị bỏ đi.
Tiếp đó, LSTM quyết định thông tin mới nào sẽ được lưu vào trạng thái tế
bào. Đầu tiên, sử dụng một tầng sigmoid được gọi là tầng cổng vào (input gate
layer) để quyết định ta sẽ cập nhật giá trị nào.
it = σ (Wi · [ht−1 , xt ] + bi )
(2.4)
Tiếp đó là tầng tanh tạo ra một vector giá trị mới Cˆ t nhằm thêm vào trạng thái.
Cˆ t = tanh(WC · [ht−1 , xt ] + bC )
(2.5)
Giờ là lúc cập nhật trạng thái cũ Ct−1 thành trạng thái mới Ct .
Ct = f t ∗ Ct−1 + it ∗ Cˆ t
(2.6)
Ta sẽ nhân trạng thái cũ với f t để bỏ đi thơng tin sẽ qn. Sau đó cộng thêm
it ∗ Cˆ t để có trạng thái mới. Cuối cùng, ta cần quyết định xem đầu ra ht là gì.
ot = σ(Wo [ht−1 , xt ] + bo )
(2.7)
ht = ot ∗ tanh(Ct )
(2.8)
Trạng thái tế bào mới Ct được đưa vào hàm tanh để đưa giá trị về khoảng
[−1, 1].
2.3
Cơ chế chú ý
Cơ chế chú ý (attention) lần đầu được nhắc đến trong một nghiên cứu về
dịch máy bởi Dzmitry Bahdanau, KyungHyun Cho và Yoshua Bengio (2015) [3]
và được rất nhiều sự quan tâm từ cộng đồng học máy và học sâu. Có thể hiểu
Chương 2. Cơ sở lý thuyết
12
cơ chế chú ý là việc tính tổng trung bình trọng số của những thứ mà chúng ta
nghĩ là cần thiết cho bài toán, những trọng số này do chính mơ hình học được.
Có hai loại cơ chế chú ý:
• Cơ chế chú ý cứng (hard attention): sử dụng học tăng cường (reinforcement learning) để học vị trí cần chú ý;
• Cơ chế chú ý mềm (soft attention): dùng mạng nơ-ron với cơ chế lan
truyền ngược (backpropagation) để học các trọng số.
Cơ chế chú ý cứng sẽ lựa chọn ngẫu nhiên vị trí cần phải chú ý. Vì vậy
mơ hình sẽ khơng có nhãn để tính đạo hàm, cho nên để giải quyết vấn đề này
cần phải dùng học tăng cường. Do chỉ chọn một vùng để chú ý nên giảm tài
nguyên máy tính để xử lý. Tuy nhiên, cơ chế này ít được sử dụng vì khó hội tụ
mà kết quả cũng khơng tốt hơn so với chú ý mềm [19]. Với cơ chế chú ý mềm,
mơ hình sẽ học trọng số để chú ý trên tất cả các phần thông tin của đối tượng
mà mơ hình nghĩ là cần thiết để đưa ra dự đốn. Vì dễ tối ưu và khơng phức
tạp để cài đặt nên chú ý mềm được cộng đồng tập trung phát triển rất nhiều,
tạo nên nhiều phiên bản cải tiến khác nhau. Một số phiên bản như: Learn to
align [3], Global and Local Attention [19], Self Attention [25].Phần tiếp theo sẽ
trình bày ý tưởng cơ bản của cơ chế chú ý mềm.
2.3.1
Cơ chế chú ý mềm
Cơ chế chú ý mềm (từ đây, khi đề cập đến cơ chế chú ý nghĩa là đồ án đang
đề cập đến cơ chế chú ý mềm) xuất phát từ hạn chế của bài toán dịch máy [13].
Bài toán dịch máy là bài toán giúp dịch một câu từ ngôn ngữ nguồn sang ngôn
ngữ đích mong muốn. Mơ hình Seq2Seq [20] thường được sử dụng trong bài
tốn dịch máy. Mơ hình này có hai phần chính, bao gồm:
• Bộ mã hố: xử lý câu đầu vào và nén thông tin vào trong một vector ngữ
cảnh có chiều dài cố định. Vector ngữ cảnh này được kì vọng mang đầy
đủ thơng tin của tồn bộ câu đầu vào;
Chương 2. Cơ sở lý thuyết
13
• Bộ giải mã: sử dụng vector ngữ cảnh trên để dự đoán câu đầu ra ở ngơn
ngữ đích.
Bộ mã hố và bộ giải mã đều là hai mạng hồi quy, ví dụ LSTM hoặc GRU.
Q trình mã hố cơ bản là từng từ của câu đầu vào lần lượt được đưa vào bộ
mã hoá, sinh ra các trạng thái ẩn mã hoá. Số lượng từ trong câu tương ứng với
số thời điểm mã hoá, cũng chính là số trạng thái ẩn mã hố. Các trạng thái ẩn
này mang thông tin từ đầu câu đến thời điểm sinh ra nó, do đó, trạng thái ẩn
mã hố thời điểm cuối cùng được xem như mang thơng tin của tồn bộ câu
đầu vào. Vector ngữ cảnh chính là trạng thái ẩn mã hoá ở thời điểm cuối cùng.
Từ đây, quá trình giải mã sử dụng vector ngữ cảnh để đưa ra dự đoán.
Nhược điểm trong cách tạo vector ngữ cảnh ở trên là khả năng xử lý với câu
đầu vào dài. Thông tin của câu đầu vào không được lưu trữ đủ trong vector
ngữ cảnh khiến cho kết quả dịch khơng chính xác. Cơ chế chú ý được sinh ra
để giải quyết vấn đề này.
Cơ chế chú ý giúp giải quyết được câu đầu vào dài trong bài tốn dịch máy.
Thay vì mơ hình chỉ xây dựng một vector ngữ cảnh duy nhất thì cơ chế chú ý
sẽ giúp mơ hình xây dựng vector ngữ cảnh theo từng thời điểm giải mã.
Hình 2.7: Cơ chế chú ý