Jakie jest wyjaśnienie przykładu, dlaczego normalizację partii należy przeprowadzać z pewną ostrożnością?

11

Czytałem artykuł normalizacyjny partii [1] i miał jedną sekcję, w której znajduje się przykład, próbując pokazać, dlaczego normalizacja musi być wykonana ostrożnie. Szczerze mówiąc, nie rozumiem, jak działa ten przykład, i naprawdę jestem bardzo ciekawy, jak rozumieją, jak drukują. Najpierw pozwól mi zacytować to tutaj:

Rozważmy na przykład warstwę z wejściem u, która dodaje wyuczone odchylenie b i normalizuje wynik, odejmując średnią aktywacji obliczoną na podstawie danych treningowych: gdzie jest zbiorem wartości w zestawie treningowym, a . Jeśli krok opadania gradientu ignoruje zależność od , wówczas zaktualizuje , gdzie . Następnie . Tak więc połączenie aktualizacji dox=U+b,X={x1. . . N}xE[x]= N i = 1 xiE[x]bbb+Δ>bΔb-lx^=xE[x]x=u+b,X={x1...N}xE[x]=i=1NxiE[x]bbb+Δ>b U+(b+Δb)-e[U+(b+Δb)]=U+b-E[U+b]bΔblx^u+(b+Δb)E[u+(b+Δb)]=u+bE[u+b]b a późniejsza zmiana normalizacji nie doprowadziła do zmiany wydajności warstwy ani w konsekwencji do utraty.

Wydaje mi się, że rozumiem przesłanie, że jeśli normalizacja nie zostanie przeprowadzona prawidłowo, może być źle. Po prostu nie rozumiem, w jaki sposób wykorzystują to przykłady.

Zdaję sobie sprawę, że trudno jest komuś pomóc, jeśli nie jest on bardziej szczegółowy w kwestii tego, co go dezorientuje, dlatego przedstawię w następnym rozdziale rzeczy, które wprowadzają mnie w błąd co do ich wyjaśnienia.


Myślę, że większość moich nieporozumień może mieć charakter notacyjny, więc wyjaśnię.

Po pierwsze, myślę, że jedną z rzeczy, która mnie bardzo dezorientuje, jest to, że autorzy mają jednostkę w sieci i czym jest aktywacja. Zazwyczaj myślę o aktywacji jako:

x(l)=a(l)=θ(z(l))=θ(w(l),x(l1)+b(l))

gdzie to nieprzetworzone wektory cech z pierwszej warstwy wejściowej.x(0)=a(0)=x

Myślę też, że jedną z pierwszych rzeczy, które mnie dezorientują (z poprzedniego powodu), jest scenariusz, który próbują wyjaśnić. To mówi:

normalizuje wynik, odejmując średnią aktywacji obliczoną na podstawie danych treningowych: gdziex=U+bx^=xE[x]x=u+b

Myślę, że próbują powiedzieć, że zamiast używać aktywacji obliczonych przez podanie do przodu, wykonuje się pewnego rodzaju „normalizację” poprzez odjęcie średniej aktywacji :x(l)=a(l)

x¯l=a¯l=1Ni=1Na¯l=1Ni=1Nx¯l

a następnie przekazuje to do algorytmu wstecznej propagacji. A przynajmniej to miałoby dla mnie sens.

Odnosząc się do tego, myślę, że to, co nazywają to może ? To, co zgaduję, ponieważ nazywają to „wejściem” i mają równanie ( wydaje mi się, że używają jednostki tożsamości / aktywacji liniowej dla swojej sieci neuronowej? Może).x ( l ) x = u + bux(l)x=u+b

Aby jeszcze bardziej pomylić, definiują jako coś proporcjonalnego do pochodnej cząstkowej, ale pochodna cząstkowa jest obliczana w odniesieniu do , co wydaje mi się naprawdę dziwne. Zazwyczaj pochodne częściowe przy zastosowaniu spadku gradientu odnoszą się do parametrów sieci. W przypadku przesunięcia pomyślałbym:xΔbx^

Δb(l)lb(l)

ma większy sens niż przyjmowanie pochodnej w odniesieniu do znormalizowanych aktywacji. Próbowałem zrozumieć, dlaczego wzięli pochodną w odniesieniu do i pomyślałem, że może mieli na myśli delty, pisząc odkąd zwykle jest to jedyna część algorytmu wstecznego, która ma pochodną w odniesieniu do wstępnej aktywacji, ponieważ równanie delta to:lx^lx^

δj(l)=Lzj(l)

Kolejna rzecz, która mnie myli, to:

Następnie .u+(b+Δb)E[u+(b+Δb)]=u+bE[u+b]

