Hinweis: In dieser Antwort beziehe ich mich auf die Minimierung des Trainingsverlusts und diskutiere nicht das Beenden von Kriterien wie Validierungsverlust. Die Auswahl der Stoppkriterien hat keinen Einfluss auf die nachfolgend beschriebenen Prozesse / Konzepte.
Der Prozess des Trainings eines neuronalen Netzwerks besteht darin, den Minimalwert einer Verlustfunktion , wobei W eine Matrix (oder mehrere Matrizen) von Gewichten zwischen Neuronen darstellt und X den Trainingsdatensatz darstellt. Ich verwende einen Index für X, um anzuzeigen, dass unsere Minimierung von ℒ nur über den Gewichten W auftritt (das heißt, wir suchen nach W, so dass ℒ minimiert ist), während XLX(W)WXXLWWLX festgelegt ist.
Wenn wir nun annehmen, dass wir Elemente in W haben (das heißt, es gibt P Gewichte im Netzwerk), ist ℒ eine Oberfläche in einem P + 1- dimensionalen Raum. Um ein visuelles Analogon zu erhalten, stellen Sie sich vor, dass wir nur zwei Neuronengewichte haben ( P = 2 ). Dann hat ℒ eine einfache geometrische Interpretation: Es ist eine Oberfläche in einem dreidimensionalen Raum. Dies ergibt sich aus der Tatsache, dass für jede gegebene Matrix von Gewichten W die Verlustfunktion auf X ausgewertet werden kann und dieser Wert die Höhe der Oberfläche wird.PWPLP+1P=2LWX
Aber es gibt das Problem der Nichtkonvexität; Die Oberfläche, die ich beschrieben habe, wird zahlreiche lokale Minima haben, und daher können Algorithmen zur Gradientenabsenkung in diesen Minima "hängen bleiben", während eine tiefere / tiefere / bessere Lösung in der Nähe liegen kann. Dies ist wahrscheinlich der Fall, wenn während aller Trainingsiterationen unverändert bleibt, da die Oberfläche für ein bestimmtes X festgelegt istXX . Alle Funktionen sind statisch, einschließlich der verschiedenen Minima.
Eine Lösung hierfür ist das Minibatch-Training in Kombination mit dem Mischen. Durch Mischen der Zeilen und Trainieren nur einer Teilmenge von ihnen während einer bestimmten Iteration ändert sich mit jeder Iteration, und es ist tatsächlich durchaus möglich, dass keine zwei Iterationen über die gesamte Sequenz von Trainingsiterationen und -epochen mit genau demselben X ausgeführt werden . Der Effekt ist, dass der Löser leicht von einem lokalen Minimum "abprallen" kann. Stellen Sie sich vor, dass der Löser bei Iteration i mit dem Training von Mini-Batch X i in einem lokalen Minimum stecken bleibt . Dieses örtliche Minimum entspricht ℒ, das bei einem bestimmten Gewichtswert bewertet wird; wir nennen es ℒ X i ( WXXiXiL . Bei der nächsten Iteration ändert sich die Form unserer Verlustfläche tatsächlich, weil wir X i + 1 verwenden , d. H. ℒ X i + 1 ( W i ) kann einen ganz anderen Wert annehmen als ℒ X i ( W i ) und es Es ist durchaus möglich, dass es nicht einem lokalen Minimum entspricht! Wir können jetzt ein Gradientenupdate berechnen und mit dem Training fortfahren. Um es klar auszudrücken : Die Form von ℒ X i + 1 unterscheidet sich im Allgemeinen von der von ℒ X iLXi(Wi)Xi+1LXi+1(Wi)LXi(Wi)LXi+1LXi. Beachten Sie, dass ich mich hier auf die Verlustfunktion die an einem Trainingssatz X ausgewertet wurde . Es ist eine vollständige Oberfläche, die über alle möglichen Werte von W definiert ist , und nicht die Bewertung dieses Verlusts (der nur ein Skalar ist) für einen bestimmten Wert von WLXWW . Beachten Sie auch, dass es bei der Verwendung von Minibatches ohne Mischen immer noch einen Grad an "Diversifikation" der Verlustoberflächen gibt, der Löser jedoch nur eine begrenzte (und relativ kleine) Anzahl eindeutiger Fehleroberflächen erkennt derselbe exakte Satz von Minibatches - und damit Verlustoberflächen - während jeder Epoche).
Ich habe bewusst darauf verzichtet, Mini-Batch-Größen zu diskutieren, da es zu diesem Thema eine Million Meinungen gibt und es erhebliche praktische Auswirkungen hat (größere Parallelisierung kann mit größeren Batches erreicht werden). Ich halte jedoch Folgendes für erwähnenswert. Da durch Berechnen eines Wertes für jede Zeile von X (und Summieren oder Ermitteln des Durchschnitts, dh eines kommutativen Operators) für einen gegebenen Satz von Gewichtsmatrizen W ausgewertet wird , hat die Anordnung der Zeilen von X keine Auswirkung, wenn Vollwert verwendet wird. Batch-Gradientenabstieg (dh, wenn jeder Batch das volle X hat und Iterationen und Epochen dasselbe sind).LXWX X