Batch-Normalisierung verstehen


8

In dem Artikel Batch-Normalisierung: Beschleunigen des tiefen Netzwerktrainings durch Reduzieren der internen Kovariatenverschiebung ( hier ) Bevor der Prozess der Batch-Normalisierung erläutert wird, wird versucht, die damit verbundenen Probleme zu erklären (ich verstehe nicht, was genau hier angesprochen wird) .

Auszug aus Abschnitt 2, Abs. 2:

Wir könnten in Betracht ziehen, die Aktivierung bei jedem Trainingsschritt oder in einem bestimmten Intervall aufzuhellen, indem wir entweder das Netzwerk direkt ändern oder die Parameter des Optimierungsalgorithmus so ändern, dass sie von den Netzwerkaktivierungswerten abhängen (Wiesler et al., 2014; Raiko et al., 2012) ; Povey et al., 2014; Desjardins & Kavukcuoglu). Wenn diese Modifikationen jedoch mit den Optimierungsschritten durchsetzt sind, versucht der Gradientenabstiegsschritt möglicherweise, die Parameter auf eine Weise zu aktualisieren, die eine Aktualisierung der Normalisierung erfordert, wodurch der Effekt des Gradientenschritts verringert wird. Betrachten wir zum Beispiel eine Schicht mit der Eingabe u , die den gelernten Bias fügt b und normalisiert das Ergebnis durch den Mittelwert der Aktivierungs Subtrahieren der Trainingsdaten berechnet x^=xE[x] wobei x=u+b,X=x1...N die Menge von Werten vonx über der Trainingsmenge ist undE[x]=1N(i=1nxi) .

Wenn ein Gradientenabstiegsschritt die Abhängigkeit von E [x] von b ignoriert, wird , wobei . Dann ist .bb+bbl/x^

(1)u+(b+b)E[u+(b+b)]=u+bE[u+b]

Somit führte die Kombination der Aktualisierung auf b und der anschließenden Änderung der Normalisierung weder zu einer Änderung der Ausgabe der Schicht noch folglich zu einem Verlust. Während das Training fortgesetzt wird, wird b auf unbestimmte Zeit wachsen, während der Verlust fest bleibt. Dieses Problem kann sich verschlimmern, wenn die Normalisierung die Aktivierungen nicht nur zentriert, sondern auch skaliert.

Hier ist mein Verständnis der Literatur:

  1. Wir haben eine Charge der Größe N (eine Trainingscharge)

  2. Es seien zwei beliebige verborgene Schichten miteinander verbunden (L1 und L2), die durch die Parameter undWb

  3. Der Ausgang von L1 ist x1

  4. u=x1W (hier beginnt die obige Literatur. Die Dimension von u ist MxN) (M ist die Anzahl der Einheiten in L2)

  5. x=u+b (Dimension b = Dimension x = Dimension u = MxN)

  6. Bevor wir nun x in L2 einspeisen, zentrieren wir es, indem wir den Mittelwert von von jedem Eintrag in subtrahieren ( ).xxx^=xE[x]

  7. Wir berechnen den Verlust und prognostizieren den Gradienten zurück und aktualisieren nur das dieser Schicht , um einen Vernunfttest durchzuführen. Neues =bbb+Δb

  8. Wir führen es erneut auf demselben Stapel mit aktualisiertemb

  9. Wiederholen Sie 3 und 4

  10. xnew=u+b+Δb (Dimension b, = Dimension x = Dimension u = MxN)Δb

  11. Bevor wir nun x in L2 einspeisen, zentrieren wir es, indem wir den Mittelwert von von jedem Eintrag in subtrahieren ( ). Dies entspricht dem, was vor der Aktualisierung von b berechnet wurde, und daher musste die Aktualisierung von b Auswirkungen auf das Training habenxxx^=x+ΔbE[x+Δb]=xE[x]

Meine Frage bezieht sich auf diesen Teil des Auszugs:

"Wenn ein Gradientenabstiegsschritt die Abhängigkeit von E [x] von b ignoriert, aktualisiert er , wobei . Dann "bb+bbl/x^

(1)u+(b+b)E[u+(b+b)]=u+bE[u+b]

Warum ist

" " abhängig davon, was davor kommt? Was ist überhaupt der Sinn dieses Stücks? Bitte beachten Sie auch, dass die Verwendung des Wortes "Dann" (fett gedruckt), das die Aussage impliziert, notwendigerweise die Kausalität aus dem Vorhergehenden zieht

(1)u+(b+b)E[u+(b+b)]=u+bE[u+b]

Antworten:


3

Nehmen wir an, Sie versuchen, den folgenden Verlust für eine bestimmte Aufgabe zu minimieren: wobeiist der eukledianische Abstand, und die vorhergesagte Ausgabe ist der Einfachheit halber . Die Gradienten können dann wie folgt berechnet werden:

(y,y^)=12yy^2,
y^=x^

Δb=x^x^b,Δω=x^x^ω

Nun wird der Gradient von in Bezug auf die Vorspannung istx^b

x^b=b(xE[x])=b((u+b)E[(u+b)])=1bE[(u+b)]

Das Ignorieren der Tatsache, dass von abhängt, macht den obigen Gradienten gleich 1 und aktualisiert daher die Vorspannung wie folgt weiter:E(x)b

x^b=1bE[x]=10=1
und dann

Δb=x^(1),bb+Δb

Wenn Sie diese Abhängigkeit berücksichtigen möchten, wird der Gradient zu 0 und daher wie folgt nicht aktualisiert:

x^b=1bE[u+b]=1(bE[u]+bE[b])=1(0+1)=0
und dann
Δb=x^(0),bb+0

In beiden Fällen bleibt die Verlustfunktion unabhängig von der Bias-Aktualisierung fest.

u+(b+Δb)E[u+(b+b)]=u+bE[u+b],

Im ersten Fall wird die Verzerrung jedoch auf unbestimmte Zeit zunehmen.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.