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

Luận văn tốt nghiệp Khoa học máy tính: Xây dựng mô hình nhận dạng chữ viết tay trong các biểu mẫu có bố cục cố định

83 1 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 đề Xây dựng mô hình nhận dạng chữ viết tay trong các biểu mẫu có bố cục cố định
Tác giả Nguyễn Thị Trúc Ly
Người hướng dẫn TS. Trần Tuấn Anh, ThS. Trần Văn Nhàn, KS. Phạm Văn Lĩnh, TS. Nguyễn Tiến Thịnh
Trường học Trường Đại học Bách Khoa - Đại học Quốc gia TP. HCM
Chuyên ngành Khoa học Máy tính
Thể loại Luận văn tốt nghiệp Đại học
Năm xuất bản 2021
Thành phố TP. Hồ Chí Minh
Định dạng
Số trang 83
Dung lượng 2,9 MB

Nội dung

- Sinh viên đã xây dựng và đề xuất được một mô hình học sâu nhận dạng chữ viết tay tiếng Việt trong các biểu mẫu có bố cục cố định mà cụ thể là các phiếu gửi của Viettel post với kết quả

Trang 1

ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH

TRƯỜNG ĐẠI HỌC BÁCH KHOA KHOA KHOA HỌC & KỸ THUẬT MÁY TÍNH

LUẬN VĂN TỐT NGHIỆP ĐẠI HỌC

XÂY DỰNG MÔ HÌNH NHẬN DẠNG CHỮ VIẾT TAY TRONG CÁC BIỂU MẪU CÓ BỐ CỤC CỐ ĐỊNH

—o0o—

SVTH: Nguyễn Thị Trúc Ly (1710187)

TP HỒ CHÍ MINH, THÁNG 07/2021

Trang 2

ĐẠI HỌC QUỐC GIA TP.HCM CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM

TRƯỜNG ĐẠI HỌC BÁCH KHOA

KHOA:KH & KT Máy tính _ NHIỆM VỤ LUẬN ÁN TỐT NGHIỆP

BỘ MÔN: KHMT Chú ý: Sinh viên phải dán tờ này vào trang nhất của bản thuyết trình

HỌ VÀ TÊN: NGUYỄN THỊ TRÚC LY _MSSV: 1710187

HỌ VÀ TÊN: _MSSV:

HỌ VÀ TÊN: _MSSV: NGÀNH: Khoa Học Máy Tính _LỚP: _

1 Đầu đề luận án:

XÂY DỰNG MÔ HÌNH NHẬN DẠNG CHỮ VIẾT TAY TRONG CÁC BIỂU MẪU CÓ BỐ CỤC CỐ ĐỊNH

2 Nhiệm vụ (yêu cầu về nội dung và số liệu ban đầu):

- Nghiên cứu các mô hình nhận dạng chữ viết tay tiếng Việt

- Thu thập một bộ dữ liệu thực tế bao gồm gán nhãn, và tìm hiểu các tập dữ liệu đang có

- Xây dựng mô hình nhận dạng chử viết tay với đầu vào là ảnh vùng chữ viết tay bao gồm các phần hậu xử lý

- Thực hiện đánh giá trên các tập dữ liệu và đưa ra các phân tích

3 Ngày giao nhiệm vụ luận án: 01/10/2020

4 Ngày hoàn thành nhiệm vụ: 31/07/2021

5 Họ tên giảng viên hướng dẫn: Phần hướng dẫn:

1) Trần Tuấn Anh – Tổng quan đề tài, tổ chức, dữ liệu

2) Trần Văn Nhàn – Giải thuật tổng quát, mô hình hóa bài toán

3) Phạm Văn Lĩnh – Mô hình cụ thể, gán nhãn dữ liệu

Nội dung và yêu cầu LVTN đã được thông qua Bộ môn

Ngày tháng năm

CHỦ NHIỆM BỘ MÔN GIẢNG VIÊN HƯỚNG DẪN CHÍNH

Trần Tuấn Anh

PHẦN DÀNH CHO KHOA, BỘ MÔN:

Người duyệt (chấm sơ bộ): _

Trang 3

TRƯỜNG ĐẠI HỌC BÁCH KHOA CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM

KHOA KH & KT MÁY TÍNH Độc lập - Tự do - Hạnh phúc

2 Đề tài: XÂY DỰNG MÔ HÌNH NHẬN DẠNG CHỮ VIẾT TAY TRONG CÁC BIỂU MẪU

CÓ BỐ CỤC CỐ ĐỊNH

3 Họ tên người hướng dẫn: Trần Tuấn Anh, Trần Văn Nhàn, Phạm Văn Lĩnh

4 Tổng quát về bản thuyết minh:

6 Những ưu điểm chính của LVTN:

- Luận văn trình bày phương pháp nhận dạng chữ viết tay tiếng Việt trong ảnh tài liệu Đầu vào là vùng văn bản có chứa chữ viết tay và đầu ra là nội dung củ chữ viết

- Tác giả cũng xây dựng mộ demo hỗ trợ trực quan và án nhãn

- Tác giả đã thu thập nhiều dạng dữ liệu khác nhau đồng thời tự xây dựng một tập dữ liệu dựa trên data bưu chính

- Tác giả đã thực hiện nhiều phương pháp khác nhau, thí nghiệm và đưa ra nhiều phương pháp so sánh Kết quả của luân văn chứng tỏ được độ chính xác tốt so với các sản phẩm thực tế hiện nay

- Tác giả cũng đã thực hiện mở rộng nghiên cứu sang các lĩnh vực hậu xử lý và nhận dạng vùng

- Dự kiến kết quả sẽ được thử nghiệm ở mức công nghiệp trong thời gian tới với những cải tiến về mặt thời gian xử lý

7 Những thiếu sót chính của LVTN:

- Có thể tiến hành thu thập dữ liệu ở mức cao hơn, rộng hơn, sử dụng kết quả đang có để hỗ trợ gán nhãn

- Thời gian xử lý cần cải thiện để phù hợp với thực tế

9 3 câu hỏi SV phải trả lời trước Hội đồng:

a Thứ tự ưu tiên các công việc trong tương lai là gì, và lý do

c

10 Đánh giá chung (bằng chữ: giỏi, khá, TB): Giỏi Điểm : 9.4/10

Ký tên (ghi rõ họ tên)

Trần Tuấn Anh

Trang 4

TRƯỜNG ĐẠI HỌC BÁCH KHOA CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM

KHOA KH & KT MÁY TÍNH Độc lập - Tự do - Hạnh phúc

2 Đề tài: Xây dựng mô hình nhận dạng chữ viết tay trong các biểu mẫu có bố cục cố định

3 Họ tên người hướng dẫn/phản biện: Nguyễn Tiến Thịnh

4 Tổng quát về bản thuyết minh:

6 Những ưu điểm chính của LVTN:

- Luận văn bố cục rõ ràng, phong phú về mặt nội dung, dễ hiểu và mạch lạc Hầu như không có lỗi chính tả hoặc rất ít

- Sinh viên đã xây dựng và đề xuất được một mô hình học sâu nhận dạng chữ viết tay tiếng Việt trong các biểu mẫu có bố cục cố định mà cụ thể là các phiếu gửi của Viettel post với kết quả thu được khá tốt dựa trên khung mô hình seq2seq với khối LSTM được thay bằng khối Transformer

- Đánh giá, biện luận mô hình rất chi tiết chứng tỏ sự am hiểu của sinh viên trong bài toán và mô hình

- Nhiều hình ảnh minh họa cùng các đánh giá so sánh chi tiết giữa các mô hình xử lý bài toán liên quan

7 Những thiếu sót chính của LVTN:

- Một số lỗi đánh máy và công thức toán chưa được chuẩn mực; thiếu các dấu phẩy hoặc chấm

trong một số công thức như công thức 4.9 trang 54

- Phần ứng dụng còn khá ngắn, phần hình ảnh nên nhỏ lại và các dòng kết quả nên lớn hơn để người

sử dụng dễ đọc như trong hình 6.2 trang 75

- Tài liệu tham khảo nên trình bày theo một thứ tự alphabet nào đó Một số papers đã được

published nhưng vẫn chưa cập nhật, cần cập nhật lại cho phù hợp

9 3 câu hỏi SV phải trả lời trước Hội đồng:

a Có thể nêu vài lý do giải thích vì sao mô hình Transformer tốt hơn hẳn so với mô hình Seq2Seq

và CRNN khi được thử nghiệm trên tập VNONDB-line và không tốt hơn nhiều khi thử nghiệm trên tập VNONDB0-word không?

b Trang 70 có đề cập đến kết quả mô hình đề xuất cao hơn 24% so với mô hình CRNN kết hợp cơ chế Attention đề xuất bởi đội vô địch cuộc thi do Cinnamon tổ chức, cao hơn 24% ở đây có nghĩa

cụ thể như thế nào? Giải thích

c Các trường hợp sai của mô hình Transformer cho bởi hình 5.9 có xảy ra đối với các mô hình đối sánh Seq2Seq không? Có thể nào cho một vài ví dụ minh họa?

10 Đánh giá chung (bằng chữ: giỏi, khá, TB): giỏi Điểm : 9,5/10

Ký tên (ghi rõ họ tên)

Nguyễn Tiến Thịnh

Trang 5

LỜI CAM ĐOANChúng tôi xin cam đoan đây là công trình nghiên cứu của riêng chúng tôi dưới sựhướng dẫn của TS Trần Tuấn Anh Nội dung nghiên cứu và các kết quả đều là trungthực và chưa từng được công bố trước đây Các số liệu được sử dụng cho quá trìnhphân tích, nhận xét được chính chúng tôi thu thập từ nhiều nguồn khác nhau và sẽđược ghi rõ trong phần tài liệu tham khảo Ngoài ra, chúng tôi cũng có sử dụng một

