Was ist eine Erklärung für das Beispiel, warum die Chargennormalisierung mit einiger Sorgfalt durchgeführt werden muss?

11

Ich habe das Batch-Normalisierungspapier [1] gelesen und es hatte einen Abschnitt, in dem ein Beispiel behandelt wird, um zu zeigen, warum die Normalisierung sorgfältig durchgeführt werden muss. Ich kann ehrlich gesagt nicht verstehen, wie das Beispiel funktioniert, und ich bin wirklich sehr neugierig zu verstehen, dass sie so viel Papier wie möglich enthalten. Lassen Sie es mich zuerst hier zitieren:

Zum Beispiel kann eine Schicht mit der Eingabe prüfen u dass die gelernte Bias b addiert und normalisiert das Ergebnis durch den Mittelwert der Aktivierungs Subtrahieren der Trainingsdaten berechnet wobei x = u + b , X = { x 1 . . . N } ist die Menge von Werten von x über der Trainingsmenge und E [ x ] = N i = 1 x ix^=xE[x]x=u+b,X={x1...N}xE[x]=i=1Nxi. Wenn ein Gradientenabstiegsschritt die Abhängigkeit von von b ignoriert , aktualisiert er b b + Δ > b , wobei Δ b - l istE[x]bbb+Δ>b . Dannu+(b+Δb)-E[u+(b+Δb)]=u+B-E[u+b]. Somit führte die Kombination der Aktualisierung aufbund der anschließenden Änderung der Normalisierung zu keiner Änderung der Ausgabe der Schicht oder folglich des Verlusts.Δblx^u+(b+Δb)E[u+(b+Δb)]=u+bE[u+b]b

Ich glaube, ich verstehe die Botschaft, dass es schlecht sein kann, wenn man die Normalisierung nicht richtig macht. Ich weiß nur nicht, wie das Beispiel, das sie verwenden, dies darstellt.

Ich bin mir bewusst, dass es schwierig ist, jemandem zu helfen, wenn er nicht genauer weiß, was ihn verwirrt. Deshalb werde ich im nächsten Abschnitt die Dinge erläutern, die mich an seiner Erklärung verwirren.


Ich denke, die meisten meiner Verwirrungen könnten notational sein, also werde ich es klarstellen.

Erstens denke ich, eines der Dinge, die mich sehr verwirren, ist, was es für die Autoren bedeutet, eine Einheit im Netzwerk zu haben und was eine Aktivierung ist. Normalerweise stelle ich mir eine Aktivierung wie folgt vor:

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

Dabei ist der Rohmerkmalsvektor der ersten Eingabeebene.x(0)=a(0)=x

Ich denke auch, dass eines der ersten Dinge, die mich (aus dem vorherigen Grund) verwirren, das Szenario ist, das sie wirklich zu erklären versuchen. Es sagt:

das Ergebnis normalisiert durch den Mittelwert der Aktivierungs Subtrahieren der Trainingsdaten berechnet wobei x = u + bx^=xE[x]x=u+b

Ich denke, sie versuchen zu sagen, dass man anstelle der durch den Vorwärtsdurchlauf berechneten Aktivierungen eine Art "Normalisierung" durch Subtrahieren der mittleren Aktivierung durchführt:x(l)=a(l)

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

und übergibt dies dann an den Back-Propagation-Algorithmus. Zumindest würde mir das Sinn machen.

In Bezug darauf denke ich, was sie nennen, ist vielleicht x ( l ) ? Das würde ich vermuten, weil sie es "Eingabe" nennen und die Gleichung x = u + b habenux(l)x=u+b (ich denke, sie verwenden die Einheit Identität / lineare Aktivierung für ihr neuronales Netzwerk? Vielleicht).

Zum weiteren confuse me definieren sie als etwas proportional zur partiellen Ableitung, aber die partielle Ableitung in Bezug auf berechneten x , die mir wirklich seltsam scheint. Normalerweise beziehen sich die partiellen Ableitungen bei Verwendung des Gradientenabfalls auf die Parameter des Netzwerks. Bei einem Offset hätte ich gedacht:Δbx^

Δb(l)lb(l)

ist sinnvoller, als die Ableitung von in Bezug auf die normalisierten Aktivierungen zu nehmen. Ich habe versucht , zu verstehen , warum sie die Ableitung in Bezug auf nehmen würden x und ich dachte , vielleicht haben sie zu den Deltas beziehen, als sie schrieb lx^ , da in der Regeldass der einzige Teil des Back-propAlgorithmus ist,eine Ableitung in Bezug hat zu-Aktivierungen vorda die Gleichung von Delta ist:lx^

