SGD med Nesterov-momentum

Stokastisk gradient descent med Nesterov-momentum er en optimeringsalgoritme, der anvender et forudsete opdateringstrin for at forbedre konvergenshastigheden.

Kort fortalt

En forbedret version af SGD, der kigger et skridt frem, når momentum beregnes, så det hurtigere finder vej til bunden af tabslandskabet.

Kategori
træning
Niveau
øvet

Betydninger

1
  1. 1

    En optimeringsalgoritme, der udvider standard SGD med momentum ved at beregne gradienten efter at have anvendt momentum på vægtene, hvilket giver et mere informeret opdateringstrin.

    • Under træningen anvender vi SGD med Nesterov-momentum for at undgå oscillationer og opnå hurtigere konvergens.Deep Learning, Goodfellow et al., 2016
    • Nesterov-momentum forbedrer standard momentum ved at tage højde for fremtidige gradienter, hvilket reducerer oversving.Sutskever et al., 2013

Hvornår bruges det

Bruges i træning af neurale netværk for at opnå hurtigere og mere stabil konvergens end standard SGD med momentum. Nesterov-momentum er ofte foretrukket i deep learning-frameworks som PyTorch og TensorFlow.

Formel

v ← μ·v − η·∇L(θ + μ·v); θ ← θ + v

Kodeeksempel

import torch
optimizer = torch.optim.SGD(model.parameters(), lr=0.01, momentum=0.9, nesterov=True)

Sådan oprettes en optimizer med Nesterov-momentum i PyTorch.

Oprindelse

Opkaldt efter den russiske matematiker Jurij Nesterov, der i 1983 foreslog en accelereret gradient-metode med forudseenhed. Kombineret med stokastisk gradient descent (SGD) giver det en effektiv optimeringsmetode til deep learning.

Afledte ord

1

Kilder

2
  • Nesterov, 1983: A method for solving the convex programming problem with convergence rate O(1/k^2)
  • Sutskever et al., 2013: On the importance of initialization and momentum in deep learning