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: Nhận diện chữ viết tay tiếng Việt

52 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

Nội dung

Trang 1

-o0o -

697+&DRĈӭc Hùng (1710114)

Trang 2

-o0o -

Trang 3

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: Cao Đức Hùng MSSV: 1710114 NGÀNH: KHMT LỚP: MT17KHTN

3 Ngày giao nhiệm vụ luận án: 03/09/20154 Ngày hoàn thành nhiệm vụ: 20/12/2015

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

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

Ngày tháng năm

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

PGS.TS Quản Thành Thơ

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

Người duyệt (chấm sơ bộ): _Đơn vị: _Ngày bảo vệ: Điểm tổng kết: _Nơi lưu trữ luận án: _

Trang 4

-Đề tài giải quyết một bài toán có tính thực tế cao

-Sinh viên đã nghiên cứu nhiều kiến thức lý thuyết, các mô hình học sâu liên quan cùng một số kiến thức về xử lý ảnh.

-Sinh viên đã đưa ra một số hướng tiếp cận nhằm tinh chỉnh mô hình để có được kết quả tốt hơn so với mô hình gốc.

Trang 5

2 Đề tài: Phát triển hệ thống nhận dạng chữ viết tay tiếng Việt

3 Họ tên người hướng dẫn/phản biện: ThS Lê Đình Thuận4 Tổng quát về bản thuyết minh:

- Sinh viên xây dựng thành công chương trình để demo kết quả.7 Những thiếu sót chính của LVTN:

- Phần mô tả kiến trúc của các hướng tiếp cận trong báo cáo còn sơ sài - Trình tự trình bày các nội dung trong báo cáo còn chưa tốt Một số lỗi sai

chính tả.

- Nguồn tài liệu tham khảo chưa phù hợp.

8 Đề nghị: Được bảo vệ □Bổ sung thêm để bảo vệ □Không được bảo vệ □9 3 câu hỏi SV phải trả lời trước Hội đồng:

10 Đánh giá chung (bằng chữ: giỏi, khá, TB):Điểm : 8.3/10Ký tên (ghi rõ họ tên)

ThS Lê Đình Thuận

Trang 6

Em xin cam đoan rằng, ngoại trừ các kết quả tham khảo từ các công trình có liên quan khác đãghi rõ trong đề cương luận văn, các nội dung trình bày trong đề cương luận văn này là do chínhem thực hiện và chưa có phần nội dung nào được nộp để lấy bằng cấp ở một trường khác.

Trang 7

Đầu tiên, em xin gửi lời cảm ơn chân thành nhất tới PGS TS Quản Thành Thơ, người đã hướngdẫn em thực hiện đề cương, đồng thời tạo điều kiện tham gia nhóm nghiên cứu khoa học trongmột năm qua Xin cảm ơn thầy đã hướng dẫn tận tình và truyền đạt kiến thức để em có thể hoànthành tốt luận văn này.

Xin gửi lời cảm ơn tới các thầy cô Trường Đại học Bách Khoa, đặc biệt là các thầy cô bộ môntrong khoa Khoa học và Kĩ thuật Máy tính đã truyền đạt những kiến thức quý báu trong nhữngnăm học qua.

Cuối cùng, em xin cảm ơn gia đình, bạn bè và những người đã giúp đỡ và hỗ trợ em trong thời gianhoàn thành chương trình bậc Đại học.

Trang 8

Hiện nay, công nghệ ngày càng phát triển, các dữ liệu dần được số hóa và lưu trữ đám mây, giúpcho công việc được diễn ra nhanh chóng và thuận lợi hơn Nhưng trên thực tế, văn bản chữ viếttay còn được sử dụng nhiều, và việc số hóa cũng tốn tài nguyên và thời gian Vì vậy, đề tài sẽ đềxuất một mô hình có thể nhận diện chữ viết tay tiếng Việt, đồng thời đề xuất một luồng xử lý cácvăn bản viết tay để đọc thông tin từ văn bản một cách nhanh chóng.

