Arten von Optimierern im Deep Learning, die jeder KI-Ingenieur kennen sollte
Veröffentlicht: 2020-12-01Inhaltsverzeichnis
Einführung
Deep Learning ist ein großer Fortschritt gegenüber maschinellem Lernen in Bezug auf Flexibilität, höhere Genauigkeit und eine Vielzahl von Möglichkeiten in Industrieanwendungen. Ob Chat-Anwendung, automatische Grammatikkorrektur, Übersetzung zwischen verschiedenen Sprachen, Erkennung gefälschter Nachrichten oder automatisches Schreiben von Geschichten auf der Grundlage einiger anfänglicher Formulierungen, Deep Learning findet in fast allen Bereichen Anwendung.
Bei so viel Nutzung wird es wichtig, dass diese Algorithmen mit minimalen Ressourcen ausgeführt werden, damit wir wiederkehrende Kosten reduzieren und in kürzerer Zeit effiziente Ergebnisse liefern können. Ein Optimierer ist eine Methode oder ein Algorithmus zum Aktualisieren der verschiedenen Parameter, die den Verlust mit viel weniger Aufwand reduzieren können. Sehen wir uns einige beliebte Deep-Learning-Optimierer an, die akzeptable Ergebnisse liefern.
Lernen Sie AI ML-Kurse von den besten Universitäten der Welt. Erwerben Sie Master-, Executive PGP- oder Advanced Certificate-Programme, um Ihre Karriere zu beschleunigen.
Gradientenabstieg (GD)
Dies ist der grundlegendste Optimierer, der direkt die Ableitung der Verlustfunktion und der Lernrate verwendet, um den Verlust zu reduzieren und die Minima zu erreichen. Dieser Ansatz wird auch bei der Backpropagation in neuronalen Netzwerken übernommen, wo die aktualisierten Parameter zwischen verschiedenen Schichten geteilt werden, abhängig davon, wann der minimale Verlust erreicht ist. Es ist einfach zu implementieren und die Ergebnisse zu interpretieren, aber es gibt verschiedene Probleme.
Die Gewichtungen werden aktualisiert, wenn der gesamte Datensatzgradient berechnet wird, was den Prozess verlangsamt. Es erfordert auch eine große Menge an Arbeitsspeicher, um diese temporären Daten zu speichern, was es zu einem ressourcenhungrigen Prozess macht. Obwohl die Idee hinter diesem Algorithmus gut geeignet ist, muss sie optimiert werden.
Stochastischer Gradientenabstieg
Dies ist eine geänderte Version der GD-Methode, bei der die Modellparameter bei jeder Iteration aktualisiert werden. Das bedeutet, dass nach jeder Trainingsprobe die Verlustfunktion getestet und das Modell aktualisiert wird. Diese häufigen Aktualisierungen führen zu einer Konvergenz zu den Minima in kürzerer Zeit, aber auf Kosten einer erhöhten Varianz, die dazu führen kann, dass das Modell über die erforderliche Position hinausschießt.

