AdaGrad
Der Gradientenabstieg ist die am häufigsten verwendete Optimierungsmethode für Machine-Learning- und Deep-Learning-Algorithmen. Er wird verwendet, um ein Machine-Learning-Modell zu trainieren.
Arten des Gradientenabstiegs
Es gibt drei Hauptarten des Gradientenabstiegs, die in modernen Algorithmen für Machine Learning und Deep Learning zum Einsatz kommen.
Batch-Gradientenabstieg
Der Batch-Gradientenabstieg ist die einfachste Art. Er berechnet den Fehler für jedes Beispiel im Training-Dataset, aktualisiert das Modell jedoch erst, nachdem alle Trainingsbeispiele ausgewertet wurden.
Stochastischer Gradientenabstieg
Beim stochastischen Gradientenabstieg wird der Fehler berechnet und das Modell für jedes Beispiel im Training-Dataset aktualisiert.
Mini-Batch-Gradientenabstieg
Beim Mini-Batch-Gradientenabstieg werden nicht alle Beispiele durchgegangen, sondern eine geringere Anzahl von Beispielen basierend auf der Batch-Größe zusammengefasst und eine Aktualisierung für jeden dieser Batches durchgeführt. Der stochastische Gradientenabstieg ist eine gängige Methode zur Optimierung. Er ist konzeptionell einfach und kann oft effizient umgesetzt werden. Er verfügt jedoch über einen Parameter (die Schrittgröße), der manuell optimiert werden muss. Es wurden verschiedene Optionen vorgeschlagen, um diese Optimierung zu automatisieren. Eines der erfolgreichsten Schemata ist AdaGrad. Standardmäßige stochastische Subgradientenmethoden folgen hauptsächlich einem vorgegebenen Verfahrensschema, das die Eigenschaften der beobachteten Daten außer Acht lässt. Im Gegensatz dazu integrieren die Algorithmen von AdaGrad dynamisch Kenntnisse über die Geometrie der in früheren Iterationen beobachteten Daten, um informativeres, auf Gradienten basierendes Lernen zu realisieren. AdaGrad wurde in zwei Versionen veröffentlicht. Die erste heißt Diagonal AdaGrad (diese Version wird in der Praxis verwendet), sein Hauptmerkmal besteht darin, eine Lernrate pro Dimension beizubehalten und anzupassen. Die zweite, bekannt als Full AdaGrad, behält eine Lernrate pro Richtung bei (z. B. eine vollständige PSD-Matrix). Der adaptiver Gradientenalgorithmus (Adagrad) ist ein Algorithmus zur gradientenbasierten Optimierung. Durch die Einbeziehung von Erkenntnissen aus vergangenen Beobachtungen wird die Lernrate komponentenweise an die Parameter angepasst. Er führt größere Updates (z. B. hohe Lernraten) für diejenigen Parameter durch, die mit seltenen Features zu tun haben, und kleinere Updates (d. h. niedrige Lernraten) für häufige Features. Der Algorithmus führt kleinere Updates durch. Daher eignet er sich gut für den Umgang mit spärlichen Daten (NLP oder Bilderkennung). Jeder Parameter verfügt über eine eigene Lernrate, was die Performance bei Problemen mit spärlichen Gradienten verbessert.
Vorteile der Verwendung von AdaGrad
- Eliminiert die Notwendigkeit, die Lernrate manuell zu optimieren.
- Schnellere, zuverlässigere Konvergenz als beim SGD, wenn die Skalierung der Gewichte ungleich ist.
- Nicht sehr empfindlich gegenüber der Größe des Master-Schritts.