Weiter zum Inhalt

Gradient Clipping: So verhinderst du explodierende Gradienten

Gradient Clipping ist ein Ein-Zeilen-Fix im Training, der verhindert, dass explodierende Gradienten tiefe neuronale Netze ruinieren. Diese Anleitung erklärt das Prinzip, die zwei gängigen Methoden, die Wahl des Schwellwerts und die Umsetzung in PyTorch und TensorFlow.
Aktualisiert 10. Juni 2026  · 13 Min. lesen

Wie oft hast du beim Training eines tiefen neuronalen Netzes schon einen NaN-Loss gesehen?

Nach stundenlangem Training wirkt die Loss-Kurve gesund – und dann schießt sie aus dem Nichts ins Unendliche. Der Grund sind meist explodierende Gradienten: Gradientenwerte wachsen während der Backpropagation so stark an, dass Parameterupdates instabil werden und das Modell auseinanderläuft. Am stärksten trifft das rekurrente Netze, aber auch Transformer und tiefe Feedforward-Netze sind betroffen.

Gradient Clipping behebt das Problem, indem es die Größe der Gradienten begrenzt, bevor sie den Optimierer erreichen. Es ist eine Ein-Zeilen-Ergänzung in deiner Trainingsschleife, die Updates begrenzt, ohne das Modell zu verändern.

In diesem Artikel zeige ich die Intuition hinter Gradient Clipping, die zwei gängigen Methoden, wie du einen Schwellwert wählst und wie du es in PyTorch und TensorFlow implementierst.

Aber was genau ist eigentlich Loss in der Data Science? Lies unseren Loss Function in Machine Learning-Blogpost, um es herauszufinden.

Was ist Gradient Clipping?

Gradient Clipping ist eine Technik, die die Größe der Gradienten während des Trainings begrenzt, um instabile Parameterupdates zu verhindern.

Werden Gradienten zu groß, macht der Optimierer einen riesigen Schritt im Parameterraum und drückt Gewichte in einen Bereich, in dem der Loss explodiert. Clipping begrenzt diese Schrittweite, bevor Schaden entsteht.

Wichtig: Gradient Clipping ändert nicht die Modellarchitektur. Du fügst keine Layer hinzu und änderst keine Aktivierungsfunktionen. Es modifiziert nur den Trainingsprozess, indem es die Gradienten zwischen Backpropagation und Optimizer-Step abfängt.

Dadurch ist es günstig auszuprobieren und leicht wieder zu entfernen. Wie du gleich siehst, ist es nur eine Codezeile.

So funktioniert Gradient Clipping

Die Mechanik ist simpel. Der Clipping-Schritt liegt zwischen deinem Backward-Pass und dem Optimizer-Step und folgt in jeder Iteration denselben vier Schritten.

  1. Gradienten berechnen: Forward-Pass ausführen, Loss berechnen und Backpropagation laufen lassen. Hier ändert sich nichts – die Gradienten fließen wie gewohnt durchs Netz.
  2. Gradientengröße prüfen: Messen, wie groß die Gradienten sind. Je nach Methode betrachtest du einzelne Werte oder die Gesamtnorm über alle Parameter.
  3. Gradienten reduzieren, falls Schwellwert überschritten: Wenn die Größe über deinem Limit liegt, skaliere die Gradienten herunter. Andernfalls lass sie unverändert.
  4. Modellparameter updaten: Übergebe die geclippten Gradienten an den Optimierer und führe das Update aus.

Meistens bleiben deine Gradienten darunter und das Training läuft wie ohne Clipping. Tritt ein Spike auf, fängt das Clipping ihn ab, bevor der Optimierer reagiert.

Das war’s.

Gängige Gradient-Clipping-Methoden

Es gibt zwei Arten, Gradienten zu clippen. Der Unterschied liegt darin, was du misst und was du skalierst.

Clippen nach Wert

Beim Clipping nach Wert wird jedes Gradienten-Element einzeln begrenzt.

Du wählst einen Bereich, etwa [-1.0, 1.0], und jeder Wert außerhalb dieses Bereichs wird auf die nächstliegende Grenze gesetzt. Ein Gradient von 2.5 wird zu 1.0. Ein Gradient von -2.5 wird zu -1.0. Werte innerhalb des Bereichs bleiben unverändert.