Aber ein Vorteil dieser Technik ist der geringe Speicherbedarf im Vergleich zu der vorherigen, da es jetzt nicht erforderlich ist, die vorherigen Werte der Verlustfunktionen zu speichern.
Mini-Batch-Gradientenabstieg
Eine weitere Variante dieses GD-Ansatzes ist Mini-Batch, bei dem die Modellparameter in kleinen Batch-Größen aktualisiert werden. Das bedeutet, dass die Modellparameter nach jeweils n Chargen aktualisiert werden, und dies stellt sicher, dass das Modell in weniger Schritten auf Minima zugeht, ohne häufig entgleist zu werden. Dies führt zu weniger Speicherverbrauch und geringer Varianz im Modell.
Lesen Sie: Projektideen für maschinelles Lernen
Auf Momentum basierender Gradientenabstieg
Sehen wir uns noch einmal die Methode an, mit der wir die Parameter aktualisieren. Basierend auf der Ableitung erster Ordnung der Verlustfunktion propagieren wir die Gradienten rückwärts. Die Aktualisierungshäufigkeit kann nach jeder Iteration, einem Stapel oder zuletzt erfolgen, aber wir berücksichtigen nicht, wie viele Aktualisierungen wir in den Parametern haben.
Wenn dieses Verlaufselement in den nächsten Updates enthalten ist, kann es den gesamten Prozess beschleunigen, und das bedeutet Momentum in diesem Optimierer. Dieses Geschichtselement ist so, wie unser Verstand Dinge auswendig lernt. Wenn Sie auf einer Straße gehen und eine ziemlich große Strecke zurücklegen, dann werden Sie sicher sein, dass Ihr Ziel ein Stück voraus ist, und Sie werden Ihre Geschwindigkeit erhöhen.
Dieses Element hängt vom vorherigen Wert, der Lernrate und einem neuen Parameter namens Gamma ab, der diese Verlaufsaktualisierung steuert. Die Aktualisierungsregel lautet so etwas wie w = w – v, wobei v das Verlaufselement ist.
Nesterov-beschleunigter Gradient (NAG)
Der Momentum-basierte GD gab den derzeit verwendeten Optimierern einen Schub, indem er frühestens zu den Minima konvergierte, aber er führte ein neues Problem ein. Diese Methode erfordert viele Kehrtwendungen und schwingt im Minima-Tal ein und aus, was die Gesamtzeit verlängert. Der Zeitaufwand ist immer noch viel zu geringer als bei normalem GD, aber dieses Problem muss ebenfalls behoben werden, und dies wird in NAG erledigt.
Der hier verfolgte Ansatz war, dass die Parameteraktualisierung zuerst mit dem History-Element durchgeführt wird und dann nur die Ableitung berechnet wird, die es in Vorwärts- oder Rückwärtsrichtung verschieben kann. Dies wird als Look-Ahead-Ansatz bezeichnet und ist sinnvoller, da die Kurve, wenn sie sich den Minima nähert, durch die Ableitung langsamer bewegt werden kann, sodass weniger Oszillationen auftreten und somit mehr Zeit gespart wird.

Lesen Sie auch: Deep-Learning-Techniken, die Sie kennen sollten
Adagrad
Bis jetzt konzentrieren wir uns nur darauf, wie die Modellparameter unser Training beeinflussen, aber wir haben nicht über die Hyperparameter gesprochen, denen während des gesamten Trainings ein konstanter Wert zugewiesen wird. Einer dieser wichtigen Hyperparameter ist die Lernrate, und deren Variation kann das Trainingstempo verändern.
Für eine spärliche Merkmalseingabe, bei der die meisten Werte Null sind, können wir uns eine höhere Lernrate leisten, die den aus diesen spärlichen Merkmalen resultierenden Sterbegradienten verstärkt. Wenn wir dichte Daten haben, können wir langsamer lernen.
Die Lösung dafür ist eine adaptive Lernrate, die sich entsprechend der bereitgestellten Eingabe ändern kann. Der Adagrad-Optimierer versucht, diese Anpassungsfähigkeit anzubieten, indem er die Lernrate proportional zum aktualisierten Verlauf der Gradienten verringert.
Dies bedeutet, dass bei größeren Aktualisierungen das Verlaufselement akkumuliert wird und daher die Lernrate verringert wird und umgekehrt. Ein Nachteil dieses Ansatzes besteht darin, dass die Lernrate aggressiv abfällt und nach einiger Zeit gegen Null geht.
RMSProp
Es ist eine Verbesserung des Adagrad-Optimierers. Dies zielt darauf ab, die Aggressivität der Lernrate zu verringern, indem anstelle der kumulativen Summe quadrierter Gradienten ein exponentieller Durchschnitt der Gradienten genommen wird. Die adaptive Lernrate bleibt intakt, da jetzt der exponentielle Durchschnitt eine größere Lernrate unter Bedingungen bestrafen wird, wenn es weniger Aktualisierungen und eine kleinere Rate bei einer höheren Anzahl von Aktualisierungen gibt.
Adam
Adaptive Moment Estimation kombiniert die Leistungsfähigkeit von RMSProp (root-mean-square prop) und Momentum-basiertem GD. In Adam-Optimierern macht die Kraft von Momentum GD, um die Historie von Aktualisierungen zu speichern, und die adaptive Lernrate, die von RMSProp bereitgestellt wird, Adam-Optimierer zu einer leistungsstarken Methode. Es führt auch zwei neue Hyperparameter Beta1 und Beta2 ein, die normalerweise um 0,9 und 0,99 gehalten werden, aber Sie können sie entsprechend Ihrem Anwendungsfall ändern.

