Nesterov momentum

En forbedring af momentum-optimering, hvor gradienten beregnes efter en foreløbig opdatering af parametrene.

Kort fortalt

Nesterov momentum er en metode til at træne neurale netværk hurtigere ved at kigge et skridt frem, før man beregner gradienten.

Kategori
teknik
Niveau
øvet

Betydninger

1
  1. 1

    En optimeringsalgoritme, der modificerer momentum ved at beregne gradienten for en opdateret version af parametrene, hvilket reducerer oscillation og forbedrer konvergenshastigheden.

    • I træningen af en deep learning-model kan Nesterov momentum give en betydelig speedup i forhold til standard momentum.
    • Nesterov momentum kræver kun en lille ændring i koden men kan have stor effekt på konvergensen.

Hvornår bruges det

Nesterov momentum bruges ofte i stedet for standard momentum i stokastisk gradient descent (SGD) for at opnå hurtigere konvergens og bedre stabilitet. Det er implementeret i mange deep learning-rammer som PyTorch og TensorFlow.

Formel

v_{t+1} = μ v_t - η ∇f(θ_t + μ v_t); θ_{t+1} = θ_t + v_{t+1}

Kodeeksempel

def update_nesterov(theta, v, grad_func, lr, mu):
    lookahead = theta + mu * v
    grad = grad_func(lookahead)
    v = mu * v - lr * grad
    theta = theta + v
    return theta, v

Funktion til at udføre et Nesterov momentum-opdateringstrin.

Oprindelse

Opkaldt efter den russiske matematiker Jurij Nesterov, der introducerede metoden i 1983 som en accelereret gradientmetode.

Afledte ord

1

Kilder

1
  • Nesterov, Y. (1983). A method for solving the convex programming problem with convergence rate O(1/k^2)