Các nghiên cứu trước đây sử dụng 2 bộ dữ liệu là VNOnDB [1] và UIT-HWDB [2], chúng là dữ liệu cho bài toán nhận diện chữ viết tay online dữ liệu được ghi nhận trong thờigian thực bằng cá
Trang 1ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH
ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
KHOA KHOA HỌC MÁY TÍNH
NGUYEN THÀNH ĐẠT - 20520154
HÀN PHI TRƯỜNG - 20522081
KHÓA LUẬN TỐT NGHIỆP
ĐÁNH GIÁ MỘT SỐ PHƯƠNG PHÁP NHẬN DẠNG VĂN BẢN TRÊN
TẬP DỮ LIỆU CHỮ VIẾT TAY TIẾNG VIỆT CẤP ĐỘ TỪ
EVALUATE SOME METHODS FOR TEXT RECOGNITION ON
HANDWRITTEN VIETNAMESE TEXT AT WORD LEVEL
CỬ NHÂN NGANH KHOA HOC MAY TÍNH
GIANG VIÊN HƯỚNG DẪN
ThS ĐỖ VĂN TIẾN
TP HỒ CHÍ MINH, 2023
Trang 2DANH SÁCH HỘI ĐỒNG BẢO VỆ KHÓA LUẬN
Hội đồng chấm khóa luận tốt nghiệp, thành lập theo quyết định số
154/QD-DHCNTT ngày 01/03/2023 của Hiệu trưởng Trường Đại
học Công nghệ Thông tin.
1 đ sp - Chủ tịch.
2 Z P: GP: <6 - Thư ký.
3 ÁP HP, - Uỷ viên.
Trang 3LỜI CẢM ƠN
Lời đầu tiên, nhóm chúng em xin chân thành cảm ơn thầy Đỗ VănTiến, thầy đã tận tâm hướng dẫn nhóm chúng em trong suốt quá
trình thực hiện khoá luận Không chỉ giúp nhóm em vượt qua khó
khăn gặp phải khi thực hiện khoá luận, khi làm việc với thầy, nhóm
em còn được học những kiến thức, kỹ năng quan trọng giúp ích cho
công việc của mình sau này.
Nhóm em cũng xin gửi lời cảm ơn đến các bạn, các anh chị thuộc
CLB AI Club - Trường ĐH Công nghệ Thông tin - ĐHQG TP.HCM
đã hỗ trợ nhóm em trong việc xây dựng và hoàn thiện tập dữ liệu.
Cuối cùng, nhóm chúng em xin gửi lời cảm ơn đến tất các cả thầy, cô
là giảng viên của trường nói chung và khoa Khoa học máy tính nói
riêng đã giảng dạy, chỉ bảo tận tâm trong suốt thời gian mà bọn em
học tập và rèn luyện tại trường Đại học Công nghệ Thông tin.
TP Hồ Chí Minh, tháng 12 năm 2023
Sinh viên thực hiện
Trang 4TÓM TẮT KHÓA LUẬN
Nhận dạng chữ viết tay là một bài toán được nhiều sự quan tâm của
cộng đồng thị giác máy tính do tính ứng dụng cao như là số hóa cáctài liệu Bài toán được mô tả với đầu vào là ảnh từ viết tay cần nhậndạng và đầu ra là nội dung của văn bản trong ảnh Bài toán phải đốimặt với nhiều thách thức như là chữ viết xấu, viết ẩu, viết tắt và sự
đa dạng về phong cách viết của mỗi cá nhân, đặc biệt là với tiếng
Việt bởi tiếng Việt có 5 thanh dấu (ˆ ` ? ~ ) và các ký tự mà tiếng
Việt hiện nay còn hạn chế do thiếu dữ liệu phục vụ nghiên cứu, đặcbiệt là dữ liệu từ thực tế Các nghiên cứu trước đây sử dụng 2 bộ dữ
liệu là VNOnDB [1] và UIT-HWDB [2], chúng là dữ liệu cho bài
toán nhận diện chữ viết tay online (dữ liệu được ghi nhận trong thờigian thực bằng các thiết bị cảm ứng như là bút và bảng điện tử) và dữliệu tổng hợp, không phải là dữ liệu ảnh chụp chữ viết tay trong thực
tế Các nghiên cứu của Baek và cộng sự [3], Yang và cộng sự [4],Bautista va Atienza [5] hay Singh và cộng sự [6] cho thấy sử dụng
dữ liệu thực tế cho kết qua tốt hơn dữ liệu tổng hợp Chính vì vay
trong phạm vi khóa luận lần này, nhóm sẽ xây dựng một tập dữ liệu
chữ viết tay thực tế cho tiếng Việt từ dữ liệu học bạ của sinh viên vàcác cuộc thi bao gồm BKAI-OCR [7] và Cinnamon [8] để phục vụ
nghiên cứu Bộ dữ liệu nhóm xây dựng có các đặc điểm sau: đa dạng
với 190.685 ảnh, nhiều hơn gần gấp đôi so với 2 bộ dữ liệu hiện có
Trang 5là VNOnDB [1] (110.746 ảnh) và UIT-HWDB [2] (110.745 ảnh), va
chứa các tính chất của chữ viết tay trong thực tế mà 2 bộ này không
có như là nhiễu nền từ bề mặt viết, màu sắc đa dạng từ màu mực, ảnhhưởng của môi trường và thiết bị chụp khiến ảnh bị mờ
Sau đó nhóm thực nghiệm và đánh giá các phương pháp nhận dạng
tiên tiến hiện nay ViTSTR [9], ABINet[10], PARSeq [5], CLIP4STR[11], SVTR-CPPD [12]-[13], và 2 phương pháp có kết quả nhận dạngtốt nhất trên 2 bộ dữ liệu trước đây là ResNet34_2-Transformer [14]
và TransformerOCR [15] trên tập dữ liệu xây dựng được để tìm ra
hướng tiếp cận cũng như phương pháp tốt nhất cho bài toán nhậndạng chữ viết tay tiếng việt Từ kết quả thực nghiệm cho thấy sửdụng dữ liệu thực tế sẽ tốt hơn so với dữ liệu tổng hợp, và hướng tiếp
cận sử dụng mô hình ngôn ngữ cùng với cơ chế sửa nhãn dự đoán
giúp các mô hình nhận dạng tốt hơn cho bài toán này
Sau cùng chúng tôi xây dựng một ứng dụng minh họa cho khóa luận
của nhóm.
Tổng kết lại, khóa luận này có 2 đóng góp chính sau:
» Đã xây dựng một bộ dữ liệu chữ viết tay tiếng Việt thực tế phục
vụ cho việc nghiên cứu bài toán.
» Xác định được hướng tiếp cận kết hợp sử dụng mô hình ngôn
ngữ và cơ chế sửa nhãn dự đoán cho kết quả nhận dạng tốt hơncác phương pháp khác Đây là tiền dé tốt cho các nghiên cứu
Trang 6Mục lục
Mục lục v
Danh sach hinh ve ix
Danh sách bang xiv
Danh mục từ viết tat xvi
2 CƠ SỞ LÝ THUYET VÀ CÁC NGHIÊN CỨU LIEN QUAN 8
2.1 Định nghĩa về văn bản trongảnh 8
22 Cơsởlýthuyết 2.2 ee 10
2.2.1 Mạng nơ-ron tích chập(CNN) 10 2.22 Mô hình Sequence-to-sequence 11
2.2.3 Cơchế Atention 16
Trang 72.25 Mô hình Vision Transformer 27
2.2.5.1 Chia ảnh thành các phần nhỏ va duỗi thắng 27
2.2.5.2 Nhung vị trí- Positon Embedding 29 2.2.5.3 Transformer Encoder 30 2.2.6 Constrative Language-image Pre-training (CLIP) 31
Các nghiên cứu liên quan 33
2.3.1 Các hướng tiếp cận trong bài toán nhận dạng chữ viếttay 33
2.3.1.1 Hướng tiếp cận dựa trên CTC 33
2.3.1.2 Hướng tiếp cận dựa trên Attention Seq2Seq 342.3.2 Các bộ dữ liệu chữ viết tay tiếng Việ 36
23.21 VNOnDBdatase 36 2.3.2.2 UITHWDB 37
3 MỘT SỐ PHƯƠNG PHÁP NHẬN DẠNG VĂN BẢN ÁP DỤNG
CHO CHỮ VIET TAY TIENG VIỆT 39
3.1 TransformerOCR Ặ.Ặ.Ặ 202000004 39
3.1.1 CNN 2.2 Q2 41 3.1.2 Transformer 2 000, 41 3.2 ResNet34 2-lransfOrmer 41
3.2.1 Embeddng 42
3.2.2 Transformer Encoder, Decoder và cơ chế attention 43
3.3 MOhinhViTSTR Ặ.Ặ Ặ Q eee eee 43
3.4 Mo6hinhABINet 2 2 2.2.0.0 00005 45
3.4.1 Tong quan về kiến tric ABINet 47
VI
Trang 8MỤC LỤC
3.4.2 MôhìnhABINet 48
3.4.2.1 VisionModel 48
3.4.2.2 LanguageModel 50
3.5 M@6hinh PARSeq 00000 eee 53 3.5.1 Những han chế của các phương pháp trước d6 53
3.5.2 M6 hình Permuted Autoregressive Sequence 53
3.5.2.1 Permutation Language Modeling (PLM) 54
3.5.2.2 Kiếntrúcmôhình 56
3.5.2.3 Cachthttc decoding 59
3.6 MôhìnhCLIP4STR 60
3.6.1 Sơbộvềmodel 61
3.6.2 Encoder 20.0.0 000, 62 3.6.3 Decoder 00 00002 ee ee 62 3.6.3.1 Decodingscheme 64
3.7 M@6hinhSVTR-CPPD 65
3.7.1 MôhìnhhSVTR 65
3.7.1.1 Tong quan vékiéntric 65
3.7.1.2 M6hinhSVTR 66
3.7.2 BoégiaimaCPPD 70
3.7.2.1 TổngquanCPPD 71
3.7.2.2 BOgiaimaCPPD 72
3.7.2.3 Ham mất mát cho huấn luyện 74
4_ THỰC NGHIỆM VÀ ĐÁNH GIÁ 75 4.1 Xây dựng tậpdữ liệu 75
4.1.1 Nguồn dữliệu 76
412 Gánnhãn dữ liệu 78
4.2 Các độ đo sử dụng để đánhgiá 81
vii
Trang 9MỤC LỤC
4.2.1 WERvàCER Ặ.ẶẶẶ 81
4.3 Kếtquả và đánhgiá 82
4.4 Xây dựng ứng dụng mnhhọa 9]
44.1 Kiếntrúchệthống 91
442 Xaydung API 91
44.3 Ungdungweb 0.00000000 93 444 Đánh giáứngdụng 94
5 KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 96
5.1 Kếtluận ee 96
5.2 Hướng phát triỂT <<: ag ee, 97
Tài liệu tham khảo 98
Viil
Trang 10Đầu vào và dau ra của bài toán nhận dang chữ viết tay tiếng Việt
Một số thách thức của chữ viết tay nói chung và chữ viết tay
tiếng Việt nóiriêng
Một số ảnh trong bộ dữ liệu VNOnDB (a) và UIT-HWDB (b)
Sự khác nhau giữa dữ liệu từ bộ VNOnDB (a), UIT-HWDB (b)
và dữ liệu từ thực tế(C)
Hình minh họa văn bản cảnh (a) và văn bản đồ họa (b) Văn bảncảnh Ảnh được lấy từ Internet
Một mạng học sâu sử dung CNN (ảnh được lấy từ Viblo Asia!)
để rút trích đặc trưng thị giác (thông thường đã được huấn luyện)
Ý tưởng chung của một mô hình dịch máy bao gồm hai bước nốitiếp nhau là bộ mã hóa - bộ giải mã (Encoder-Decoder) Nguồn:
Multimodal Deep Learnng7
Vi dụ về quá trình dich một câu tiếng Anh sang tiếng Pháp (ảnhđược lấy từ Viblo Asia?) sử dụng mô hình Seq2Seq Một ví dụ sử dụng Greedy Search để chọn kết quả cho đầu ra,lưu ý rằng khi sử dụng Greedy search thì khi giải mã ta không
thể hoàn tác hành động giải mã .
1X
11
Trang 11DANH SÁCH HÌNH VẼ
2.6
2.7
2.8
2.9
2.10
2.11
2.12
2.13
2.14
2.15
2.16
2.17
2.18
2.19
2.20
2.21
2.22
Ý tưởng của Beam Search khi chọn K xác suất lớn nhất của một
softmax tại một bước thời gian, chỉ xem K sự lựa chon cho một bước thời gian (Tham khảo từ Viblo Asia*) .000.% 16
Cơ chế attention trong mô hình Seq2Seq (ảnh được tham khảo
từ Khoa học dữ liệu - Khanh’s blog”) x" 17 Trực quan các trọng số Attention trên một cặp câu nguén-dich
được dịch từ mô hình Seq2Seq có kết hợp kỹ thuật Attention
(Ảnh từ bài báo gốc của Attention [16]) - 19
Mô hình RNN (ảnh được tham khảo từ Viblo Asia”) 20
Kiến trúc của mô hình Transformer[17] 21
Input Embedding (ảnh tham khảo từ Viblo Asia®) 22
Positional Encoding (Ảnh được lấy từ Viblo Asia5) 23
Minh họa self-attention (Ảnh lấy từ Viblo AsiaĐ) 23
Ví dụ quá trình tính toán vector attention (ảnh được lấy từ Viblo Asia’) A se @ / _._ 25
Quá trình multi-head attention (nguồn ảnh từ bài báo gốc [17]) 26 Attention vs masked attention (ảnh từ Viblo Asia”) 27
Quá trình hoạt động của Vision Transformer (Ảnh tham khảo từ bài báo g6c [18]) 2 TQ s 28 Sự tương đồng giữa các gói khi cùng hàng hoặc cột (ảnh trong bài báo gốc của VïiT[I8]) 29
Khối encoder của ViT (ảnh trong bài báo gốc của ViT [18]) 30
Kiến trúc của CLIP trong việc kết nối text-image (ảnh trong [19]) 32 Attention có thể được áp dụng vô khối Encoder hoặc Encoder hoặc cả hai trong kiến trúc Seq2Seq - 35
Khác nhau về phong cách viết với cùng một từ Ảnh được cắt
trong bài báo [l] L SẺ eee 37
Trang 12các patch, mỗi patch sẽ được chuyển đổi thành vector embedding
1D (các patch 2D được làm phẳng) 45
a) Mô hình ngôn ngữ phụ thuộc vào mô hình thị giác b) và c)
Cải thiện của tác giả: Tách biệt mô hình ngôn ngữ và áp dụng đặc
trưng hai chiều d) Mô hình tự hồi quy e) Ap dụng Transformer
theo cả 2 hướng Anh được lấy từ [I0] - 46Kiến trúc tổng quan của ABINet[10] 48Kiến trúc tổng quan của Vision Model trong ABINet [10] 49Kiến trúc tổng quan của Language Model (BCN) trong ABINet
[10] AI xi“ 6 ww wee 51
Khác nhau giữa (a) ABINet va (b) PARSeq Với ABINet, mô
hình ngôn ngữ (LM) tách rời với mô hình thi giác (VM) Mô
hình LM trong PARSeq sẽ kết hợp với VM Nguồn từ bài báo
của PARSeq [5] Ặ Q2 54
AR attention masks cho từng hoán vi Với [B] và [E] là token
biéu diễn khởi đầu va kết thúc từng chuỗi 56Kiến trúc tổng quan và cách huấn luyện của mô hình PARSeq [5] 57Khối decoder của PARSeq - được đặt tên là Visio-lingual de-
coder Mỗi lớp của khối sẽ có điểm khác biệt là có đến 2 lớpattention Nguồn ảnh từ [5] 57
Masked MHA cho chuỗi y = [y1, 2,3] với hoán vi là [1, 3,2].
Đây là một ví dụ được sử dụng trong PARSeq [5] 59
XI
Trang 13Minh họa cho các biểu diễn ba chiến lược masking của mô hình
AR, NAR và cloze Cả ba chiến lược này đều có thể được học
thông qua một trong các tổ hợp liệt kê từ 3.15 Ảnh được cắt từ
Kiến trúc CLIP4STR [11] Gồm một nhánh visual và một nhánh
modal Dự đoán từ nhánh visual được tinh chỉnh bởi
cross-modal cho đầu ra cuối cùng Encoder của văn bản bị đóng băngmột phần ẶẶKhối decoder của CLIP4STR [1 1] [B], [E], [P] lần lượt là tokenbắt đầu, kết thúc và padding
(a) Autoregressive, (b) Cloze mask, (c) Random mask Cac bảng
Kiến trúc tổng quan của SVTR [12]
(a) phép chiếu tuyến tính trong ViT, (b) mô dun Patch
Embed-ding của SVTR Ảnh được lấy từ [12]
(a) phép chiều tuyến tính trong ViT, (b) mô dun Patch ding của SVTR Ảnh được lấy từ[l2]
Embed-Chỉ một thay đổi nhỏ về kích thước các nét đã dẫn đến ý nghĩacủa từ thay đổi (ảnh trong Viblo Asia”)
Tổng quan về CPPD [13] Bên phải minh họa mô đun
Charac-ter Counting (CC) và mô dun CharacCharac-ter Ordering (CO) Đường
mau đỏ biểu thị cho CC hoặc CO, tùy vào mô dun nao được sử
Một số ảnh trong bộ dữ liệu chữ viết tay thực tế cho tiếng Việt
mà chúng tôi xây dựng được
Quá trình xây dựng tập dữ liệu chữ viết tay tiếng Việt thực tế
Một số ảnh được gán nhãn lại trong dữ liệu từ BKAI-OCR
Trang 14Giao diện của tool gan nhãn dữ liệu PPOCRLabel 80
Minh họa một số mẫu dữ liệu trong file chứa các nhãn 81
Anh minh hoa 3 nhóm lỗi Nguồn: Towards Data Science! 82
Một số kết qua dự đoán của các mô hình sau khi đã huấn luyện 87Một số kết quả dự đoán của các mô hình, ở đó các tất cả các mô
hình đều dự đoán sai - 88Cách tính kết quả các độ đo khi không xét dấu 89Một số kết quả nhận dạng của mô hình CLIP4STR, ở đó tuy mô
hình đã nhận dạng đúng các ký tự nguyên âm nhưng lại sai các
biến thể và thanh dấu 90Kiến trúc hệ thống ứng dụng minhhọa 91
Giao diện ứng dụng minhhoa 94
xiil
Trang 15Danh sách bảng
2.1
2.2
2.3 3.1
3.2 3.3
3.4
4.1
4.2
4.3
Ba phiên banctaViT 2 0.20.00 0 00 ee eee
Số lượng mau dữ liệu, số lượng từ vựng của bộ VNOnDB sau
khi được chuyển về dữ liệu offline
Số lượng mẫu dữ liệu, số lượng từ vựng của bộ UIT-HWDB
Tổng hợp các kết quả từ các nghiên cứu trước đó ([14] và [2])
trên hai bộ dữ liệu VNOnDB và UIT-HWDB .
Ba phiên bản của VITSTR
Tác động của Patch Embedding đến hiệu quả của mô hình, gồm
3 phiên bản Ặ.
Tác động của ham loss đến kết quả nhận dạng
Tỉ lệ số ảnh chứa số trước khi gán thêm dữ liệu từ học bạ, xéttrên dữ liệu huấn luyện -
Tỉ lệ số ảnh chứa số sau khi gán thêm dữ liệu, xét trên dữ liệu
huấn luyện .
Bảng thống kê về số lượng ảnh, số nhãn đã gán trong tập dữliệu đã xây dựng (*) Cinamon là dữ liệu dạng dòng cần phải cắtthành từng từ, (**) BKAI-OCR có nhiều nhãn sai nên chúng tôi
cần gán nhãn lại
XIV
Trang 16Bảng kết quả nhận dang (196 ki tự) của các phương pháp trên
tập dữ liệu VNOnDB [1], UIT-HWDB [2] và trên tập dữ liệu
chúng tôi xây dựng Ặ.ẶẶ eee 86
Bảng kết quả nhận dạng (224 kí tự) của các phương pháp khi
không xét dấu tiếng Việt với dữ liệu huấn luyện là dữ liệu thực tế 90
XV
Trang 17CNN(s) Convolutional Neural Networks
RNN Recurrent Neural Network LSTM Long Short Term Memory
XVI
Trang 18Chương 1
TỔNG QUAN
1.1 Đặt van đề
Nhận dạng chữ viết tay là một bài toán nhận được rất nhiều sự quan tâm của
cộng đồng thị giác máy tính từ trước đến nay bởi vì tính hữu dụng của nó với cácứng dụng có thể được kể tới như đọc văn bản viết tay từ hóa đơn, từ các cuốn
ghi chép, giấy khai sinh và chuyển chúng thành dữ liệu số để lưu trữ, xử lý
và tìm kiếm dễ dàng hơn, gọi chung là số hóa thông tin Bài toán nhận dạng chữ
viết tay được phát biểu như sau: "Với đầu vào là ảnh kí tự hoặc từ viết tay cần
nhận dạng và đầu ra là nội dung văn bản trong ảnh" (xem hình 1.1)
* Đầu vào (input): Ảnh chứa vùng văn bản cần nhận dạng.
¢ Đầu ra (output): Nội dung văn bản trong ảnh (dang text)
Đây thực sự là một bài toán với nhiều thách thức do có rất nhiều phong cáchviết, màu sắc chữ, viết nhanh làm mất chữ hoặc viết tắt, viết nguệch ngoạc,
làm cho việc nhận dạng cực kỳ khó khăn (xem hình 1.2).
Nhận dạng chữ viết tay được nghiên cứu nhiều, tuy nhiên chủ yếu là trêntiếng Anh, trong khi đó tiếng Việt vẫn còn khá hạn chế Ngoài việc ít được quantâm nghiên cứu thì chữ viết tay tiếng Việt lại phức tạp hơn tiếng Anh khi số ký
Trang 191 Tổng quan
PF ỳ Sách
Dau vào Dầu ra
Hình 1.1: Đầu vào và đầu ra của bài toán nhận dạng chữ viết tay tiếng Việt
BY ry woe Phony Lig Ga hố,
(e) Da dang phong cach viét (f) Chữ xiên, veo
Hình 1.2: Một số thách thức của chữ viết tay nói chung và chữ viết tay tiếng Việt nói
riêng
tự của tiếng Việt nhiều hơn han tiếng Anh, trong khi tiếng Anh chi gồm 96 ký
tự (bao gồm ký tự chữ viết hoa, viết thường, số và ký tự dấu câu) thì với tiếngViệt đã có tới 224 ký tự (bao gồm ký tự chữ viết hoa, viết thường, số, ký tự dấucâu) - nhiều gấp hơn hai lần so với Tiếng Anh Số lượng ký tự tiếng Việt nhiềuhơn rất nhiều là bởi tiếng Việt có các dấu thanh bao gồm 5 dấu (’ ` ? ~ ), các
Trang 20khác nhau làm cho ý nghĩa của từ bị sai.
Một lý do nữa làm cho bài toán nhận diện chữ viết tay Tiếng Việt ít đượcquan tâm là do thiếu dữ liệu phục vụ cho việc nghiên cứu Theo khảo sát của
nhóm, đến thời điểm hiện tại dữ liệu cho nhận dạng chữ viết tay tiếng Việt còn
hạn chế khi chỉ có hai bộ dữ liệu là VNOnDB [1] và UIT-HWDB [2] (quan sát
hình 1.3) Trong đó bộ dữ liệu VNOnDB [1] là dữ liệu cho bài toán nhận diện
chữ viết tay online (dif liệu được ghi nhận trong thời gian thực bằng các thiết bị
cảm ứng như là bút và bảng điện tử) và được các nghiên cứu trước đây chuyển
về dang offline (ảnh chụp chứa chữ) và bộ UIT-HWDB [2] là dữ liệu tổng hợpdùng bộ VNOnDB [1] xây dựng nên Do đó 2 bộ dữ liệu này thiếu mất các tínhchất đặc trưng của dữ liệu thực tế như là nhiễu nền, bị mờ do thiết bị và môi
trường chụp ảnh, (xem hình 1.4) Theo như nghiên cứu của Yang và cộng sự
[4], Singh và cộng sự [6] hay trong nghiên cứu của Bautista va Atienza [5] cho
thấy sử dụng dữ liệu thực tế để huấn luyện mô hình giúp cải thiện độ chính xác
Hơn nữa trong nghiên cứu của Baek và cộng sự [3] đã khám phá tác động của
dữ liệu thực tế đến hiệu suất của các mô hình Scene Text Recognition (STR)
Cùng là nhận dạng văn bản tuy nhiên ở bài toán nhận dạng văn bản cảnh
(Scene Text Recognition) lại đạt được khá nhiều thành công khi liên tục có rất
nhiều mô hình, kiến trúc mới được công bồ (ViTSTR [9], ABINet [10], PARSeq
[5], CLIP4STR [11], SVTR-CPPD [12]-[13], ) giúp cải thiện kết quả nhận
Trang 211 Tổng quan
dạng Chúng tôi mong muốn thực nghiệm và đánh giá các phương pháp đó trên
dữ liệu chữ viết tay, từ đó có thể đưa ra nhận định và cải thiện trên dữ liệu chữviết tay
Từ những lý do trên, chúng tôi sẽ xây dựng một bộ dữ liệu chữ viết tay thực
tế mức độ từ cho tiếng Việt Sau đó sẽ đánh giá các phương pháp nhận dạngvăn bản cảnh tiên tiến hiện nay cho bài toán nhận dạng chữ viết tay Tiếng Việt
ở mức độ từ Sau cùng chúng tôi xây dựng một ứng dụng trên nền tảng web để
minh họa cho nghiên cứu của chúng tôi.
give
(a) VNONDB dataset (b) UITATIWDB dataset
Hình 1.3: Một số anh trong bộ dữ liệu VNOnDB (a) và UIT-HWDB (b)
\ ~
mnie
(a) VNOnDB dataset (b) UIT-HWDB dataset (c) Dữ liệu tir thực tế
Hình 1.4: Sự khác nhau giữa dữ liệu từ bộ VNOnDB (a), UIT-HWDB (b) và dữ liệu từ
thực tế (c)
Trang 22thực hiện khóa luận đặt ra những mục tiêu như sau:
« Tìm hiểu tổng quan về bài toán và các hướng tiếp cận tiên tiến hiện nay
với bài toán này.
* Xây dựng một bộ dữ liệu chữ viết tay tiếng Việt thực tế bằng cách thu thập
và gán nhãn dữ liệu Nguồn dữ liệu bao gồm dữ liệu từ tài liệu thực tế làhọc ba sinh viên và dữ liệu được công bố từ các cuộc thi
« Đánh giá một số phương pháp nhận dạng để đánh giá, so sánh, phân tích
ưu và nhược điểm của từng phương pháp, từ đó thấy được sự cải tiến của
từng phương pháp.
« Xây dựng hệ thống minh họa
1.2.2 Phạm vi
Dựa trên những mục đã đề xuất tại nội dung 1.2.1, trong khuôn khổ của khóa
luận, chúng tôi sẽ tập trung hoàn thành các nội dung sau đây:
* Nghiên cứu tổng quan về bài toán, bao gồm tìm hiểu về các thách thức va
cơ sở lý thuyết của một số phương pháp hiện đại: ViTSTR [9], ABINet
[10], PARSeq [5], CLIP4STR [1 1], SVTR-CPPD ([12]-[13]), để tim được
các phương pháp phù hợp cho bài toán này.
* Xây dựng tập dữ liệu chữ viết tay tiếng Việt bằng cách cắt và gan nhãn từ
dữ liệu chúng tôi tự thu thập từ học bạ sinh viên và từ các bộ dữ liệu thực
Trang 231 Tổng quan
té từ các cuộc thi như Cinamon dataset [8] và BKAI-OCR [7]
« Đánh giá và so sánh các phương pháp nhận dạng tiên tiến trên tập dif liệu
chữ viết tay tiếng Việt
* Xây dựng hệ thống minh họa cho dé tài trên nền tang web
1.3 Dong góp của khóa luận
Sau đây là một số đóng góp mà chúng tôi đã đạt được trong quá trình thực
hiện khóa luận:
« Xây dựng được một tài liệu tổng quan về bài toán này cũng như các thách
thức và các cách tiếp cận phổ biến hiện nay giúp giải quyết bài toán, và tàiliệu mô tả lý thuyết, cách hoạt động của một số phương pháp nhận dạngchữ tiên tiến
« Xây dựng được một bộ dữ liệu chữ viết tay tiếng Việt cấp độ từ đa dạng
với 190.685 ảnh, nhiều hơn gần gấp đôi so với 2 bộ dữ liệu hiện có là
VNOnDB [1] (110.746 ảnh) và UIT-HWDB [2] (110.745 ảnh), và chứa
các tính chất của chữ viết tay trong thực tế mà 2 bộ VNOnDB và HWDB không có như là nhiễu nền từ bé mặt viết, màu sắc đa dạng từ màumực, ảnh hưởng của môi trường và thiết bị chụp khiến ảnh bị mờ và phân
UIT-bổ màu sắc không đều Xây dựng được một tài liệu mô tả thông tin thu
được khi phân tích bộ dữ liệu và cách thức để đánh giá trên bộ dữ liệu này.
« Tổng kết các kết quả thu được khi đánh giá các phương pháp nhận diện tiên
tiến được chọn, phân tích ưu nhược điểm của chúng Khi huấn luyện các
mô hình sử dụng dữ liệu thực tế thì độ lỗi nhận dạng trung bình giảm hơnmột nửa so với sử dụng bộ dữ liệu UIT-HWDB [2] và giảm khoảng 3 lần
so với bộ VNOnDB [1] (15-30% và 15-40% giảm xuống còn 5-10%) Từ
Trang 241 Tổng quan
đó rút ra được kết luận rằng đối với bài toán nhận diện chữ viết tay TiếngViệt thì sử dụng dữ liệu thực tế sẽ tốt hơn so với dữ liệu tổng hợp Đồng
thời, 3 phương pháp ABINet[10], PARSeq[5] và CLIP4STR[1 1] có độ lỗi
kí tự trung bình thấp nhất lần lượt là 7.23%, 7.06% và 6.93% Qua đó có
thể thấy hướng tiếp cận kết hợp sử dụng mô hình ngôn ngữ và cơ chế sửanhãn dự đoán giúp các mô hình nhận dạng tốt hơn, chính xác hơn Điềunày sẽ giúp ích cho việc xây dựng và cải tiền các phương pháp cho bài toánnhận diện chữ viết tay tiếng Việt
» Tổng kết các kết quả thành một bài báo khoa học (được đính kèm ở sau
cuốn khóa luận)
« Xây dựng hệ thống minh hoa cho đề tài.
1.4 Cấu trúc khóa luận
Chương 1: Giới thiệu tổng quan về bài toán nhận dang chữ viết tay tiếng
Chương 4: Trình bày cách xây dựng bộ dữ liệu, phân tích dữ liệu, cách thức
đánh giá và so sánh kết quả của các mô hình trên bộ dữ liệu đã xây dựng
Chương 5: Trình bày về cách xây dựng ứng dụng minh họa
Chương 6: Kết luận về khóa luận tốt nghiệp và hướng phát triển trong tương
lai.
Trang 25Chương 2
CƠ SỞ LÝ THUYÊT VÀ CÁC
NGHIÊN CỨU LIÊN QUAN
Trước khi đi vào nội dung chính của khóa luận, chúng tôi xin được trình bày
các khái niệm, cơ sở lý thuyết của bài toán nhận dạng văn bản và một số hướngtiếp cận phổ biến hiện nay
2.1 Định nghĩa về van bản trong ảnh
Văn bản trong ảnh là văn bản được viết hoặc xuất hiện trong hình ảnh, video.
Trong thực tế, văn bản trong ảnh có thể xuất hiện theo nhiều hình thức khácnhau Chẳng hạn dựa trên nguồn gốc của văn bản, chúng ta có thể chia văn bảntrong ảnh thành văn bản đồ họa (graphic text) và văn bản cảnh (scene text) giống
như trong [20] - xem hình minh họa 2.1 Trong đó có thể thấy văn bản cảnh đa dạng và khó hơn rất nhiều so với dạng văn bản đồ họa Từ quan sát và theo như
ảnh 2.1 thì văn bản đồ họa là văn bản được thêm vào ảnh, video - tức là ảnh,video có trước và văn bản sau đó được thêm vào với mục đích để làm phụ đề,tiêu đề Còn văn bản cảnh là văn bản trên vật thể trong môi trường tự nhiên,sau đó ta chụp vật thể chứa văn bản ấy lại - văn bản có trước và ảnh có sau, hay
Trang 262 Cơ sở lý thuyết và các nghiên cứu liên quan
văn bản xuất hiện trong lúc chụp ảnh
1 Van bản cảnh 2 Văn bản đồ họa
Hình 2.1: Hình minh họa văn bản cảnh (a) và văn bản đồ họa (b) Văn bản cảnh Ảnh được lấy từ Internet.
Ngoài cách phân loại này ta còn có một cách phân loại khác là dựa trên cách
thức tạo ra văn bản, ta có thể chia thành văn ban in và văn bản viết tay [21]:
¢ Hình ảnh chụp từ văn bản được in bang máy in, loại văn ban này thường dễ
dàng nhận dạng bởi tính rõ ràng ít biến động của chúng - hầu như không
có sự thay đổi về kích thước, kiểu dáng trong cùng một bức ảnh
¢ Hình ảnh chụp từ văn bản viết tay: chữ viết tay là dang văn bản phức tạp bởi
sự chồng chéo giữa các từ, giữa các ký tự với nhau, cùng một chữ nhưngmỗi người lại có một phong cách viết khác nhau dẫn đến sự khác biệt vềđặc trưng trong cách viết giữa từng người, ngoài ra ngay cả khi cùng mộtngười thì mỗi lần viết cũng đã có sự khác biệt
Theo như [22], dựa vào cách thức thu thập thì dữ liệu chữ viết tay còn cóthể chia nhỏ thành 2 dạng là dữ liệu chữ viết tay online và dữ liệu chữ viết tayoffline Trong đó dữ liệu chữ viết tay online được ghi nhận theo thời gian thực
Trang 272 Cơ sở lý thuyết và các nghiên cứu liên quan
bằng các thiết bị cảm ứng như là bút và bảng điện tử Còn dữ liệu chữ viết tayoffline là ảnh chụp chứa chữ viết tay Thông thường khi nhắc đến bài toán nhậndiện chữ viết tay thì ta ngầm hiểu là bài toán nhận diện cho dữ liệu chữ viết tay
offline.
Hơn nữa ta biết rằng mỗi ngôn ngữ lại dựa trên các ký tự khác nhau, trongkhi nhiều nước có bảng chữ cái dựa trên tiếng Latinh như tiếng Anh, tiếng Pháp,tiếng Tây Ban Nha, tiếng Việt Một số nước lại dùng chữ tượng hình như tiếngNhật, tiếng Trung, tiếng Hàn Bởi vì vậy mỗi thứ tiếng lại có số lượng ký tự
khác nhau Trong phạm vi của khóa luận này nhóm tập trung vào văn bản chữ
viết tay tiếng Việt Với tiếng Việt số lượng ký tự lớn hơn rất nhiều so với tiếngAnh, nguyên nhân là tiếng Việt có các dau thanh (“ ` ? ~ ), các dau này kết hợpcùng các ký tự (a, o, e, u, i) va (ă, â, ô, ơ, ê, ư) tạo ra số lượng vô cùng lớn các
ky tự (ví dụ với chữ a đã có 5 biến thể là á à ạ 4)
2.2 Cơ sở lý thuyết
2.2.1 Mạng nơ-ron tích chap (CNN)
CNN là viết tắt của Convolutional Neural Network - mạng nơ-ron tích chập,
là một trong những mô hình học sâu cực kỳ quan trọng và phổ biến trong lĩnh
vực thị giác máy tính, mô hình CNN cho phép chúng ta xây dựng những hệ
thống có độ chính xác cao và thông minh Nhờ khả năng đó, CNN có rất nhiều
ứng dụng, đặc biệt là trong các bài toán phát hiện vật thể (Object Detection),
nhận dạng vật thể trong ảnh.
CNN cũng vô cùng quan trọng để tạo nên những hệ thống nhận diện thông
minh với độ chính xác cao trong thời đại công nghệ ngày nay.
CNN có nhiều phiên bản khác nhau nhưng tiêu biểu nhất là VGG [23] (các
'https://viblo.asia/p/ung-dung-convolutional-neural-network-trong-bai-toa
n-phan-loai-anh-4dbZNg8y1YM
10
Trang 282 Cơ sở lý thuyết và các nghiên cứu liên quan
Convolutions Subsampling Convolutions Subsampling Fully connected
Hình 2.2: Một mang học sâu sử dung CNN (anh được lay từ Viblo Asia!) để rút trích đặc trưng thị giác (thông thường đã được huấn luyện).
phiên bản VGG-16, VGG-19) hay ResNet [24] (ResNet-50, ResNet-101, );
Từ lâu đây đã là một backbone không thể thiếu trong các mô hình liên quan đến
thị giác máy tính, dù vậy cùng với sự phát triển của mô hình Transformer ở bên
lĩnh vực xử lý ngôn ngữ tự nhiên, Transformer dần được nghiên cứu để ứng dụngvào tác vụ thị giác máy tinh và đã thu được những kết quả đáng kể như ViT [18],
DeiT [25] để rút trích đặc trưng anh.
2.2.2 Mô hình Sequence-to-sequence
Mô hình Sequence-to-sequence (Seq2Seq) [26] được giới thiệu trong bài báo
"Sequence to sequence learning with neural networks" bởi các nhà nghiên cứu
đến từ Google năm 2014 Ý tưởng chính của mô hình Seq2Seq sử dụng một bộ
mã hóa (encoder) và bộ giải mã (decoder) nối tiếp nhau, chúng được thiết kế
để dịch một chuỗi các token từ ngôn ngữ nguồn sang một chuỗi token của ngôn
ngữ đích Hình 2.3 minh họa một ví dụ về hai bước mã hóa và giải mã của một
mô hình dịch máy điển hình.
Với một chuỗi các token ở ngôn ngữ gốc x = {x1,x2, ,Xn}, Seq2Seq sẽ
*nttps://slds-1mu github io/seminar_multimodal_d1/c01-00-intro-modalities.
html
11
Trang 292 Cơ sở lý thuyết và các nghiên cứu liên quan
| am a student Decoder Je suis étudianteobSb©o©chủ #+> We hJ UT
Hình 2.3: Ý tưởng chung của một mô hình dịch máy bao gồm hai bước nối tiếp nhau
là bộ mã hóa - bộ giải mã (Encoder-Decoder) Nguồn: Multimodal Deep Learning 7
ánh xạ x sang một chuỗi token ở ngôn ngữ đích y = {y\, ,y„}, độ dài của n
và m có thể khác nhau Mô hình sẽ cố gắng tối đa hóa xác suất có điều kiện
Pp(i, .,Ym|*ì, ,x„) Như vậy Seq2Seq sử dụng kiến trúc Encoder-Decoder,
trong đó mỗi Encoder và Decoder có thể là RNN [27], LSTM [28], BiLSTM,
hoặc GRU [29].
Chúng ta đã thấy được tổng quan kiến trúc của Seq2Seq bây giờ ta sẽ tìmhiểu về từng thành phan là Encoder và Decoder
° Encoder: mô hình Seq2Seq sẽ đưa toàn bộ chuỗi token vào một không gian
vector có chiều cố định Ở mỗi bước mã hóa, đầu vào của Encoder sẽ là
token ở bước hiện tại và vector trạng thái ẩn bước trước đó để tạo ra vector
trạng thái ẩn biểu diễn chuỗi đầu vào ở bước mã hóa hiện tại
* Decoder: Ngược lại với encoder thì bộ giải mã sẽ tạo ra chuỗi token ở ngôn
ngữ đích Bộ giải mã nhận đầu vào là vector trạng thái ẩn (từ encoder), tạimỗi bước thời gian từng kí tự sẽ được tạo ra, quá trình này lặp lại cho đếnkhi gặp kí tự kết thúc (một kí tự đặc biệt có thể quy định trước) hoặc đạtđến độ dài tối đa đã quy định trước Hàm xác suất có điều kiện được tính
3https://viblo.asia/p/luyen-thuyen-ve-chatgpt-obA466G04Kv
12
Trang 302 Cơ sở lý thuyết và các nghiên cứu liên quan
target output words
Source input words target input words
Hình 2.4: Ví dụ về quá trình dịch một câu tiếng Anh sang tiếng Pháp (ảnh được lấy từ
Viblo Asia”) sử dụng mô hình Seq2Sed.
Trang 312 Cơ sở lý thuyết và các nghiên cứu liên quan
trong ngôn ngữ đích Công thức của a có thể được tính:
a(h,) = ƒ(h,—1,k) (2.3)
Hàm ƒ dùng để tính giá trị chung của các mô hình RNN được sử dụng,
hàm này được tính dựa trên trạng thái ẩn ở bước thời gian trước đó h;_¡ và
Bây giờ khi có được đầu ra softmax của trạng thái ẩn, công việc của chúng ta
bây giờ là phải chọn chuỗi sao cho hợp lý vì không phải cứ lay xác suất cao nhất
của softmax tại tất cả các bước thời gian là tốt nhất Xét một mô hình tính toánp(y|x) của câu đích y và câu nguồn x Ta muốn tìm argmax,(y|x) Vì không giantìm kiếm có thể rất lớn, ta phải thu nhỏ kích thước của nó Sau đây sẽ là một số
cách tiép cận:
* Exhaustive search: Đây là ý tưởng đơn giản nhất Ta tính toán xác xuất của
mọi trường hợp có thể xảy ra rồi chọn lấy cái có xác suất cao nhất Tuy
nhiên cách này bat khả thi vì không gian tìm kiếm tăng theo cấp số nhân
của input-size.
* Ancestral sampling: Ta thực hiện tính toán xác suất có điều kiện ở bước
thời gian t chỉ phụ thuộc vào một số bước thời gian ở đằng trước:
y~P(w|yI Yn) (2.5)
14
Trang 322 Cơ sở lý thuyết và các nghiên cứu liên quan
Về mặt lý thuyết, cách này hiệu quả và chính xác về mặt góc nhìn Tuy
nhiên, trên thực tế cách này có hiệu suất thấp và phương sai khá cao.
* Greedy Search: Tại mỗi bước thời gian ta chọn xác suất cao nhất có thé
xảy ra Nói cách khác:
Yr = argmaX,,(Wr|Y1› -›Y¿—1) (2.6)
Cách làm này hiệu quả và tương đối tự nhiên Tuy nhiên nó không thểkhám phá hết tất cả các trường hợp có thể xảy ra trong không gian xác suấtcủa câu và nếu có mắc lỗi tại một bước thời gian thì hậu quả là tương đối
— he hit a (whoops! no going back now )
Hình 2.5: Một ví du sử dung Greedy Search để chọn kết quả cho đầu ra, lưu ý rằng khi
sử dụng Greedy search thì khi giải mã ta không thể hoàn tác hành động giải mã.
* Beam Search: Đây là lựa chọn phổ biến và hiệu quả nhất cho đến thời điểm
hiện tại Ý tưởng của Beam Search là sẽ chọn lấy K xác suất lớn nhất của
một softmax trong một bước thời gian và chỉ xem K sự lựa chọn cho một
bước thời gian, cụ thể được giải thích trong hình 2.6
Về cơ bản, thay vì ở mỗi bước giải mã chỉ lấy token có xác suất cao nhất,thuật toán Beam Search sẽ giữ lại k token có xác suất xuất hiện cao nhất(với k là beam width) Sau khi kết thúc việc giải mã (khi gặp kí tự kết thúc
< EOS > hoặc câu sinh ra đạt độ dài quy định), thuật toán Beam Search sẽ
‘nttps://viblo.asia/p/tong-quan-ve-neural-machine-translation-E375zrMd5GW
15
Trang 332 Cơ sở lý thuyết và các nghiên cứu liên quan
Beam size = k = 2 Blue numbers = score(y Mr} c3 log FLwÍMi lin, Went, 2)
Hình 2.6: Ý tưởng của Beam Search khi chọn K xác suất lớn nhất của một softmax
tại một bước thời gian, chỉ xem K sự lựa chọn cho một bước thời gian (Tham khảo từ
Viblo Asia‘).
chọn ra câu có xác suất p(y1,2,- ,9 < EOS > |xị,xa, ,x„) Với ý tưởngnày, thuật toán Beam Search có thể tạo ra câu có kết quả tốt hơn GreedySearch trong những trường hợp những từ đầu tiên của câu bị dự đoán khôngchính xác Beam search không đảm bảo tìm được trường hợp tối ưu, nhưng
hiệu quả hơn khá nhiều so với Greedy Search và Exhaustive Search.
2.2.3 Cơ chế Attention
Việc mã hóa toàn bộ thông tin từ văn bản nguồn vào một vector có định khiếnviệc biến đổi trên các thông tin khi thực hiện trên các câu dài không thực sự tốt,mặc dù sử dụng LSTM [28] hoặc GRU [29] để khắc phục điểm yếu của mạngRNN [27] truyền thống với hiện tượng Vanishing Gradient Điều này có vẻ vanchưa đủ, đặc biệt đối với những câu dài hơn những câu trong tập dữ liệu huấnluyện Cơ chế Attention [16] được đề xuất cho phép mô hình có thể chú trọng
16
Trang 342 Cơ sở lý thuyết và các nghiên cứu liên quan
vào những phần quan trọng thay vì chỉ sử dụng duy nhất một vector ý niệm đượctạo ra từ lớp cuối cùng của bộ giải mã Tất cả các đầu ra của từng nốt thuộc bước
mã hóa được kết hợp với các nốt ẩn của bước giải mã để tổng hợp một vectorngữ cảnh (attention vector) Vector ngữ cảnh này được dùng kết hợp với đầu racủa từng nốt thuộc bộ giải mã
Hình 2.7: Cơ chế attention trong mô hình Seq2Seq (anh được tham khảo từ Khoa hoc
dữ liệu - Khanh’s blog).
Việc tính toán của kỹ thuật Attention được thực hiện tại mỗi bước của quá
trình giải mã Để tiện theo dõi, hình 2.7 chỉ minh họa trên một bước giải mã đầutiên Các bước giải mã tiếp theo được thực hiện một cách tương tự Quá trình
giải mã bao gôm các bước sau:
Shttps: //phamdinhkhanh github io/2019/06/18/AttentionLayer.htm1
17
Trang 352 Cơ sở lý thuyết và các nghiên cứu liên quan
* Trạng thái ẩn hiện tại của bước giải mã được so sánh với tat cả trạng thái
ẩn của bộ mã hóa để xác định trọng số Attention (attention weight) Mỗi
bộ trọng số Attention cho một trạng thái ẩn của bước giải mã được minh
họa bởi một dòng trong hình 2.8 bên dưới Tương ứng với mỗi từ thuộc
ngôn ngữ được dịch, ta sẽ có chuỗi các trọng số được chú ý trên văn bản
nguồn.
¢ Dựa trên các trọng số Attention ta tính vector ngữ cảnh (context vector)
bằng cách tính trung bình trọng số trên các trạng thái ẩn của bộ mã hóa
» Kết hợp vector ngữ cảnh với trạng thái ẩn hiện tại của bước giải mã để tinh
vector Attention Từ vector attention này ta sẽ xác định được từ trong ngôn
ngữ đích sử dụng lớp tái tạo từ.
* Vector Attention được đưa vào thành dữ liệu đầu vào cho bước giải mã tiếp
theo Ba bước đầu tiên được tóm tắt bằng các công thức sau:
cScore(l shs)
Ot;5 = ————— (2.7)
¥ score(h;, hy)
c=À 0h, (2.8)
Trong đó, hàm score được sử dụng để so sánh trạng thái ẩn giải mã hiện tại h,
với mỗi trạng thái ẩn mã hóa h, Kết quả được chuẩn hóa để cho ra các trọng sốAttention, một dạng phân bố xác suất trên các từ đầu vào của ngôn ngữ nguồn
Có nhiều lựa chọn cho hàm đánh giá score này, ví dụ như công thức bên dưới.
Sau khi tính toán với các bước nêu trên, vector a; được sử dụng để làm hàm mất
18
Trang 362 Cơ sở lý thuyết và các nghiên cứu liên quan
Hình 2.8: Trực quan các trọng số Attention trên một cặp câu nguồn-đích được dich
từ mô hình Seq2Seq có kết hợp kỹ thuật Attention (Ảnh từ bài báo gốc của Attention
[16]).
mat.
score = (h;,hy) = hị Why (2.10)
2.2.4 Mô hình Transformer
2.2.4.1 Tổng quan về mô hình Transformer
Mô hình Transformer được công bố trong bài báo "Attention Is All YouNeed" [17] Trước đây, hầu hết các tác vụ xử lý ngôn ngữ tự nhiên, đặc biệt là
dịch máy (Machine Translation), sử dụng kiến trúc Recurrent Neural Networks
19
Trang 372 Cơ sở lý thuyết và các nghiên cứu liên quan
(RNNs) như LSTM hay GRU Các phương pháp này có nhược điểm là khó nắmbắt được sự phụ thuộc xa giữa các từ trong câu và do phải xử lý input tuần tự nêntốc độ huấn luyện chậm Ngoài ra do hiện tượng Gradient Vanishing/Exploding
nên khi số lượng units càng lớn, gradient giảm dan ở các units cuối do công thức
Đạo hàm chuỗi, dẫn đến mat thông tin/su phụ thuộc xa giữa các units
Hình 2.9: Mô hình RNN (ảnh được tham khảo từ Viblo Asia®).
Do đó khi Transformer ra đời thì nó vượt trội hoàn toàn các mô hình trước
đó và các biến thể của nó như BERT [30] tạo ra state-of-the-art mới cho các tác
vụ liên quan đến NLP
Transformer cũng sử dụng kiến trúc Encoder-Decoder, điểm khác biệt là
input được đẩy vào cùng một lúc và sử dụng cơ chế Self-Attention thay vì inputtuần tự theo từng time step như các kiến trúc RNNs (xem kiến trúc tại hình 2.10)
“https: //vib1lo.asia/p/transformers-nguoi-may-bien-hinh-bien-doi~the-gioi~n
1p-9241JPDXKPM
20
Trang 382 Cơ sở lý thuyết và các nghiên cứu liên quan
Output
Probabilities
Add & Norm
Multi-Head Attention
¢ Input Embedding: Máy tính không hiểu câu chữ mà chi đọc được số,
vector, ma trận; vì vậy ta phải biểu diễn câu chữ dưới dang vector, gọi là
input embedding Điều này đảm bảo các từ gần nghĩa có vector gần giống
nhau (hình 2.11).
21
Trang 392 Cơ sở lý thuyết và các nghiên cứu liên quan
Hình 2.11: Input Embedding (ảnh tham khảo từ Viblo Asia®).
* Positional Encoding: Word embeddings phan nào cho giúp ta biểu diễn
ngữ nghĩa của một từ, tuy nhiên cùng một từ ở vị trí khác nhau của câu
lại mang ý nghĩa khác nhau Đó là lý do Transformers có thêm một phầnPositional Encoding để thêm thông tin về vị trí của một từ
PE pos.24 = Sin(pos /100007!/4moaer ) (2.11)
PE pos.2i1 = C08( pos /100007!/4modet ) (2.12)
Trong do:
— pos là vi tri của từ trong câu
—_PE là giá trị phan tử thứ i trong embeddings có độ dai dodger
Sau đó ta cộng PE vector và Embedding vector (xem hình 2.12).
* Self-Attention: Self-Attention là cơ chế giúp Transformer "hiểu" được sự
liên quan giữa các từ trong một câu Vi du: Từ "kicked" trong cau "I kicked
the ball" (tôi đã đá quả bóng) liên quan như thế nào đến các từ khác? Rõràng nó liên quan mật thiết đến từ "I" (chủ ngỡ), "kicked" là chính nó nên
`
sẽ luôn "liên quan mạnh" va "ball" (vi ngữ) Ngoài ra từ "the" là giới từ
22
Trang 402 Cơ sở lý thuyết và các nghiên cứu liên quan
0.99 Positional 0.84
0.01 Encoding 012
0.08 0.81
Embedding Vector Encoding of
of "Dog” position in sentence Embedding of Dog
(with context info)
Hình 2.12: Positional Encoding (Ảnh được lấy từ Viblo Asia®).
nên sự liên kết với từ "kicked" gan như là không có, ta có thể quan sát hình2.13 Với kiến trúc tổng thể ở trên, ta có thể thấy đầu vào của các module
| kicked the ball
Hinh 2.13: Minh hoa self-attention (Anh lay từ Viblo Asia®).
Multi-head Attention (bản chat là Self-Attention) có 3 mũi tên, đó chính là
3 vectors Query (Q), Keys (K) và Values (V) Từ 3 vectors này, ta sẽ tính
23