số nhận xét, đánh giá và số liệu của các tác giả, cơ quan tổ chức khác Tất cả đều cótrích dẫn và chú thích nguồn gốc

Nếu phát hiện có bất kì sự gian lận nào, chúng tôi xin hoàn toàn chịu trách nhiệm

về nội dung luận văn tốt nghiệp của mình Trường Đại học Bách Khoa - Đại học Quốcgia TP HCM không liên quan đến những vi phạm tác quyền, bản quyền do chúng tôigây ra trong quá trình thực hiện

Trang 6

LỜI CẢM ƠNĐầu tiên, tôi xin bày tỏ lòng biết ơn và lời cảm ơn sâu sắc nhất đến người hướngdẫn trực tiếp của tôi là Thầy Trần Tuấn Anh, người đã giúp tôi thấy rõ hơn về hướng

đi của mình Thầy là người truyền cảm hứng, động viên, tạo cơ hội giúp tôi tiến bộhơn trên con đường học tập và sự nghiệp bằng sự kiên nhẫn, nhiệt tình và kiến thứcchuyên môn sâu rộng của Thầy Chính sự dìu dắt, hướng dẫn tận tình của Thầy đãgiúp tôi có nền tảng vững vàng hơn về kiến thức và có niềm tin hơn vào bản thânmình, là cơ sở để tôi có thể chinh phục nhiều mục tiêu khác trong cuộc sống

Bên cạnh đó, tôi cũng muốn gửi một lời cảm ơn chân thành đến các thầy cô trườngĐại học Bách Khoa - Đại học Quốc gia TP HCM nói chung và các thầy cô trong khoaKhoa học & Kỹ thuật Máy tính nói riêng, những người đã truyền đạt cho tôi nhiềukiến thức quý giá trong chặng đường bốn năm đại học vừa qua Bách Khoa đã tạocho tôi một môi trường vô cùng tốt để học tập và phát triển

Tôi cũng xin gửi lời cảm ơn đến tất cả những thành viên trong Câu lạc bộ Giảithuật Bách Khoa, những người anh, người bạn và người em Tại đây, tôi không chỉhọc thêm nhiều về kiến thức chuyên môn, mà còn được duy trì sở thích của mình,được tham gia nhiều hoạt động ý nghĩa, xây dựng cho mình thêm nhiều kỹ năng vàhọc cách giải quyết các vấn đề khác trong cuộc sống

Ngoài ra, tôi cũng muốn gửi một lời cảm ơn chân thành đến Trung Tâm KhôngGian Mạng Viettel - VTCC, nơi tôi đang thực tập Nơi đây tôi được học tập và làmviệc cùng những con người tài giỏi, một môi trường làm việc năng động và tuyệt vời.Mọi người tại đây cũng đã hỗ trợ tôi rất nhiệt tình trong suốt quá trình làm luận văn.Đặc biệt, tôi xin gửi lời cảm ơn đến anh Phạm Văn Lĩnh, anh Lý Lĩnh Lợi và bạn Hồ

Sỹ Tuyến, mọi người đã luôn động viên và cho tôi những lời khuyên, những lời góp ý

vô cùng hữu ích trong suốt quá trình thực hiện luận văn của mình

Cuối cùng nhưng không kém phần quan trọng, tôi xin gửi lời cảm ơn đến gia đình,nơi đã tiếp thêm cho tôi sức mạnh tinh thần và là chỗ dựa vững vàng nhất cho tôi.Cảm ơn cô Lương Thanh Thủy cùng với các cô chú cựu học sinh trường THPT ChuyênThoại Ngọc Hầu đã hỗ trợ cho tôi trong suốt quãng đường đại học để tôi có thể yêntâm hoàn thành con đường học vấn của mình một cách trọn vẹn nhất Và vẫn khôngquên cảm ơn “bạn” - người đã sát cánh bên tôi trong gần bốn năm đại học này

Trang 7

TÓM TẮT NỘI DUNGChữ viết là một phát minh quan trọng của loài người và nó đã đi theo chúng tahàng ngàn năm lịch sử Thông tin ngữ nghĩa chứa đựng trong chữ viết là cần thiếttrong nhiều ứng dụng của các bài toán về thị giác máy tính Ngày nay, với sự pháttriển của công nghệ trí tuệ nhân tạo và dữ liệu lớn, bài toán số hóa dữ liệu trở nênphổ biến và xuất hiện ở khắp mọi nơi Bên cạnh sự phổ biến của nhận dạng ký tựquang học đối với chữ in, thì chữ viết tay cũng chiếm một phần không nhỏ trong cácbài toán về số hóa dữ liệu văn bản Đặc biệt đối với các văn bản về thư từ, biên laihay biểu mẫu.

Từ nhu cầu thiết yếu đó, chúng tôi đã tiến hành nghiên cứu xây dựng mô hình nhậndạng kí tự quang học (Optical Character Recognition - OCR) Cụ thể hơn là mô hìnhnhận dạng chữ viết tay tiếng Việt trong các biểu mẫu có bố cục cố định Biểu mẫuchính được chúng tôi sử dụng trong luận văn này là phiếu gửi của Viettel post Chúngtôi đã thu thập dữ liệu Viettel post, đồng thời tiến hành gán nhãn tạo ra một tập

dữ liệu chữ viết tay tiếng Việt mới đa dạng về nét chữ và phông nền (background)

Về phương pháp nhận dạng chữ viết tay tiếng Việt, bên cạnh những cách truyềnthống phổ biến như Hidden Markov Model (HMM), Convolutional Recurrent NeuralNetwork (CRNN), Sequence to Sequence (Seq2Seq), Attention-based Seq2Seq, chúngtôi đã đề xuất thay khối Transformer cho khối Long Short-Term Memory (LSTM)trong mô hình Attention-based Seq2Seq và đạt được kết quả khả quan cho bài toánnhận dạng chữ viết tay tiếng Việt (sẽ được trình bày cụ thể trong luận văn) Bên cạnh

đó, chúng tôi đã thực hiện hậu xử lý (post-processing) đối với một số trường dữ liệu

để đạt được kết quả như mong muốn Ngoài ra, chúng tôi cũng đã xây dựng một ứngdụng máy tính đơn giản để trực quan hóa kết quả nhận dạng của mô hình

Trang 8

MỤC LỤC

1.1 Đặt vấn đề 1

1.1.1 Trong thực tiễn 1

1.1.2 Trong nghiên cứu 2

1.2 Phạm vi và mục tiêu nghiên cứu 4

1.2.1 Quy trình cơ bản của hệ thống trích xuất thông tin 4

1.2.2 Nhận dạng chữ viết tay 5

1.3 Thách thức 6

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

2 Kiến thức nền tảng 11 2.1 Mô hình học sâu 11

2.1.1 Giới thiệu 11

2.1.2 Mô hình học sâu lan truyền thuận 12

2.2 Mạng neuron tích chập 16

2.3 Mạng neuron hồi quy 20

2.3.1 Mạng neuron hồi quy thông thường 22

2.3.2 Long Short-Term Memory 22

2.4 Thư viện và công cụ 25

2.4.1 PyTorch 25

2.4.2 PyQt5 26

3 Các công trình liên quan 27 3.1 Mô hình Markov ẩn 27

3.2 Bộ phân loại kết nối theo thời gian 29

3.2.1 Phân loại theo thời gian 30

3.2.2 Chuyển dữ liệu dạng ảnh sang chuỗi 30

3.3 Mô hình Convolutional Recurrent Neural Network 31

Trang 9

3.3.1 Tổng quan mô hình 31

3.3.2 Ưu điểm và nhược điểm 34

3.4 Mô hình chuỗi sang chuỗi 35

3.5 Mô hình chuỗi sang chuỗi áp dụng cơ chế tập trung 36

3.5.1 Kiến trúc chung của mô hình 36

3.5.2 Cơ chế tập trung 37

3.6 Nhận xét 39

3.6.1 Hạn chế của cách tiếp cận sử dụng CTC 39

3.6.2 Hạn chế của cách tiếp cận theo mô hình Attention-based Seq2Seq 39 4 Hướng tiếp cận 40 4.1 Phương pháp đề xuất sử dụng 40

4.1.1 Điểm cốt lõi của phương pháp 40

4.1.2 Mô hình Transformer 42

4.1.2.1 Cơ chế tự tập trung 42

4.1.2.2 Cơ chế tự tập trung đa đầu 44

4.1.2.3 Masked Attention 45

4.1.2.4 Bộ mã hóa 45

4.1.2.5 Bộ giải mã 46

4.1.2.6 Tổng kết về mô hình Transformer 46

4.2 Chi tiết kiến trúc mô hình tổng quát 47

4.2.1 CNN Embedding 47

4.2.2 Mã hóa vị trí 47

4.2.3 Mạng lan truyền thuận theo vị trí 48

4.2.4 Lớp add và norm 48

4.2.5 Hàm mất mát và optimizer 48

4.2.6 Label smoothing 49

4.2.7 Giải mã ký tự 49

4.3 Quá trình huấn luyện và kiểm tra mô hình 50

4.3.1 Huấn luyện 50

4.3.2 Kiểm tra 50

4.4 Hậu xử lý 51

5 Thí nghiệm 52 5.1 Phương pháp đánh giá 52

5.1.1 Tỉ lệ lỗi từ 53

5.1.2 Tỉ lệ lỗi ký tự 53

5.2 Tập dữ liệu 54

5.2.1 Tập dữ liệu tiếng Việt HANDS-VNOnDB2018 54

5.2.2 Tập dữ liệu chữ viết tay tiếng Việt của Cinnamon 56

5.2.3 Tập dữ liệu phiếu gửi Viettel post 57

Trang 10

5.3 Kết quả thí nghiệm 60

5.3.1 Kết quả trên tập dữ liệu VNOnDB 60

5.3.2 Kết quả trên tập dữ liệu Cinnamon 61

