1. Trang chủ
  2. » Luận Văn - Báo Cáo

Khóa luận tốt nghiệp Khoa học máy tính: Đá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ừ

130 0 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Đá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ừ
Tác giả Nguyen Thanh Dat, Han Phi Truong
Người hướng dẫn ThS. Do Van Tien
Trường học Đại học Quốc gia Thành phố Hồ Chí Minh
Chuyên ngành Khoa học Máy tính
Thể loại Khóa luận tốt nghiệp
Năm xuất bản 2023
Thành phố TP. Hồ Chí Minh
Định dạng
Số trang 130
Dung lượng 81,08 MB

Nội dung

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 2

DANH 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 3

LỜ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 4

TÓ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 5

là 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 6

Mụ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 7

2.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 8

MỤ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 9

MỤ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 11

DANH 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 12

cá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 13

Minh 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 14

Giao 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 15

Danh 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 16

Bả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 17

CNN(s) Convolutional Neural Networks

RNN Recurrent Neural Network LSTM Long Short Term Memory

XVI

Trang 18

Chươ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 19

1 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 20

khá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 21

1 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 22

thự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 23

1 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 24

1 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 25

Chươ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 26

2 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 27

2 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 28

2 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 29

2 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 30

2 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 31

2 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 32

2 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 33

2 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 34

2 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 35

2 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 36

2 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 37

2 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 38

2 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 39

2 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 40

2 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

Ngày đăng: 02/10/2024, 02:19

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN