Gradient biến mất và bùng nổ

Mạng nơ-ron hồi quy (RNN) cho Mô hình ngôn ngữ với Keras

David Cecchini

Data Scientist

Huấn luyện mô hình RNN

Phiên bản RNN được mở cuộn, hiển thị lan truyền xuôi từ mỗi từ đầu vào đến cuối câu, và lan truyền ngược qua thời gian cập nhật trọng số

Mạng nơ-ron hồi quy (RNN) cho Mô hình ngôn ngữ với Keras

Hiển thị pha lan truyền xuôi với định nghĩa toán học của các biến liên quan

Ví dụ: $$a_2 = f(W_a, a_1, x_2)$$

$$= f(W_a, f(W_a, a_0, x_1), x_2)$$

Mạng nơ-ron hồi quy (RNN) cho Mô hình ngôn ngữ với Keras

Hiển thị pha lan truyền ngược với các định nghĩa toán học

Hãy nhớ rằng:

$$ a_T = f(W_a, a_{T-1}, x_T) $$

$a_T$ cũng phụ thuộc vào $a_{T-1}$, phụ thuộc vào $a_{T-2}$ và $W_a$, v.v.

Mạng nơ-ron hồi quy (RNN) cho Mô hình ngôn ngữ với Keras

Tiếp tục BPTT

Tính đạo hàm dẫn đến

$$ \frac{\partial a_t}{\partial W_a} = (W_a)^{t-1}g(X) $$

  • $(W_a)^{t-1}$ có thể hội tụ về 0

  • hoặc diverge đến $+\infty$!

Mạng nơ-ron hồi quy (RNN) cho Mô hình ngôn ngữ với Keras

Giải pháp cho vấn đề gradient

Một số giải pháp đã biết:

Gradient bùng nổ

  • Cắt/chuẩn hóa gradient

Gradient biến mất

  • Khởi tạo ma trận W tốt hơn
  • Dùng regularization
  • Dùng ReLU thay cho tanh/sigmoid/softmax
  • Dùng LSTM hoặc GRU!
Mạng nơ-ron hồi quy (RNN) cho Mô hình ngôn ngữ với Keras

Ayo berlatih!

Mạng nơ-ron hồi quy (RNN) cho Mô hình ngôn ngữ với Keras

Preparing Video For Download...