5.3.3 Kết quả trên tập dữ liệu Viettel post 62

6 Ứng dụng 64 7 Tổng kết 66 7.1 Kết quả đạt được 66

7.2 Hạn chế 67

7.3 Hướng phát triển trong tương lai 67

Trang 11

DANH SÁCH BẢNG

5.1 Thống kê trên tập dữ liệu VNOnDB-line 555.2 Thống kê trên tập dữ liệu VNOnDB-word 555.3 Thống kê trên tập dữ liệu của Cinnamon 565.4 Các loại nhãn được sử dụng trong quá trình gán nhãn ngữ nghĩa textline 585.5 Thống kê số lượng biểu mẫu trên tập dữ liệu Viettel post 585.6 Thống kê số lượng textline trên tập dữ liệu Viettel post 585.7 Một số thử nghiệm được thực hiện trên tập dữ liệu VNONDB-word 605.8 Một số thử nghiệm được thực hiện trên tập dữ liệu VNONDB-line 615.9 Kết quả thử nghiệm của mô hình Transformer trên dữ liệu Cinnamon 615.10 Kết quả của mô hình Transformer trên dữ liệu Viettel post 62

Trang 12

DANH SÁCH HÌNH VẼ

1.1 Ví dụ về số hóa văn bản viết tay 2

1.2 Nhận dạng chữ viết tay kết hợp mô hình ngôn ngữ 3

1.3 Minh họa nhận dạng ở mức độ từ 5

1.4 Minh họa nhận dạng ở mức độ dòng 6

1.5 Từ “đặng” bằng chữ viết tay (trái) và chữ in (phải) 7

1.6 Từ “người” bằng chữ viết tay (trái) và chữ in (phải) 7

2.1 Cấu tạo của một neuron thần kinh 12

2.2 Ví dụ về đạo hàm 13

2.3 Mô hình hồi quy luận lý và mô hình học sâu lan truyền thuận 14

2.4 Các hàm kích hoạt thông dụng 15

2.5 So sánh cơ chế kết nối đầy đủ, cục bộ và cục bộ chia sẻ trọng số 16

2.6 Mô hình tổng quát của mạng neuron tích chập 17

2.7 Trực quan hóa phép toán tích chập 18

2.8 Trực quan hóa phép toán tích chập trên tensor 18

2.9 Ví dụ minh họa gộp cực đại và gộp trung bình 19

2.10 So sánh các lớp chuẩn hóa thường dùng trong mạng neuron tích chập 20 2.11 Ví dụ cắt ảnh trong RNN 20

2.12 Sơ đồ tính toán đơn giản của một RNN 21

2.13 Một cell LSTM 24

2.14 Logo PyTorch 26

2.15 Logo PyQt 26

3.1 Mô hình Markov ẩn 28

3.2 Mô hình nhận dạng chữ viết tay sử dụng CTC 29

3.3 Vấn đề alignment trong nhận dạng chữ viết tay 30

3.4 Diagonal-wise MDRNN 31

3.5 Kiến trúc mạng CRNN 32

3.6 Vector trong CRNN 32

Trang 13

3.7 Cấu trúc của một đơn vị LSTM 33

3.8 Mô hình Seq2Seq 35

3.9 Kiến trúc chung của mô hình Attention-based Seq2Seq 37

3.10 Cơ chế tập trung 38

4.1 So sánh mô hình Transformer và LSTM 41

4.2 Kiến trúc chung của mô hình Transformer 42

4.3 Biểu diễn toán học của cơ chế Self-attention 43

4.4 Multi-head Attention 44

4.5 Minh họa một multi-head self-attention gồm có hai đầu 44

4.6 Attention mask 45

4.7 So sánh self-attention với masked self-attention 45

4.8 Khối encoder của mô hình Transformer 46

4.9 Khối decoder của mô hình Transformer 46

4.10 Ví dụ về trích xuất đặc trưng 47

4.11 Tổng quan quá trình huấn luyện của mô hình 50

4.12 Tổng quan quá trình kiểm tra của mô hình 50

4.13 Một số trường hợp trước và sau khi thực hiện hậu xử lý 51

5.1 Ví dụ về ảnh trong tập dữ liệu VNOnDB 55

5.2 Ví dụ về mẫu dự liệu Cinnamon trong tập huấn luyện 56

5.3 Ví dụ về mẫu dự liệu Cinnamon trong kiểm tra 56

5.4 Mẫu gán nhãn phiếu gửi Viettel post 57

5.5 Các textline sau khi được cắt từ mẫu tài liệu ban đầu 59

5.6 Một số dữ liệu dòng từ Viettel post 59

5.7 Visualize kết quả của Transformer trong quá trình dự đoán 62

5.8 Một số trường hợp đúng của mô hình Transformer 63

5.9 Một số trường hợp sai của mô hình Transformer 63

6.1 Demo trên một dòng 65

6.2 Demo trên nhiều dòng 65

A.1 Kế hoạch thực hiện luận văn 68

Trang 14

CHƯƠNG 1 GIỚI THIỆU

1.1.1 Trong thực tiễn

Trong thời đại cách mạng công nghiệp 4.0 hiện nay, nhu cầu tự động hóa quá trìnhquản lý là một trong những yếu tố chính ảnh hưởng đến tốc độ phát triển của mộtquốc gia Chính vì thế, việc xây dựng một hệ thống tự động thu thập và số hóa thôngtin người dùng là một bài toán thực sự cần thiết và hữu ích

Theo truyền thống, quá trình số hóa dữ liệu là một công việc khá “rườm rà”, tốnnhiều tài nguyên, thời gian và công sức của con người Đầu tiên, người dùng phải điềnthông tin của họ vào một biểu mẫu bằng tay Tiếp theo, thông tin của mỗi trườngtrong biểu mẫu được nhân viên gõ thủ công vào máy tính Có thể thấy, đây được xem

là một giai đoạn vô cùng nhàm chán, đồng thời cũng dễ xảy ra sai sót trong quá trìnhnhập liệu Hơn nữa, việc nhập liệu này phải lặp đi lặp lại rất nhiều lần với cùng sốlượng biểu mẫu lớn

Ngày nay, một số công ty và đơn vị đã chuyển các hình thức giấy tờ sang biểumẫu kỹ thuật số, tại đó khách hàng và nhân viên có thể nhập trực tiếp thông tin củamình lên đó mà không cần phải dùng đến bút Tuy nhiên, một số nơi khác vẫn giữcách truyền thống, yêu cầu khách hàng của họ phải viết tay vì nhiều lý do riêng Mộttrong số đó được dùng với mục đích kiểm tra sự trùng khớp về nét chữ, cũng nhưnhằm đảm bảo các tiêu chí bảo mật

Vì vậy, dữ liệu văn bản viết tay vẫn tồn tại bất chấp sự phát triển vượt bậc củacông nghệ và sự phổ biến của các biểu mẫu dưới dạng kỹ thuật số Điều này cho thấyrằng việc tạo ra một hệ thống tự động hóa để giải quyết các vấn đề liên quan đến chữviết tay là vô cùng quan trọng Quá trình này sẽ được thực hiện với các bước sau đây.Trước hết, hình thức tài liệu trên giấy sẽ được quét bởi một máy scan hoặc chụp bằng

Trang 15

Giới thiệu 2

các thiết bị công nghệ để tạo ra hình ảnh Tiếp theo sử dụng máy tính để tự độngtrích xuất thông tin người dùng, tập trung vào các vùng là chữ viết tay Hình 1.1 thểhiện ví dụ về số hóa biểu mẫu có chữ viết tay trên một số trường ngữ nghĩa

Hình 1.1: Ví dụ về số hóa văn bản viết tay

1.1.2 Trong nghiên cứu

Bài toán nhận dạng văn bản viết tay đã được nghiên cứu trong hơn ba mươi nămgần đây, được phát triển dần dần từ việc nhận dạng văn bản ở mức độ ký tự đến mức

độ từ rồi đến mức độ dòng gồm nhiều từ Nhận dạng chữ viết tay được chia thành hailớp bài toán lớn sau:

• Nhận dạng trực tuyến (online recognition) là nhận dạng các chữ trên mànhình ngay khi nó được viết Trong hệ nhận dạng này máy tính sẽ lưu lại cácthông tin về nét chữ như thứ tự nét viết, hướng và tốc độ của nét

• Nhận dạng ngoại tuyến (offline recognition) là dự đoán chuỗi văn bản từ mộtvùng văn bản viết tay cố định từ hình ảnh đã được chụp hoặc quét

Sự khác biệt chính giữa hai phương pháp trên đó là dữ liệu đầu vào Đối với phươngpháp nhận dạng trực tuyến bao gồm tất cả các tọa độ của nét chữ được viết từ bút kỹthuật số, cùng với hình ảnh của chúng được tạo ra từ sự chuyển động của bút Trongkhi, với phương pháp nhận dạng ngoại tuyến thì đầu vào chỉ có hình ảnh của nét chữ

đã được hình thành (ảnh tĩnh), không có thêm bất kì thông tin nào về dấu vết củachúng Một điểm khác biệt nữa là hệ thống nhận dạng trực tuyến đòi hỏi phải nhanh

và ngay lập tức, trong khi với hệ thống ngoại tuyến có thể thực thi với thời gian ràngbuộc tương đối thoải mái Trong luận văn này, chúng tôi sẽ chỉ thảo luận và tập trungvào phương pháp nhận dạng ngọai tuyến, vì nó phù hợp với phương hướng nghiên cứucũng như mục đích cuối cùng của luận văn

Trang 16

• Đối với nhận dạng hành động: cần biết một chuỗi dữ liệu tạm thời để ghinhận lại sự thay đổi của hành động, có thể hiểu đó là một chuỗi các khung(frame) liên tục trong video về hành động của một đối tượng nào đó.

