Khi phương pháp lan truyền ngược (backward propagation) lan truyền xuống dưới (hoặc lùi lại) từ lớp đầu ra (output) đến lớp đầu vào (input), các gradient thường trở nên ít hơn và nhỏ hơn cho đến khi chúng gần bằng không, khiến trọng số của các lớp đầu tiên của hidden layer hoặc các layer thấp hơn về cơ bản không thay đổi. Kết quả là, gradient descent không bao giờ hội tụ đến giải pháp tốt nhất. Đây được gọi là vấn đề về độ dốc biến mất (problem of vanishing gradients.)
Các gradient biến mất thường gặp khi hàm kích hoạt Sigmoid hoặc Tanh được sử dụng trong các lớp ẩn. Khi các đầu vào phát triển cực kỳ nhỏ hoặc cực lớn, hàm sigmoid bão hòa ở 0 và 1 trong khi hàm tanh bão hòa ở -1 và 1.
Trong trường hợp này, các đạo hàm đều rất gần bằng không.
Khái niệm đạo hàm bằng 0 là gì? Trong toán học, khi một đạo hàm dương (khi hàm số đang tăng) rồi bỗng nhiên chuyển sang thành đạo hàm âm (hàm số giảm), có nghĩa là nó đã đi qua vị trí mà tại đó có một hàm số đạt được giá trị cực đại, đây cũng chính là vị trí đạo hàm bằng 0.
Ta gọi đây là vùng bão hòa hoặc vùng terrible(khủng khiếp). Kết quả là, nếu đầu vào của bạn nằm ở một trong những vùng bão hòa, về cơ bản nó không có gradient để truyền ngược lại qua mạng. Và mạng sẽ không học được gì.
Lý do tại sao điều này xảy ra?
Một số hàm kích hoạt nhất định, chẳng hạn như hàm logistic (sigmoid), có sự khác biệt tương đối lớn về phương sai giữa đầu vào và đầu ra của chúng. Nói một cách khác, họ giảm và biến đổi không gian đầu vào lớn hơn thành không gian đầu ra nhỏ hơn nằm giữa [0,1].
Tương tự, giả sử rằng trọng số ban đầu được tạo dẫn đến mất mát cao trong một số trường hợp. Gradients bây giờ có thể tăng lên tích luỹ trong quá trình cập nhật, dẫn đến các gradient rất lớn, cuối cùng dẫn đến các thay đổi lớn đối với trọng số của mạng, dẫn đến mạng không ổn định. Các tham số đôi khi có thể trở nên quá lớn đến mức chúng tràn và tạo ra các giá trị NaN
Làm thế nào để biết liệu model có đang mắc phải những vấn đề này hay không?
- Các tham số của các higher layers thay đổi đáng kể, trong khi các thông số của lower layer không thay đổi đáng kể (hoặc hoàn toàn không).
- Trong quá trình đào tạo, trọng số của mô hình có thể trở thành không.
- Mô hình học chậm và sau một vài chu kỳ, quá trình đào tạo có thể trở nên trì trệ
ReLU có thể giải quyết vấn đề gradient biến mất
Hàm kích hoạt sigmoid, như chúng ta đã thấy trong phần trước, có xu hướng biến mất các gradient, đặc biệt là khi một số chúng được nối với nhau. Điều này là do hàm sigmoid bão hòa bằng 0 đối với các giá trị âm lớn và bằng một đối với các giá trị dương lớn.
Đạo hàm của ReLU là 1 cho các giá trị lớn hơn 0. Bởi vì nhân 1 với chính nó nhiều lần vẫn cho 1, điều này về cơ bản giải quyết vấn đề gradient biến mất.
Không thể phân biệt giá trị âm của hàm ReLU vì nó bằng 0. Do đó, các đạo hàm của giá trị âm chỉ đơn giản được đặt thành 0.