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