Co powoduje nagłe spadki błędów treningu / błędów podczas szkolenia sieci neuronowej?

18

Widziałem wykresy błędu testu / treningu nagle spadające kilka razy w pewnej epoce (ach) podczas treningu sieci neuronowej i zastanawiam się, co powoduje te skoki wydajności:

Błąd testu ResNet

To zdjęcie pochodzi z Kaiming Jest Githubem, ale podobne wątki pojawiają się w wielu artykułach.

libphy
źródło
Jeden powiązany artykuł: Smith i in. 2018 NIE Decay Rate Learning, zwiększyć wielkość partii, openreview.net/forum?id=B1Yy1BxCZ
ameba

Odpowiedzi:

7

Zmienili wskaźnik uczenia się. Zwróć uwagę, że spadek przypada dokładnie na 30 i 60 epok, oczywiście ustawiany ręcznie przez kogoś.

cwhy
źródło
W sekcji 3.4 wyjaśnia, że ​​wskaźnik uczenia się jest dzielony przez 10, gdy plateau błędów
Xiawi
2

Pomyśl o „krajobrazie optymalizacji”. Na przykład, jeśli miałeś sieć z tylko dwoma obciążnikami, możesz wykreślić wszystkie kombinacje tych dwóch obciążników na powierzchni, gdzie wysokość w każdym punkcie reprezentuje ilość błędów, które zwraca twoja funkcja kosztów, jeśli ją wykorzystasz (x, y ) współrzędne jako twoje dwa ciężary. Próbujesz przejść do najniższego punktu na tej powierzchni, aby uzyskać najniższy poziom błędu.
Problem czasami polega na tym, że powierzchnia może być dość szalona, ​​szczególnie w sieciach z milionami parametrów zamiast tylko dwóch. Możesz utknąć w punktach siodłowych, w których postęp jest spowolniony, a następnie nagle spada z powrotem na wzgórze.
Oto animacja, która pomaga to zwizualizować. Jak widać, bardziej podstawowe algorytmy zejścia gradientowego znacznie utknęły w tych pozycjach.
wprowadź opis zdjęcia tutaj

Przyczyny tego mogą być również inne, ale o tym najczęściej się słyszy. Możliwe, że sieć może mieć kilka jednostek otrzymujących nasycone aktywacje (lub w przypadku relu, jednostkę, która jest aktywowana tylko przez bardzo małą liczbę wejść szkoleniowych), a gdy jedna jednostka wyjdzie z nasycenia, uruchamia reakcję łańcuchową, która odciąga resztę od nasycenia, a ciężary nagle zwiększają przepływ gradientu? Nie szukałem czegoś takiego, ale byłbym zainteresowany, gdyby ktokolwiek miał inne powody, aby dodać.

Frobot
źródło
1
-1. To nie odpowiada na pytanie, a przynajmniej nie jest jasne, jak to robi i dlaczego to, co napisałeś, jest istotne. Dlaczego obniżenie wskaźnika uczenia się miałoby wydobyć się z siodła?
ameba
Nie jest nawet jasne, czy animacja i tak jest poprawna, ponieważ SGD - z definicji - widzi inną powierzchnię optymalizacji z każdą iteracją. Na tej grafice powierzchnia optymalizacji jest stała, więc nie jest dla mnie jasne, jak można zilustrować tutaj SGD. „Kropka” SGD zachowuje się bardziej jak pełne opadanie gradientu, w którym powierzchnia optymalizacyjna jest ustalona podczas całego procesu treningu.
Josh