Papier: jaka jest różnica między normalizacją warstw, normalizacją okresowej partii (2016) i normalizacją partii RNN (2015)?

30

Tak więc ostatnio jest papier do normalizacji warstw . Istnieje również jego implementacja w Keras.

Ale pamiętam, że są artykuły zatytułowane Recurrent Batch Normalization (Cooijmans, 2016) i Batch Normalized Recurrent Neural Networks (Laurent, 2015). Jaka jest różnica między tymi trzema?

Istnieje sekcja Powiązana praca, której nie rozumiem:

Normalizacja partii została wcześniej rozszerzona na rekurencyjne sieci neuronowe [Laurent i in., 2015, Amodei i in., 2015, Cooijmans i in., 2016]. Poprzednie prace [Cooijmans i in., 2016] sugerują, że najlepszą wydajność powtarzalnej normalizacji partii uzyskuje się poprzez utrzymywanie niezależnych statystyk normalizacyjnych dla każdego kroku czasowego. Autorzy pokazują, że zainicjowanie parametru wzmocnienia w warstwie cyklicznej normalizacji wsadowej do wartości 0,1 ma znaczącą różnicę w końcowej wydajności modelu. Nasza praca związana jest również z normalizacją masy ciała [Salimans i Kingma, 2016]. W normalizacji ciężaru zamiast wariancji stosuje się normę L2 przychodzących ciężarów w celu normalizacji sumowanych danych wejściowych do neuronu. Zastosowanie albo normalizacji masy, albo normalizacji partii przy użyciu oczekiwanych statystyk jest równoważne z inną parametryzacją oryginalnej sieci neuronowej ze sprzężeniem zwrotnym. Ponowną parametryzację w sieci ReLU badano w Pathnormalized SGD [Neyshabur i in., 2015]. Nasza zaproponowana metoda normalizacji warstw nie polega jednak na ponownej parametryzacji oryginalnej sieci neuronowej. Model znormalizowany warstwowo ma zatem inne właściwości niezmienniczości niż inne metody , które zbadamy w następnym rozdziale

rilut
źródło

Odpowiedzi:

25
  • Normalizacja warstw ( Ba 2016 ): Nie używa statystyk partii. Normalizuj przy użyciu statystyk zebranych ze wszystkich jednostek w warstwie bieżącej próbki. Nie działa dobrze z ConvNets.

  • Recurrent Batch Normalization (BN) ( Cooijmans, 2016 ; zaproponowano również równolegle przez Qianli Liao i Tomaso Poggio , ale przetestowano na Recurrent ConvNets zamiast RNN / LSTM): Tak samo jak normalizacja partii. Użyj różnych statystyk normalizacyjnych dla każdego kroku czasowego. Musisz przechowywać zestaw średnich i odchyleń standardowych dla każdego kroku czasowego.

  • Batch Normalized Recurrent Neural Networks ( Laurent, 2015 ): normalizacja partii jest stosowana tylko między stanem wejściowym a stanem ukrytym, ale nie między stanami ukrytymi. tzn. normalizacja nie jest stosowana z czasem.

  • Streaming Normalization ( Liao i in. 2016 ): podsumowuje istniejące normalizacje i rozwiązuje większość wyżej wymienionych problemów. Działa dobrze z ConvNets, uczeniem okresowym i uczeniem się online (tj. Małą mini-partią lub jedną próbką na raz):

  • L2L21y=x(w/|w|)xwgy=ygg wydaje się nie mieć zasadniczego znaczenia dla wydajności (i tak warstwy, które mogą się nauczyć, mogą się tego nauczyć).

  • L2y=(x/|x|)(w/|w|)xw

Należy zauważyć, że zarówno normalizacja wagi, jak i kosinus były szeroko stosowane (zwane znormalizowanym produktem kropkowym) w 2000 roku w klasie ConvNets o nazwie HMAX (Riesenhuber 1999) do modelowania widzenia biologicznego. Możesz je uznać za interesujące.

Ref: Referencje modelu HMAX

Patrz: Cortical Network Simulator Reference

Ref: Normalizacja kosinusowa: użycie podobieństwa kosinusowego zamiast produktu kropkowego w sieciach neuronowych , Luo Chunjie, Zhan jianfeng, Wang lei, Yang Qiang

NeuralWorks
źródło