gradient clipping clip by value example

Beispiel: Clipping nach Wert

Der Reiz liegt in der Einfachheit. Es braucht nicht mehr als eine Min/Max-Operation und ist schnell.

Der Nachteil: Das Clipping einzelner Werte ändert die Richtung des Gradientenvektors. Wenn eine Komponente geclippt wird und andere nicht, zeigt der aktualisierte Vektor nicht mehr genau in die Richtung, die die Backpropagation vorgibt. Der Optimierer macht dann einen Schritt in eine leicht falsche Richtung.

Darum wird Clipping nach Wert in der Praxis seltener verwendet.

Clippen nach Norm

Beim Clipping nach Norm wird der gesamte Gradientenvektor skaliert, wenn seine Gesamtnorm einen Schwellwert überschreitet.

Anstatt einzelne Werte anzusehen, wird die Norm aller Gradienten zusammen berechnet (meist die L2-Norm) und mit einem Maximalwert verglichen. Liegt die Norm darunter, passiert nichts. Liegt sie darüber, werden alle Gradienten mit demselben Faktor multipliziert, sodass die Norm auf den Grenzwert zurückgesetzt wird.

gradient clipping clip by norm example

Beispiel: Clipping nach Norm

Der Vorteil ist die Richtungs-Erhaltung. Da jede Komponente um denselben Faktor schrumpft, zeigt der Gradientenvektor weiterhin in die ursprüngliche Richtung. Du kürzt nur die Schrittweite, lenkst sie aber nicht um.

Deshalb ist Clipping nach Norm der Standard. PyTorchs clip_grad_norm_ und TensorFlows clipnorm implementieren diese Methode, und die meisten modernen Trainingspipelines nutzen sie standardmäßig.

Explodierende vs. verschwindende Gradienten

Explodierende und verschwindende Gradienten sind beides häufige Probleme im Deep Learning – aber nur eines davon löst Gradient Clipping.

Explodierende Gradienten

Explodierende Gradienten treten auf, wenn Gradientenwerte während der Backpropagation zu groß werden.

Das zeigt sich typischerweise in tiefen Netzen oder rekurrenten Architekturen, wo Gradienten über viele Layer oder Zeitschritte hinweg multipliziert werden. Wenn sich diese Multiplikationen ungünstig aufschaukeln, bläht sich die Gradienten-Norm auf. Der Optimierer macht dann einen riesigen Parameter-Update, Gewichte springen auf Extremwerte, und der Loss wird häufig NaN oder Inf.

Du erkennst es an plötzlichen Loss-Spikes oder daran, dass das Modell scheinbar grundlos divergiert.

Verschwindende Gradienten

Verschwindende Gradienten sind das Gegenproblem: Gradienten schrumpfen beim Rückwärtsfluss Richtung Null.

Werden Gradienten zu klein, sind die Updates winzig. Frühe Layer lernen kaum noch, tiefere Layer nur sehr langsam, und das Training kommt praktisch zum Stillstand. Die Loss-Kurve flacht ab und verbessert sich auch nach vielen Epochen nicht mehr.

Das war der Hauptgrund, warum RNNs vor LSTMs und GRUs mit langen Sequenzen schwer taten.

Wo Gradient Clipping hilft

Gradient Clipping adressiert explodierende, nicht verschwindende Gradienten.

Clipping verkleinert zu große Gradienten, hat aber keinen Effekt, wenn sie zu klein sind. Gegen verschwindende Gradienten helfen bessere Gewichtsinitialisierung, Residual-Verbindungen, Batch-Normalisierung oder Architekturen, die den Gradientenfluss erhalten.

Gradient Clipping nach Norm erklärt

Clipping nach Norm ist meist das, wonach Leute suchen, wenn sie nach Gradient Clipping fragen.

Der Prozess hat drei Schritte: Erstens die Norm aller Gradienten zusammen berechnen. Zweitens diese Norm mit deinem Schwellwert vergleichen. Drittens die Gradienten reskalieren, falls die Norm zu groß ist.

Meist wird die L2-Norm verwendet – du quadrierst jeden Gradientenwert, summierst sie und ziehst die Wurzel. Hast du Gradienten g_1, g_2, ..., g_n über alle Modellparameter, lautet die L2-Norm:

