Cắt gradient khi đào tạo mạng lưới thần kinh sâu


10

Khi nào người ta muốn thực hiện cắt độ dốc khi đào tạo RNN hoặc CNN? Tôi đặc biệt quan tâm đến cái sau. Điều gì sẽ là một giá trị khởi đầu tốt để cắt? (tất nhiên nó có thể được điều chỉnh)

Câu trả lời:


4

Bạn sẽ muốn thực hiện cắt độ dốc khi bạn gặp phải vấn đề biến mất độ dốc hoặc nổ độ dốc. Tuy nhiên, đối với cả hai kịch bản, có những giải pháp tốt hơn:

  • Độ dốc nổ xảy ra khi độ dốc trở nên quá lớn và bạn bị tràn số. Điều này có thể dễ dàng khắc phục bằng cách khởi tạo trọng số của mạng thành các giá trị nhỏ hơn. Nếu điều này không hoạt động thì có khả năng là có lỗi trong mã.

  • Độ dốc biến mất xảy ra khi tối ưu hóa bị kẹt ở điểm yên ngựa, độ dốc trở nên quá nhỏ để quá trình tối ưu hóa tiến triển. Điều này có thể được khắc phục bằng cách sử dụng độ dốc giảm dần với động lượng hoặc RMS prop hoặc cả hai (còn được gọi là trình tối ưu hóa Adam).

Giá trị bắt đầu cho giới hạn trên của cắt độ dốc sẽ là một cái gì đó nhỏ hơn số lớn nhất mà biến có thể lấy. Đối với giới hạn dưới, tôi sẽ nói đó là vấn đề cụ thể nhưng có lẽ bắt đầu bằng thứ gì đó như 1e-10.


1
Tôi không chắc liệu bối cảnh của câu trả lời này có được coi là loại trừ RNN hay không, nhưng nếu không, thì cả hai giải pháp được đề xuất đều không tốt hơn so với cắt gradient đặc biệt là trong trường hợp RNN.
Alex R.

Xin lỗi, tôi đã suy nghĩ nhiều hơn trong bối cảnh của CNN, vui lòng chỉnh sửa
Miguel
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.