Thứ Sáu, 21 tháng 1, 2022

Các vấn đề trong Neural Network

1. Giới thiệu

Hôm nay mình sẽ giới thiệu đến các bạn về một số vấn đề thường hay gặp trong neural network ảnh hưởng rất nhiều đến kết quả bài toán.

Nhắc lại một chút về công thức gradient descent $$w = w - \eta \frac{\partial L(X, w)}{\partial w}$$

  • Vanishing Gradient
  • Exploding Gradient
  • Giải pháp
  • Các activation thường gặp

2. Exploding Gradient

Đối với backpropagation đó chính là chain rule cụ thể hơn

Hình trên mình lấy từ bài hôm trước nó là tích của các đạo hàm. Khi các đạo hàm này nhỏ hơn 1 thì tích của các số nhỏ hơn 1 sẽ tiến dần về 0. Việc tính gradient tại những layer đầu trong trường hợp neural network có nhiều layer sẽ dẫn đến trường hợp gradient tại những layer này sẽ tiến dần về 0. Quay trở lại với công thức Gradient Descent. Nếu các gradient này tiến về 0. Thì các parameters sẽ không được cập nhật hay thường được gọi là freeze. Hiện tượng này được gọi là Vanishing Gradient

Ở bài trước chúng ta thường hay sử dụng activation function là sigmoid một điều đáng lưu ý là đạo hàm của hàm sigmoid nhỏ hơn 1

3. Exploding Gradient

Ngược lại với Vanishing Gradient là Exploding Gradient nghĩa là khi các tích đạo hàm lớn hơn 1 tích các đạo hàm này có thể tiến đến dương vô cùng. Khi đó công thức Gradient Descent để cập nhật parameters sẽ biến thiên rất lớn mà không hội tụ tại điểm minimum hiện tượng này được gọi là Exploding Gradient

4. Giải pháp

Có một số giải pháp phổ biến để giải quyết các vấn đề này tùy thuộc vào bài toán có thể kể đến: Trong NLP thay vì sử dụng RNN thì người ta sử dụng GRU hoặc LSTM, kĩ thuật Residual Network, sử dụng activation phù hợp...

Các phương pháp trên về mặt kiến thức vượt ra khỏi phạm vi của bài viết này nên mình sẽ giới thiệu sau.

5. Các activation thường gặp

Từ đầu đến giờ mình chỉ sử dụng sigmoid như là một activation. Trong thực tế ngoài sigmoid chúng ta còn một số các activation khác nữa

  • Hình a là sigmoid, mình sẽ không trình bày về activation này nữa
  • Hình b là tanh hàm này có giá trị $[-1, 1]$. Đạo hàm của tanh function cũng nhỏ hơn 1
  • Hình c là relu. Hàm này được sử dụng rất nhiều trong các bài toán về deep learning. Lý do là đơn giản, tính toán nhanh, có đạo hàm tại mọi điểm và giải quyết được phần nào Vanishing gradient. Vì đạo hàm của nó là 1 nếu $z > 0$. Tuy nhiên với các giá trị nhỏ hơn 0 khi đi qua relu thì nó bằng 0 hiện tượng này được gọi là Dying ReLU
  • Hình d là leakly relu được sinh ra giải quyết vấn đề của relu

Trên đây là một số vấn đề trong neural network, nếu các bạn có thắc mắc gì vui lòng để lại comment phía dưới. Xin cảm ơn

0 nhận xét:

Đăng nhận xét