• Cả hai đều không có bất kỳ cơ chế chỉnh sửa nào để hoàn thiện được kết quảcuối cùng

Mặt khác, đối với nhận dạng văn bản viết tay thì dữ liệu chúng ta có cả thôngtin không gian và thông tin thời gian:

Hình 1.2: Nhận dạng chữ viết tay kết hợp mô hình ngôn ngữ

Hơn nữa, theo thống kê cho thấy tiếng Việt có rất ít nghiên cứu về nhận dạng vănbản viết tay so với các ngôn ngữ Latinh khác, chẳng hạn như tiếng Anh hay tiếngPháp Vì vậy, với tư cách là sinh viên Việt Nam, chúng tôi mong muốn cống hiến côngsức và kiến thức của mình để giải quyết bài toán liên quan đến ngôn ngữ mẹ đẻ làtiếng Việt

Trang 17

Giới thiệu 4

1.2.1 Quy trình cơ bản của hệ thống trích xuất thông tin

Trong một ứng dụng thực tế, bài toán nhận dạng chữ viết tay trong một biểu mẫu

có bố cục cố định sẽ được thực hiện qua các bước như sau:

1 Phát hiện biểu mẫu và chuẩn hóa Với giả định ảnh đầu vào là một biểumẫu được chụp bằng các thiết bị di động, nên background của ảnh đầu vào sẽchứa rất nhiều thứ không cần thiết, gây ảnh hưởng đến độ chính xác của bướcnhận diện biểu mẫu và ảnh hưởng đến độ chính xác của toàn bộ bài toán Do

đó, trước khi thực hiện phân tích bố cục và nhận diện văn bản thì ảnh đầu vàocần phải được làm sạch background và phải được chuẩn hóa

• Phát hiện biểu mẫu là quá trình sử dụng một số mô hình về phát hiện vậtthể để nhận diện biểu mẫu Kết quả đầu ra của quá trình này sẽ là tọa độcủa hình chữ nhật vừa đủ bao lấy toàn bộ biểu mẫu

• Chuẩn hóa là sau quá trình phát hiện biểu mẫu, ảnh đầu vào đã được bỏbớt một số vùng background không cần thiết, hệ thống sẽ thực hiện quátrình chuẩn hóa dựa trên ảnh này Cụ thể, quá trình chuẩn hóa sẽ tiến hànhphát hiện các cạnh và tìm các giao điểm của các cạnh; từ đó phát hiện đượcbốn góc của biểu mẫu, kết hợp thêm các phép chiếu để căn chỉnh lại biểumẫu thành một ảnh có bốn góc vuông

2 Phát hiện và phân loại vùng văn bản Bước này có nhiệm vụ phát hiện vịtrí và phân loại các vùng văn bản trong biểu mẫu, sau đó các vùng chữ viết tay(textline) sẽ được đưa vào hệ thống nhận diện ký tự quang học

3 Nhận dạng ký tự quang học Quá trình nhận dạng ký tự quang học (OpticalCharacter Recognition - OCR) sẽ nhận vào một hình ảnh có chứa dòng chữ viếttay tiếng Việt, sau đó sẽ nhận dạng các ký tự bên trong ảnh đầu vào bằng việcchuyển từ ảnh thành dạng text có thể chỉnh sửa được trên các thiết bị côngnghệ Qua quá trình nhận dạng ký tự quang học, chúng ta sẽ nhận được đầu ra

là các chuỗi ký tự có nghĩa, kết hợp thêm hậu xử lý (post-processing) và các kỹthuật xử lý ngôn ngữ tự nhiên, hệ thống có thể rút trích những thông tin cầnthiết từ ảnh đầu vào

Tuy nhiên với thời gian cho phép cũng như mục đích ban đầu của luận văn, chúngtôi chỉ tập trung vào module nhận dạng ký tự quang học, cụ thể hơn là bài toán nhậndạng chữ viết tay tiếng Việt bằng các mô hình học sâu đồng thời kết hợp với một sốphương pháp hậu xử lý để cho ra kết quả cuối cùng Điều này có nghĩa rằng, nhiệm

vụ ở đây chỉ chuyển chữ viết tay trên hình ảnh thành text sau khi đã có ảnh của

Trang 18

Giới thiệu 5

vùng chữ viết tay, đối với module nhận diện vùng chữ viết tay sẽ được thực hiện trongtương lai và không thể hiện trong luận văn này

Trong luận văn này, chúng tôi tiếp cận bài toán nhận dạng chữ viết tay đi từ mức

độ từ đến mức độ dòng Mục tiêu cuối cùng mà chúng tôi muốn hướng đến đó là tìm

ra phương pháp phù hợp để giải quyết bài toán “Nhận dạng chữ viết tay tiếng Việttrong các biểu mẫu có bố cục cố định”, cụ thể hơn là nhận dạng được chữ viết taytrong biểu mẫu phiếu gửi của Viettel post

Hình 1.3: Minh họa nhận dạng ở mức độ từ

Nhận dạng chữ viết tay ở mức độ dòng: Dòng là một chuỗi các ký tự tạothành các từ và ngăn cách nhau bởi các khoảng trắng Tương tự như từ, hình ảnh củadòng chữ viết tay giả sử đã được cắt ra từ các modules trước Hình 1.4 minh họa việcnhận dạng chữ viết ở mức độ dòng

Trang 19

Giới thiệu 6

Hình 1.4: Minh họa nhận dạng ở mức độ dòng

Bài toán của chúng ta gồm có hai giai đoạn đó là “giai đoạn ngoại tuyến” (offlinephase) bao gồm việc huấn luyện, đánh giá mô hình và “giai đoạn trực tuyến” (onlinephase) chạy trên dữ liệu thực tế

• Đối với giai đoạn ngoại tuyến:

– Đầu vào: Một cặp gồm ảnh chữ viết tay và text chứa từ hay dòng

– Đầu ra: Các thông số của mô hình thông qua việc tối thiểu hàm mất mátgiữa kết quả dự đoán và nhãn

• Đối với giai đoạn trực tuyến:

– Đầu vào: Một ảnh chữ viết tay từ hay dòng

– Đầu ra: Kết quả của chuỗi dự đoán được

Trên thực tế có khá nhiều khó khăn và thử thách đối với bài toán nhận dạng chữviết tay, đặc biệt là chữ viết tay tiếng Việt Sau đây chúng tôi sẽ tiến hành trình bàycác vấn đề được đặt ra một cách thật chi tiết, và trong luận văn này chúng tôi sẽ đitìm ra phương pháp để lần lượt giải quyết chúng theo cách tốt nhất có thể

1 Sự khác nhau giữa chữ viết tay và chữ in

Các hình thức biến thể của nét chữ Nếu như chữ đánh máy, chữ in thường

có những kiểu chữ nhất định để dựa vào đó chúng ta nhận dạng ra chữ, thì việc

xử lý bài toán nhận dạng văn bản viết tay khó hơn nhiều do nét chữ viết tay rất

Trang 20

Giới thiệu 7

Hình 1.5: Từ “đặng” bằng chữ viết tay (trái) và chữ in (phải)

Hình 1.6: Từ “người” bằng chữ viết tay (trái) và chữ in (phải)

đa dạng Nét chữ của cùng một người viết ở các thời điểm khác nhau đôi khi đãkhông giống nhau, nên nét chữ của những người khác nhau thì chắc chắn là khácnhau Hơn nữa, chữ viết tay có xu hướng bị nghiêng nhiều hơn do cách viết củamỗi người và độ nghiêng là không như nhau giữa các ký tự trong cùng một từ Mộtđiểm khó khăn nữa của bài toán nhận dạng chữ viết tay là các ký tự hay các dòngchữ thường không tách biệt nhau rõ ràng, đôi khi lại không ngay hàng thẳng lối.Ngoài ra, một số lượng lớn tài liệu chữ viết tay ra đời trước khi máy tính xuất hiện,

có nhiều tài liệu được bảo quản không tốt dẫn tới tình trạng bị mờ chữ, mất chữ

Có những trường hợp thì khi ghi sai lại ghi đè lên chữ sai đó, hoặc tình trạng lemmực, hoặc những từ được ghi bổ sung thêm lên tài liệu cũng là một vấn đề đối với

mô hình nhận dạng ký tự quang học Đối với chữ đánh máy thì hình thức trìnhbày văn bản trên các tài liệu cho dù không giống nhau thì nét chữ của chúng vẫn

sẽ không khác nhau nếu chúng sử dụng cùng một kiểu chữ

Với những dẫn chứng trên cho thấy, việc nhận dạng văn bản viết tay khó hơn chữđánh máy gấp nhiều lần Với các điều kiện khác nhau cùng các kiểu viết khác nhau

sẽ dẫn đến sự gia tăng các biến thể hình dạng của từ Dẫn đến việc cho máy học làrất khó vì nó khó có thể phân biệt được các trường hợp dù cùng một ký tự nhưnglại có nhiều nét viết khác nhau Điều này đòi hỏi một tập dữ liệu đủ lớn để huấnluyện

Nhận dạng nét chữ Văn bản chữ in, đánh máy sẽ không bị ảnh hưởng bởi cácnét nối như văn bản viết tay Nói cách khác, chúng có thể được phân đoạn thànhcác ký tự riêng lẻ dễ dàng hơn trong việc nhận dạng chữ viết ở mức độ ký tự Ngượclại, vì bản chất của văn bản viết tay, mọi người có xu hướng viết các nét nối giữa

Trang 21

vì như vậy thì số lượng đầu ra của mô hình là quá lớn Tức là số lượng đầu ra sẽbằng số lượng từ trong từ điển của ngôn ngữ mà chúng ta đang thực hiện, trongkhi số lượng phân loại đối tượng của các mô hình hiện nay thì tương đối ít Ví dụ,ImageNet hiện tại chỉ có 1000 lớp.