Trang 9

Danh sách hình vẽ

2.1 Hình ảnh minh họa cấu tạo của một neuron sinh học 12

2.2 Hình ảnh minh họa cấu tạo của một perceptron 13

2.3 Hình ảnh mạng neuron đa tầng với 2 tầng ẩn 14

2.4 Cách thức lấy feature map bằng kernel 15

2.5 Ví dụ lấy feature map với padding = 1 16

2.6 Max pooling với filter = 2x2 và stride = 2 16

2.7 Average pooling với filter = 2x2 và stride = 2 16

2.8 Cấu trúc của mạng neuron hồi quy 17

2.9 Các kiểu hoạt động của mạng neuron hồi quy 17

2.10 Bên trong một module RNN 18

2.11 Bên trong một module LSTM 19

2.12 Cổng quyết định thông tin cần bỏ 19

2.13 Cổng quyết định thông tin được thêm 19

2.14 Cổng quyết định đầu ra 20

2.15 Kiến trúc mô hình Sequence-to-sequence 20

2.16 Minh họa sử dụng Attention để lấy độ tương quan trong câu được dịch máy 21

2.17 Kết quả khi sử dụng beam search trong seq2seq 22

3.1 Mô hình dự đoán trong bài báo của Alex Graves 23

3.2 Kết quả của mô hình dự đoán nét chữ, sau khi đưa qua tầng phân phối độ dày 24

3.3 Mô hình CRNN của Quoc Pham 25

3.4 Feature extracting 26

3.5 Connectionist Temporal Classification loss 26

3.6 Character-level seq2seq 27

3.7 Beam search 28

3.8 Mô hình Image-to-markup generation 29

4.1 Hình minh họa dữ liệu địa chỉ gốc 30

4.2 Hình minh họa dữ liệu địa chỉ sau khi đưa qua bước tiền xử lý 30

4.3 Ví dụ sử dụng elastic transform để làm méo bức ảnh 31

4.4 Kết quả cuối cùng sau khi áp dụng các phương pháp biến đổi ảnh 31

4.5 Kết quả của mô hình sinh chữ viết tay RNN 32

4.6 Mô hình nhận diện chữ viết tay 33

4.7 Nhãn được sử dụng trong huấn luyện 35

Trang 10

5.1 Ví dụ về edit distance 36

5.2 Minh họa kết quả 37

5.3 Kết quả tổng hợp 38

6.1 Deployment diagram 41

6.2 Activity diagram: Vẽ khung chứa chữ viết tay 42

6.3 Activity diagram: Nhận diện chữ viết tay 43

6.4 Mockup: Vẽ khung chữ viết tay 44

6.5 Nhận diện chữ viết tay 45

Trang 11

Danh sách bảng

5.1 Thông số huấn luyện 385.2 Thời gian chạy 38

Trang 13

4.1.1 Tập dữ liệu địa chỉ 30

4.1.2 Tập dữ liệu sinh thêm bằng phương pháp biến đổi ảnh 31

4.1.3 Tập dữ liệu sinh thêm bằng RNN 32

4.3.2.1 Thông số huấn luyện 34

4.3.3 Môi trường huấn luyện 35

4.3.4 Dữ liệu 35

4.3.5 Nhãn huấn luyện 35

5 Đánh giá mô hình 365.1 Đánh giá 36

5.1.1 Tập dữ liệu 36

5.1.2 Cách thức đo lường 36

5.1.3 Môi trường đánh giá 37

5.2 Kết quả 37

5.2.1 Minh họa kết quả 37

5.2.2 Chi tiết số liệu 38

5.2.2.1 Thông số huấn luyện 38

5.2.2.2 Thời gian chạy 38

5.2.2.3 Độ chính xác 38

5.3 Nhận xét 39

6 Ứng dụng 406.1 Windows Presentation Foundation 40

6.2 Tổng quan ứng dụng 40

6.3 Mô tả ứng dụng 41

