Wie kann es in einem Sattelpunkt gefangen werden?


14

Ich bin derzeit ein bisschen verwirrt darüber, wie der Mini-Batch-Gefälle-Abstieg in einem Sattelpunkt gefangen werden kann.

Die Lösung könnte zu trivial sein, als dass ich sie nicht verstehe.

Sie erhalten in jeder Epoche eine neue Stichprobe und es wird ein neuer Fehler basierend auf einer neuen Charge berechnet, sodass die Kostenfunktion nur für jede Charge statisch ist. Dies bedeutet, dass sich der Gradient auch für jede Mini-Charge ändern sollte eine Vanille-Implementierung Probleme mit Sattelpunkten?

Eine weitere wichtige Herausforderung bei der Minimierung von nicht-konvexen Fehlerfunktionen, die für neuronale Netze üblich sind, besteht darin, zu vermeiden, dass sie in ihren zahlreichen suboptimalen lokalen Minima eingeschlossen werden. Dauphin et al. [19] argumentieren, dass die Schwierigkeit in der Tat nicht von lokalen Minima herrührt, sondern von Sattelpunkten, dh Punkten, an denen eine Dimension ansteigt und eine andere abfällt. Diese Sattelpunkte sind normalerweise von einem Plateau mit demselben Fehler umgeben, was es für SGD notorisch schwierig macht, zu entkommen, da der Gradient in allen Dimensionen nahe Null ist.

Ich würde meinen, dass insbesondere SGD einen klaren Vorteil gegenüber Sattelpunkten haben würde, da es in Richtung seiner Konvergenz schwankt.

Bei vollem Batch-Gefälle ist es sinnvoll, dass es im Sattelpunkt gefangen werden kann, da die Fehlerfunktion konstant ist.

Ich bin ein bisschen verwirrt über die beiden anderen Teile.


1
Moti versteht es. Der Sattelpunkt mit sehr hohen Abhängen und umgeben von Nullabhängen startet eine Gefälleabfahrt mit großen Stufen in "die Ödländer", von denen er sich nicht erholen kann. Überlegen Sie, ob Sie einen Brunnen auf einer im Wesentlichen flachen Ebene suchen. Denken Sie jetzt an den Brunnen, der trocken und mit einem Ameisenhaufen in der Mitte ist. Ein Gefälle, das auf dem Ameisenhügel landet, aber nicht genau oben, wird die Suche radial auslösen. Stellen Sie sich nun vor, dass die Schrittweite für die Suche tausendmal größer ist als der Durchmesser des Brunnens. Wenn die Suche jemals den Brunnen findet, schießt der Ameisenhaufen ihn zu montana
EngrStudent - Reinstate Monica

Ich bin verwirrt, was Sie fragen. Sind Sie verwirrt, warum SGD aufgrund des ererbten Rauschens, das SGD hat, nicht in der Lage ist, im Sattelpunkt gefangen zu werden, so dass es Ihrer Meinung nach in der Lage sein sollte zu entkommen? (Im Gegensatz zu GD bei voller Ladung, wenn der Gradient Null und kein Rauschen ist, kann er nicht entkommen. Ist es das, wonach Sie fragen?)
Pinocchio,

Antworten:


16

Schauen Sie sich das Bild unten von Off Convex an . In einer konvexen Funktion (ganz links im Bild) gibt es nur ein lokales Minimum, das auch das globale Minimum ist. In einer nicht-konvexen Funktion (ganz rechts im Bild) kann es jedoch mehrere lokale Minima geben, und häufig ist das Verbinden von zwei lokalen Minima ein Sattelpunkt. Wenn Sie sich von einem höheren Punkt aus nähern, ist der Gradient vergleichsweise flacher und es besteht die Gefahr, dass Sie dort hängen bleiben, insbesondere wenn Sie sich nur in eine Richtung bewegen.

Diagrammatische Darstellung eines Sattelpunktes

Jetzt ist die Sache, ob Sie mit Mini-Batch optimierenBeim stochastischen Gradientenabstieg ist die zugrunde liegende nichtkonvexe Funktion dieselbe und der Gradient ist eine Eigenschaft dieser Funktion. Bei der Mini-Batch-Analyse werden mehrere Proben gleichzeitig berücksichtigt und der über alle gemittelte Gradientenschritt ausgeführt. Dies verringert die Varianz. Wenn die durchschnittliche Steigungsrichtung jedoch immer noch in dieselbe Richtung wie der Sattelpunkt zeigt, besteht die Gefahr, dass Sie dort stecken bleiben. Die Analogie ist, wenn Sie 2 Schritte vorwärts und 1 Schritt zurück machen, über diese gemittelt, werden Sie letztendlich 1 Schritt vorwärts machen. Wenn Sie stattdessen SGD ausführen, führen Sie alle Schritte nacheinander aus. Wenn Sie sich jedoch immer noch in eine Richtung bewegen, können Sie den Sattelpunkt erreichen und feststellen, dass der Gradient auf allen Seiten ziemlich flach ist und die Schrittgröße gleich ist zu klein, um über diesen flachen Teil zu gehen. Das tut nicht

Schauen Sie sich hier die Visualisierung an . Selbst bei SGD würde es am Sattelpunkt konvergieren, wenn die Schwankungen nur in einer Dimension auftreten und die Stufen immer kleiner werden. In diesem Fall würde das Mini-Batch-Verfahren nur die Schwankungsbreite verringern, aber die Richtung des Gradienten nicht ändern können.

SGD kann manchmal aus einfachen Sattelpunkten ausbrechen, wenn die Schwankungen in andere Richtungen verlaufen und wenn die Schrittgröße groß genug ist, um die Ebenheit zu überwinden. Aber manchmal können die Sattelbereiche ziemlich komplex sein, wie im Bild unten.