gradient clipping clipping by norm formula

Formel: Clipping nach Norm

Sobald du die Norm hast, vergleichst du sie mit deinem Schwellwert c. Wenn ||g|| <= c, bleiben die Gradienten unverändert. Wenn ||g|| > c, wird jeder Gradient mit dem Faktor c / ||g|| multipliziert. Dadurch sinkt die neue Norm auf genau c.

Wichtig ist, dass jede Komponente um denselben Faktor schrumpft. Die relativen Anteile der Gradienten bleiben gleich – der Vektor zeigt also weiterhin in die ursprüngliche Richtung. Du verkürzt nur den Schritt des Optimierers, nicht sein Ziel.

Diese richtungserhaltende Eigenschaft macht Norm-Clipping zur Standardwahl. Clipping nach Wert kann den Vektor verdrehen. Clipping nach Norm ändert nur seine Länge.

PyTorchs clip_grad_norm_ und TensorFlows clipnorm machen genau das. Wenn jemand sagt: "Ich nutze Gradient Clipping", ist fast immer Clipping nach Norm gemeint.

Den Schwellwert fürs Gradient Clipping wählen

Der Schwellwert ist ein Hyperparameter – es gibt keinen universellen Wert, der für alle Modelle passt.

Setzt du ihn zu hoch, greift das Clipping praktisch nie. Die Gradienten bleiben fast immer unter dem Limit, das Sicherheitsnetz fängt nichts ab. Das Training läuft, als gäbe es kein Clipping, und Loss-Spikes treten weiterhin auf.

Setzt du ihn zu niedrig, clippt es zu aggressiv. In jedem Batch werden die Gradienten verkleinert, Updates fallen kleiner aus als nötig. Das Lernen verlangsamt sich und die Konvergenz dauert deutlich länger.

Ein gängiger Startpunkt ist 1.0, was für viele Architekturen gut funktioniert. Werte zwischen 0.5 und 5.0 decken die meisten Praxisfälle ab.

Besser ist es, die Gradienten-Normen während des Trainings zu beobachten. Logge die ungeclippten Normen bei jedem Schritt und schau dir die Verteilung an. Wenn die meisten Normen um 0.3 liegen, mit gelegentlichen Spikes bis 50, setze den Schwellwert über dem typischen Bereich, aber deutlich unter den Spikes – 2.0 oder 3.0 wären hier sinnvoll.

Behandle ihn wie jeden anderen Hyperparameter. Starte mit 1.0, beobachte das Verhalten und passe dann an.

Gradient Clipping in rekurrenten neuronalen Netzen

RNNs sind der Ursprung, wo Gradient Clipping zum Standard wurde.

Der Grund liegt im Gradientenfluss über die Zeit. Backpropagation Through Time multipliziert dieselben Gewichtsmatrizen über viele Zeitschritte, und diese Wiederholungen können zu riesigen Werten führen. Lange Sequenzen verschärfen das Problem.

LSTMs und GRUs reduzieren das Problem mit Gating-Mechanismen, eliminieren es aber nicht. Beide Architekturen profitieren weiterhin vom Clipping, besonders bei langen Sequenzen oder hohen Lernraten.

Für RNN-Training ist Clipping nach Norm mit einem Schwellwert zwischen 1.0 und 5.0 üblich. Wenn du in PyTorch nn.LSTM oder nn.GRU nutzt und der Loss explodiert, ist clip_grad_norm_ meist der erste Hebel.

Gradient Clipping im modernen Deep Learning

Gradient Clipping ist mit dem Aufkommen der Transformer keineswegs verschwunden.

Große Sprachmodelle wie GPT und BERT nutzen Clipping beim Pretraining und Fine-Tuning. Gleiches gilt für Vision Transformer, Diffusionsmodelle und die meisten tiefen Architekturen mit Hunderten von Layern. Die Optimierer Adam und AdamW, die heute dominieren, werden oft mit Norm-Clipping um 1.0 kombiniert.

Der Grund ist derselbe wie bei RNNs: Tiefe Netze multiplizieren Gradienten über viele Layer, und große Batchgrößen in Kombination mit hohen Lernraten können gelegentliche Spikes erzeugen. Clipping fängt diese ab, ohne normale Schritte zu beeinflussen.

