vanishing gradient problem
Problem i træning af dybe neurale netværk, hvor gradienterne af tabsfunktionen bliver eksponentielt mindre, når de bakker tilbage gennem lagene, hvilket forhindrer vægtopdateringer i de tidlige lag.
Kort fortalt
Når gradienterne bliver så små, at de nærmest forsvinder, stopper læringen i de tidlige lag af et dybt neuralt netværk.
- Kategori
- begreb
- Niveau
- øvet
Betydninger
1- 1
Fænomen i træning af neurale netværk med mange lag, hvor gradienterne for tabsfunktionen med hensyn til vægtene i de tidlige lag bliver så små, at vægtopdateringerne er ubetydelige, hvilket forhindrer netværket i at lære effektivt.
- Dybe netværk med sigmoid-aktivering lider ofte af vanishing gradient problem, især når de har mere end 10 lag. — Hochreiter, 1991
- Brugen af ReLU-aktivering reducerer vanishing gradient problem markant. — Krizhevsky et al., 2012
Hvornår bruges det
Problemet opstår især med aktiveringsfunktioner som sigmoid og tanh, der har afledede tæt på nul for store inputværdier. Det kan afhjælpes ved at bruge ReLU-aktivering, batch-normalisering eller residualforbindelser.
Kodeeksempel
import torch
import torch.nn as nn
model = nn.Sequential(*[nn.Linear(10,10) for _ in range(10)])
x = torch.randn(4,10)
y = model(x).sum()
y.backward()
for i, param in enumerate(model.parameters()):
if param.grad is not None:
print(f'Layer {i//2}: grad norm = {param.grad.norm().item():.2e}')Eksempel der viser, at gradientnormen falder for tidligere lag i et dybt lineært netværk.
Oprindelse
Termen stammer fra den observation, at gradienter i dybe netværk kan 'forsvinde' (vanishing) under backpropagation, beskrevet af Sepp Hochreiter i 1991.
Kilder
2- Learning Long-Term Dependencies with Gradient Descent is Difficult (Bengio, Simard, Frasconi, 1994)
- On the difficulty of training recurrent neural networks (Pascanu, Mikolov, Bengio, 2013)