Komplexe Sattelbereiche

Die Art und Weise, wie Methoden wie Momentum, ADAGRAD, Adam usw. in der Lage sind, daraus auszubrechen, beruht auf der Berücksichtigung der vergangenen Gradienten. Betrachten Sie Dynamik,

vt=γvt1+ηthetaJ(θ)

Dies fügt einen Teil des letzten Gradienten hinzu, . Wenn Sie nur in eine Richtung hin und her gegangen sind und die Zeichen im Wesentlichen geändert haben, dämpft dies letztendlich Ihren Fortschritt. Wenn es durchweg positive Fortschritte in eine Richtung gegeben hat, baut es sich auf und geht auf diese Weise zurück.vt1


Nicht genau! Eine Antwort in der Praxis finden Sie unter: stats.stackexchange.com/a/284399/117305
alifornia

@AliAbbasinasab Ich denke, Antimon erklärt gut. Natürlich ist es kaum so, wie Sie in Ihrer Antwort erwähnt haben, an einem gewöhnlichen Sattelpunkt hängen zu bleiben, aber er hat nur die Möglichkeit aufgezeigt, dass der SGD erwischt werden könnte. Und für mich zeigte er nur einige ungewöhnliche Sattelpunkte, denen SGD nicht entkommen kann.
Kazuya Tomita

2

Es sollte nicht.

[ 1 ] hat gezeigt, dass ein Gradientenabstieg mit zufälliger Initialisierung und geeigneter konstanter Schrittgröße nicht zu einem Sattelpunkt konvergiert. Es ist eine lange Diskussion, aber um Ihnen eine Vorstellung davon zu geben, warum Sie das folgende Beispiel sehen:

f(x,y)=12x2+14y412y2

Bildbeschreibung hier eingeben

z1=[00],z2=[01],z3=[01]

z2z3z1

z0=[x0]z1z1xR2

2f(x,y)=[1003y21]

2f(z1)xxz1


Sie könnten genauso einfach eine Gegenbeispielfunktion auswählen, bei der Sie jedes Mal in einem Sattelpunkt stecken bleiben ...
Jan Kukacka

1
Ich konnte Ihren Link nicht erreichen [1] - können Sie ein vollständiges Zitat angeben? In der Zwischenzeit ist es möglich, Gegenbeispiele zu Ihrer Forderung zu erstellen, die angeben, dass diese auf zusätzlichen nicht angegebenen Annahmen basieren muss.
Whuber

@whuber Sie können leicht Gegenbeispiele kochen. Zum Beispiel, wenn Sie nur eine Linie als Leerzeichen haben. Ich habe nur versucht, einen Punkt hinzuzufügen, der für viele vielleicht nicht offensichtlich ist (es war mir anfangs nicht zu offensichtlich, warum). Über die Referenz habe ich keine Ahnung, warum Sie sie nicht erreichen können. Ich habe doppelt geprüft, der Link ist gültig und werde auch aktualisiert. Sie können nach "Gradient Descent Converges to Minimizers", Jason D. Lee, Max Simchowitz, Michael I. Jordan und Benjamin Recht suchen "
Kalifornien

Vielen Dank für den Hinweis. Ein kurzer Blick darauf (der Link funktioniert jetzt) ​​zeigt, dass sich die Analyse auf "strenge Sättel" beschränkt (wobei es sowohl positive als auch negative Eigenwerte des Hessischen gibt), was viele Möglichkeiten ausschließt. Die abschließenden Aussagen des Papiers beinhalten "Wir stellen fest, dass es sehr schwierige ungezwungene Optimierungsprobleme gibt, bei denen die strenge Sattelbedingung versagt" und sie bieten als Beispiel die Minimierung von Quartalen.
Whuber

0

Wenn Sie zu dem referenzierten Artikel gehen (sie zeigen auch eindrucksvoll, wie sich ihr Ansatz ohne Sattel tatsächlich gegenüber SGD im Minibatch verbessert), stellen sie fest:

Ein Schritt der Gradientenabstiegsmethode zeigt immer in die richtige Richtung in der Nähe eines Sattelpunkts ... und so werden kleine Schritte in Richtungen ausgeführt, die Eigenwerten mit kleinem absoluten Wert entsprechen.

Sie bemerken auch das Vorhandensein von "Plateaus" in der Nähe von Sattelpunkten (mit anderen Worten, der Sattel ist nicht steil) - in diesen Fällen würde das Ergreifen von zu kleinen Schritten in der Tat zu einer vorzeitigen Konvergenz führen, bevor er den Sattelbereich verlassen hat. Da dies eine nicht konvexe Optimierung ist, würde die Konvergenz der Lernrate dies verschlechtern.

Es scheint möglich, dass man einen iterativen Ansatz versuchen könnte, bei dem man die Mini-Batch-SGD nach Abschluss neu startet (dh die Lernrate zurücksetzt), um zu sehen, ob man der problematischen Region entkommen kann.


0

Ich denke, das Problem ist, dass man, wenn man sich einem Sattelpunkt nähert, ein Plateau betritt, dh ein Gebiet mit geringen (absoluten) Steigungen. Vor allem, wenn Sie sich vom Kamm nähern. Ihr Algorithmus verringert also die Schrittgröße. Mit abnehmender Schrittweite sind nun alle Farbverläufe (in alle Richtungen) betragsmäßig klein. Also stoppt der Algorithmus und denkt, er ist auf dem Minimum.

Wenn Sie die Schritte nicht verringern, werden Sie über das Minimum springen und sie häufig vermissen. Sie müssen die Schrittgröße irgendwie verringern.

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.