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
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, vFunktion 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
1Kilder
1- Nesterov, Y. (1983). A method for solving the convex programming problem with convergence rate O(1/k^2)