Czytałem o optymalizatorze Adama do głębokiego uczenia się i natknąłem się na następujące zdanie w nowej książce Głębokie uczenie się autorstwa Begnio, Goodfellow i Courtville:
Adam wprowadza korekty błędu wstępnego w szacunkach zarówno momentów pierwszego rzędu (okres pędu), jak i (niecentrowanych) momentów drugiego rzędu, aby uwzględnić ich inicjalizację u źródła.
wydaje się, że głównym powodem włączenia tych terminów korekcji odchylenia jest to, że w jakiś sposób usuwa ono odchylenie inicjalizacji i .
- Nie jestem w 100% pewien, co to oznacza, ale wydaje mi się, że prawdopodobnie oznacza to, że 1. i 2. moment zaczynają się od zera, a jakoś rozpoczęcie od zera pochyla wartości bliżej zera w niesprawiedliwy (lub użyteczny) sposób na trening ?
- Chociaż chciałbym wiedzieć, co to znaczy nieco bardziej precyzyjnie i jak to szkodzi nauce. W szczególności, jakie zalety ma odblokowanie optymalizatora pod względem optymalizacji?
- W jaki sposób pomaga to w szkoleniu modeli głębokiego uczenia się?
- Co to znaczy, gdy jest bezstronny? Wiem, co oznacza obiektywne odchylenie standardowe, ale nie jest dla mnie jasne, co to znaczy w tym kontekście.
- Czy korekcja uprzedzeń to naprawdę wielka sprawa, czy może coś przesadziło w dokumencie Adama?
Tylko dlatego, żeby ludzie wiedzieli, że naprawdę bardzo starałem się zrozumieć oryginalny artykuł, ale bardzo mało z niego przeczytałem i ponownie przeczytałem. Zakładam, że na niektóre z tych pytań można tam znaleźć odpowiedź, ale wydaje mi się, że nie potrafię przeanalizować odpowiedzi.
źródło
Odpowiedzi:
Problem NIE korygowania stronniczości
Według artykułu
Zwykle w praktyce jest ustawiane znacznie bliżej 1 niż (jak sugeruje autor , ), więc współczynniki aktualizacji 1 - β 2 = 0,001 są znacznie mniejsze niż 1 - β 1 = 0.1 .β2) β1 β2)= 0,999 β1= 0,9 1 - β2)= 0,001 1 - β1= 0,1
W pierwszym etapie treningum1= 0,1 gt , v1= 0,001 g2)t , m1/ ( v1--√+ ϵ ) termin w aktualizacji parametru może być bardzo duży, jeśli zastosujemy bezpośrednio tendencyjne oszacowanie.
Z drugiej strony, gdy używa się oszacowania skorygowanego o błąd systematyczny,m1^= g1 i v1^= g2)1 , mt^/ ( vt^--√+ ϵ ) pojęcie staje się mniej wrażliwe naβ1 iβ2) .
Jak korygowane jest odchyleniem0 , i aktualizujemy oszacowanie stopniowo o mt= βmt - 1+ ( 1 - β) gt . Jest więc oczywiste, że w pierwszych kilku krokach nasza średnia ruchoma jest silnie tendencyjna w kierunku początkowego m0 .
Algorytm wykorzystuje średnią ruchomą do oszacowania pierwszego i drugiego momentu. Boczna ocena byłaby taka, że zaczynamy od arbitralnej domysły
Aby to skorygować, możemy usunąć efekt wstępnego odgadnięcia (odchylenie) z średniej ruchomej. Na przykład w czasie 1,m1= βm0+ ( 1 - β) gt , βm0 termin β m 0 z m1 i dzielimy go przez ( 1 - β) , co daje m1^= ( m1- βm0) / ( 1 - β) . Kiedym0= 0 ,mt^= mt/ (1- βt) . Pełny dowód podano w części 3 artykułu.
Jak dobrze skomentował Mark L. Stone
Jakoś to nie jest dokładnie równoważne
(oczywiście można to zmienić w tę samą formę, zmieniając regułę aktualizacji (patrz aktualizacja odpowiedzi), i uważam, że ten wiersz ma na celu przede wszystkim pokazanie niepotrzebności wprowadzenia błędu, ale być może warto zauważyć różnicę)
Na przykład poprawiony pierwszy moment w czasie 2
Czy korekcja uprzedzeń to naprawdę wielka sprawa
Ponieważ faktycznie wpływa tylko na kilka pierwszych kroków treningu, wydaje się, że nie jest to bardzo duży problem, w wielu popularnych ramach (np. Keras , caffe ) wdrażana jest tylko tendencyjna ocena.
Dlatego można to zrobić bez wprowadzania terminu stronniczości i poprawiania go. Myślę, że artykuł umieścił go w formie korekcji błędu systematycznego dla wygody porównywania z innymi algorytmami (np. RmsProp).
źródło