Ich möchte wissen, ob Gradient Descent der Hauptalgorithmus ist, der in Optimierern wie Adam, Adagrad, RMSProp und mehreren anderen Optimierern verwendet wird.
Ich möchte wissen, ob Gradient Descent der Hauptalgorithmus ist, der in Optimierern wie Adam, Adagrad, RMSProp und mehreren anderen Optimierern verwendet wird.
Antworten:
Nein. Gradientenabsenkung wird in Optimierungsalgorithmen verwendet, die den Gradienten als Grundlage für seine Schrittbewegung verwenden. Adam
,, Adagrad
und RMSProp
alle verwenden eine Art Gradientenabstieg, machen jedoch nicht jeden Optimierer aus. Evolutionäre Algorithmen wie die Partikelschwarmoptimierung und genetische Algorithmen sind von natürlichen Phänomenen inspiriert und verwenden keine Gradienten. Andere Algorithmen wie die Bayes'sche Optimierung lassen sich von Statistiken inspirieren.
Schauen Sie sich diese Visualisierung der Bayesianischen Optimierung in Aktion an:
Es gibt auch einige Algorithmen, die Konzepte aus der evolutionären und gradientenbasierten Optimierung kombinieren.
Nicht derivative Optimierungsalgorithmen können besonders nützlich sein bei unregelmäßigen nicht konvexen Kostenfunktionen, nicht differenzierbaren Kostenfunktionen oder Kostenfunktionen mit einer unterschiedlichen linken oder rechten Ableitung .
Um zu verstehen, warum man einen nicht-derivativen Optimierungsalgorithmus wählen kann. Schauen Sie sich die Rastrigin-Benchmark-Funktion an . Die gradientenbasierte Optimierung ist nicht gut geeignet, um Funktionen mit so vielen lokalen Minima zu optimieren.
Laut Titel:
Nein. Nur bestimmte Optimierertypen basieren auf Gradient Descent. Ein einfaches Gegenbeispiel ist, wenn sich die Optimierung über einen diskreten Bereich erstreckt, in dem der Gradient nicht definiert ist.
Nach dem Körper:
Ja. Adam, Adagrad, RMSProp und andere ähnliche Optimierer (Nesterov, Nadam usw.) versuchen alle, eine adaptive Schrittgröße (Lernrate) für den Gradientenabstieg vorzuschlagen, um die Konvergenzgeschwindigkeit zu verbessern, ohne die Leistung zu beeinträchtigen (dh zu einem schlechteren lokalen Minimum zu führen / maximal).
Es ist erwähnenswert, dass es auch Newton-Methoden und ähnlich Quasi-Newton-Methoden gibt, die mit der Ableitung der Verlustfunktion zweiter Ordnung arbeiten (Gradientenabnahme funktioniert mit der Ableitung erster Ordnung). Diese Verfahren haben aufgrund der großen Anzahl von Modellparametern bei praktischen Problemen den Kompromiss zwischen Geschwindigkeit und Skalierbarkeit durch Gradientenabstieg verloren.
Einige zusätzliche Hinweise
Die Form der Verlustfunktion hängt sowohl von den Modellparametern als auch von den Daten ab. Daher hängt die Auswahl der besten Methode immer von der jeweiligen Aufgabe ab und erfordert Versuche und Irrtümer.
Der stochastische Teil Gradientenabfallsaktualisierung wird unter Verwendung ein erreicht Charge von Daten , anstatt die vollständigen Daten. Diese Technik ist parallel zu allen genannten Methoden, dh alle können stochastisch (unter Verwendung eines Datenstapels) oder deterministisch (unter Verwendung der gesamten Daten) sein.
projizierte stochastische Adam .
Die Antwort auf die Frage kann nein sein. Der Grund liegt einfach in den zahlreichen verfügbaren Optimierungsalgorithmen. Die Auswahl eines Algorithmus hängt jedoch stark vom Kontext und der Zeit ab, die Sie für die Optimierung haben. Zum Beispiel ist der genetische Algorithmus ein bekannter Optimierungsansatz, der keinen Gradientenabstieg enthält. Es gibt auch andere Ansätze wie das Zurückverfolgen in bestimmten Kontexten. Es können alle verwendet werden, die nicht schrittweise den Gefälleverlauf nutzen.
Auf der anderen Seite können Sie für Aufgaben wie die Regression eine enge Form finden, um das Problem zu lösen und Extrema zu finden. Der Punkt ist jedoch, dass Sie abhängig vom Merkmalsraum und der Anzahl der Eingaben die enge Formgleichung oder den Gradienten wählen können Abstieg, um die Anzahl der Berechnungen zu verringern.
Obwohl es so viele Optimierungsalgorithmen gibt, werden in neuronalen Netzen aus mehreren Gründen eher gradientenbasierte Ansätze verwendet. Erstens sind sie sehr schnell. Beim Deep Learning müssen Sie so viele Daten bereitstellen, dass sie nicht gleichzeitig in den Speicher geladen werden können. Folglich müssen Sie für die Optimierung Stapelgradientenmethoden anwenden. Es ist ein bisschen statistisch, aber Sie können davon ausgehen, dass jede Stichprobe, die Sie in Ihr Netzwerk einbringen, eine ungefähr ähnliche Verteilung wie die tatsächlichen Daten aufweist und repräsentativ genug ist, um einen Gradienten zu finden, der dem tatsächlichen Gradienten der zu erwartenden Kostenfunktion nahe kommt unter Verwendung aller vorliegenden Daten erstellt werden.
Drittens gibt es Optimierungsprobleme, die nicht unbedingt eine enge Lösung haben. Die logistische Regression ist eine davon.
Nun, Sie haben Optimierer ausgewählt, die in neuronalen Netzen verwendet werden. Diese Optimierer verwenden gradientenbasierte Algorithmen. In den meisten Fällen werden in neuronalen Netzen gradientenbasierte Algorithmen verwendet. Warum das? Würden Sie lieber versuchen, das Minimum zu finden, wenn Sie die Steigung einer Kurve kennen oder nicht? Wenn Sie den Verlauf nicht berechnen können, greifen Sie auf die derivatfreie Optimierung zurück . Trotzdem gibt es Fälle, in denen es besser ist, eine gradientenfreie Methode zu verwenden, obwohl Sie Informationen über den Gradienten haben. Dies ist normalerweise bei Funktionen der Fall, die viele lokale Minima haben. Populationsbasierte Algorithmen wie Evolutionsstrategien und genetische Algorithmen haben hier die Oberhand. Und es gibt auch den Zweig der kombinatorischen Optimierung, in dem eine ganze Reihe von Werkzeugen verwendet wird.