Mạng nơ-ron hồi quy (Recurrent Neural Network)

Một phần của tài liệu 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 ngoại ảnh cho ảnh có độ phân giải thấp (Trang 27 - 44)

2.2. Cơ sở lý thuyết

2.2.2. Mạng nơ-ron hồi quy (Recurrent Neural Network)

Mạng nơ-ron hồi quy [13] (Recurrent Neural Network - RNN) là một loại mang neural thường được sử dụng trong việc xử lý dtr liệu tuần tự như chuỗi văn bản,

âm thanh, hoặc dữ liệu chuỗi thời gian.

Cấu trúc của RNN cho phép nó "nhớ" thông tin từ các bước trước đó trong chuỗi và áp dụng thông tin này vào các bước sau đó. Điều này làm cho RNN trở nên hiệu quả khi làm việc với đữ liệu có tính tuần tự, vì nó có khả năng xử lý các dãy dữ liệu mà mỗi phan tử trong đó phụ thuộc vào các phan tử trước đó.

Cấu trúc cơ bản của RNN bao gồm một loạt các nơ-ron được kết nối theo chuỗi. Mỗi nút trong RNN nhận đầu vảo từ nút trước đó cùng với đầu vảo hiện tại. Điều này tạo ra một chuỗi các "trạng thái ấn" (hidden states) mà mỗi trạng thái chứa thông tin kết hợp từ các bước trước đó và thông tin hiện tại.

Một trong những vấn đề của RNN gốc là van đề biến mat và van đề vượt quá khoảng cách. Trong quá trình huấn luyện, khi chuỗi trở nên dài, RNN có thể gặp khó khăn trong việc "nhớ" thông tin từ các bước xa trong quá khứ hoặc trong việc truyền

dữ liệu qua nhiêu bước một cách hiệu quả.

Dé giải quyết những hạn chế này, các biến thé của RNN đã được phát triển

như Long Short-Term Memory networks (LSTMs) và Gated Recurrent Units

(GRUs). Những biến thé này có kha năng giữ va sử dung thông tin từ qua khứ một cách hiệu quả hơn, giúp cải thiện khả năng học và tổng quát hóa của mô hình trong

xử lý dữ liệu tuần tự.

16

Câu trúc của RNN được mô tả như sau:

RNN là một mạng neural có cấu trúc lặp lại. Mỗi nơ-ron trong RNN có thê kết nối với các neural trong cùng một lớp hoặc các lớp trước đó. Điều này cho phép RNN lưu giữ thông tin từ các phan tử trước đó trong chuỗi và sử dụng chúng dé xử lý phần

tử hiện tại.

Cấu trúc chung của một RNN gồm có 3 thành phan chính:

1. Lớp đầu vào (input layer): Lớp này nhận dit liệu đầu vào từ chuỗi.

2. Lớp ấn (hidden layer): Lớp này thực hiện các phép tinh dé xử lý dữ liệu đầu

vào.

3. Lớp đầu ra (output layer): Lớp này tạo ra kết qua dự đoán.

Hình 6. Cau trúc của RNN

Cách hoạt động của RNN

e Lớp đầu vào nhận dữ liệu đầu vào từ chuỗi.

e Lớp ân thực hiện các phép tính dé xử ly dit liệu đầu vào. Các phép tính này có

thể bao gồm các phép tính cộng, nhân, hàm kích hoạt, v.v.

e Lớp đầu ra tạo ra kết quả dự đoán.

Các phép tính trong RNN:

Phép cộng: Phép cộng được sử dụng đê cộng các giá tri của các nơ-ron trong cùng một lớp hoặc các lớp khác nhau.

17

Phép nhân: Phép nhân được sử dụng đê nhân các giá tri của các nơ-ron với các

trọng sô.

Hàm kích hoạt: Hàm kích hoạt được sử dụng dé biến đôi giá tri của các no-

ron.

2.2.3. M6 hinh Sequence-to-Sequence

Mô hình Seq2Seq được công bố lần đầu tiên vào năm 2014 bởi Ilya Sutskever,

Oriol Vinyals, và Quoc V. Le trong bài báo "Sequence to Sequence Learning with

Neural Networks" [14]. Bài báo này đã được xuất bản trên tạp chí Advances in Neural

Information Processing Systems (NIPS).

Mô hình Seq2Seq được phat triển dựa trên các nghiên cứu trước đây về mạng nơ-ron hồi quy (RNN). Nó đã đạt được những thành công đáng ké trong các ứng dụng