6.3.1 Deployment diagram 41

6.3.2 Activity diagram 42

6.3.2.1 Vẽ khung chứa chữ viết tay 42

6.3.2.2 Nhận diện chữ viết tay 43

Trang 14

6.4 Mockup 44

6.4.1 Vẽ khung chứa chữ viết tay 44

6.4.2 Nhận diện chữ viết tay 45

7 Tổng kết 467.1 Tổng quan luận văn 46

7.1.1 Trong giai đoạn đề cương 46

7.1.2 Trong giai đoạn luận văn 46

7.2 Giới hạn và định hướng tương lai 46

7.2.1 Giới hạn 46

7.2.2 Định hướng tương lai 46

Trang 15

Chương 1 Tổng quan 1.1Giới thiệu đề tài

Hiện nay, với sự phát triển của công nghệ, tất cả các dữ liệu đang dần được số hóa và đưa lên lưutrữ đám mây Điều này giúp cho việc truy cập hay tìm kiếm dữ liệu được tăng tốc đáng kể Mộtví dụ là hiện nay, nhà nước ta đã bắt đầu chuyển qua thẻ căn cước công dân có gắn chip, với mụcđích sẽ nhận diện và truy cập dữ liệu nhanh chóng và tiện lợi hơn bao giờ hết Các nước trên thếgiới cũng đã sử dụng thông tin số hóa để tăng tốc và phát triển công việc.

Tuy nhiên, trên phạm vi nước ta, văn bản viết tay vẫn được sử dụng nhiều Các loại văn bản viếttay có thể kể đến là: hóa đơn, biểu mẫu, đơn viết tay, Văn bản viết tay tại nước ta vẫn phổ biếndo hạn chế về công nghệ ở một số vùng, đồng thời do nhiều người vẫn chưa có đủ kiến thức về côngnghệ để sử dụng Các văn bản viết tay dạng biểu mẫu hiện tại sẽ có thể được trích xuất nội dungđể số hóa và đưa lên lưu trữ đám mây Tuy nhiên, hiện không có cách nào để tự động hóa việc này,mà phải dùng sức người nhập lại từng thông tin lên máy tính.

Do đó, em xin đề xuât một hệ thống có thể nhận diện chữ viết tay tiếng Việt Đề tài sẽ chú trọngvào huấn luyện một mô hình học máy để nhận diện chữ viết tay tiếng Việt Đồng thời, xây dựngmột luồng xử lý các văn bản viết tay theo mẫu để có thể tự động nhận diện và tiền xử lý văn bảnviết tay có mẫu, sau đó nhận diện được các chữ viết tay tiếng Việt trên đó.

Trang 16

• Về form văn bản cố định, sẽ có luồng tiền xử lý văn bản trước khi đưa qua mô hình nhậndiện chữ tiếng Việt.

1.3Đóng góp của đề tài1.3.1Về lý thuyết

Về mặt lý thuyết, luận văn đã tìm hiểu về:

• Tìm hiểu về các lý thuyết về machine learning dùng cho việc xử lý ảnh và xử lý ngôn ngữ tựnhiên.

• Tìm hiểu về các mô hình nhận diện chữ viết tay hiện tại Một số mô hình có thể kể đến làVGG16 và Transformer.

• Tìm hiểu về các mô hình dịch máy như OpenNMT.• Tìm hiểu về một số mô hình ngôn ngữ tiếng Việt.

Qua đó, luận văn đề xuất được một số phương pháp nhận diện chữ viết tay tiếng Việt phù hợp:• Sử dụng mô hình dịch máy để dịch ra các chữ cái không dấu, sau đó sẽ sử dụng mô hình sửa

lỗi chính tả để thêm dấu cho câu.

• Sử dụng mô hình dịch máy để dịch ra các chữ cái có dấu.

1.3.2Về thực tế

Về thực tế, luận văn đã đạt được những điều sau:

• Huấn luyện được một mô hình nhận diện chữ viết tay tiếng Việt có dấu.

