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
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'.