gradient clipping threshold
En hyperparameter, der sætter en maksimal grænse for gradienternes størrelse under træning af neurale netværk for at forhindre eksploderende gradienter.
Kort fortalt
Gradient clipping threshold er en værdi, der begrænser, hvor store gradienterne må være, når en neuralt netværk trænes – ellers kan de blive så store, at læringsprocessen bryder sammen.
- Kategori
- træning
- Niveau
- øvet
- Udtale
- /ˈɡreɪdiənt ˈklɪpɪŋ ˈθrɛʃhoʊld/
Betydninger
2- 1
Maksimal tilladt L2-norm for gradientvektoren; gradienter med norm over denne grænse skaleres ned.
- Vi satte gradient clipping threshold til 1.0 for at stabilisere træningen af den dybe LSTM. — Eksempel fra praksis, 2024
- En for høj gradient clipping threshold kan føre til, at eksploderende gradienter ikke forhindres. — Eksempel fra praksis, 2024
- 2
Maksimal absolutværdi for hver gradientkomponent ved værdibaseret clipping; alle gradienter klemmes til intervallet [-threshold, threshold].
- Ved value-clipping bruges en gradient clipping threshold på 0.5, så ingen gradient overstiger 0.5. — Eksempel fra praksis, 2024
Hvornår bruges det
Gradient clipping threshold bruges primært i træning af dybe neurale netværk, især RNN'er og transformere, hvor gradienter kan vokse eksponentielt. Det sættes typisk som et tal (f.eks. 1.0 eller 5.0), og gradienterne skaleres ned, hvis deres norm overstiger dette tal. Det anvendes i optimeringsalgoritmer som SGD eller Adam.
Formel
For norm-clipping: hvis ||g|| > θ, så g' = θ · g / ||g||; for value-clipping: g' = max(min(g, θ), -θ).Kodeeksempel
import torch
# Norm clipping for a sequence of parameters
params = model.parameters()
max_norm = 1.0 # gradient clipping threshold
torch.nn.utils.clip_grad_norm_(params, max_norm)
# Value clipping
torch.nn.utils.clip_grad_value_(params, clip_value=1.0)Eksempel på norm-baseret og værdi-baseret gradient clipping i PyTorch med threshold 1.0.
Oprindelse
Begrebet stammer fra gradient-nedstigning og clipping (beskæring) af gradienter, hvor 'threshold' angiver grænsen. Metoden blev formaliseret af Pascanu et al. (2013) i forbindelse med træning af rekursive neurale netværk.