như dịch máy, nhận dạng giọng nói, và đặc biệt nó còn được sử dụng cho bai toán Scene Text Recognition.

Trong mô hình Seq2Seq, bộ encoder là phần của mô hình có nhiệm vụ anh xa chuỗi token đầu vào vào một không gian vector cố định, tạo ra vector trạng thái an biểu dién cho chuỗi đầu vào. Day là quá trình mã hóa thông tin từ chuỗi đầu vào. Bộ decoder, ngược lại, được sử dụng để tạo ra chuỗi token ở ngôn ngữ đích dựa trên vector trạng thái ấn từ bộ encoder. Bộ Encoder va Decoder là các mô hình RNN, thông thường, các mô hình cải tiến của RNN như GRU và LSTM sẽ được sử dụng

cho cả Encoder và Decoder.

18

Decoder!

'

NULL Er liebte zu essen

Hình 7. Kiến trúc của mô hình Sequence-to-Sequence

Trong mô hình seq2seq, có hai thành phan quan trọng là encoder và decoder, chỉ tiết như sau:

Encoder: Giả sử chúng ta có một chuôi đâu vào là x = x,,...,x7 và mỗi z;là một

phân tử trong chuoi. Mục tiêu của Encoder là chuyên đôi chuỗi này thành một vector

trạng thái ân duy nhất h, biêu điễn toàn bộ thông tin của chuỗi đầu vào.

Decoder: Bộ giải mã được sử dụng để 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 an, tại mỗi bước mã hóa, một kí tự sẽ được tao

ra, bước giải mã sẽ lặp lại cho đến khi gặp kí tự kết thúc hoặc chuỗi đầu ra đạt đến độ đài quy định trước. Hàm xác xuất có điều kiện được tính theo công thức sau:

m

PCV Vm Ì X1, --,Xn ) = | [oo |S,1,...,¿—1 )

t=1

2.2.4. M6 hinh Attention

2.2.4.1 Tổng quan mô hình Attention

Một van dé dé gặp phải khi sử dụng mô hình seq2seq là nó phụ thuộc rất nhiều vào ngữ cảnh được biéu diễn bởi vector ân, đầu ra của bộ mã hóa. Điều này có nghĩa

là nếu chuỗi đầu vào là quá dài, thì vector ngữ nghĩa ở đầu chuỗi có thé bị mat ở cuối

chuỗi.

19

Dé giải quyét van dé nay, nhóm nghiên cứu đã đê xuat sử dụng mô hình

Attention[12]. Mô hình Attention cho phép bộ giải mã truy cập vào tat cả các vector

trạng thái ân của bộ mã hóa. Điêu này giúp bộ giải mã có được thông tin về toàn bộ

ngữ cảnh của chuỗi đầu vào, ngay cả khi chuỗi đó là quá dải.

Kiến trúc của mô hình Attention tương tự như mô hình seq2seq truyền thống,

nhưng có một sô thay đôi sau:

e Bộ giải mã có một bộ chuyên đôi (attention mechanism) mới, được sử dụng

đê tính toán mức độ quan trọng của môi vector trạng thái ân của bộ mã hóa.

e B6 giải mã sử dụng các vector trạng thái ân của bộ mã hóa, được trọng sô bởi

bộ chuyên đôi, dé tạo ra vector biêu diễn dau ra.

Ưu điểm của mô hình Attention

ô Mụ hỡnh Attention cú một số ưu điểm so với mụ hỡnh seq2seq truyền thống,

bao gôm:

ô Kha năng xử lý cỏc chuỗi đầu vào dài hơn.

e Kha năng duy trì ngữ nghĩa của chuỗi đầu vào tốt hơn.

ô - Giảm thiểu hiện tượng "vanishing gradient".

Encoder

Encoder Encoder RNN RNN

Encoder RNN

Decoder

RNN

Hình 8. Kiến trúc tong quan của mô hình seq2seq có sử dụng cơ chế Attention

20

Ở module Decoder, để tận dụng được các thông tin của tất cả các vector trạng thái ân, một vector ngữ nghĩa (context vector) được tạo ra bằng cách tính tổng

của các tích giữa trọng số alignment ai và vector trạng thái ân tương ứng như

hình bên dưới

|i

ate,

——

+

Hình 9. Vector ngữ nghĩa trong kiến tric attention