Trình tự là bản chất của văn bản Nghĩa là các ký tự trên hình ảnh không xuấthiện ngẫu nhiên như các đối tượng khác, mà thứ tự xuất hiện của chúng phải tuântheo một quy tắc nào đó được xác định bởi ngôn ngữ, ví dụ như từ vựng hay ngữpháp Nói tóm lại, thứ tự xuất hiện của các ký tự đóng một vai trò quan trọngtrong bài toán nhận dạng ký tự quang học

3 Sự khác nhau giữa tiếng Việt và tiếng Anh

Sự tham gia của các dấu thanh như sắc, huyền, hỏi, ngã và nặng làm cho tiếngViệt trở nên khác biệt và phức tạp hơn, từ đó trở thành một thách thức lớn đốivới máy tính Dưới đây là một số tác động của chúng

Tập chữ cái tiếng Việt có số lượng lớn hơn so với tập chữ cái tiếng Anh.Tiếng Anh có 26 chữ cái viết thường từ ‘a’ đến ‘z’, trong khi tiếng Việt gấp khoảngbốn lần với 93 ký tự kết hợp có dấu Điều này làm cho số lượng các lớp tăng lênđáng kể, dẫn đến việc các hệ thống đó sử dụng cách tiếp cận phân loại dựa trên ký

tự có nhiều tham số hơn Tuy nhiên, nhờ sự phát triển mạnh của điện toán đámmây, kích thước của bảng chữ cái không còn là vấn đề lớn nhất nữa mà nó sẽ dẫnđến vấn đề khác

Đó là sự tương đồng giữa các ký tự trong tiếng Việt rất mạnh Các ký tựtrong tiếng Anh khác biệt rõ rệt, trong khi các ký tự trong tiếng Việt gần giốngnhau, ví dụ: ký tự ‘a’ có hình dạng tương tự so với ‘á’, ‘à’, ‘ã’, ‘ạ’, ‘â’, ‘ă’, Vấn đềnày làm cho khoảng cách giữa các lớp giảm đi đáng kể trong khi đây là một tham

số cần cố gắng làm cho tăng lên Mặc dù vấn đề này vẫn có thể giải quyết bằngcách tự động hoàn thiện từ nhưng nó lại dẫn ra thêm vấn đề tiếp theo Giả sử như

ta có từ “bong” thì nó có thể là “bông”, “bồng”, “bống”, “bóng”, Để xác định chínhxác nó là từ nào thì cần xét đến ngữ cảnh trong câu đó Tuy nhiên, nếu chỉ tiếpcận ở mức độ từng từ thì không thể đoán được ngữ cảnh và khó giải quyết đượcvấn đề này

Trang 22

Giới thiệu 9

4 Cách giải quyết khi xuất hiện các ký tự hay từ mới

Tạo dữ liệu mới từ các ký tự đã có Luôn có một từ trong ngôn ngữ không cótrong tập dữ liệu được thu thập Trên thực tế, một văn bản mới chỉ được tạo ra từmột sự kết hợp của các ký tự trong bảng chữ cái hữu hạn được thiết lập trong mộtngôn ngữ Một minh họa cho rằng chuỗi số là sự kết hợp của các chữ số khác nhau

từ ‘0’ đến ‘9’, cho nên việc tạo một chuỗi mới chỉ toàn các ký tự là số có tính khảthi cao nhất vì nó có giới hạn nhất định và có vẻ bất khả thi đối với một chuỗi baogồm tất cả các ký tự có thể có

Nhận xét: Như đã đề cập trong Tiểu mục 1, chúng ta nên nhận dạng cả một từthay vì phân đoạn chúng thành các ký tự rồi sau đó mới nhận dạng Trong Tiểu mục

4, chúng ta có thể tạo thêm dữ liệu từ mới từ tập kí tự đã có Ngoài ra, hệ thống củachúng ta sẽ nhận một hình ảnh tĩnh chứa văn bản và trả về các ký tự theo một thứ

tự nhất định để duy trì tính đặc trưng của chữ viết đã được đề cập trong Tiểu mục 2

Trang 23

Giới thiệu 10

Luận văn được chia thành những phần như sau:

• Chương 1: Giới thiệu

Giới thiệu về bài toán nhận dạng chữ viết tay, tình hình của bài toán trong thực

tế và trong nghiên cứu, quy trình chung để giải quyết bài toán và các phươngpháp điển hình trong việc huấn luyện nhận dạng, phạm vi của đề tài và nhữngthách thức chung

• Chương 2: Kiến thức nền tảng

Trình bày các kiến thức nền tảng về học máy, học sâu được sử dụng trong quátrình thực hiện luận văn Cùng với đó là sẽ giới thiệu một số thư viện, công cụ

hỗ trợ trong việc xây dựng hệ thống

• Chương 3: Các công trình liên quan

Trình bày về các công trình nghiên cứu liên quan đến bài toán nhận dạng ký tựquang học

• Chương 4: Hướng tiếp cận

Trình bày về phương pháp được sử dụng cho bài toán nhận dạng chữ viết taytiếng Việt

Trình bày về các tập dữ liệu, các thí nghiệm đã thực hiện và các kết quả đạtđược

Trình bày ứng dụng máy tính đơn giản để hiển thị kết quả của luận văn

• Chương 7: Tổng kết và hướng phát triển

Tổng kết lại các kết quả đạt được trong quá trình nghiên cứu và hiện thực luậnvăn, những kinh nghiệm, hạn chế và hướng phát triển trong tương lai

Trang 24

CHƯƠNG 2 KIẾN THỨC NỀN TẢNG

Trong chương này, chúng tôi xin tóm lược những kiến thức cơ bản được sử dụngtrong quá trình thực hiện luận văn bao gồm các kiến thức chung về mô hình học sâu,mạng tích chập xoắn, mạng neuron hồi quy và long short-term memory Cùng với đó,chúng tôi giới thiệu các nền tảng và thư viện mà chúng tôi đã sử dụng trong quá trìnhxây dựng hệ thống

2.1.1 Giới thiệu

Các mô hình máy học đã phần nào giải quyết được các bài toán trong các lĩnh vựckhác nhau của khoa học máy tính Tuy nhiên với lĩnh vực thị giác máy tính, các môhình máy học vẫn chưa thể giải quyết tốt Ví dụ, một cậu bé có thể nhận ra cuốn sáchchỉ sau một lần nhìn Nhưng đây lại là một công việc khó với máy tính trước khi các

mô hình học sâu ra đời Điểm khác biệt giữa máy tính và con người là hàng chục tỷ

tế bào neuron kết nối với nhau

Mô hình hồi quy luận lý (logistic regression) là mô hình tham số hóa đạt được hiệuquả tốt trong các nhóm thuật toán máy học Dựa trên mô phỏng của hệ thần kinhnão bộ, mô hình học sâu ra đời với các neuron tương đương với một mô hình hồi quyluận lý

Trang 25

Kiến thức nền tảng 12

Hình 2.1: Cấu tạo của một neuron thần kinh1

2.1.2 Mô hình học sâu lan truyền thuận

Hồi quy luận lý

Mô hình hồi quy luận lý thuộc nhóm mô hình máy học Nhiệm vụ của mô hìnhnày là tạo ra mô hình được tham số hóa có khả năng phân loại nhị phân với giá trịđầu ra từ 0 đến 1 Ta có thể định nghĩa mô hình hồi quy luận lý có:

• Đầu vào: x ∈ Rn, với xk ∈ R

• Đầu ra: y0 ∈ (0, 1)

Từ giá trị y mô hình sẽ tiến hành phân loại dựa trên ngưỡng Để dự đoán giá trị

y, trước hết ta khởi tạo bộ trọng số ngẫu nhiên là θ ∈ Rn và giá trị bias b Giá trị tổhợp tuyến tính z được tính toán dựa trên công thức (2.1)

Để đưa về miền (0, 1) ta có thể sử dụng hàm sigmoid theo công thức (2.2) Giá trị

y0 được xác định dựa trên z theo công thức (2.3)

Trang 26

Kiến thức nền tảng 13

Thuật toán Gradient Descent

Nhiệm vụ của mô hình là tìm bộ tham số θ sao cho độ lỗi tại công thức (2.4) nhỏnhất, trong đó thuật toán Gradient Descent là một trong những phương pháp để thựchiện quá trình tối ưu này Gradient Descent thuộc nhóm thuật toán tối ưu nhiều bước.Tức xuất phát từ một điểm được coi là gần với nghiệm của bài toán, chúng ta sẽ tiếnhành lặp nhiều lần để tiến về nghiệm của bài toán, nơi có đạo hàm bằng 0

Khái niệm đạo hàm tại một điểm được biểu diễn dưới dạng vector để chỉ hướng và

độ biến thiên của giá trị hàm số tại điểm đó Ví dụ Hình 2.2, những mũi tên đỏ chỉđạo hàm tại mỗi điểm Kích thước mũi tên càng dài chứng tỏ độ biến thiên càng lớn,còn chiều của mũi tên chỉ hướng biến thiên của hàm số tại điểm đó Ta nhận thấyđiểm nghiệm cần tìmx∗ luôn ngược với chiều của đạo hàm Quay về bài toán hồi quyluận lý, ý tưởng của thuật toán Gradient Descent là cập nhật bộ tham số mới ngượcvới hướng của đạo hàm hàm độ lỗi (2.4) theo bộ tham số trước đó bằng công thức(2.5)

Kiến trúc mô hình học sâu lan truyền thuận

Mô hình học sâu được xem như mô hình mô phỏng xử lý tín hiệu của não bộ Đặcđiểm của não bộ là có rất nhiều neuron thần kinh và các neuron này phải liên kết vớinhau để tạo thành hệ thống xử lý tín hiệu Xem một neuron là một mô hình hồi quy

2 https://machinelearningcoban.com/2017/01/12/gradientdescent

Trang 27

