SGD with momentum
forkortelse for stochastic gradient descent with momentum
En optimeringsalgoritme der tilføjer en hastighedskomponent til SGD for at dæmpe oscillationer og accelerere konvergens.
Kort fortalt
En forbedring af SGD, hvor tidligere gradienter akkumuleres for at give et 'momentum', så optimeringen glatter ud og hurtigere finder minimum.
- Kategori
- træning
- Niveau
- øvet
Betydninger
1- 1
En udvidelse af stokastisk gradient descent, hvor opdateringerne vægtes med en glidende gennemsnitlig gradient (hastighed) for at reducere oscillationer og accelerere konvergens.
- Med SGD with momentum kan træningen af en dyb CNN konvergere markant hurtigere end med almindelig SGD.
- Momentum-parameteren μ sættes typisk til 0.9, hvilket giver en kraftig dæmpning af gradientudsving.
Hvornår bruges det
Bruges i træning af neurale netværk, især når gradientstøj eller dårligt betingede overflader gør almindelig SGD langsom. Anbefales ofte som standardvalg med momentum omkring 0.9.
Formel
v_t = μ·v_{t-1} + η·∇L(θ_{t-1}); θ_t = θ_{t-1} - v_tKodeeksempel
def sgd_momentum(params, grads, lr=0.01, mu=0.9):
v = [0]*len(params)
for t in range(steps):
for i in range(len(params)):
v[i] = mu*v[i] + lr*grads[i]
params[i] -= v[i]Simpel implementering af SGD med momentum. Hastigheden v akkumuleres med dæmpning mu.
Oprindelse
Stammer fra fysikkens momentum, hvor en partikels bevægelse bevares. Introduceret i neural nettræning af Rumelhart, Hinton og Williams i 1986.
Afledte ord
2Kilder
2- Learning representations by back-propagating errors (Rumelhart et al., 1986)
- On the importance of initialization and momentum in deep learning (Sutskever et al., 2013)