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

Kodeeksempel

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

2

Kilder

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)