Kiến thức nền tảng 14

luận lý, các nhà khoa học máy tính đã đề xuất nhiều phương thức kết nối các mô hìnhhồi quy luận lý lại với nhau, trong đó mô hình học sâu lan truyền thuận (feedforwardneural network) được sử dụng rộng rãi trong lĩnh vực thị giác máy tính Đặc trưngcủa các kết nối ở mô hình này là chỉ đi một chiều từ trái sang phải và kết nối với nhauthông qua nhiều tầng kết nối Hình 2.3 minh họa quá trình phát triển mô hình họcsâu từ mô hình hồi quy luận lý

Hình 2.3: Mô hình hồi quy luận lý và mô hình học sâu lan truyền thuận

Mô hình học sâu lan truyền thuận bao gồm ba phần cơ bản gồm tầng đầu vào(input layer), các tầng ẩn (hidden layers) và tầng đầu ra (output layer) Số tầng ẩn

và số node của mỗi tầng ẩn do người cài đặt định nghĩa Số tầng ẩn phải lớn hơn 1,nếu số tầng ẩn là 1 thì mô hình trở thành mạng neuron nhân tạo Một mô hình họcsâu lan truyền thuận hoạt động dựa trên:

• Lớp liên kết đầy đủ (fully connected layer)

n là zn ∈ Rk, bộ tham số giữa tầng n và tầng n + 1 là θn ∈ Rk×t, đầu ra ở tầng n + 1

là zn+1 ∈ Rt được định nghĩa dựa trên công thức (2.6)

Việc sử dụng quá nhiều liên kết có thể dẫn đến hiện tượng quá khớp (overfitting)

Để giảm bớt hiện tượng quá khớp, một vài mô hình học sâu đề xuất sử dụng cơ chếloại bỏ (drop-out) Cơ chế này sẽ ngẫu nghiên loại bỏ một tỷ lệ các node, thường từ

30% đến 50% tổng số node của tầng trong quá trình huấn luyện mạng học sâu

Trang 28

Kiến thức nền tảng 15

Hàm kích hoạt

Ta nhận thấy phép liên kết đầy đủ chỉ là tổ hợp tuyến tính nên việc liên kết nhiềunode không có ý nghĩa vì kết quả vẫn là tuyến tính Để giải quyết vấn đề trên, hàmkích hoạt được dùng để bẻ gãy tuyến tính ở đầu ra của mỗi node Các hàm kích hoạt

cơ bản trong mạng học sâu được trình bày ở Hình 2.4 Ở giai đoạn đầu hàm, “sigmoid”

và hàm “tanh” thường được sử dụng Gần đây hàm “ReLu” được sử dụng rộng rãi hơnbởi tính đơn giản và giảm hiện tượng biến mất đạo hàm (vashing gradient) Đây làhàm không có tham số học

Hình 2.4: Các hàm kích hoạt thông dụng (nguồn [2])

Lớp chuẩn hóa

Đầu ra ở mỗi tầng của mạng học sâu có thể có miền giá trị khác nhau Điều nàylàm mô hình khó hội tụ Ngoài ra, nếu sử dụng hàm kích hoạt tanh hay sigmoid, cácgiá trị đầu ra thường cách xa giá trị 0 (non-zero-mean) Đây là những khoảng giá trịbão hòa làm đạo hàm có xu hướng tiến về 0 dẫn đến thuật toán Gradient Descentkhông cập nhật được Lớp chuẩn hóa theo khối (batch normalization) được áp dụngsau mỗi đầu ra, làm cho kết quả đầu ra về trạng thái phân bổ gần 0 (zero-mean) theothuật toán (1)

Algorithm 1: Thuật toán chuẩn hóa theo khối3

1 Input: Giá trị x trên một khối B = x1, x2, , xm

Trang 29

Kiến thức nền tảng 16

Lớp softmax

Mô hình học sâu lan truyền thuận được ra đời với mục đích ban đầu để giải quyếtbài toán phân loại Nếu ở tầng kết quả có nhiều hơn một node sẽ làm tổng giá trị xácsuất lớn hơn 1 (sử dụng hàm kích hoạt sigmoid) Điều này là bất hợp lý, do đó lớpsoftmax được áp dụng ở tầng kết quả với nhiệm vụ chuẩn hóa các giá trị xác suất ởtầng kết quả sao cho chúng có tổng là 1 Đây là lớp không có tham số học Công thứcsoftmax được áp dụng theo công thức (2.7), trong đóz ∈ RC là giá trị ở tầng đầu ra,

C là số lượng nhãn, y0 ∈ RC là giá trị sau khi qua hàm softmax

y0i= e

z i

PC j=1ez j

, ∀i = 1, 2, , C (2.7)

Các mô hình học sâu với các lớp kết nối đầy đủ (fully connected) đã phần nàogiải quyết được các bài toán của lĩnh vực thị giác máy tính Tuy nhiên đặc điểmchung khi áp dụng các lớp kết nối đầy đủ lên ảnh sẽ dễ dẫn đến hiện tượng quá khớp(overfitting) Mặc dù cơ chế loại bỏ (drop-out) phần nào giải quyết được hiện tượngtrên, tuy nhiên khi áp dụng cho ảnh, cơ chế này vẫn chưa mang lại hiệu quả cao Điềunày có thể giải thích là do các lớp kết nối đầy đủ có quá nhiều tham số Giả sử mộtảnh đầu vào có kích thước 100 × 100 và lớp tiếp theo có 10000 node Tổng số tham

số ở lớp này là 100 triệu tham số Để giải quyết vấn đề trên, nếu ta chỉ kết nối mộtnode ở lớp tiếp theo với một vùng 10 × 10 của ảnh thì tổng số tham số là một triệutham số Nếu ta dùng cơ chế chia sẻ trọng số giữa các vùng 10 × 10 thì tổng số tham

số chỉ là 100 Không chỉ giảm số lượng tham số, việc kết nối cục bộ cũng cho kết quảtốt hơn việc kết nối đầy đủ vì hai điểm ảnh ở xa nhau về mặt không gian sẽ ít có ýnghĩa phụ thuộc lẫn nhau Hình 2.5 so sánh các cơ chế kết nối đầy đủ, cục bộ và cục

bộ chia sẻ trọng số

Hình 2.5: So sánh cơ chế kết nối đầy đủ, cục bộ và cục bộ chia sẻ trọng số

Trang 30

Kiến thức nền tảng 17

Ta nhận thấy kết nối cục bộ chia sẻ trọng số về bản chất là phép tích chập trong

xử lý tín hiệu số Đây chính là phép toán tiền đề và đứng sau thành công của mạngneuron tích chập [7] (Convolutional Neural Network - CNN) trong các bài toán thịgiác máy tính

Kiến trúc tổng quan của mạng neuron tích chập

Về cơ bản, một mạng CNN nhận đầu vào là tensor ảnh Mạng này sẽ lần lượt biếnđổi tensor đầu vào thông qua các lớp ở nhóm lớp tích chập để rút trích tập đặc trưngảnh Cuối cùng thông qua các lớp kết nối đầy đủ (fully connected) và softmax để thựchiện quá trình phân loại Lớp kết nối đầy đủ và softmax hoàn toàn tương tự ở các môhình học sâu Điểm đặc biệt tạo nên thành công của mạng neuron tích chập là nhómlớp tích chập bao gồm:

• Lớp tích chập (convolution layer)

• Lớp gộp (pooling layer)

• Hàm kích hoạt (activation)

• Lớp chuẩn hóa (normalization layer)

Hình 2.6: Mô hình tổng quát của mạng neuron tích chập (CNN)4

Lớp tích chập

Phép tích chập trong xử lý ảnh là phiên bản rời rạc của phép tích chập Phép tíchchập 2D nhận đầu vào là ảnh F và bộ lọc H (kích thước(2k + 1) × (2k + 1)) Kết quảcủa phép tích chập G được tính theo công thức (2.8)

4 https://towardsdatascience.com/a-comprehensive-guide-to-convolutional-neural-n etworks-the-eli5-way-3bd2b1164a53

Trang 31

Kiến thức nền tảng 18

Phép tích chập có tính chất giao hoán do đó rất thích hợp khi xây dựng nhiều lớptích chập nối tiếp nhau

Về mặt trực quan, phép tích chập sử dụng một cửa sổ có kích thước nhỏ hơn nhiều

so với ảnh (thường là ma trận 3 × 3 hoặc 5 × 5) Cửa sổ này sẽ xoay 1800 rồi trượtdọc theo hàng trên toàn bộ tấm ảnh Tại mỗi bước dịch chuyển, G sẽ được tính bằngtổng của phép toán nhân hadamard giữa cửa sổ và vùng ảnh tương ứng (Hình 2.7)

Hình 2.7: Trực quan hóa phép toán tích chập

Quá trình hoạt động của lớp tích chập phụ thuộc vào một vài siêu tham số parameter) như kích thước bộ lọc (kernel size), bước nhảy (stride) và kích thước vùngđệm (padding) Kích thước bộ lọc chính là kích thước cửa sổ, thường sẽ nhỏ hơn rấtnhiều so với kích thước ảnh Kích thước bộ lọc nên là số lẻ để vùng ảnh hưởng saukhi thực hiện sẽ cân bằng giữa các vùng lân cận Bước nhảy định nghĩa tốc độ nhảycủa bộ lọc theo hàng ngang và dọc Bước nhảy càng lớn thời gian thực hiện phép tíchchập càng nhanh Tuy nhiên, nếu bước nhảy quá lớn sẽ dẫn đến mất mát thông tin