• Mô hình được huấn luyện có thể nhận diện chữ viết tay với thời gian cho phép (10s/ảnh).• Mô hình được huấn luyện có độ chính xác tốt trên những chữ không quá xấu Độ chính xác

đạt được khi test đạt 90%.

Song song với mô hình, luận văn cũng viết được một phần mềm demo với khả năng:• Cho phép người dùng đánh dấu các khung có chứa chữ viết tay tiếng Việt.

• Có khả năng tách nhiều văn bản pdf để lấy các phần đã đánh dấu chứa chữ viết tay tiếngViệt.

• Nhận diện được chữ viết tay tiếng Việt trên một hoặc nhiều văn bản pdf.

Trang 17

Chương 2

Kiến thức nền tảng 2.1Tổng quan về mạng neuron2.1.1Mạng neuron

Mạng neuron nhân tạo được lấy cảm hứng và xây dựng nên từ mạng neuron sinh học, vì vậy mộtmạng neuron nhân tạo cũng bao gồm nhiều neuron đơn lẻ, được gọi là perceptron Tuy nhiên, đểcó thể nắm được cách thức hoạt động của một perceptron, trước hết chúng ta cần phải hiểu đượcmột neuron hoạt động như thế nào.

Cấu tạo của một neuron được minh họa bằng hình 2.1 Một neuron sẽ nhận các tín hiệu điện (mứcđộ mạnh yếu khác nhau) có chứa thông tin từ các khớp thần kinh (synapse) của một hay nhiềuneuron khác thông qua các đuôi gai (dendrit) Các giá trị tín hiệu đầu vào sẽ được tích tụ tại trongthân neuron (cell body) Tại đây, neuron sẽ tiến hành thực hiện một quá trình tính toán bao gồmhai bước.

• Bước 1, neuron sẽ thực hiện phép cộng (summation) để lấy tổng giá trị các tín hiệu điện.• Bước 2, neuron sẽ so sánh tổng tìm được ở Bước 1 với một ngưỡng cụ thể (threshold).Nếu vượt quá ngưỡng trên, neuron sẽ phát ra một tín hiệu điện, tín hiệu này được truyền qua sợitrục (axon) để tới các khớp thần kinh Lúc này, neuron đó được gọi là đang kích hoạt (activation).

Hình 2.1: Hình ảnh minh họa cấu tạo của một neuron sinh học.

Trang 18

Một neuron nhân tạo (perceptron) được cấu tạo bao gồm các thành phần như hình 2.2:

Hình 2.2: Hình ảnh minh họa cấu tạo của một perceptron.Trong đó:

• Các giá trị x1, x2, , xn là các tín hiệu đầu vào;

• Các giá trị w1, w2, , wnlà các trọng số của các nhánh tương ứng truyền giá trị x1, x2, , xn.Giá trị w0 được gọi là giá trị bias, có thể nhận một giá trị bất kỳ khác 0 Bộ trọng số này làcách để perceptron mô tả độ mạnh yếu của tín hiệu điện trong neuron sinh học;

• Giá trị a được tính là w0cộng với tổng trọng số của tập tín hiệu đầu vào (tương ứng với bướcsummation) Giá trị a này sẽ được dùng để tính toán hàm kích hoạt ft(a);

• Kết quả của hàm ft(a) sẽ được so sánh với một ngưỡng (threshsold) nhằm xác định perceptroncó được kích hoạt hay không Thông thường, giá trị ngưỡng này sẽ được chọn là 0 để tiệntrong việc tính toán Ngoài ra, người ta thường dùng cặp số (1,0) và (1,-1) để đại diện chotrạng thái kích hoạt/không kích hoạt của perceptron;

Một điểm lưu ý là perceptron hoạt động dựa trên các phép tính toán số học Vì vậy, các tín hiệuđầu vào cũng như các trọng số đều cần được biểu diễn dưới dạng các chữ số.

Trang 19