Đề sử dụng vector ngữ nghĩa trong quá trình dự đoán, ở mỗi bước dự đoán, vector trạng thái ấn attention được tạo ra bằng cách nối vector ngữ nghĩa và

vector trạng thái ân ở bước thời gian tương ứng lại với nhau

21

Hình 10. Cách mô hình attention sử dụng dụng vector ngữ nghĩa để tạo ra vector trạng

thái Gn attention

Dé biét được dau vào nao quan trọng trong bước dự đoán, mô hình cân phải

dự đoán xem đâu vào nảo là quan trọng. Đê làm được điêu này, chúng ta cân phải có diém sô attention.

Diém sô attention là một giá tri sô biêu thi mức độ quan trọng của một dau vào

đôi với một đâu ra. Nó được tính toán bởi một mô hình dự đoán riêng, gọi là mô hình

alignment. Mô hình này được huấn luyện chung với mô hình seq2seq.

Trong mô hình alignment, mỗi đầu vào (được biểu diễn bởi vector trạng thái an) sẽ được đánh giá xem nó nên chú ý vào dau ra nào trước đó (được biểu diễn bởi

vector trạng thái ân attention). Điêu này được thực hiện băng cách tính toán similarity

giữa hai vector trạng thái an.

Sau khi tính toán similarity, hàm softmax sé được tính trên tat cả các dau ra từ

mô hình alignment đê có được diém sô attention. Điêm sô attention càng cao thì dau vào đó cảng quan trọng đôi với đâu ra.

22

Vi dụ, gia sử chúng ta có một hình ảnh chụp một bảng hiệu cửa hang. Bảng hiệu

có nội dung "Cửa hàng bán đồ chơi". Mô hình nhận dạng văn bản ngoại cảnh sẽ sử dụng điểm sé attention dé xác định xem các phan tử trong hình ảnh nào là quan trọng nhất đối với việc dự đoán nội dung của bảng hiệu. Nếu điểm số attention của chữ

"Cửa hàng" cao hơn điểm số attention của các chữ khác, thì mô hình sẽ có nhiều khả năng dự đoán nội dung của bảng hiệu là "Cửa hàng bán đồ chơi".

Trong ví dụ này, các dau vào cua mô hình là các pixel trong hình ảnh. Mô hình

alignment sé tính toán điêm sô attention cho mỗi pixel, biểu thị mức độ quan trọng

cua pixel đó đôi với việc dự đoán nội dung của bảng hiệu. Pixel có điêm sô attention cao nhât sẽ được coi là quan trọng nhât.

2.2.4.2 Cấu trúc Bi - directional Attention

23

Cấu trúc attention là một cấu trúc đơn hướng, trong đó mô hình chỉ có thể chú

ý đến văn bản ở một phía của khung hình. Điều này có thé dẫn đến những hạn chế

sau:

e Kho khăn trong việc nhận dạng văn bản phía sau: Văn bản phía sau

có thé bi che khuất bởi văn bản phía trước, khiến mô hình khó nhận

ra.

e Khó khăn trong việc nhận dang văn ban bị chồng chéo: Văn bản bị

chồng chéo có thê khiến mô hình khó xác định vị trí của các ký tự.

e Khó khăn trong việc nhận dạng văn ban có kích thước nhỏ: Văn bản

có kích thước nhỏ có thé khó phân biệt với các yếu tố khác trong

khung hình.

Đề khắc phục nhược điểm đó, ta thêm một bộ phận attetion tạo thành cấu trúc

Bi - directional Attention gồm 2 lớp Attetion, 1 cho phía trước và 1 cho phía sau.

Cấu trúc bi-directional attention bao gom hai bộ phận: bộ phan attention phía

trước và bộ phận attention phía sau.

Bộ phận attention phía trước:

Bộ phận attention phía trước sử dụng một mạng attention dé điều chỉnh các

đặc trưng từ bộ phận nhận dạng văn bản, tập trung vào các đặc trưng của văn bản phía trước trong khung hình.

Bộ phận attention phía sau:

Bộ phận attention phía sau sử dụng một mạng attention khác để điều chỉnh các

đặc trưng từ bộ phận nhận dạng văn bản, tập trung vào các đặc trưng của văn bản phía sau trong khung hình.

Hai bộ phận attention này hoạt động độc lập với nhau, nhưng kết quả của chúng được kết hợp lại để tạo ra các đặc trưng cuối cùng.

24