Die meisten Referenzimplementierungen enthalten Clipping standardmäßig. Hugging Faces Trainer, PyTorch Lightning und DeepSpeed bieten Clipping als Konfigurationsoption an. Wenn du etwas Größeres als ein kleines Spielzeugmodell trainierst, ist Clipping quasi gesetzt.

Es ist eine Ein-Zeilen-Ergänzung, kostet fast nichts und verhindert Trainingsabbrüche nach stundenlangem Rechnen. Deshalb hat es sich durchgesetzt.

Gradient Clipping in PyTorch

PyTorch übernimmt Gradient Clipping mit einer einzigen Utility-Funktion: torch.nn.utils.clip_grad_norm_.

Der Clipping-Aufruf gehört zwischen loss.backward() und optimizer.step(). Zuerst berechnet Backpropagation die Gradienten, dann verkleinert Clipping sie bei Bedarf, dann führt der Optimierer das Update aus. An anderer Stelle wirkt es nicht.

Hier ein vollständiges, lauffähiges Trainingsskript, das ein kleines MLP auf synthetischen Regressionsdaten trainiert – mit aktiviertem Gradient Clipping:

import torch
import torch.nn as nn
from torch.utils.data import DataLoader, TensorDataset

torch.manual_seed(42)

# Synthetic regression data
n_samples = 1000
n_features = 20
inputs = torch.randn(n_samples, n_features)
targets = (inputs.sum(dim=1, keepdim=True) * 2.0 + torch.randn(n_samples, 1) * 0.1)

dataset = TensorDataset(inputs, targets)
dataloader = DataLoader(dataset, batch_size=32, shuffle=True)

# Small feedforward network
model = nn.Sequential(
    nn.Linear(n_features, 64),
    nn.ReLU(),
    nn.Linear(64, 64),
    nn.ReLU(),
    nn.Linear(64, 1),
)

optimizer = torch.optim.Adam(model.parameters(), lr=1e-3)
loss_fn = nn.MSELoss()

# Training loop with gradient clipping
n_epochs = 5
max_grad_norm = 1.0

for epoch in range(n_epochs):
    epoch_loss = 0.0
    for batch_inputs, batch_targets in dataloader:
        optimizer.zero_grad()

        predictions = model(batch_inputs)
        loss = loss_fn(predictions, batch_targets)
        loss.backward()

        # Gradient clipping
        torch.nn.utils.clip_grad_norm_(model.parameters(), max_norm=max_grad_norm)

        optimizer.step()
        epoch_loss += loss.item()

    print(f("Epoch {epoch + 1}: loss = {epoch_loss / len(dataloader):.4f}"))

PyTorch output

PyTorch-Ausgabe

Die Funktion clip_grad_norm_ erwartet zwei zentrale Argumente:

  • parameters: Die Modellparameter, deren Gradienten du clippen willst. Übergebe model.parameters(), um das gesamte Modell abzudecken.

  • max_norm: Der Schwellwert für die Gradienten-Norm. 1.0 ist ein guter Startwert.

Optional kannst du norm_type angeben – standardmäßig 2.0 für die L2-Norm. Das musst du selten ändern.

Der Unterstrich in clip_grad_norm_ kennzeichnet eine In-Place-Operation. Die Funktion modifiziert die Gradienten direkt im .grad-Attribut jedes Parameters – du musst den Rückgabewert nicht verwenden. Zurückgegeben wird die Gesamtnorm der ungeclippten Gradienten, was sich gut zum Loggen eignet.

Für Clipping nach Wert statt nach Norm bietet PyTorch torch.nn.utils.clip_grad_value_:

torch.nn.utils.clip_grad_value_(model.parameters(), clip_value=0.5)

Wie oben erläutert, wirst du das in der Praxis jedoch selten (wenn überhaupt) brauchen.

Das ist das ganze Setup. Zwei Zeilen zusätzlich in deiner Trainingsschleife.

Gradient Clipping in TensorFlow

TensorFlow handhabt Clipping auf Ebene des Optimierers – nicht als separaten Funktionsaufruf.