2.1.3Mạng neuron đa tầng

Có thể thấy rằng, một perceptron đã có thể được coi là một mạng neuron, tính toán kết quả dựatrên tín hiệu đầu vào và kết đầu đầu ra là perceptron đó có được kích hoạt hay không Trong thựctế, với chỉ một perceptron thì đã có thể giải quyết được bài toán phân loại tuyến tính Tuy nhiên,đối với các bài toán phức tạp hơn hoặc yêu cầu phân loại phi tuyến (ví dụ như dùng mạng neuronđể mô phỏng phép XOR) thì một perceptron không thể đáp ứng được.

Để giải quyết vấn đề trên, chúng ta sử dụng nhiều perceptron được sắp xếp thành các tầng khácnhau Các perceptron ở tầng sau đều nối tới tầng trước (fully-connected) Một mạng neuron nhưvậy được gọi là mạng neuron đa tầng [Tiệ17].

Một mạng neuron đa tầng điển hình thường bao gồm:

1 Tầng dữ kiện (input layer): Là tầng đầu tiên của mạng,thể hiện các dữ kiện đầu vào;2 Tầng kết quả (output layer): Là tầng nằm ở vị trí cuối cùng, thể hiện kết quả đầu ra của

3 Tầng ẩn (hidden layer): Là tầng nằm ở giữa, chịu trách nhiệm trong việc tính toán;

Lưu ý rằng, một mạng neuron đa tầng chỉ có một tầng dữ kiện và một tầng kết quả Tuy nhiêncó thể có một hoặc nhiều tầng ẩn nằm ở giữa, ví dụ như một mạng neuron với hai tầng dưới đây(hình 2.3):

Hình 2.3: Hình ảnh mạng neuron đa tầng với 2 tầng ẩn.

Trang 20

2.2Mạng neuron tích chập2.2.1Tổng quan

Mạng neuron tích chập (Convolutional Neural Network) là một mạng neuron thường xuyên đượcsử dụng để nhận dạng và phân loại ảnh Về cơ bản, mạng neuron này cũng giống các mạng neuralnetwork khác, nhưng có một vài cải tiến là Convolutional và Pooling

2.2.2Convolutional Layer - Tầng tích chập

Tầng tích chập là cốt lõi của mạng neuron tích chập Tầng này giống với những mạng khác làhidden layer, nhưng khác ở chỗ tầng tích chập là một tập các feature map (ma trận đặc tính) - làmột bản scan của input nhưng đã được trích xuất ra các đặc tính cụ thể Để có thể trích xuất đượccác đặc tính đấy, tầng tích chập sử dụng kernel (nhân) để quét ma trận input, từ trái qua phải vàtừ trên xuống dưới Tại mỗi ô quét được, mạng sẽ nhân tương ứng từng giá trị của input và từnggiá trị của kernel và lấy tổng, đưa qua activation function như ReLU, sigmoid, Kết quả sẽ là mộtsố cụ thể, và tập hợp các số này trên các lần quét sẽ được một feature map Hình 2.4 minh họamột bước để trích xuất feature map.

Hình 2.4: Cách thức lấy feature map bằng kernel

Trang 21

Padding, hay zero-padding, là việc bọc thêm một ô 0 xung quanh input, sau đó mới áp dụng quét.Padding = 1 thì sẽ thêm 1 ô 0, padding = 2 sẽ thêm 2 ô và tương tự.

Hình 2.5: Ví dụ lấy feature map với padding = 1

Pooling hoạt động gần giống với convolutional, sử dụng một cửa sổ trượt để quét qua feature map,chọn ra một giá trị nằm trong cửa sổ trượt Một số cách pooling thường thấy là max pooling (hình2.6) hoặc average pooling (hình 2.7) Mục đích của pooling là để giảm tham số (hyperparameter),qua đó giảm thời gian tính toán, tránh bị overfitting.

Hình 2.6: Max pooling với filter = 2x2 và stride = 2