(hyper-về mặt không gian Kích thước vùng đệm là kích thước số hàng được thêm vàoF Dokhi thực hiện phép tích chập, kết quả sẽ bị mất một vài cột ở ngoài rìa nên việc thêmvùng đệm giúp bảo toàn kích thước sau khi thực hiện phép tích chập

Khi làm việc với ảnh dưới dạng tensor như Hình 2.8, bộ lọc sẽ tự nhân bản theochiều sâu bằng với kích thước tensor ảnh Kết quả sau khi thực hiện phép tích chập

là một ma trận đặc trưng ảnh Với nhiều bộ lọc khác nhau sẽ cho ra nhiều ma trậnđặc trưng ảnh khác nhau Nhiệm vụ của mạng neuron tích chập là tìm tham số phùhợp trong mỗi bộ lọc

Hình 2.8: Trực quan hóa phép toán tích chập trên tensor

Trang 32

Kiến thức nền tảng 19

Lớp gộp

Lớp gộp (pooling layer) có nhiệm vụ chắt lọc những thông tin quan trọng từ đặctrưng ảnh đầu ra của lớp tích chập Ngoài ra việc giảm kích thước đặc trưng ảnh cònlàm giảm độ phức tạp khi tính toán, đặc biệt với ảnh đầu vào có kích thước lớn vàgóp phần kiểm soát hiện tượng quá khớp Đây là lớp không có tham số học

Có nhiều phương pháp để hiện thực lớp gộp Trong đó, thường được sử dụngtrong mạng neuron tích chập là gộp cực đại (max pooling) và gộp trung bình (averagepooling)

Quá trình hoạt động của lớp gộp phụ thuộc vào hai siêu tham số là kích thước cửa

sổ trượt và bước nhảy Bước nhảyk xác định tốc độ nhảy của cửa sổ trượt theo hàngngang và dọc Ví dụ Hình 2.9, hai siêu tham số bước nhảy bằng 2, kích thước cửa sổtrượt là 2

Hình 2.9: Ví dụ minh họa gộp cực đại và gộp trung bình5

Hàm kích hoạt

Tương tự ở các mô hình học sâu, bản chất của phép tích chập là biến đổi tuyếntính nên ta cần hàm kích hoạt phi tuyến để bẻ gãy sự tuyến tính của đầu ra Đây làhàm không có tham số học Điểm đặc biệt khi làm việc với ảnh là yêu cầu về độ thưa.Nói cách khác, ta sẽ tập trung xử lý theo vùng nhỏ và loại bỏ phần lớn tín hiệu ởvùng khác Do đó hàm ReLu được sử dụng rộng rãi trong mạng neuron tích chập vìtính thưa, bên cạnh tính đơn giản và giảm hiện tượng biến mất đạo hàm (vanishinggradient)

5 https://www.researchgate.net/figure/Example-of-max-pooling-and-average-pooling -operations-In-this-example-a-4x4-image-is_fig4_332092821

Trang 33

Kiến thức nền tảng 20

Lớp chuẩn hóa

Tương tự ở các mô hình học sâu, đầu ra ở mỗi lớp sẽ khác nhau về miền giá trị.Lớp chuẩn hóa sẽ làm nhiệm vụ chuẩn hóa các giá trị đầu ra Điều này làm tăng tốc

độ hội tụ của mạng Điểm khác biệt ở mạng neuron tích chập là đầu ra ở dạng tensor

Do đó ta sẽ có một vài phép chuẩn hóa đặc trưng (Hình 2.10) chuẩn hóa khối (batchnormalization), chuẩn hóa lớp (layer normalization), chuẩn hóa thể hiện (instancenormalization) hay chuẩn hóa nhóm (group normalization)

Hình 2.10: So sánh các lớp chuẩn hóa thường dùng trong mạng neuron tích chập6

Mạng neuron hồi quy (Recurrent Neural Network - RNN) là một mô hình có thểgiải quyết yêu cầu nhận dạng số lượng từ khổng lồ mà mô hình CNN đơn giản khônggiải quyết được Tức là khi chia ảnh ban đầu thành nhiều thành phần và nhận diệntừng phần nhỏ

RNN là nhóm các mạng neuron dùng để xử lý dữ liệu tuần tự có dạngx(1), x(2), , x(t)

với (t) chỉ thời điểm xuất hiện của đầu vào x, còn gọi là time-step Sự tuần tự nàyđặc trưng cho dữ liệu đến theo thời gian, chẳng hạn như văn bản, âm thanh Do tínhchất của luận văn, chúng ta biến đổi một chút lên dữ liệu hình ảnh (feature map) để

có dữ liệu tuần tự bằng cách cắt ảnh ban đầu thành nhiều ảnh con, đầu vào mới sẽ làchuỗi các ảnh con này

Hình 2.11: Ví dụ cắt ảnh thành những mảnh nhỏ theo chiều ngang Trên hìnhmỗi mảnh có chiều rộng là 4 pixel7

6 https://www.arxiv-vanity.com/papers/1803.08494/

7 https://towardsdatascience.com/build-a-handwritten-text-recognition-system-usi ng-tensorflow-2326a3487cd5

Trang 34

Kiến thức nền tảng 21

Sức mạnh của RNN đối với dữ liệu tuần tự đến từ việc nó kết hợp kết quả tínhđược ở thời điểm trước với đầu vào ở thời điểm hiện tại, điều này tạo ra tính “nhớ”tương tự như cách nhận thức của con người Khi quan sát thông tin đến theo thờigian, nhận thức của chúng ta luôn tự biết kết hợp thêm những thông tin đã tiếp thutrong quá khứ; chẳng hạn với Hình 2.11 nêu trên, khi nhìn riêng mỗi ô được đóngkhung đậm, ta chỉ thấy mỗi đường cong, không biết đó là chữ “i” hay “a” hay “o”,nhưng khi kết hợp với thông tin từ ô trước, ta biết đó là phần cuối của ký tự “i”.RNN sử dụng chung một đơn vị tính toán để lan truyền các tham số tính được

từ thời điểm trước (t − 1) sang thời điểm hiện tại (t) và kết hợp hai giá trị này để sửdụng như đầu vào của lần tính toán kế tiếp như sau:

h(t) = f (h(t−1), x(t); θ) (2.9)

Trong đó h(t) và x(t) lần lượt là hidden layer và đầu vào tại thời điểm t Hàm f làhàm kích hoạt vàθ đại diện cho các tham số được áp dụng lên h(t) và x(t) Công thứcnày tương đương với sơ đồ tính toán trong Hình 2.12

Hình 2.12: Sơ đồ tính toán đơn giản của một RNN theo công thức (2.9), giá trịkhởi đầu và output đã được lược bớt Bên trái là dạng thu gọn với vòng lặp, bênphải là dạng chi tiết có biểu diễn các time-step Sơ đồ tính toán cho một time-stepđược gọi là một cell (nguồn [6])

Đến đây, nếu như áp dụng θ lên h(t) và x(t) bằng một lớp tuyến tính (kết nối đầyđủ), ta có một mạng hồi quy đơn giản (Elman network [5] hay RNN thông thườnghay Vanilla RNN) như sau:

h(t)= σ(W x(t)+ U h(t−1)+ bh),

o(t)= σ(V h(t)+ bo)

(2.10)

Trong đó: x(t) là đầu vào tại thời điểm t,

h(t) là giá trị tính được ở hidden layer tại thời điểm t,

o(t) là output tại thời điểm t,σ(·) là hàm kích hoạt sigmoid (tanh),

W, U là bộ trọng số áp dụng lên hidden layer ở vòng lặp,

V là bộ trọng số áp dụng lên hidden layer để cho ra output,

bh, bo là các vector bias

Trang 35

Kiến thức nền tảng 22

2.3.1 Mạng neuron hồi quy thông thường

Xét mô hình được cho bởi công thức (2.10) Trong quá trình huấn luyện mô hìnhnày, ta thử tính đạo hàm của các trọng số cho quá trình lan truyền ngược Với hàmmất mát L(t) = f (o(t), o(t)ground truth), ta tính được đạo hàm theo W như sau:

Khi time-step t tăng dần lên, nếu trong U có các giá trị thuộc (−1, 1) thì giá trịgradient tương ứng mà ta sẽ cập nhật cho W sẽ càng nhỏ và bị triệt tiêu do cơ chếlưu trữ thông thường của máy tính Quá trình huấn luyện (cập nhật các trọng số) sẽ

bị dừng ngay lập tức và mạng neuron sẽ không học được gì cho những trọng số này.Ngược lại, nếu trong U có các giá trị lớn hơn 1 thì giá trị gradient tương ứng mà ta

sẽ cập nhật cho W sẽ mang giá trị rất lớn (bùng nổ) Quá trình huấn luyện sẽ khôngbao giờ dừng do các trọng số cứ được cập nhật liên tục mà không đến được điểm hội

tụ Do vậy mô hình muốn học được W thì hoặc ma trận U chỉ mang toàn giá trị 1,điều này làm hạn chế đi khả năng biểu diễn tri thức của mạng, hoặct chỉ được manggiá trị nhỏ Tính chất này của các mô hình RNN thông thường được gọi là trí nhớngắn hạn (Short-Term Memory) Nhu cầu cải tiến sự ngắn hạn này để đáp ứng đượcnhững bài toán mà đầu vào tại những thời điểm xa nhau vẫn có phụ thuộc lẫn nhau(Long-Term Dependency) khiến cho những mô hình RNN có khả năng “nhớ” xa hơn

ra đời, một trong những mô hình như thế có tên là Long Short-Term Memory

Long Short-Term Memory (LSTM) là một mô hình mạng neuron hồi quy, ra đời

để giải quyết những bài toán mà chuỗi đầu vào ở những thời điểm cách xa nhau vẫn có

sự phụ thuộc lẫn nhau (Long-Term Dependency) như đã trình bày ở Tiểu mục 2.3.1

Ý tưởng chính của LSTM là mở rộng thêm một con đường nữa cho đạo hàm khi lantruyền ngược giữa các cell để giá trị lỗi có thể đi được xa hơn mà không bị triệt tiêuhay bùng nổ Cho nên thay vì chỉ đơn thuần kết hợp thông tin từ cell trước và đầuvào, LSTM bổ sung thêm một vòng lặp nữa để cell có thể truyền đi trạng thái của bảnthân nó (self-loop) và con đường lan truyền lỗi được gọi là Constant Error Carousel

- CEC Vì có nhiều con đường để truyền đi thông tin, nên LSTM cần có thêm mộtthành phần nữa là các cổng kích hoạt Các cổng kích hoạt cần phải cho ra giá trị gần

1 để tiếp tục giữ thông tin truyền qua cell kế tiếp hoặc gần 0 để quên đi thông tin

Do đó, nó gồm một lớp tuyến tính và theo sau là hàm sigmoid Các cổng kích hoạthiển nhiên cần có là cổng đầu vào (input gate) và cổng đầu ra (output gate) Đối với

Trang 36

Kiến thức nền tảng 23

trạng thái cell, khi thông tin này được sử dụng ở đâu đó về sau, nó cần được quên

đi, vì vậy trong mạng cũng cần thêm một cổng kích hoạt nữa được gọi là cổng quên(forget gate)

Như vậy cấu trúc cell của LSTM được hình thành từ ba cổng gồm forget gate,input gate và output gate

• Forget gate: Có nhiệm vụ quyết định liệu thông tin của cell state ở time-step

t − 1 có cần được lưu trữ hay không Thông tin từ Current input và hidden stateđược chuyển qua hàm sigmoid với output nằm trong khoảng [0, 1] Do đó nếugiá trị output gần bằng 1, tức là thông tin cần được giữ lại còn nếu output gầnbằng 0 thì phải loại bỏ thông tin

• Input gate: Có nhiệm vụ cập nhật thông tin vào cell state Ở đây ta nhânoutput của Sigmoid với output của Tanh để quyết định thông tin của Currentinput và hidden state có nên được cập nhật vào cell state hay không

• Output gate: Có nhiệm vụ tính giá trị của hidden state cho time-step tiếp theo.Với việc sử dụng Forget gate và Input gate, ta có thể tính được giá trị mới củacell state và từ đó kết hợp với Current input và hidden state để tính giá trị củahidden state tiếp theo Ở đây giá trị của hidden state mới này cũng chính là giátrị Prediction

Như vậy, trong LSTM chúng ta có ba input và hai output là cell state và hiddenstate

Một mô hình LSTM với cổng forget sẽ có dạng như sau8:

Trang 37

Kiến thức nền tảng 24

Hình 2.13: Một cell LSTM

Dấu biểu thị phép tích theo phần tử tương ứng (entrywise product hay các têngọi khác là Hadamard product, Schur product ) Lưu ý rằng tất cả các toán hạng trongcác biểu thức trên đều ở dạng vector Cụ thể:

• x(t) ∈ Rd: vector đầu vào tại thời điểm t

• h(t)∈ Rh: vector trạng thái truyền đi giữa các cell tại thời điểm t

• c(t)∈ Rh: vector trạng thái của cell tại thời điểm t

• f(t), i(t), o(t) ∈ Rh: tương ứng là các vector kích hoạt cổng forget, đầu vào, outputtại thời điểm t

• W ∈ Rh×d, U ∈ Rh×d, b ∈ Rh: ma trận trọng số, vector bias mà mô hình cần học9

• d, h: tương ứng là số đặc trưng của đầu vào và của các trạng thái ẩn

• σg: hàm kích hoạt sigmoid dành cho các cổng

• σc: hàm kích hoạt tanh dành cho cell state

• σh: hàm kích hoạt tanh dùng cho hidden state

Bây giờ nhìn vào sự khác biệt giữa công thức cập nhật trạng thái cell của LSTM(2.14) và công thức (2.10), ta thấy LSTM có bổ sung thêm một lượng f(t) c(t−1).Cho nên tương tự như ở Tiểu mục 2.3.1, ta cần ước lượng đại lượng sau:

Trang 38

Kiến thức nền tảng 25

Đạo hàm của đại lượng bên trái được tính tương tự như trường hợp của RNNthông thường, và khi t tăng cũng sẽ gặp những vấn đề tương tự như thế Tuy nhiênvới đại lượng còn lại:

∂ f(t) c(t−1)

∂c(t−1) = f(t) (2.17)thì ta lại có f(t) là output của hàm sigmoid, có giá trị gần với 0 và 1 Do đó, nếu f(t)

cứ nhận giá trị gần bằng 1, thì mô hình sẽ có khả năng tránh triệt tiêu đạo hàm Haynói cách khác, nếu cổng forget còn cho phép đi qua thì thông tin còn được ghi nhớ.LSTM được thiết kế ra vì mục đích này, giải quyết bài toán triệt tiêu đạo hàm củaRNN

Tuy nhiên có hai điểm cần lưu ý đối với mô hình LSTM Thứ nhất, LSTM chỉ đượcthiết kế để giải quyết bài toán triệt tiêu đạo hàm chứ không hướng đến giải quyết bàitoán bùng nổ đạo hàm Mặc dù trên lý thuyết là như vậy nhưng trong hầu hết trườnghợp nó vẫn hoạt động tốt Thứ hai, LSTM chỉ giảm thiểu đáng kể bài toán triệt tiêuđạo hàm chứ không giải quyết hoàn toàn nó Vì đầu ra f(t) của hàm sigmoid khôngbao giờ đạt được giá trị 1 nên khi time-step t tăng lên thật lớn (vài nghìn) thì vấn đềtriệt tiêu đạo hàm vẫn xuất hiện như thường Thế nhưng đối với đặc trưng bài toánnhận diện chữ viết, time-stept sẽ không đạt đến giá trị đó

2.4.1 PyTorch

PyTorch là một thư viện mã nguồn mở dựa trên Python, được phát triển và duy trìbởi nhóm nghiên cứu về trí tuệ nhân tạo của Facebook Đây là một nền tảng nghiêncứu học sâu cực kỳ linh hoạt và mạnh mẽ, có khả năng thay thế NumPy1 để tậndụng sức mạnh của GPU PyTorch có khả năng tự động ghi lại các toán tử đã xử

lý vào một đồ thị tính toán trong bước lan truyền thuận (forward), sau đó tái thựcthi các toán tử này để tính toán đạo hàm một cách nhanh chóng ở bước lan truyềnngược (backward) Kỹ thuật này giúp PyTorch trở nên hiệu quả trong việc xây dựngmột mạng neuron vì nó giúp tiết kiệm thời gian nhờ vào việc tính toán đạo hàm cáctham số trước khi thực hiện bước forward Với phiên bản mới nhất PyTorch cung cấpkhả năng thực thi dựa trên đồ thị, huấn luyện phân tán, triển khai di động (mobiledeployment) và lượng tử hóa PyTorch được viết bằng ngôn ngữ C++, CUDA, vàPython, được tối ưu hoá hoàn toàn cho các tác vụ học sâu trên cả CPU và GPU như

xử lý hình ảnh, huấn luyện các mạng học sâu với khả năng huấn luyện song song trênnhiều GPU Với các tính năng phong phú, linh hoạt, và một cộng đồng hỗ trợ mạnh

mẽ, chúng tôi quyết định sử dụng PyTorch để làm nền tảng xây dựng và phát triển

hệ thống trong luận văn này

Trang 39

Hình 2.15: Logo PyQt11

10 https://icon-icons.com/icon/pytorch-logo/169823

11 https://www.logo.wine/logo/PyQt

Trang 40

CHƯƠNG 3 CÁC CÔNG TRÌNH LIÊN QUAN

Trong chương này, chúng tôi sẽ tiến hành khảo sát các công trình nghiên cứu vềbài toán nhận dạng ký tự quang học, cụ thể hơn là nhận dạng văn bản viết tay Như

đã được đề cập ở các chương trước, dữ liệu đầu vào của của bài toán nhận dạng chữviết tay là dữ liệu dạng chuỗi dưới dạng hình ảnh, chứa cả thông tin không gian vàthời gian Nên cách tiếp cận đối với bài toán này sẽ có nhiều điểm đáng lưu ý đối vớiđầu vào cũng như các mô hình hay thuật toán để xử lý

Mô hình Markov ẩn (Hidden Markov Model - HMM) [13] được giới thiệu vào cuốinhững năm 1960, nó đặc biệt phù hợp với các bài toán dạng mô hình tín hiệu tuần tự.Cho đến hiện nay, HMM đã được sử dụng rất thành công trong lĩnh vực nhận dạngtiếng nói (speech recognition), tính toán sinh học (computational biology), và xử lýngôn ngữ tự nhiên (Natural Language Processing - NLP) Chính những sự thành công

đó đã mở ra một hướng tiếp cận mới đối với HMM trong lĩnh vực nhận dạng ký tựquang học (Optical Character Recognition - OCR) Có thể thấy, thời gian gần đây

đã xuất nhiều công trình nghiên cứu nhận dạng ký tự quang học bao gồm cả chữ in

và chữ viết tay, trực tuyến (online) và ngoại tuyến (offline) Do bài toán nhận dạnggiọng nói và nhận dạng văn bản viết tay có mối tương quan cao, đó là cả hai đều xử

lý với dữ liệu dạng chuỗi có trình tự nhất định Bản thân văn bản có thể được coi là

dữ liệu tuần tự bằng cách nối một chuỗi các ký tự để tạo thành từ và câu, chúng ta

có thể thấy rõ ràng hơn qua việc hình dung về sự chuyển động của ngòi bút trong khiviết Do đó, cách tiếp cận này bước đầu đã phù hợp và sau đó trở nên phổ biến tronglĩnh vực nhận dạng dữ liệu dạng chuỗi nói chung cũng như nhận dạng ký tự quanghọc nói riêng Mặc dù là vậy nhưng không giống hoàn toàn với nhận dạng tiếng nói,

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

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w