0
Tải bản đầy đủ (.pdf) (83 trang)

Sơ đồ tính tốn đơn giản của một RNN

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 34 -37 )

6 Ứng dụng

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

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ên phải là dạng chi tiết có biểu diễn các time-step. Sơ đồ tính tố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ường hay 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,

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 q trình huấn luyện mơ hình nà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àm mất mát L(t) =f(o(t), o(t)ground truth), ta tính được đạo hàm theo W như sau:

∂L(t) ∂W = L(t) ∂o(t) ∂o(t) ∂h(t) ∂h(t) ∂W = L(t) ∂o(t) ∂o(t) ∂h(t) t Y i=2 ∂h(i) ∂h(i−1) ! ∂h(1) ∂W = L(t) ∂o(t) ∂o(t) ∂h(t) ∂h(1) ∂W U t−1

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. Q 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ổ). Q trình huấn luyện sẽ khơng bao 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 mang giá 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 được nhữ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.

2.3.2 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 lan truyề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êu hay bùng nổ. Cho nên thay vì chỉ đơn thuần kết hợp thơng tin từ cell trước và đầu và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ản thâ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ột

thà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ạt

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 qn đ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−1có 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ếu giá 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ần bằ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ân

output của Sigmoid với output của Tanh để quyết định thông tin của Current input 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ủa cell state và từ đó kết hợp với Current input và hidden state để tính giá trị của hidden 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à hidden state.

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

f(t) =σg Wfx(t)+Ufh(t−1)+bf (forget gate) (2.11) i(t) =σg Wix(t)+Uih(t−1)+bi

(đầu vào gate) (2.12)

o(t) =σgWox(t)+Uoh(t−1)+bo (output gate) (2.13)

c(t) =σc Wcx(t)+Uch(t−1)+bc ⊙i(t)+f(t)⊙c(t−1) (cell state) (2.14) h(t) =o(t)⊙σhc(t) (hidden state) (2.15) 8 https://en.wikipedia.org/wiki/Long_short-term_memory

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

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 34 -37 )

×