Ich habe das Batch-Normalisierungspapier ( 1) gelesen und nicht verstanden, dass es notwendig ist, gleitende Durchschnitte zu verwenden, um die Genauigkeit des Modells zu verfolgen, und selbst wenn ich akzeptiere, dass dies das Richtige ist, verstehe ich es nicht was sie genau tun.
Nach meinem Verständnis (was ich falsch finde) wird in dem Papier erwähnt, dass die Bevölkerungsstatistik und nicht die Mini-Batch-Statistik verwendet wird, sobald das Modell das Training beendet hat. Nach einigen Diskussionen über unvoreingenommene Schätzungen (die mir tangential erscheinen und nicht verstehen, warum das so ist) sagen sie:
Stattdessen verfolgen wir die Genauigkeit des Modells beim Trainieren mit gleitenden Durchschnitten.
Das ist der Teil, der mich verwirrt. Warum führen sie gleitende Durchschnitte durch, um die Genauigkeit des Modells zu schätzen und über welchen Datensatz?
Normalerweise verfolgen die Benutzer bei der Schätzung der Generalisierung ihres Modells lediglich den Validierungsfehler ihres Modells (und stoppen möglicherweise frühzeitig ihren Gradientenabstieg, um zu regulieren). Es scheint jedoch, dass die Chargennormalisierung etwas völlig anderes bewirkt. Kann jemand erklären, was und warum es etwas anderes macht?
1 : Ioffe S. und Szegedy C. (2015),
"Batch-Normalisierung: Beschleunigung des Deep-Network-Trainings durch Reduzierung der internen Covariate-Verschiebung", Ergebnisse
der 32. Internationalen Konferenz über maschinelles Lernen , Lille, Frankreich, 2015.
Journal of Machine Learning Research: W & CP-Band 37
quelle
Antworten:
Wenn Sie batch_normalization verwenden, müssen Sie zunächst verstehen, dass es in Training und Testing auf zwei verschiedene Arten funktioniert .
Im Training müssen wir den Mini-Batch-Mittelwert berechnen, um den Batch zu normalisieren
In der Folgerung wenden wir nur vorberechnete Mini-Batch-Statistiken an
Also in der 2. Sache, wie man diese Mini-Batch-Statik berechnet
Hier kommt der gleitende Durchschnitt
quelle
Sie sprechen von einer Chargennormalisierung, die sie für das Trainingsverfahren beschrieben haben, aber nicht für Rückschlüsse.
Dies ist ein Prozess zum Normalisieren der verborgenen Einheiten unter Verwendung von Beispielmitteln usw.
In diesem Abschnitt erklären sie, was für die Inferenzphase zu tun ist, wenn Sie nur Vorhersagen treffen (dh nachdem das Training abgeschlossen ist).
Bei gestoppter Validierung verschachteln Sie jedoch die Vorhersage für die gesetzte Validierung mit dem Training, um Ihren Validierungsfehler abzuschätzen.
Während dieses Vorgangs haben Sie also keinen Bevölkerungsdurchschnitt (die Durchschnittswerte ändern sich während des Trainings immer noch). Dann verwenden Sie einen laufenden Durchschnitt, um die Parameter der Chargennorm zu berechnen und die Leistung beim Validierungssatz zu berechnen.
In diesem Sinne
Es hat nichts damit zu tun, das Laufmittel buchstäblich als Maß für die Leistung des neuronalen Netzwerks zu verwenden.
quelle