Ultralytics YOLO27: Trag dich in die Warteliste ein.
YOLO lizenzieren
Zurück zum Ultralytics-Glossar

Adam Optimizer

Adam kombiniert Momentum mit Schrittweiten pro Parameter, die anhand der jüngsten Gradientenstärken skaliert werden. Behandelt die Aktualisierungsregel, Standardwerte, AdamW und Adam im Vergleich zu SGD.

Der Adam-Optimierer, kurz für Adaptive Moment Estimation, ist ein Optimierungsalgorithmus zum Trainieren neuronaler Netze, der jedem Parameter eine eigene adaptive Schrittweite zuweist. Er wurde von Kingma und Ba in Adam: Eine Methode zur stochastischen Optimierung vorgestellt und erweitert den stochastischen Gradientenabstieg (SGD) um gleitende Mittelwerte vergangener Gradienten und ihrer Quadrate. Frühe Trainingsfortschritte und fehlertolerante Standardeinstellungen machten Adam zum häufigsten Startoptimierer im Deep Learning. Die Variante AdamW ist die Standardwahl für das Training von Transformern und großen Sprachmodellen.

So funktioniert Adam#

Beim Training wird eine Verlustfunktion minimiert, indem jeder Gewichtungsparameter wiederholt entgegen seinem Gradienten angepasst wird. Einfaches SGD multipliziert jeden Gradienten mit derselben Lernrate. Adam speichert zwei zusätzliche Werte pro Parameter und aktualisiert sie bei jedem Schritt t anhand des aktuellen Gradienten g:

  1. Erstes Moment (Impuls): m = β1·m + (1 − β1)·g, ein exponentiell abklingender Mittelwert der Gradienten, der die Aktualisierung in einer beständigen Richtung hält.
  2. Zweites Moment: v = β2·v + (1 − β2)·g², ein abklingender Mittelwert der quadrierten Gradienten, der erfasst, wie groß die Gradienten eines Parameters üblicherweise sind.
  3. Bias-Korrektur: m̂ = m / (1 − β1^t) und v̂ = v / (1 − β2^t), die den Umstand ausgleichen, dass beide Mittelwerte bei null beginnen.
  4. Aktualisierung: θ = θ − lr · m̂ / (√v̂ + ε).

Die Standardwerte aus der Veröffentlichung, die auch PyTorchs torch.optim.Adam verwendet, sind lr = 0.001, β1 = 0.9, β2 = 0.999 und ε = 1e-8. Die Division durch √v̂ normalisiert jeden Schritt anhand der typischen Gradientengröße des Parameters. Dadurch bleiben die Schritte nahe an der Lernrate, egal ob die Gradienten sehr klein oder sehr groß sind. In verrauschten Richtungen werden die Schritte kleiner, wenn sich positive und negative Gradienten innerhalb von m̂ gegenseitig aufheben. Das folgende Codebeispiel vergleicht den ersten Schritt von SGD und Adam bei zwei Parametern, deren Gradienten sich um den Faktor 1.000 unterscheiden:

import torch

# Two parameters whose gradients differ in scale by 1,000x
scale = torch.tensor([1000.0, 1.0])

for name, optimizer_cls in [("SGD", torch.optim.SGD), ("Adam", torch.optim.Adam)]:
    w = torch.zeros(2, requires_grad=True)
    optimizer = optimizer_cls([w], lr=0.001)

    loss = (scale * w).sum()  # gradient is [1000, 1]
    loss.backward()
    optimizer.step()
    print(f"{name} first step: {[round(v, 4) for v in w.tolist()]}")

SGD verschiebt den ersten Parameter auf -1.0 und den zweiten auf -0.001. Der Unterschied von 1.000 entspricht den Gradienten. Adam verschiebt beide genau um die Lernrate von -0.001, da sein normalisierter Schritt von Richtung und Beständigkeit des Gradienten abhängt und nicht von seiner absoluten Größe.

