Kiedy stosować (He lub Glorot) normalną inicjalizację zamiast jednolitej inicjacji? A jakie są jego efekty dzięki Normalizacji partii?

51

Wiedziałem, że Residual Network (ResNet) sprawił, że zwykła inicjalizacja He stała się popularna. W ResNet używana jest normalna inicjalizacja He , podczas gdy pierwsza warstwa używa jednolitej inicjalizacji He.

Przejrzałem papier ResNet i papier „Zagłębiając się w prostowniki” (papier inicjalizacyjny He), ale nie znalazłem żadnej wzmianki o normalnym init vs.

Również:

Normalizacja partii pozwala nam korzystać ze znacznie wyższych wskaźników uczenia się i być mniej ostrożnym przy inicjalizacji.

W streszczeniu artykułu Batch Normalization mówi się, że Batch Normalization pozwala nam być mniej ostrożnym przy inicjalizacji.

Sam ResNet wciąż dba o to, kiedy użyć zwykłego init zamiast jednolitego init (zamiast po prostu używać jednolitego init).

Więc:

  • Kiedy stosować (He lub Glorot) inicjalizację o rozkładzie normalnym zamiast jednolitej inicjalizacji?
  • Jakie są normalnie dystrybuowane efekty inicjalizacji z normalizacją wsadową?

Uwagi na bok:

  • Rymuje się używanie normalnego init z normalizacją wsadową, ale nie znalazłem żadnego papieru na poparcie tego faktu.
  • Wiedziałem, że ResNet używa He init przez Glorot init, ponieważ On init działa lepiej w głębokiej sieci.
  • Zrozumiałem o inicjacji Glorot vs On init .
  • Moje pytanie dotyczy inicjacji normalnej i jednolitej.
rilut
źródło

Odpowiedzi:

34

W rzeczywistości normalny vs jednolity init wydaje się raczej niejasny.

Jeśli odwołujemy się wyłącznie do dokumentów inicjalizacyjnych Glorota i He , obaj stosują podobną analizę teoretyczną: znajdują dobrą wariancję dla rozkładu, z którego pochodzą początkowe parametry. Ta wariancja jest dostosowana do użytej funkcji aktywacji i jest uzyskiwana bez wyraźnego uwzględnienia rodzaju rozkładu. Jako takie, ich teoretyczne wnioski dotyczą dowolnego rodzaju rozkładu określonej wariancji. W rzeczywistości w pracy Glorot zastosowano rozkład równomierny, natomiast w pracy He wybrano rozkład gaussowski. Jedynym „wyjaśnieniem” podanym dla tego wyboru w pracy He jest:

Ostatnie głębokie CNN są głównie inicjowane losowymi wagami pochodzącymi z rozkładów Gaussa

w odniesieniu do referatu AlexNet . Rzeczywiście został wydany nieco później niż inicjalizacja Glorot, ale nie ma w nim uzasadnienia użycia rozkładu normalnego.

W rzeczywistości, w dyskusji na temat śledzenia problemów Keras , wydają się one również trochę zdezorientowane i w zasadzie może to być tylko kwestia preferencji ... (tj. Hipotetycznie Bengio wolałby jednolite rozmieszczenie, podczas gdy Hinton wolałby normalne ...) W ramach dyskusji istnieje mały punkt odniesienia porównujący inicjalizację Glorot przy użyciu rozkładu jednolitego i gaussowskiego. W końcu wydaje się, że mundur wygrywa, ale nie jest do końca jasne.

W oryginalnym artykule ResNet mówi tylko, że użyli gaussowskiego inicjatora He dla wszystkich warstw, nie byłem w stanie znaleźć, gdzie jest napisane, że użyli jednolitego inicjatora He dla pierwszej warstwy. (może mógłbyś udostępnić odniesienie do tego?)

Jeśli chodzi o użycie inicjacji gaussowskiej z normalizacją wsadową, to w przypadku BN proces optymalizacji jest mniej wrażliwy na inicjalizację, więc powiedziałbym, że to tylko konwencja.

tlorieul
źródło
Źle to odczytałem. Masz rację, że ResNet w ogóle nie używa jednolitej inicjalizacji. Poprawiono mnie.
rilut
0

Zapoznaj się z hiperparametrami w akcji! Część II - Inicjatory wagowe

rocksyne
źródło
1
Unikaj publikowania tylko linków. Dowolny link może po pewnym czasie wygasnąć, a nowi czytelnicy nie będą mogli sprawdzić odpowiedzi. Możesz opublikować link, ale zawsze dodaj podsumowanie najważniejszej części jako tekst.
Tasos
Komentarz Tasos dobrze odnotowany. Było zbyt wiele informacji do podsumowania i dlatego zamieściłem link zamiast tego i dostaję twoją opinię o zerwaniu linków. Dzięki.
rocksyne