Hình 2.7: Average pooling với filter = 2x2 và stride = 2

Trang 22

2.3Mạng neuron hồi quy2.3.1Tổng quan

Mạng neuron hồi quy (Recurrent Neural Network) [Ami] là một nhánh mạng neuron Đối với cácmạng neuron thông thường, đầu vào và đầu ra của chúng là hoàn toàn độc lập với nhau Cấu trúcnày sẽ không phù hợp với một số bài toán, đặc biệt là khi xử lý dữ liệu dạng chuỗi.

Mạng neuron hồi quy là một mạng neuron chứa một vòng lặp, cho phép đầu ra của neuron trướctrở thành đầu vào của neuron sau Có thể coi một mạng neural hồi quy là một chuỗi những mạngcon giống hệt nhau, mỗi mạng sẽ truyền thông tin nó vừa xử lý cho mạng phía sau nó Đầu vào làmột chuỗi có liên hệ về thông tin với nhau và thông tin của chúng sẽ được giữ lại để xử lý sự kiệntiếp theo trong mạng neural hồi quy Vì tính chất này, mạng neural hồi quy phù hợp cho nhữngbài toán với dữ liệu đầu vào dưới dạng chuỗi với các sự kiện trong chuỗi có mối liên hệ với nhau.

Hình 2.8: Cấu trúc của mạng neuron hồi quy

2.3.2Các kiểu hoạt động của mạng neuron hồi quy

Mạng neuron hồi quy có các kiểu hoạt động riêng biệt, phù hợp với các bài toán khác nhau Hình2.9 thể hiện các kiểu hoạt động chính Đầu vào có màu đỏ, đầu ra là màu xanh biển và thông tintrao đổi trong các mạng con có màu xanh lá:

Hình 2.9: Các kiểu hoạt động của mạng neuron hồi quy

Trang 23

Từ trái sang phải [Fen]:

• one-to-one: Đầu vào và đầu ra có kích thước cố định Phù hợp với bài toán nhận diện ảnh(Image Classification)

• one-to-many: Đầu vào cố định và đầu ra là một chuỗi các vector Sử dụng cho bài toán tạotiêu đề cho ảnh (Image Captioning)

• many-to-one: Đầu vào là chuỗi vector và đầu ra cố định Bài toán được ứng dụng nhiều làphân loại ngữ nghĩa (Sentiment Classification)

• many-to-many: Đầu vào và đầu ra đều dạng chuỗi Bài toán dịch máy (Neural Translation)• many-to-many: Đầu vào và đầu ra đều dạng chuỗi, và có độ dài bằng nhau Bài toán phân

loại và gắn nhãn video (Video Classification)

2.3.3Mạng bộ nhớ dài-ngắn - LSTM

Kiến trúc RNN có một nhược điểm: Nếu kích thước chuỗi vector đầu vào x là rất lớn thì việc tínhtoán vector trạng thái ẩn h sẽ phải đi qua nhiều lớp tính toán Trong quá trình backpropagate đểcập nhật các tham số weights, vì việc đạo hàm phải đi qua nhiều lớp tính toán của vector h nêncác giá trị cập nhật(gradient) cũng sẽ lớn dần lên, việc cập nhật các weights không theo ý muốnvà khiến mạng không ổn định Nói cách khác, RNN sẽ chỉ học được các thông tin ở gần và bỏ quacác thông tin ở xa Vì vậy, các biến thể nâng cấp của mạng neuron hồi quy đã ra đời để khắc phụcvấn đề này Một trong số đó là LSTM - Long Short Term Memory [Ola15].

LSTM được thiết kế để tránh được vấn đề phụ thuộc xa (long-term dependency) Việc nhớ thôngtin trong suốt thời gian dài là đặc tính mặc định của chúng, chứ ta không cần phải huấn luyện nóđể có thể nhớ được Tức là ngay nội tại của nó đã có thể ghi nhớ được mà không cần bất kì canthiệp nào.