Adam und AdamW#

Adam wendet in der üblichen Implementierung eine Gewichtsabnahme als Form der Regularisierung an, indem eine L2-Strafe zum Gradienten addiert wird. Diese Strafe wird dann zusammen mit allem anderen durch √v̂ geteilt, sodass Gewichte mit großen Gradienten kaum regularisiert werden. Die von Loshchilov und Hutter entwickelte entkoppelte Gewichtsabnahme löst dieses Problem, indem sie die Gewichte bei jedem Schritt direkt und getrennt von der adaptiven Aktualisierung verkleinert. In den Experimenten der Veröffentlichung verbesserte das resultierende AdamW die Generalisierung von Adam bei der Bildklassifizierung und ist als torch.optim.AdamW verfügbar.

Adam und SGD im Vergleich#

SGD mit Impuls verwendet eine globale Lernrate und speichert einen Puffer pro Parameter. Adam speichert zwei, also 8 Byte pro Parameter bei 32-Bit-Genauigkeit. Bei einem Modell mit 7 Milliarden Parametern ergibt das 56 GB für den Optimiererzustand. Adam erzielt gewöhnlich schneller frühe Fortschritte, reagiert weniger empfindlich auf die Lernrate und trainiert Transformer erheblich zuverlässiger als SGD. Gut abgestimmtes SGD erreicht bei konvolutionalen Bildmodellen oft eine ebenso hohe oder höhere endgültige Genauigkeit. Wilson et al. stellten fest, dass adaptive Verfahren bei den von ihnen untersuchten Bildklassifizierungs- und Sprachaufgaben häufig schlechter generalisierten als SGD.

Das Training von Ultralytics YOLO spiegelt diesen Kompromiss wider: Die Standardeinstellung optimizer="auto" wählt AdamW mit einer an die Klassenanzahl angepassten anfänglichen Lernrate für Läufe mit bis zu 10.000 Iterationen und wechselt bei längeren Zeitplänen zu MuSGD, einer Kombination aus SGD und Muon. Wenn du den Optimierer ausdrücklich festlegst, musst du auch die Lernrate festlegen, da die Standardeinstellung lr0=0.01 für SGD geeignet ist und zehnmal höher liegt als die übliche Adam-Lernrate.

from ultralytics import YOLO

# Lade ein vortrainiertes YOLO26n-Modell
model = YOLO("yolo26n.pt")

# Mit AdamW und einer für Adam geeigneten anfänglichen Lernrate trainieren
results = model.train(data="coco8.yaml", epochs=5, optimizer="AdamW", lr0=0.001)

Wenn YOLO26 mit einem Optimierer aus der Adam-Familie trainiert, legt das Argument momentum (Standardwert 0.937) β1 fest, während β2 unverändert bei 0.999 bleibt.

  • AdaGrad: Teilt jeden Schritt durch die Wurzel aus allen zuvor quadrierten Gradienten. Dadurch werden die Schrittweiten immer kleiner. Das eignet sich für spärlich besetzte Merkmale, verlangsamt aber lange Trainingsläufe.
  • RMSProp: Ersetzt die laufende Summe von AdaGrad durch einen exponentiell abklingenden Mittelwert quadrierter Gradienten. Adam ist im Wesentlichen RMSProp mit Impuls und Bias-Korrektur.
  • Muon: Ein Optimierer für die zweidimensionalen Gewichtungsmatrizen verborgener Schichten. Er orthogonalisiert jede Impulsaktualisierung mit Newton–Schulz-Iterationen und speichert einen Zustands-Puffer pro Parameter, also halb so viel Optimiererzustand wie Adam.

Lösungen entdecken

Computer Vision im Sport

Computer Vision im Sport

Entdecke, wie Ultralytics YOLO die Sportbildanalyse voranbringt – mit Spieler- und Ballverfolgung, Leistungsanalysen, Erkenntnissen für das Coaching und der Rehabilitation von Athleten.
Mehr erfahren
Computer Vision für Luftbilder

