Gradient clipping

En teknik i træning af neurale netværk, der begrænser størrelsen af gradienter under backpropagation for at forhindre eksploderende gradienter.

Kort fortalt

Gradient clipping forhindrer gradienter i at blive for store under træning, så modellen ikke sprænger i luften.

Kategori
træning
Niveau
øvet
Udtale
[ˈɡreɪdiənt ˈklɪpɪŋ]

Betydninger

1
  1. 1

    Teknik til at begrænse gradienters størrelse under backpropagation for at stabilisere træning af neurale netværk.

    • Ved træning af en dyb LSTM anvendes gradient clipping for at undgå eksploderende gradienter.Pascanu et al., 2013
    • Norm clipping på 1.0 forhindrede tab af stabilitet i transformermodellen.

Hvornår bruges det

Gradient clipping anvendes især i træning af dybe netværk som RNN'er og transformere, hvor gradienter kan vokse eksponentielt. Det implementeres typisk ved at begrænse gradientnormen (norm clipping) eller hver gradientværdi (value clipping) før opdatering af vægte.

Formel

Norm clipping: if ‖g‖ > c then g ← (c / ‖g‖) * g
Value clipping: g ← clamp(g, -c, c)

Kodeeksempel

import torch

# Norm clipping
params = model.parameters()
torch.nn.utils.clip_grad_norm_(params, max_norm=1.0)

# Value clipping
torch.nn.utils.clip_grad_value_(params, clip_value=0.5)

Eksempel på gradient clipping i PyTorch med norm- og værdibegrænsning.

Oprindelse

Afledt af engelsk 'gradient' (hældning) og 'clipping' (afskæring), direkte oversat til dansk som 'gradientafskæring'.

Afledte ord

2

Kilder

2