Wenn du einen Optimierer erstellst, übergibst du clipnorm oder clipvalue als Argument. Der Optimierer wendet Clipping intern bei jedem Schritt an – du musst deine Trainingsschleife nicht anpassen.

Hier ein vollständiges Beispiel mit der Keras-API auf synthetischen Regressionsdaten:

import numpy as np
import tensorflow as tf

tf.random.set_seed(42)
np.random.seed(42)

# Synthetic regression data
n_samples = 1000
n_features = 20
x_train = np.random.randn(n_samples, n_features).astype(np.float32)
y_train = (x_train.sum(axis=1, keepdims=True) * 2.0
           + np.random.randn(n_samples, 1).astype(np.float32) * 0.1)

# Small feedforward network
model = tf.keras.Sequential([
    tf.keras.layers.Dense(64, activation="relu", input_shape=(n_features,)),
    tf.keras.layers.Dense(64, activation="relu"),
    tf.keras.layers.Dense(1),
])

# Optimizer with gradient clipping by norm
optimizer = tf.keras.optimizers.Adam(learning_rate=1e-3, clipnorm=1.0)

model.compile(optimizer=optimizer, loss="mse")
model.fit(x_train, y_train, epochs=5, batch_size=32)

TensorFlow-Ausgabe

Die beiden Argumente tun Unterschiedliches:

  • clipnorm clippt nach der L2-Norm jedes Gradienten-Tensors. Überschreitet die Norm den Schwellwert, wird der Tensor proportional skaliert.

  • clipvalue clippt einzelne Gradienten-Elemente. Werte oberhalb des Schwellwerts werden auf den Schwellwert begrenzt, Werte darunter auf das negative Gegenstück.

Um von Norm- zu Wert-Clipping zu wechseln, tauschst du das Argument:

optimizer = tf.keras.optimizers.Adam(learning_rate=1e-3, clipvalue=0.5)

Beide Argumente funktionieren mit jedem Keras-Optimierer: Adam, SGD, RMSprop, AdamW und anderen. Zusätzlich gibt es global_clipnorm – es clippt nach der Norm über alle Gradienten kombiniert, statt pro Tensor. Das entspricht eher dem Standardverhalten von PyTorch.

Schreibst du eine eigene Trainingsschleife mit tf.GradientTape, übernimmt der Optimierer das Clipping weiterhin, wenn du apply_gradients aufrufst:

for epoch in range(5):
    for batch_x, batch_y in zip(np.array_split(x_train, 32), np.array_split(y_train, 32)):
        with tf.GradientTape() as tape:
            predictions = model(batch_x, training=True)
            loss = tf.reduce_mean(tf.square(predictions - batch_y))

        gradients = tape.gradient(loss, model.trainable_variables)
        optimizer.apply_gradients(zip(gradients, model.trainable_variables))

Das ist der Unterschied zwischen den Frameworks: PyTorch gibt dir das Clipping explizit in die Hand, TensorFlow legt es in den Optimierer. Die zugrunde liegende Logik ist identisch.

Gradient Clipping vs. andere Stabilisierungs-Techniken

Gradient Clipping ist nicht der einzige Weg, Training zu stabilisieren – und nicht immer das richtige Werkzeug.

Andere Techniken lösen verwandte, aber unterschiedliche Probleme. Manche verhindern, dass Gradienten überhaupt groß werden, andere schützen vor dem Verschwinden, wieder andere glätten die Loss-Landschaft. Hier ein paar Beispiele.

Batch-Normalisierung

Batch-Normalisierung normalisiert Aktivierungen innerhalb jedes Mini-Batches während des Trainings.

Sie hält Layer-Ausgaben in einem stabilen Bereich, was Gradienten berechenbarer macht. Netze mit Batch Norm vertragen höhere Lernraten, konvergieren schneller und reagieren weniger empfindlich auf die Initialisierung.

Batch Norm stoppt explodierende Gradienten allerdings nicht direkt. Sie reduziert deren Häufigkeit, nicht deren Auswirkungen. Viele Modelle kombinieren Batch Norm deshalb mit Gradient Clipping.

Residual-Verbindungen

Residual-Verbindungen fügen Abkürzungen hinzu, die ein oder mehrere Layer überspringen, sodass Gradienten direkt von späteren zu früheren Layern fließen können.

