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 i. Wenn ein Gradientenabstiegsschritt die Abhängigkeit von von b ignoriert , aktualisiert er b ← b + Δ > b , wobei Δ b ∝ - ∂ l ist . 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.
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:
Dabei ist der Rohmerkmalsvektor der ersten Eingabeebene.
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 + 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:
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 haben (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:
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 ∂ l , da in der Regeldass der einzige Teil des Back-propAlgorithmus ist,eine Ableitung in Bezug hat zu-Aktivierungen vorda die Gleichung von Delta ist:
Eine andere Sache, die mich verwirrt, ist:
Dann .
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:
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?
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