RAdam, kurz für Rectified Adam, ist ein Optimierungsalgorithmus zum Trainieren neuronaler Netze. Er wurde 2019 von Liyuan Liu, Haoming Jiang, Pengcheng He, Weizhu Chen, Xiaodong Liu, Jianfeng Gao und Jiawei Han in dem Paper „On the Variance of the Adaptive Learning Rate and Beyond" eingeführt. RAdam behebt ein bekanntes Problem des Adam-Optimierers, bei dem die adaptive Lernrate zu Beginn des Trainings eine hohe Varianz aufweisen kann, was zu schlechter Konvergenz oder suboptimaler Endleistung führt. Durch die Korrektur dieser Varianz zielt RAdam darauf ab, die Vorteile der schnellen Konvergenz von Adam mit der Stabilität des stochastischen Gradientenabstiegs (SGD) zu verbinden.
RAdam wird häufig im Deep Learning eingesetzt, insbesondere beim Training von Transformatoren und großen Sprachmodellen, wo es eine konkurrenzfähige Leistung im Vergleich zu AdamW und anderen Varianten gezeigt hat. Es ist in den wichtigsten Deep-Learning-Frameworks implementiert, darunter PyTorch und TensorFlow, und ist in einigen Trainings-Pipelines eine Standardwahl.
Hintergrund: Der Adam-Optimierer und seine Einschränkungen
Der Adam-Optimierer, eingeführt von Diederik Kingma und Jimmy Ba im Jahr 2014, ist eine beliebte Methode mit adaptiver Lernrate, die individuelle Lernraten für jeden Parameter basierend auf Schätzungen der ersten und zweiten Momente der Gradienten berechnet. Adam war beim Training tiefer neuronaler Netze sehr erfolgreich, hat jedoch bekannte Probleme. Ein Problem ist, dass die adaptive Lernrate in den frühen Trainingsphasen zu groß sein kann, insbesondere wenn die Schätzung des zweiten Moments klein ist. Dies kann zu großen Aktualisierungen führen, die das Modell in scharfen Minima konvergieren lassen, was oft zu schlechter Generalisierung führt. Zusätzlich kann Adam eine sorgfältige Abstimmung der Lernrate und anderer Hyperparameter erfordern.
Mehrere Varianten wurden vorgeschlagen, um diese Probleme zu beheben, wie AdamW, das den Gewichtsabfall entkoppelt, und AMSGrad, das ein Maximum vergangener quadrierter Gradienten verwendet. Diese beheben jedoch nicht direkt die Varianz der adaptiven Lernrate.
Das Varianzproblem bei Adam
Bei Adam wird die adaptive Lernrate als Verhältnis der Schätzung des ersten Moments zur Quadratwurzel der Schätzung des zweiten Moments berechnet. Zu Beginn des Trainings wird die Schätzung des zweiten Moments auf Null initialisiert und mit einer Bias-Korrektur aktualisiert. Die Bias-Korrektur kann jedoch die Schätzung mit hoher Varianz belassen, insbesondere wenn die Abklingrate (beta2) nahe 1 liegt. Diese Varianz führt dazu, dass die Lernrate stark schwankt, was zu instabilem Training und schlechter Konvergenz führen kann.
Die zentrale Erkenntnis von RAdam besteht darin, diese Varianz zu quantifizieren und einen Korrekturterm anzuwenden, der die Lernrate reduziert, wenn die Varianz hoch ist, und sie allmählich erhöht, wenn die Varianz abnimmt. Dies ist analog zur Aktivierung mit gleichgerichteten linearen Einheiten (ReLU), die negative Werte auf Null begrenzt.
Wie RAdam funktioniert
RAdam berechnet die adaptive Lernrate ähnlich wie Adam, jedoch mit einem zusätzlichen Korrekturterm. Der Algorithmus verwaltet das erste Moment (Mittelwert) und das zweite Moment (nicht zentrierte Varianz) der Gradienten, bezeichnet als m_t bzw. v_t. Er verfolgt auch den Zeitschritt t und die Abklingrate beta2.
Bei jedem Schritt berechnet RAdam die bias-korrigierten Schätzungen: m_t_hat = m_t / (1 - beta1^t) und v_t_hat = v_t / (1 - beta2^t). Anschließend berechnet es einen Parameter rho_t = (1 - beta2^t) (2 / (1 - beta2) - 1) - t, der die effektive Länge des gleitenden Mittelwerts misst. Wenn rho_t größer als ein Schwellenwert (typischerweise 4) ist, verwendet RAdam den Korrekturterm: Die Lernrate wird mit sqrt((rho_t - 4) (rho_t - 2) rho_t / ((rho_t - 4) (rho_t - 2) rho_t - 4 (rho_t - 2) * (rho_t - 2))) skaliert. Wenn rho_t kleiner oder gleich 4 ist, wird die Aktualisierung vereinfacht und verwendet direkt das erste Moment, ähnlich wie SGD mit Impuls.
Diese Korrektur stellt sicher, dass die Lernrate in den frühen Phasen nicht zu groß ist, wodurch verhindert wird, dass das Modell übermäßig große Schritte unternimmt, die zu schlechten Minima führen könnten.
Vorteile von RAdam
RAdam bietet mehrere Vorteile gegenüber Adam und anderen Optimierern. Erstens reduziert es die Notwendigkeit eines Lernraten-Warmups, das bei Adam oft erforderlich ist, um frühe Instabilität zu vermeiden. Dies vereinfacht die Hyperparameter-Abstimmung und kann Trainingszeit sparen. Zweitens hat RAdam gezeigt, dass es die Generalisierungsleistung bei verschiedenen Aufgaben, einschließlich Bildklassifikation und Sprachmodellierung, im Vergleich zu Adam verbessert. Drittens ist es rechnerisch effizient und fügt der Adam-Aktualisierung nur einen geringen Overhead hinzu.
Empirische Studien haben gezeigt, dass RAdam bei einer Reihe von Modellen gut funktioniert, einschließlich convolutional neuronaler Netze und Transformatoren. Es ist besonders nützlich beim Training mit kleinen Batch-Größen oder bei verrauschten Daten, da die Varianz der Gradienten in diesen Szenarien höher ist.
RAdam in der Praxis
RAdam ist in gängigen Deep-Learning-Bibliotheken implementiert. In PyTorch ist es als torch.optim.RAdam verfügbar. In TensorFlow ist es über die Keras-API als tf.keras.optimizers.RAdam verfügbar. Es kann als direkter Ersatz für Adam verwendet werden, mit denselben Hyperparametern (Lernrate, beta1, beta2, epsilon). Die Standardwerte sind typischerweise learning_rate=0.001, beta1=0.9, beta2=0.999, epsilon=1e-8.
In der Praxis wurde RAdam beim Training großer Modelle eingesetzt, einschließlich einiger großer Sprachmodelle und Transformatoren. Beispielsweise wurde es in bestimmten Trainings-Pipelines für Modelle wie GPT- und BERT-Varianten übernommen, wo es eine vergleichbare oder bessere Leistung als AdamW gezeigt hat. AdamW bleibt jedoch eine beliebte Wahl aufgrund seines entkoppelten Gewichtsabfalls, der für die Regularisierung vorteilhaft sein kann. Einige Praktiker kombinieren RAdam mit Gewichtsabfall oder verwenden es mit einem Kosinus-Lernratenplan.
Vergleich mit anderen Optimierern
RAdam wird oft mit Adam, AdamW und SGD mit Impuls verglichen. Im Vergleich zu Adam bietet RAdam stabileres Training ohne die Notwendigkeit eines Warmups und führt oft zu besserer Generalisierung. Im Vergleich zu AdamW entkoppelt RAdam den Gewichtsabfall nicht, kann jedoch mit L2-Regularisierung kombiniert werden. In einigen Benchmarks übertrifft RAdam AdamW bei Aufgaben wie Bildklassifikation, während in anderen AdamW überlegen ist. Die Wahl hängt vom spezifischen Problem und den Hyperparametern ab.
RAdam steht auch in Beziehung zu anderen Techniken zur Varianzreduktion, wie Gradienten-Clipping, die in Verbindung mit RAdam verwendet werden können, um das Training weiter zu stabilisieren. Zusätzlich kann RAdam mit Lernratenplänen wie Kosinus-Abkühlung oder Schritt-Abklingraten verwendet werden.
Erweiterungen und Varianten
Mehrere Erweiterungen von RAdam wurden vorgeschlagen. Beispielsweise wurde RAdam mit Lookahead kombiniert, einer Technik, die einen Satz langsamer Gewichte verwaltet, um den Ranger-Optimierer zu erstellen, der bei verschiedenen Aufgaben eine starke Leistung gezeigt hat. Eine weitere Variante ist AdaBelief, das das zweite Moment modifiziert, um die Abweichung vom Mittelwert zu verwenden, aber RAdam bleibt eine Baseline für Vergleiche.
Die Forschung hat auch die theoretischen Eigenschaften von RAdam untersucht und Konvergenzgarantien unter bestimmten Bedingungen bereitgestellt. Der Korrekturterm wird aus der Analyse der Varianz der adaptiven Lernrate abgeleitet, und es wurde gezeigt, dass er die Generalisierungslücke reduziert.
Fazit
RAdam ist ein robuster Optimierer, der das Varianzproblem bei Adam behebt, was zu stabilerem und besser generalisierendem Training führt. Es ist einfach zu verwenden, weit verbreitet und hat sich in vielen Deep-Learning-Anwendungen als effektiv erwiesen. Obwohl es nicht immer die beste Wahl ist, ist es ein wertvolles Werkzeug im Optimierer-Werkzeugkasten, insbesondere beim Training großer Modelle, bei denen Stabilität entscheidend ist.
Für weiterführende Literatur siehe Adam, SGD-Varianten und Deep-Learning-Optimierungstechniken.