Damit wird das Problem verschwindender Gradienten in tiefen Netzen gelöst. Ohne Residuals wird das Training jenseits von 20–30 Layern schwierig, weil Gradienten gegen Null gehen. Mit Residuals trainieren Netze mit Hunderten Layern problemlos.

Residuals adressieren also die Gegenseite zum Clipping: Clipping bändigt zu große Gradienten, Residuals verhindern, dass sie zu klein werden.

Sorgfältige Gewichtsinitialisierung

Die Startwerte deiner Gewichte bestimmen die anfängliche Größe von Aktivierungen und Gradienten. Schlechte Initialisierung kann von der ersten Iteration an zu explodierenden oder verschwindenden Gradienten führen.

Methoden wie Xavier- und He-Initialisierung skalieren Gewichte in Abhängigkeit von der Layergröße. So bleiben Varianzen zu Beginn stabil, und viele Gradientenprobleme treten gar nicht erst auf.

Gute Initialisierung verringert die Chance, dass du Clipping brauchst – ausschließen kann sie es nicht. Spikes können später im Training auftreten, besonders bei hohen Lernraten oder ungewöhnlichen Batches.

Wie alles zusammenpasst

Diese Techniken sind keine Alternativen, sondern ergänzen sich. Sie lösen verschiedene Aspekte desselben Problems.

Ein modernes Setup nutzt zu Beginn eine sorgfältige Initialisierung, im Modell Residual-Verbindungen, Batch- oder Layer-Normalisierung und während der Optimierung Gradient Clipping als Sicherheitsnetz. Jede Komponente adressiert einen spezifischen Fehlerfall – zusammen machen sie tiefe Netze trainierbar.

Fazit

Gradient Clipping gehört zu den einfachsten Fixes im Deep Learning – und verhindert, dass stundenlange Trainingsläufe in einem Schritt entgleisen.

Gute Nachrichten: Du musst weder deine Architektur ändern noch deinen Trainingscode umschreiben. Eine Zeile in PyTorch oder ein Argument in TensorFlow reicht, um Gradient Clipping zu aktivieren.

Am besten wirkt es als Teil eines Gesamtpakets. Kombiniere es mit sorgfältiger Initialisierung, Residual-Verbindungen und Batch- oder Layer-Normalisierung – so bekommst du eine Trainingspipeline, die Instabilitäten aus mehreren Richtungen abfedert.

Wenn dein Loss explodiert, fang mit Clipping an. Wenn er verschwindet, such an anderer Stelle. Und wenn du etwas Größeres als ein kleines Modell trainierst, bau Clipping standardmäßig ein und hake das Thema ab.

Gradient Clipping ist nur einer von vielen Begriffen, die jede Machine-Learning-Engineer kennen sollte. Wenn du den Rest lernen und 2026 jobready sein willst, melde dich noch heute für unseren Machine Learning Engineer-Lernpfad an.

Werde ein ML-Wissenschaftler

Bilde dich in Python weiter, um ein/e Wissenschaftler/in für maschinelles Lernen zu werden.
Kostenloses Lernen beginnen

Dario Radečić's photo
Author
Dario Radečić
LinkedIn
Senior Data Scientist mit Sitz in Kroatien. Top Tech Writer mit über 700 veröffentlichten Artikeln, die mehr als 10 Millionen Mal aufgerufen wurden. Buchautor von Machine Learning Automation with TPOT.

Gradient Clipping: Häufige Fragen

Was ist Gradient Clipping im Deep Learning?

Gradient Clipping ist eine Technik, die die Größe der Gradienten beim Training neuronaler Netze begrenzt, um instabile Parameterupdates zu verhindern. Wenn Gradienten während der Backpropagation zu groß werden, macht der Optimierer riesige Schritte, drückt Gewichte in ungünstige Bereiche und der Loss explodiert. Clipping deckelt die Gradienten, bevor der Optimierer updatet – so bleiben Updates begrenzt, auch wenn die rohen Gradienten kurzzeitig ausreißen.

Wann sollte ich Gradient Clipping verwenden?

