Strata treningowa rośnie z czasem [duplikat]


21

Trenuję model (Recurrent Neural Network) do klasyfikowania 4 typów sekwencji. Gdy prowadzę trening, widzę spadek treningu do momentu, w którym poprawnie sklasyfikuję ponad 90% próbek w moich partiach treningowych. Jednak kilka epok później zauważam, że utrata treningu wzrasta i spada moja celność. Wydaje mi się to dziwne, ponieważ spodziewałbym się, że na zestawie treningowym wydajność powinna się poprawić z czasem, a nie pogorszyć. Używam utraty entropii krzyżowej, a mój wskaźnik uczenia się wynosi 0,0002.

Aktualizacja: Okazało się, że wskaźnik uczenia się był zbyt wysoki. Przy niskim, wystarczająco niskim współczynniku uczenia się nie obserwuję tego zachowania. Jednak nadal uważam to za dziwne. Wszelkie dobre wyjaśnienia są mile widziane, dlaczego tak się dzieje

Strata zmniejsza się, a następnie rośnie

Odpowiedzi:


6

Miałem podobne zachowanie podczas treningu CNN, ponieważ użyłem spadku z gradientem ze spadającą szybkością uczenia się do obliczania błędów. Czy znacznie zwiększyłeś liczbę iteracji i sprawdziłeś, czy to zachowanie pojawia się znacznie później przy nowym niskim wskaźniku uczenia się?


Właściwie tak, ale jest taki moment, że dla wystarczająco niskiego współczynnika uczenia się nigdy nie wzrośnie. Szukam teoretycznie solidnego wyjaśnienia, dlaczego tak się dzieje
dins2018

Jakiego algorytmu optymalizacji używasz?
Freundlicher

Używam optymalizatora Adama z lr = 0,00001, betas = (0,5, 0,999)
dins2018

1
Myślę, że zbliżasz się do tego małego tempa uczenia się tak powoli, że do lokalnego minimum, że punkt, w którym wartość strat ponownie nieznacznie wzrasta (ponieważ przekraczasz minimum), wymaga zbyt wielu iteracji. Ten wzrost wartości straty jest spowodowany przez Adama, w momencie przekroczenia lokalnego minimum i pewnej liczby iteracji, niewielka liczba jest dzielona przez jeszcze mniejszą liczbę, a wartość straty eksploduje.
Freundlicher

2
Możesz ustawić beta1 = 0,9 i beta2 = 0,999. To są wspólne wartości, które muszą działać przeciwko temu zachowaniu.
Freundlicher

1

Ponieważ szybkość uczenia się jest zbyt duża, będzie się różnić i nie znajdzie minimum funkcji utraty. Użycie harmonogramu w celu zmniejszenia szybkości uczenia się po określonych epokach pomoże rozwiązać problem


0

Przy wyższych wskaźnikach uczenia się przesuwasz się zbytnio w kierunku przeciwnym do gradientu i możesz odejść od lokalnych minimów, co może zwiększyć straty. Pomocne może być planowanie tempa uczenia się i obcinanie gradientu.


Witamy w CV. Aby uzyskać poparcie, najlepiej udzielić pełniejszej odpowiedzi, patrz stats.stackexchange.com/help/how-to-answer w celu uzyskania wskazówek.
ReneBt
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.