Must Read: Regularisierung im Deep Learning
Fazit
In diesem Artikel haben wir uns 8 Deep-Learning-Optimierer in der Reihenfolge ihrer Benutzerfreundlichkeit angesehen und wie die Einschränkung eines Optimierers durch den nächsten überwunden wird, und so weiter. Es gibt noch weitere Modifikationen des einen oder anderen hier erwähnten Optimierers, aber dies sind die grundlegenden, die Sie berücksichtigen sollten, bevor Sie sich für komplexe Lösungen entscheiden.
Die Auswahl eines Gewinners unter diesen ist sehr subjektiv, abhängig vom Anwendungsfall und dem Problem, mit dem Sie es zu tun haben, aber man kann Adam Optimizer sicherlich an die Spitze setzen, da es mit dem Momentum-Konzept kombiniert wird, das die Art und Weise geändert hat, wie die Modellparameter aktualisiert werden sollten, und die Änderung anpasst Lernrate für verschiedene Szenarien, die eine effiziente Verarbeitung aller Arten von Eingaben ermöglichen.
Ein allgemeiner Trend zeigt, dass diese Optimierer für den gleichen Verlust bei unterschiedlichen lokalen Minima konvergieren. Während adaptive Lernoptimierer bei schärferen Minima konvergieren, konvergieren andere Arten von Techniken bei flacheren Minima, was besser für die Verallgemeinerung ist. Diese Techniken können nur bedingt helfen, denn je größer die tiefen neuronalen Netze werden, desto effizientere Methoden sind erforderlich, um gute Ergebnisse zu erzielen.
Wenn Sie neugierig sind, maschinelles Lernen und KI zu meistern, steigern Sie Ihre Karriere mit einem Master of Science in maschinellem Lernen und KI mit IIIT-B und der Liverpool John Moores University.
Wie arbeiten Optimierer mit Deep Learning?
Während neuronale Netze im Moment der ganze Hype sind, ist ein Optimierer etwas, das viel grundlegender für das Lernen eines neuronalen Netzes ist. Während neuronale Netze ohne Vorkenntnisse selbstständig lernen können, ist ein Optimierer ein Programm, das mit dem neuronalen Netz läuft und es ihm ermöglicht, viel schneller zu lernen. Kurz gesagt, es tut dies, indem es die Parameter des neuronalen Netzes so ändert, dass das Training mit diesem neuronalen Netz viel schneller und einfacher wird. Diese Optimierer ermöglichen es neuronalen Netzen, in Echtzeit zu arbeiten, und das Training dauert nur wenige Minuten. Ohne sie würde das Training leicht Tage dauern.
Warum ist es schwierig, Deep-Learning-Algorithmen zu optimieren?
Deep-Learning-Systeme gelten im Allgemeinen als schwer zu optimieren, da sie groß und komplex sind und häufig mehrere Ebenen und Nichtlinearitäten umfassen. Optimierer müssen sich mit einem riesigen System auseinandersetzen, das nicht leicht zu verstehen ist. Einige Deep-Learning-Tools bieten nur eine begrenzte Anzahl von Parametern, die angepasst werden können, was ihre Nützlichkeit einschränkt. Es gibt jedoch einige effektive Möglichkeiten, Deep-Learning-Modelle zu optimieren und ihre Verallgemeinerung zu verbessern.
Was sind verschiedene Optimierer im Deep Learning?
Beim Deep Learning werden Optimierer verwendet, um die Parameter für ein Modell anzupassen. Der Zweck eines Optimierers besteht darin, Modellgewichte anzupassen, um eine Verlustfunktion zu maximieren. Die Verlustfunktion wird verwendet, um zu messen, wie gut das Modell funktioniert. Beim Trainieren eines neuronalen Netzwerkmodells muss ein Optimierer verwendet werden. Es gibt eine Vielzahl verschiedener Optimierer, die mit einem Deep-Learning-Modell verwendet werden können. Einige der beliebtesten Optimierer sind RMSprop, Momentum und Adam