Nutze Gradient Clipping immer dann, wenn dein Training instabil ist – vor allem bei plötzlichen Loss-Spikes, NaN-Werten oder Divergenz nach langen Läufen. Es ist Standard bei rekurrenten Netzen wie LSTMs und GRUs und bei tiefen Architekturen mit hohen Lernraten. Wenn deine Loss-Kurve stabil aussieht, kannst du darauf verzichten – als Sicherheitsnetz schadet es jedoch nicht.

Was ist der Unterschied zwischen Clipping nach Wert und nach Norm?

Beim Clipping nach Wert wird jedes Gradienten-Element einzeln begrenzt – das kann die Richtung des Gradientenvektors verändern. Beim Clipping nach Norm wird der gesamte Vektor skaliert, wenn seine Gesamtnorm den Schwellwert überschreitet, wodurch die ursprüngliche Richtung erhalten bleibt, während der Schritt kürzer wird. Clipping nach Norm ist heute Standard, weil es die Updaterichtung nicht verzerrt.

Wie wähle ich einen guten Schwellwert fürs Gradient Clipping?

Starte mit 1.0 und passe basierend auf dem Trainingsverlauf an. Logge die ungeclippten Gradienten-Normen über die Batches und betrachte die Verteilung. Setze den Schwellwert oberhalb des typischen Bereichs, aber deutlich unter den Spikes, die du abfangen willst. Ist er zu hoch, greift Clipping nie; ist er zu niedrig, bremst es das Lernen unnötig aus.

Behebt Gradient Clipping auch verschwindende Gradienten?

Nein. Gradient Clipping adressiert nur explodierende Gradienten, also zu große Werte. Verschwindende Gradienten sind das Gegenproblem – Werte schrumpfen gegen Null und das Lernen kommt zum Erliegen. Gegen verschwindende Gradienten helfen bessere Gewichtsinitialisierung, Residual-Verbindungen, Batch-Normalisierung oder Architekturen wie LSTMs und GRUs.

Themen

Lerne mit DataCamp

Lernpfad

Wissenschaftler für maschinelles Lernen in Python

85 Std.
Lerne maschinelles Lernen mit Python kennen und arbeite daran, ein Experte für maschinelles Lernen zu werden. Entdecke überwachtes, unüberwachtes und tiefes Lernen.
Details anzeigenRight Arrow
Kurs starten
Mehr anzeigenRight Arrow
Verwandt

Tutorial

So kürzt man eine Zeichenfolge in Python: Drei verschiedene Methoden

Lerne die Grundlagen zum Entfernen von führenden und nachfolgenden Zeichen aus einer Zeichenfolge in Python.
Adel Nehme's photo

Adel Nehme

Tutorial

Python-Tutorial zum Verknüpfen von Zeichenfolgen

Lerne verschiedene Methoden zum Verknüpfen von Zeichenfolgen in Python kennen, mit Beispielen, die jede Technik zeigen.
DataCamp Team's photo

DataCamp Team

Tutorial

Python-Schleifen-Tutorial

Ein umfassendes Einführungs-Tutorial zu Python-Schleifen. Lerne und übe while- und for-Schleifen, verschachtelte Schleifen, die Schlüsselwörter break und continue, die Range-Funktion und vieles mehr!
Satyabrata Pal's photo

Satyabrata Pal

Tutorial

30 coole Python-Tricks für besser lesbaren Code – mit Beispielen

Wir haben 30 coole Python-Tricks zusammengestellt, mit denen du deinen Code verbesserst und deine Python-Kompetenzen ausbaust.
Kurtis Pykes 's photo

Kurtis Pykes

Tutorial

Zahlen in Python quadrieren: Grundlagen und fortgeschrittene Methoden

Quadrieren in Python ist einfach: Nutze den eingebauten Operator ** oder setze für vielseitigere Lösungen NumPy, pow(), math.pow(), Bitoperatoren und weitere Funktionen ein.
Allan Ouko's photo

Allan Ouko

Tutorial

Fibonacci-Folge in Python: Lerne und entdecke Programmiertechniken

Finde raus, wie die Fibonacci-Folge funktioniert. Schau dir die mathematischen Eigenschaften und die Anwendungen in der echten Welt an.
Laiba Siddiqui's photo

Laiba Siddiqui

Mehr anzeigenMehr anzeigen