Ví dụ với văn ban "THE EXCHANGE", bộ phận attention phía trước sẽ tập

trung vào các đặc trưng của các ký tự "T", "H", "E", "N" và "C". Bộ phận attention`

phía sau sẽ tập trung vào các đặc trưng của các ký tự "E", "X", "A" và "M". Kết qua của hai bộ phận attention này sẽ được kết hợp lại dé tạo ra các đặc trưng cuối cùng, giúp mô hình có thể nhận ra các ký tự trong văn bản "THE EXCHANGE".

2.2.5 Mô hình Transformer

Vào năm 2017, cộng đồng nghiên cứu xử lý ngôn ngữ tự nhiên (NLP) đã chứng kiến một bước đột phá lớn với sự ra mắt của mô hình Transformer [15]. Ké từ khi ra mắt, Transformer đã phá vỡ nhiều ky lục trong các tác vụ NLP như dich máy, tóm tắt

văn bản, và trả lời câu hỏi.

Trước khi Transformer ra đời, các mô hình dich máy phổ biến sử dụng kiến trúc encoder-decoder. Trong đó, encoder chịu trách nhiệm trích xuất thông tin ngữ nghĩa

từ câu gốc, sau đó decoder sử dụng thông tin này đề tạo ra câu dịch. Tuy nhiên, các

mô hình dựa trên RNN, chăng hạn như LSTM và GRU, có một số hạn chế khi xử lý

các chuỗi văn ban dài, chăng hạn như toàn bộ bai việt:

e Mất thông tin: Khi RNN duyệt qua chuỗi văn bản, thông tin ở đầu chuỗi có

thé bị mat dần theo thời gian. Điều này là do RNN chỉ có thể xử lý thông tin tại một thời điểm.

e Tính tuần tự: RNN chỉ có thé xử lý các từ theo thứ tự, khiến quá trình huấn

luyện trở nên chậm chạp và phức tạp.

e Không phù hợp với transfer learning: Kiến trúc LSTM không phù hợp cho

việc transfer learning, nghĩa là mô hình phải được huấn luyện lại từ đầu khi

được sử dụng cho một tác vụ mới.

Giải pháp của Transformer

25

Multi-Head Attention

L Add & Norm _

Nx Add & Norm

Multi-Head Attention

Multi-Head Attention

__ 4 / __ a,

Positional Positional

CÀ) 0 @ Encoding ép l

Encoding

Input Output

Embedding Embedding

Inputs Outputs

(shifted right)

Hình 12. Kiến trúc của mô hình Transformer

26

Để giải quyết những hạn chế này, Google đã đề xuất mô hình Transformer. Transformer sử dụng cơ chế attention dé tập trung vào các phan quan trọng của chuỗi văn bản, bất ké chúng nam ở đâu. Điều này giúp Transformer có thé duy trì thông tin

ở đầu chuỗi, ngay cả khi chuỗi văn bản rất dài. Ngoài ra, Transformer còn sử dụng positional encoding dé đánh dau vị trí của mỗi từ trong chuỗi, giúp mô hình hiểu được

thứ tự của các từ.

Mô hình Transformer có hai thành phan chính là encoder và decoder. Encoder

va decoder đều được tạo thành từ các layer, mỗi layer bao gồm hai loại block:

e Multi-head attention: Block này sử dung cơ chế attention dé tính toán mức độ

quan trọng của mỗi từ trong chuỗi.

e Feed forward network: Block này thực hiện các phép tính tuyến tính dé biến

đổi đầu ra của block attention.

Encoder của Transformer bao gồm N layer giống nhau (N = 6). Ở mỗi layer, block attention sẽ tính toán mức độ quan trọng của mỗi từ trong chuỗi đầu vào. Block feed forward network sau đó sẽ biến đổi đầu ra của block attention.

Attention vector sẽ chứa thông tin về mức độ quan trọng của mỗi từ trong chuỗi đầu vào. Block feed forward network sau đó sẽ sử dung attention vector dé biến

đôi đâu ra của block attention.

Ngoài ra, encoder của Transformer còn sử dụng positional encoding đê đánh

dau vị trí của mỗi từ trong chuỗi. Điều này giúp mô hình hiểu được thứ tự của các từ.

Decoder của Transformer cũng bao gồm 6 layer. Ngoài hai block attention và

feed forward network, decoder con có một block attention đặc biệt gọi là masked

attention. Block nay sé chi tập trung vào các từ đã được nhận dạng trong chuỗi dau

Ta.

27

Block masked attention sẽ sử dụng attention mask dé che đi các từ chưa được nhận dạng trong chuỗi đầu ra. Điều này giúp mô hình tập trung vào các từ đã được nhận dạng, tránh bị nhằm lẫn.

2.2.5.1. Mô hình Transformer với cơ chế Self-attention

Mô hình Transformer sử dụng cơ chế Self-attention dé giải quyết van đề phụ thuộc đài của vector trạng thái ân. Self-attention là một kỹ thuật cho phép mô hình tập trung vào các từ liên quan nhất với từ đang xử lý. Điều này giúp cho mô hình có thê hiểu được mối quan hệ giữa các từ trong một câu, ngay cả khi các từ đó cách nhau

xa.

Vị dụ, khi xử lý câu "The animal didn’t cross the street because it was too

tired", mô hình sẽ tập trung vào từ "animal" khi xử lý từ "it". Điều này là do từ

"animal" là chủ ngữ của câu, và từ "it" là đại từ nhân xưng thay thế cho chủ ngữ. Do

đó, hai từ này có mối quan hệ chặt chẽ với nhau.

Việc sử dụng cơ chế Self-attention giúp cho mô hình Transformer có thé hiểu

được câu văn tôt hơn, từ đó có thê tạo ra các kêt quả chính xác hơn.

28

lar)

animal_

didn_

1

` cross_