δj(l)=Lzj(l)

Eine andere Sache, die mich verwirrt, ist:

Dann .u+(b+Δb)E[u+(b+Δb)]=u+bE[u+b]

Sie sagen nicht wirklich, was sie in der obigen Gleichung zu berechnen versuchen, aber ich würde daraus schließen, dass sie versuchen, die aktualisierte normalisierte Aktivierung (für die erste Schicht?) zu berechnen, nachdem auf b + Δ b aktualisiert wurde . Ich bin mir nicht sicher, ob ich ihren Punkt kaufe, weil ich denke, die richtige Gleichung hätte lauten sollen:bb+Δb

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

was die Änderung des Parameters b nicht aufhebt . Ich weiß jedoch nicht wirklich, was sie tun, also rate ich nur. Was genau ist diese Gleichung, die sie geschrieben haben?Δbb

Ich bin mir nicht sicher, ob dies das richtige Verständnis ist, aber ich habe über ihr Beispiel nachgedacht. Es scheint, dass ihr Beispiel keine nichtlineare Aktivierungseinheit hat (verwendet die Identität) und sie sprechen nur über die erste Eingabeebene? Da sie viele Details ausgelassen haben und die Notation nicht sehr klar ist, kann ich nicht genau ableiten, wovon sie sprechen. Weiß jemand, wie man dieses Beispiel mit einer Notation ausdrückt, die ausdrückt, was auf jeder Ebene vor sich geht? Versteht jemand, was mit diesem Beispiel tatsächlich los ist und möchte seine Weisheit mit mir teilen?


[1]: Ioffe S. und Szegedy C. (2015),
"Chargennormalisierung: Beschleunigung des tiefen Netzwerktrainings durch Reduzierung der internen Kovariatenverschiebung",
Tagungsband der 32. Internationalen Konferenz über maschinelles Lernen , Lille, Frankreich, 2015.
Journal of Machine Learning Forschung: W & CP Band 37

Charlie Parker
quelle
Ich denke, der Notationscharakter dieses Absatzes ist jetzt klar, aber die Botschaft, die er zu vermitteln versucht, und sein Zweck sind weniger klar.
Charlie Parker

Antworten:

3

Ich denke, der springende Punkt dieses Absatzes ist, wenn ein Gradientenabstiegsschritt die Abhängigkeit von ignoriertE.[x]] auf bDas Aktualisieren des Bias-Terms b führt zu keiner Änderung der Ausgabe , wie im vorhergehenden Satz angegeben.

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.

Daher machten sie den Gradientenabstiegsschritt auf die Normalisierung in ihrer Methode aufmerksam.


In Bezug auf Ihre Fragen

In Bezug darauf denke ich, wie sie es nennen u ist vielleicht x(l)?

Wie in ihrem ersten Satz behauptet, uist die Eingabe der Ebene. Wasu Eigentlich scheint es keine Rolle zu spielen, da sie nur die Wirkung von veranschaulichen b im Beispiel.

Ich hätte gedacht Δb- -lb ist sinnvoller, als die Ableitung von in Bezug auf die normalisierten Aktivierungen zu nehmen.

Wir wissen x^=xE[x]=u+bE[x], as we are ignoring the dependence of E[x] on b, we have

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

u+(b+Δb)E[u+(b+Δb)]=u+bE[u+b] they don't really say what they are trying to compute in the above equation but I would infer that they are trying to compute the updated normalized activation (for the first layer?) after b is updated to b+Δb?

Es berechnet die x^ nach b wird aktualisiert auf b+Δb, um zu zeigen, dass, wenn ein Gradientenabstiegsschritt die Abhängigkeit von ignoriert E.[x]] auf bDas Aktualisieren des Bias-Terms b führt zu keiner Änderung der Ausgabe.


Es kann hilfreich sein, sich einige Open-Source-Implementierungen der Batch-Normalisierung anzusehen, beispielsweise in Lasagne und Keras .

Es gibt noch eine andere Frage, die verwandt erscheinen könnte: Warum den Gradienten der Momente (Mittelwert und Varianz) nehmen, wenn die Chargennormalisierung in einem neuronalen Netzwerk verwendet wird?

dontloo
quelle
so I guess their point is that they need to make GD update aware of the normalization so that the loss changes when updating a bias? Or what is the central goal of that paragraph?
Charlie Parker
@CharlieParker yep I guess so, to show there's a reason to make GD update aware of the normalization (IMO).
dontloo
Is E[Δb] = Δb? If so, why?
MichaelSB