EMZETT.
Login

Vorwärtsdurchlauf und Rückwärtsdurchlauf im Detail

Kurz: Im Vorwärtsdurchlauf wandern die Daten Schicht für Schicht durch das Netz und ergeben die Vorhersage. Im Rückwärtsdurchlauf wird mit der Kettenregel berechnet, wie jedes Gewicht den Fehler beeinflusst hat.

Genauer: Der Rückwärtsdurchlauf (Backpropagation) ist effizient, weil er Zwischenergebnisse des Vorwärtsdurchlaufs wiederverwendet. Frameworks wie PyTorch führen das automatisch durch („Autograd“).

Im Detail

  1. Forward: x → Schicht 1 → Schicht 2 → … → Vorhersage ŷ. Zwischenwerte (Aktivierungen) werden gespeichert.
  2. Verlust: L = loss(ŷ, y).
  3. Backward: Von hinten nach vorn: ∂L/∂W für jede Schicht mit der Kettenregel: ∂L/∂x = ∂L/∂y · ∂y/∂x.
  4. Update: Optimierer ändert Gewichte, siehe Optimierer: SGD, Momentum und Adam.
  5. Gradienten nullen, nächster Batch.
  • Speicher: Die gespeicherten Aktivierungen sind ein großer Teil des Trainingsspeichers. Gradient Checkpointing speichert nur wenige und berechnet den Rest neu (spart Speicher, kostet Zeit).
  • Rechenaufwand: Rückwärts etwa doppelt so teuer wie vorwärts. Training ≈ 3× Inferenz pro Token.
  • Verschwindende/explodierende Gradienten: Bei vielen Schichten werden Gradienten winzig oder riesig. Gegenmittel: ReLU/GELU, Normalisierung, Skip-Verbindungen, Gradient Clipping.
  • Code (PyTorch): loss.backward() rechnet, optimizer.step() aktualisiert.

Siehe auch: neuronale-netze-und-backpropagation, Skip-Verbindungen und Residual-Netze