LSTM cũng mang đặc tính của RNN, là dạng module lặp đi lặp lại Tuy nhiên, đối với RNN thìcác module này rất đơn giản, thường là một tầng tanh (hình 2.10) Trong khi đó, các module củaLSTM là 4 tầng ẳn và tương tác với nhau rất đặc biệt (hình 2.11).

Hình 2.10: Bên trong một module RNN

Trang 24

Hình 2.11: Bên trong một module LSTM

Ý tưởng cốt lõi của LSTM là trạng thái tế bào (cell state) Nó chạy xuyên suốt các module và chỉtương tác tuyến tính đôi chút, vì vậy các thông tin được truyền đi thông suốt và không sợ bị thayđổi LSTM còn có khả năng thêm vào hoặc quên đi các thông tin ở trạng thái tế bào, được điềuchỉnh bởi các cổng (gate) Mỗi LSTM có 3 cổng như vậy để điều chỉnh trạng thái tế bào, gồm:

• Bước 1: quyết định thông tin cần bỏ từ trạng thái tế bào

Hình 2.12: Cổng quyết định thông tin cần bỏ

• Bước 2: quyết định thông tin mới đi vào trạng thái tế bào

Hình 2.13: Cổng quyết định thông tin được thêm

Trang 25

• Bước 3: quyết định đầu ra

Hình 2.14: Cổng quyết định đầu ra

2.3.4Sequence to Sequence

Mô hình Sequence to Sequence (seq2seq) [SVL14], hay còn được gọi là mô hình Encoder-Decoder, làmột trong những ứng dụng của RNN được trình bày ở trên Trong mô hình này, cả input và outputđều là những sequences (dữ liệu dạng chuỗi, ví dụ như đoạn văn bản, đoạn âm thanh), do đó rấtphù hợp với các bài toán như Machine Translation, Auto Speech Recognition, Optical CharacterRecognition, Các bài toán này đều xử lí trên dữ liệu dạng chuỗi, do đó không thể dùng các kiếntrúc Deep Neural Networks (DNN) thông thường như MLP.

Mô hình Sequence to Sequece (được viết gọn thành seq-to-seq hoặc seq2seq), bao gồm 2 thànhphần chính là Encoder và Decoder Encoder có nhiệm vụ biến đổi input thành các biểu diễn trunggian (thường gọi là các context vector) Decoder có nhiệm vụ biến đổi các context vector thành cácouput của bài toán Thông thường cả Encoder và Decoder đều là các lớp RNN (hoặc LSTM) chồnglên nhau.

Hình 2.15: Kiến trúc mô hình Sequence-to-sequence

Trang 26

Mục đích của mô hình này là tính xấp xỉ xác suất:p (y1, , ym| x1, , xn)

với (x1, , xn) là chuỗi input và (y1, , ym) là chuỗi output của bài toán Có thể thấy độ dài củainput và output có thể khác nhau, tức là m 6= n Để tính được xác suất này, đầu tiên, mô hình sẽdùng Encoder để tính ra vector v của chuỗi input, v có số chiều cố định và có thể xem như là vectorbiểu diễn của toàn bộ chuỗi input và cũng chính là hidden state cuối cùng của Encoder Sau đó môhình sẽ dùng v để khởi tạo giá trị hidden state ở Decoder và lần lượt tính xác suất của y1, , ym:

Một cơ chế giúp cho mô hình có thể chú trọng vào những phần quan trọng (word từ source vớiword từ target) là Attention [Cha+21] Thay vì chỉ sử dụng context vector, sử dụng tất cả cácoutput của từng cell trên từng timestep, kết hợp với hidden state của từng cell để tổng hợp ra mộtattention vector Attention vector này sẽ được sử dụng làm đầu vào của decoder.

Hình 2.16 là minh họa của một attention model cho việc dịch máy:

Hình 2.16: Minh họa sử dụng Attention để lấy độ tương quan trong câu được dịch máy

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

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

TÀI LIỆU LIÊN QUAN