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

Một phần của tài liệ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 (Trang 49 - 52)

3 Các công trình liên quan

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

Vector mã hóa trung gian (Encoder vector) là trạng thái ẩn nằm ở cuối chuỗi, được tính bởi bộ mã hóa. Encoder vector có chức năng gói gọn thơng tin của tồn bộ các phần tử đầu vào để giúp cho bộ mã hóa dự đốn thơng tin chính xác hơn. Vector này sau đó hoạt động như trạng thái ẩn đầu tiên của bộ giải mã.

Bộ giải mã

Tương tự bộ mã hóa, bộ giải mã (Decoder) gồm một ngăn xếp chứa các mạng con là phần tử của RNN (Mục 2.3) hoặc các ô nhớ của LTSM (Tiểu mục 2.3.2) hay GRU có nhiệm vụ dự đoán đầu ra yt tại thời điểm t. Mỗi phần này nhận đầu vào là trạng

thái ẩn trước đó và tạo kết quả đầu ra cũng như trạng thái ẩn của chính nó.

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

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

Mơ hình chuỗi sang chuỗi áp dụng cơ chế tập trung (Attention-based Seq2Seq) được phát triển từ mơ hình Seq2Seq (Mục 3.4), điểm khác biệt của nó là có kết hợp thêm cơ chế tập trung, chi tiết về cơ chế tập trung sẽ được trình bày ở các mục sau. Mơ hình được chia thành ba phần chính gồm bộ mã hóa (encoder), cơ chế tập trung (attention mechanism), và bộ giải mã (decoder). Tổng quan kiến trúc của mơ hình

Các cơng trình liên quan 37

Hình 3.9: Kiến trúc chung của mơ hình Attention-based Seq2Seq (nguồn [11])

Các bộ mã hóa chuyển đổi hình ảnh đầu vào I thành một chuỗi các vector đặc trưng không đổiH. Bộ giải mã xử lý lần lượt để trả ra kết quả là một chuỗi các ký tự

Y với mỗi ký tự tại một thời điểm. Tại mỗi bước thời gian t, nó sử dụng cơ chế tập

trung Att để tạo ra một vector ¯ct dựa trên vector đặc trưng được mã hóa và bộ giải mã phụ thuộc thời gian tại trạng thái ẩn st. Vector ngữ cảnh này được sử dụng để

tạo ra đầu ra của bộ giải mã yt tại bước hiện tại. Sự kết hợp của vector ngữ cảnh và đầu ra đóng vai trị là đầu vào cho bộ giải mã tiếp theo.

3.5.2 Cơ chế tập trung

Như đã trình bày ở Mục 3.4, mơ hình Seq2Seq sử dụng bộ mã hóa để tạo ra một vector đại diện lưu trữ thơng tin của chuỗi đầu vào. Sau đó sử dụng bộ giải mã để chuyển vector đại diện này thành chuỗi đầu ra. Với bài toán dịch máy hay nhận dạng ký tự quang học thì cả bộ mã hóa và bộ giải mã đều được tạo thành từ khối RNN, LSTM hoặc GRU. Về mặt lý thuyết thì LSTM và GRU có thể lưu trữ thơng tin của một chuỗi có độ dài lớn. Nhưng trong thực tế việc sử dụng một vector đại diện thường không thể lưu trữ được tồn bộ thơng tin của chuỗi đầu vào. Từ đó đã xuất hiện một vài phương pháp giúp tăng độ chính xác cho hệ thống này như sử dụng Multi-layer với Bi-directional RNN, đảo ngược thứ tự của chuỗi đầu vào hay sử dụng input nhiều lần (feeding twice) nhưng vẫn giữ nguyên đầu ra. Tuy nhiên, phương pháp được sử dụng nhiều nhất và làm tăng đáng kể độ chính xác của các hệ thống là sử dụng cơ chế tập trung (attention mechanism), được giới thiệu trong bài báo [1].

Bởi vì tất cả các thơng tin lưu trữ trong bộ mã hóa đều được giữ tại trạng thái cuối cùng, nên vấn đề mất thông tin sẽ dễ xảy ra khi chuỗi đầu vào dài, đặc biệt là khi hình ảnh đầu vào được duỗi thẳng ra (flattened out). Và từ đó cơ chế tập trung được ra đời để giải quyết vấn đề này. Nguyên tắc hoạt động chung của cơ chế tập trung là

Các cơng trình liên quan 38

tại mỗi bước mã hóa, bộ mã hóa sẽ chỉ tập chung vào phần liên quan trong chuỗi đầu vào thay vì tồn bộ chuỗi đầu vào.

Tại mỗi bước mã hóa, bộ mã hóa nhận ba đầu vào bao gồm trạng thái ẩn của bước mã hóa trước, đầu ra của bước trước, và vector tập trung. Vector tập trung chứa trọng số tập trung (attention weight) của từng từ trong chuỗi đầu vào. Từ nào chứa nhiều thông tin cần thiết cho việc mã hóa thì sẽ có giá trị trọng số lớn hơn và tổng các trọng số của tất cả các từ trong chuỗi đầu vào phải bằng 1. Giá trị trọng số tập trung này được học thơng qua q trình huấn luyện với việc sử dụng chuỗi đầu vào và trạng thái ẩn của bước mã hóa trước. Mỗi bước mã hóa có một giá trị vector tập trung riêng, do đó với một chuỗi đầu vào có chiều dài n và chuỗi đầu ra có chiều dài

m, ta phải thực hiện việc tính tốn n×m trọng số tập trung. Điều này là có thể chấp nhận được trong các hệ thống ở mức độ từ do có số lượng từ không quá nhiều. Tuy nhiên với các hệ thống mức độ kí tự thì việc sử dụng Attention sẽ yêu cầu một tài nguyên xử lý lớn.

Từ ý tưởng trên khi đưa vào áp dụng trong mơ hình Seq2Seq, thay vì chỉ sử dụng duy nhất vector trạng thái ẩn cuối cùng làm đầu vào cho bộ mã hóa thì ta lưu lại và sử dụng vector trạng thái ẩn tại tất cả các thời điểm khi duyệt chuỗi đầu vào. Sau đó khi bộ mã hóa tiến hành giải mã, thì từng thời điểm ta sẽ dành sự tập trung cao hơn vào những vector trạng thái ẩn liên quan đại diện cho các phần tương ứng của chuỗi đầu vào.

Hình 3.10: Cơ chế tập trung (nguồn [1])

Như trên Hình 3.10, ta giữ lại tồn bộ vector trạng thái ẩnh của bộ mã hóa. Đưa tồn bộ các vector trạng thái ẩn qua một lớp tập trung, lớp tập trung này đơn giản là một mạng neuron lan truyền thuận at,i, nhận đầu vào là tất cả các vector trạng thái

ẩn hi và vector trạng thái ẩn tại thời điểm trước hi−1 của bộ mã hóa. Đầu ra sẽ là các hệ số tương ứng với các vector trạng thái ẩn, thể hiện mức độ tập trung của bộ mã hóa ở thời điểm hiện tại vào từng trạng thái ẩn. Đưa các hệ số này qua một lớp Softmax để chuẩn hóa thành các trọng số của sự tập trung (trọng số tập trung), và đảm bảo các tính chất toàn bộ các trọng số nằm trong khoảng từ 0 đến 1 và tổng các

Các cơng trình liên quan 39

Một phần của tài liệ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 (Trang 49 - 52)