the_ WN the_

street_ \ street_

because_ ` because _

it_ it

was_ was_

tao_ too_

tire tire

d d

Hình 13. Cách hoạt động cua Self-attention

Đầu vào của Self-attention là 3 vector query, key và value, các vector này được tính bằng cách nhân đầu vào với các ma trận trọng số tương ứng với query, key và

value.

© Query vector vector dùng dé chứa thông tin của từ đang xử lý ở bước thời gian

hiện tại (là từ dùng dé tìm kiếm, so sánh).

e Key vector là vector dùng dé biểu diễn thông tin các từ được so sánh với từ

đang xử lý ở trên.

e Value vector là vector biêu diễn nội dung, ý nghĩa của các từ.

2.2.5.2 Transformer - Multi-Head Attention

29

Các mô hình attention truyền thống thường sử dụng một đầu attention duy nhất

dé tính toán mức độ quan trong của mối quan hệ giữa các vị trí trong chuỗi đầu vào.

Tuy nhiên, cách tiêp cận này có một sô hạn chê, bao gôm:

e Không thể học được các mối quan hệ phức tạp giữa các vị trí: Một đầu

attention duy nhất chỉ có thê tập trung vào một khía cạnh của mối quan hệ. Điều này có thể khiến mô hình gặp khó khăn trong việc học được các mối quan

hệ phức tạp giữa các vị trí, chăng hạn như mối quan hệ giữa ngữ nghĩa và ngữ

pháp.

e Không thé xử lý các chuỗi đầu vào dài: Một dau attention duy nhất có thé bị

quá tải khi xử lý các chuỗi đầu vào dai. Điều này có thé dẫn đến suy giảm hiệu suất của mô hình.

Multi-Head Attention khắc phục được những han chế này băng cách sử dụng nhiều đầu attention. Mỗi đầu attention có thê tập trung vào một khía cạnh khác nhau

của mối quan hệ, từ đó cho phép mô hình học được các mối quan hệ phức tạp hơn.

Ngoài ra, việc sử dụng nhiều dau attention cũng giúp mô hình xử lý các chuỗi đầu

vào dài hiệu quả hơn.

Kỹ thuật này hoạt động bằng cách sử dụng nhiều đầu attention, mỗi đầu tập trung vào một khía cạnh khác nhau của mối quan hệ.

Về mặt kiến thức chuyên môn, Multi-Head Attention có thể được mô tả như sau:

e Input: Một chuỗi đầu vào được biéu diễn dưới dạng một ma trận kích thước

(batch_ size, sequence_ length, input_dim).

e Output: Một ma trận kích thước (batch size, sequence length,

output_dim).

Các đầu attention: Mỗi dau attention là một hàm tuyến tính được biểu diễn

dưới dạng một ma trận kích thước (input_dim, output_dim).

Quá trình tính toán Multi-Head Attention:

30

Một phần của tài liệu 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 ngoại ảnh cho ảnh có độ phân giải thấp (Trang 27 - 44)

Tải bản đầy đủ (PDF)

(97 trang)