tak naprawdę nie mówią, co starają się obliczyć w powyższym równaniu, ale chciałbym wnioskować, że starają się obliczyć zaktualizowaną znormalizowany aktywacji (dla pierwszej warstwy?) po jest aktualizowany do ? Nie jestem pewien, czy kupię ich punkt, ponieważ uważam, że poprawnym równaniem powinno być:bb+Δb

x^=θ(u+(b+Δb))E[θ(u+(b+Δb))]

co nie anuluje zmiana parametru . Jednak tak naprawdę nie wiem, co oni robią, więc tylko zgaduję. Czym dokładnie jest to równanie, które napisali?bΔbb

Nie jestem pewien, czy jest to właściwe zrozumienie, ale zastanowiłem się nad ich przykładem. Wydaje się, że ich przykład nie ma nieliniowej jednostki aktywacyjnej (używa tożsamości) i mówią tylko o pierwszej warstwie wejściowej? Ponieważ pominięto wiele szczegółów, a notacja nie jest bardzo jasna, nie mogę wydedukować dokładnie, o czym mówią. Czy ktoś wie, jak wyrazić ten przykład notacją, która wyraża to, co dzieje się na każdej warstwie? Czy ktoś rozumie, co się właściwie dzieje z tym przykładem i chce podzielić się ze mną swoją mądrością?


[1]: Ioffe S. i Szegedy C. (2015),
„Normalizacja partii: przyspieszenie głębokiego szkolenia w sieci poprzez ograniczenie wewnętrznej zmiany współzmiennej”,
materiały z 32. międzynarodowej konferencji na temat uczenia maszynowego , Lille, Francja, 2015.
Journal of Machine Learning Badania: W&CP tom 37

Charlie Parker
źródło
Myślę, że charakter notacyjny tego akapitu jest teraz jasny, ale przesłanie, które próbuje przekazać i jego cel, jest mniej jasne.
Charlie Parker,

Odpowiedzi:

3

Myślę, że cały punkt tego paragrafu jest taki, że jeśli krok opadania gradientu ignoruje zależność od , aktualizacja terminu b nie spowoduje zmiany wynikuE[x]b , jak stwierdzono w zdaniu przed nim,

Jeśli jednak te modyfikacje są przeplatane krokami optymalizacji, wówczas krok spadku gradientu może próbować zaktualizować parametry w sposób, który wymaga aktualizacji normalizacji, co zmniejsza efekt kroku gradientu.

Dlatego uświadomili, że krok opadania gradientu jest świadomy normalizacji w swojej metodzie.


Jeśli chodzi o twoje pytania

Odnosząc się do tego, myślę, że to, co nazywają to może ?ux(l)

Jak stwierdzono w pierwszym zdaniu, jest wejściem warstwy. Co faktycznie to nie wydaje się ważne, ponieważ tylko oni ilustrujący działanie w przykładzie.uub

że ma więcej sensu niż przyjmowanie pochodnej w odniesieniu do znormalizowanych aktywacji.Δblb

Wiemy , ponieważ ignorujemy zależność od , mamy tak .x^=xE[x]=u+bE[x]E[x]b

lb=lx^x^b=lx^,
Δblx^

b b + Δ bu+(b+Δb)E[u+(b+Δb)]=u+bE[u+b] tak naprawdę nie mówią, co próbują obliczyć w powyższym równaniu, ale chciałbym wnioskować, że starają się obliczyć zaktualizowaną znormalizowany aktywacji (dla pierwszej warstwy?) po jest aktualizowany do ?bb+Δb

To obliczenie gdy jest aktualizowany , aby pokazać, że jeśli etap największego spadku ignoruje zależność w aktualizowanie termin Odchylenie B prowadzi do żadnej zmiany w wynik. bb+Δbe[x]bx^bb+ΔbE[x]b


Przydatne może być spojrzenie na niektóre implementacje normalizacji wsadowej typu open source, na przykład w Lasagne i Keras .

Jest jeszcze jedno pytanie, które może wydawać się powiązane: Dlaczego warto przyjmować gradient momentów (średnią i wariancję) podczas korzystania z normalizacji wsadowej w sieci neuronowej?

dontloo
źródło
więc sądzę, że ich celem jest to, że muszą uświadomić aktualizację GD o normalizacji, aby strata zmieniła się podczas aktualizacji odchylenia? A jaki jest główny cel tego akapitu?
Charlie Parker,
@CharlieParker tak sądzę, aby pokazać, że istnieje powód, aby uświadomić GD aktualizację o normalizacji (IMO).
dontloo,
Czy E [Δb] = Δb? Jeśli tak, to dlaczego?
MichaelSB,