Kiedy chciałbyś wykonać obcinanie gradientu podczas treningu RNN lub CNN? Szczególnie interesuje mnie to drugie. Jaka byłaby dobra wartość początkowa do wycinania? (można go oczywiście dostroić)
źródło
Kiedy chciałbyś wykonać obcinanie gradientu podczas treningu RNN lub CNN? Szczególnie interesuje mnie to drugie. Jaka byłaby dobra wartość początkowa do wycinania? (można go oczywiście dostroić)
Chcesz wykonać obcinanie gradientu, gdy pojawia się problem znikania gradientów lub rozbijania gradientów. Jednak w obu przypadkach istnieją lepsze rozwiązania:
Eksplodujący gradient ma miejsce, gdy gradient staje się zbyt duży i pojawia się przepełnienie numeryczne. Można to łatwo naprawić, inicjując wagi sieci na mniejsze wartości. Jeśli to nie zadziała, prawdopodobnie w kodzie jest błąd.
Znikający gradient występuje, gdy optymalizacja utknie w punkcie siodłowym, gradient staje się zbyt mały, aby optymalizacja mogła się rozwijać. Można to naprawić za pomocą spadku gradientu z pędem lub rekwizytem RMS lub jednym i drugim (znanym również jako optymalizator Adama).
Wartości początkowe dla górnej granicy wycinania gradientu byłyby czymś mniejszym niż największa liczba, jaką może przyjąć zmienna. Jeśli chodzi o dolną granicę, powiedziałbym, że jest to specyficzne dla problemu, ale być może zacznij od czegoś takiego jak 1e-10.