Computer Vision für Luftbilder

Verwandle Drohnen- und Luftbilder mit Ultralytics YOLO in Echtzeit-Erkenntnisse für Landwirtschaft, Aquakultur, Naturschutz und Geodatenanalyse.
Mehr erfahren
Computer Vision in der Luft- und Raumfahrt

Computer Vision in der Luft- und Raumfahrt

Setze Computer Vision in der Luft- und Raumfahrt mit Ultralytics YOLO ein – für Flugzeuginspektionen, die Erkennung von Fremdkörpern auf Start- und Landebahnen, den Bodenbetrieb am Flughafen und die Erkennung von Verbundwerkstofffehlern.
Mehr erfahren
Computer Vision im Sicherheitsbereich

Computer Vision im Sicherheitsbereich

Schütze jeden Standort mit Ultralytics YOLO-Modellen. Vision-KI ermöglicht die Überwachung von Grundstücksgrenzen, die Erkennung von Bedrohungen, die Kennzeichenerkennung und die Sicherheit am Arbeitsplatz.
Mehr erfahren
Computer Vision in der Robotik

Computer Vision in der Robotik

Mach Maschinen mit Ultralytics YOLO-Modellen leistungsfähiger. Vision-KI in der Robotik ermöglicht autonome Navigation, Wahrnehmung, Objektverfolgung und Steuerung in Echtzeit.
Mehr erfahren
Bildverarbeitung in der Logistik

Bildverarbeitung in der Logistik

Optimiere die Logistik mit Ultralytics YOLO-Modellen. Vision AI ermöglicht die Paketprüfung, Sortierung und Fahrzeugverfolgung sowie die Sicherheitsüberwachung von Lagerhäusern in Echtzeit.
Mehr erfahren
Bildverarbeitung im Einzelhandel

Bildverarbeitung im Einzelhandel

Gestalte den Einzelhandel mit Ultralytics YOLO-Modellen neu. Vision AI ermöglicht Bestandsverfolgung, Regalüberwachung und Warteschlangenmanagement und liefert bessere Einblicke in das Kundenverhalten.
Mehr erfahren
Bildverarbeitung im Gesundheitswesen

Bildverarbeitung im Gesundheitswesen

Entwickle Lösungen für das Gesundheitswesen mit Ultralytics YOLO-Modellen. Vision AI ermöglicht im Gesundheitswesen schnellere medizinische Bildgebung, bessere Diagnostik und die Überwachung von Patienten.
Mehr erfahren
Computer Vision in der Fertigung

Computer Vision in der Fertigung

Optimiere die Fertigung mit Ultralytics-YOLO-Modellen. Vision AI ermöglicht Qualitätskontrolle, Fehlererkennung, die Überprüfung der Einhaltung von Vorgaben zu persönlicher Schutzausrüstung und die Automatisierung von Montagelinien.
Mehr erfahren
Computer Vision in der Automobilbranche

Computer Vision in der Automobilbranche

Setze Computer Vision in der Automobilbranche mit Ultralytics-YOLO-Modellen ein. Vision AI verbessert die Verkehrssicherheit, Fahrerassistenz und Fahrzeugautomatisierung – für intelligentere Straßen.
Mehr erfahren
Computer Vision in der Landwirtschaft

Computer Vision in der Landwirtschaft

Setze mit Ultralytics YOLO-Modellen KI für Bildverarbeitung in der intelligenten Landwirtschaft ein. Ermögliche die Überwachung von Nutzpflanzen, die Verfolgung von Nutztieren und Präzisionslandwirtschaft für höhere und nachhaltigere Erträge.
Mehr erfahren

Lass uns gemeinsam die Zukunft der KI gestalten!

Starte deine Reise in die Zukunft des maschinellen Lernens