Der Optimierer ist ein Optimierungsalgorithmus, der verwendet wird, um Parameterwerte zu finden, die den Fehler minimieren, um die Genauigkeit des Modells zu verbessern. Beim maschinellen Lernen findet ein Optimierer die beste Lösung für ein bestimmtes Problem, indem er eine Kostenfunktion minimiert oder maximiert.
In verschiedenen Algorithmusmodellen gibt es viele verschiedene Arten von Optimierern, von denen jeder seine eigenen Vor- und Nachteile hat. Die gebräuchlichsten Optimierer sind Gradientenabstieg, stochastischer Gradientenabstieg, stochastischer Gradientenabstieg mit Impuls, adaptiver Gradientenabstieg und quadratischer Mittelwert. Jeder Optimierer verfügt über einige anpassbare Parametereinstellungen, die angepasst werden können, um die Leistung zu verbessern.
Gradient Descent (GD)
Gradient Descent ist ein grundlegender Optimierungsalgorithmus erster Ordnung, der auf der ersten Ableitung der Verlustfunktion basiert. Es sucht nach dem Wert der Minimalkostenfunktion, indem es die Gewichte des Lernalgorithmus aktualisiert und die am besten geeigneten Parameterwerte findet, die dem globalen Minimum entsprechen. Durch Backpropagation wird der Verlust von einer Schicht zur anderen weitergegeben und die Parameter des Modells werden entsprechend dem Verlust angepasst, um die Verlustfunktion zu minimieren.
Dies ist einer der ältesten und am häufigsten in neuronalen Netzen verwendeten Optimierer und eignet sich am besten für Situationen, in denen die Daten so angeordnet sind, dass ein konvexes Optimierungsproblem besteht.
Der Gradientenabstiegsalgorithmus ist sehr einfach zu implementieren, es besteht jedoch die Gefahr, dass er in einem lokalen Minimum stecken bleibt, das heißt, er konvergiert nicht mit dem Minimum.
Stochastic Gradient Descent (SGD)
Als Erweiterung des Gradientenabstiegsalgorithmus überwindet der stochastische Gradientenabstieg einige der Mängel des Gradientenabstiegsalgorithmus. Beim stochastischen Gradientenabstieg werden Datenstapel nicht bei jeder Iteration abgerufen, sondern zufällig ausgewählt, was bedeutet, dass nur eine kleine Anzahl von Stichproben aus dem Datensatz entnommen wird.
Daher erfordert der Algorithmus für den stochastischen Gradientenabstieg mehr Iterationen, um das lokale Minimum zu erreichen. Mit zunehmender Anzahl der Iterationen erhöht sich die Gesamtrechenzeit. Aber selbst nach einer Erhöhung der Anzahl der Iterationen ist der Rechenaufwand immer noch niedriger als beim Gradientenabstiegsoptimierer.
Stochastischer Gradientenabstieg mit Impuls
Aus dem oben Gesagten wissen wir, dass der Pfad, den der stochastische Gradientenabstieg nimmt, lauter ist als der Gradientenabstieg und die Berechnungszeit länger ist. Um dieses Problem zu lösen, verwenden wir den stochastischen Gradientenabstieg mit Impulsalgorithmus.
Die Rolle des Impulses besteht darin, die Verlustfunktion schneller konvergieren zu lassen. Allerdings sollten Sie bei der Verwendung dieses Algorithmus bedenken, dass die Lernrate bei hohem Impuls abnimmt.
Adaptiver Gradientenabstieg (Adagrad)
Der adaptive Gradientenabstiegsalgorithmus unterscheidet sich geringfügig von anderen Gradientenabstiegsalgorithmen. Dies liegt daran, dass der Algorithmus für jede Iteration eine andere Lernrate verwendet. Die Lernrate ändert sich abhängig von den Unterschieden der Parameter während des Trainings. Je größer die Parameteränderung ist, desto geringer ist die Änderung der Lernrate.
Der Vorteil der Verwendung des adaptiven Gradientenabstiegs besteht darin, dass die Lernrate nicht mehr manuell geändert werden muss, die Konvergenz schneller erreicht wird und der adaptive Gradientenabstieg zuverlässiger ist als der Gradientenabstiegsalgorithmus und seine Varianten.
Aber der adaptive Gradientenabstiegsoptimierer reduziert die Lernrate monoton, wodurch die Lernrate sehr klein wird. Aufgrund der geringen Lernrate kann das Modell keine weiteren Verbesserungen erzielen, was sich letztendlich auf die Genauigkeit des Modells auswirkt.
Root Mean Square (RMS Prop) Optimizer
RMS Prop ist einer der beliebtesten Optimierer unter Deep-Learning-Enthusiasten. Obwohl es noch nicht offiziell veröffentlicht wurde, ist es in der Community immer noch bekannt. Der quadratische Mittelwert wird auch als Verbesserung gegenüber adaptiven Gradientenabstiegsoptimierern angesehen, da er die monoton abnehmende Lernrate reduziert.
Der quadratische Mittelwertalgorithmus konzentriert sich hauptsächlich auf die Beschleunigung des Optimierungsprozesses, indem die Anzahl der Funktionsauswertungen reduziert wird, um ein lokales Minimum zu erreichen. Dieser Algorithmus erstellt einen gleitenden Durchschnitt der quadrierten Gradienten für jedes Gewicht und dividiert die Gradienten durch die Quadratwurzel des mittleren Quadrats.
Im Vergleich zum Gradientenabstiegsalgorithmus konvergiert dieser Algorithmus schnell und erfordert weniger Anpassungen. Das Problem mit dem Root-Mean-Square-Optimierer besteht darin, dass die Lernrate manuell definiert werden muss und die empfohlenen Werte nicht für alle Anwendungen gelten.
Adam-Optimierer
Der Name Adam kommt von der adaptiven Momentschätzung. Dieser Optimierungsalgorithmus ist eine weitere Erweiterung des stochastischen Gradientenabstiegs und wird verwendet, um Netzwerkgewichte während des Trainings zu aktualisieren. Anstatt eine einzelne Lernrate durch stochastisches Gradientenabstiegstraining aufrechtzuerhalten, aktualisiert der Adam-Optimierer die Lernrate jedes Netzwerkgewichts einzeln.
Der Adam-Optimierer erbt die Eigenschaften des adaptiven Gradientenabstiegs und des quadratischen Mittelwerts. Der Algorithmus ist einfach zu implementieren, hat eine schnellere Laufzeit, einen geringen Speicherbedarf und erfordert weniger Anpassungen als andere Optimierungsalgorithmen.
Die oben genannten sind einige der Optimierer, die bei maschinellen Lernaufgaben häufig verwendet werden. Jeder Optimierer hat seine Vor- und Nachteile. Daher ist es für die Auswahl und Umsetzung eines Optimierers von entscheidender Bedeutung, die Anforderungen der Aufgabe und die Art der zu verarbeitenden Daten zu kennen hervorragende Ergebnisse wichtig.
Das obige ist der detaillierte Inhalt vonEinführung in Optimierer für maschinelles Lernen – Diskussion gängiger Optimierertypen und -anwendungen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!