Nesterov Momentum/es
| Article | |
|---|---|
| Topic area | Optimization |
| Prerequisites | Stochastic Gradient Descent, Gradient Descent |
Visión general
El momento de Nesterov, también llamado gradiente acelerado de Nesterov (NAG), es un método de optimización de primer orden que enriquece el descenso por gradiente con un término de velocidad evaluado en un punto de anticipación. Fue introducido por Yurii Nesterov en 1983 para problemas convexos suaves y alcanza una tasa de convergencia óptima en el peor caso de $ O(1/t^2) $ sobre funciones convexas con gradientes de Lipschitz, frente a $ O(1/t) $ para el descenso por gradiente clásico. En el aprendizaje automático moderno aparece sobre todo como un sustituto directo de la opción de momento en el descenso por gradiente estocástico, donde suele ofrecer una convergencia algo más rápida y mayor estabilidad que el momento clásico de bola pesada.
La idea esencial es simple: en lugar de calcular el gradiente en el vector de parámetros actual y dar después un paso ponderado por el momento, NAG aplica primero la velocidad anterior para obtener un punto de anticipación, evalúa el gradiente allí y solo entonces aplica la corrección. Este pequeño reordenamiento produce una diferencia algorítmica perceptible y es la base de la aceleración teórica del método.
Antecedentes: momento clásico
El momento clásico, a veces llamado método de la bola pesada de Polyak, complementa la actualización del gradiente con un historial ponderado exponencialmente de gradientes pasados. Sea $ \theta_t $ el vector de parámetros en el paso $ t $, $ \eta $ la tasa de aprendizaje, $ \mu \in [0,1) $ el coeficiente de momento y $ \nabla f(\theta_t) $ el gradiente del objetivo. La actualización clásica es
$ {\displaystyle v_{t+1} = \mu v_t + \nabla f(\theta_t),} $ $ {\displaystyle \theta_{t+1} = \theta_t - \eta\, v_{t+1}.} $
La velocidad $ v_t $ se comporta como el momento de una partícula que rueda por el paisaje de pérdida, amortiguando las oscilaciones de alta frecuencia a través de barrancos estrechos a la vez que acumula velocidad en direcciones consistentes de descenso. El momento de bola pesada puede acelerar enormemente el progreso en problemas mal condicionados, pero es propenso a sobrepasar el mínimo y carece de la tasa de convergencia acelerada óptima sobre funciones convexas suaves generales.
La actualización de Nesterov
La modificación de Nesterov evalúa el gradiente en el punto de anticipación $ \theta_t - \eta \mu v_t $ en lugar de en $ \theta_t $. La actualización pasa a ser
$ {\displaystyle v_{t+1} = \mu v_t + \nabla f\!\left(\theta_t - \eta \mu v_t\right),} $ $ {\displaystyle \theta_{t+1} = \theta_t - \eta\, v_{t+1}.} $
Leyendo de izquierda a derecha: el optimizador se compromete por adelantado con el paso inercial $ -\eta \mu v_t $, y luego se pregunta "¿cuál es el gradiente en el lugar al que estoy a punto de llegar?" y usa esa información para corregir la velocidad. Si el paso inercial apunta hacia una subida, el gradiente en el punto de anticipación ya tirará en sentido contrario, reduciendo el sobreimpulso antes de que ocurra.
En su forma convexa original, Nesterov utilizaba un coeficiente $ \mu_t $ variable en el tiempo, derivado de una recurrencia sobre sucesiones auxiliares, con $ \mu_t \to 1 $ cuando $ t \to \infty $. La mayoría de las implementaciones de aprendizaje profundo lo sustituyen por un $ \mu $ constante (típicamente 0,9 o 0,99), lo que sacrifica la garantía formal de aceleración pero conserva los beneficios prácticos.
Intuición: corrección con anticipación
Una imagen mental útil consiste en dividir cada iteración en dos fases. Primero, el iterado se desliza siguiendo su velocidad actual, exactamente como haría el momento clásico. Después, un gradiente evaluado en esta posición proyectada actúa como fuerza correctora. El momento clásico, en cambio, basa su corrección en el gradiente de la posición actual, que está "detrás" del movimiento real. La anticipación, por tanto, otorga a NAG medio paso de información adicional por iteración.
Este efecto se observa con mayor claridad en objetivos cuadráticos con conjuntos de nivel alargados. Los iterados de bola pesada oscilan a lo largo de la dirección estrecha con una amplitud que decae lentamente. Los iterados de NAG amortiguan esa misma oscilación más rápido porque cada corrección se basa en hacia dónde se dirige el parámetro, no en dónde se encuentra ahora.
Propiedades de convergencia
Para una función convexa $ f $ con gradiente $ L $-Lipschitz y mínimo $ f^* $, el gradiente acelerado de Nesterov con tamaño de paso $ \eta = 1/L $ satisface
$ {\displaystyle f(\theta_t) - f^* \le \frac{2L\,\|\theta_0 - \theta^*\|^2}{(t+1)^2},} $
lo cual coincide con la cota inferior de cualquier método de primer orden que solo accede a información del gradiente.[1] Sobre objetivos $ \mu $-fuertemente convexos la tasa se vuelve lineal con factor de contracción $ 1 - \sqrt{\mu / L} $, de nuevo estrictamente mejor que el $ 1 - \mu / L $ del descenso por gradiente.
Estas garantías suponen gradientes exactos y la planificación original con coeficiente variable en el tiempo. Con gradientes estocásticos, como en la práctica del aprendizaje profundo, la aceleración formal deja de cumplirse, pero la estructura de anticipación suele seguir ayudando empíricamente.
Formulación práctica
La forma anterior requiere evaluar el gradiente en $ \theta_t - \eta \mu v_t $, lo cual es incómodo en frameworks de diferenciación automática que prefieren calcular gradientes en los parámetros que tienen actualmente almacenados. Sutskever et al.[2] demostraron que un cambio de variables produce una actualización equivalente que siempre evalúa el gradiente en los parámetros actuales:
$ {\displaystyle v_{t+1} = \mu v_t - \eta\, \nabla f(\theta_t),} $ $ {\displaystyle \theta_{t+1} = \theta_t + \mu v_{t+1} - \eta\, \nabla f(\theta_t).} $
Esta es la forma implementada en frameworks como PyTorch (torch.optim.SGD(..., nesterov=True)) y TensorFlow Keras. Produce la misma trayectoria que la forma con anticipación salvo una reparametrización, y es lo que la mayoría de los profesionales realmente ejecuta.
Comparación con métodos relacionados
El momento de Nesterov se sitúa entre el momento clásico de bola pesada y los métodos adaptativos como Adam y RMSprop en el espacio de diseño de optimizadores. Comparado con la bola pesada, suele entrenar más rápido y sobrepasar menos; la diferencia es pequeña pero consistente en modelos convolucionales de visión, donde el SGD con momento de Nesterov sigue siendo una línea base sólida. Frente a los métodos adaptativos, NAG no reescala los gradientes por parámetro, lo que lo hace menos robusto a magnitudes de gradiente heterogéneas, pero a menudo proporciona mejor generalización final en benchmarks de visión bien afinados.
Los optimizadores Lookahead y la aceleración de Anderson, estrechamente relacionada, comparten el espíritu de NAG en el sentido de que ambos utilizan sucesiones auxiliares para cancelar comportamientos oscilatorios, pero aplican la corrección a granularidades más gruesas o mediante esquemas de extrapolación más generales.
Limitaciones
A pesar de su elegante teoría, el momento de Nesterov presenta varias salvedades prácticas. Su aceleración formal depende de la suavidad, la convexidad y los gradientes exactos, ninguno de los cuales se cumple en el entrenamiento de redes profundas; las ganancias empíricas frente al momento clásico suelen ser modestas y, una vez bien ajustadas la tasa de aprendizaje y el decaimiento de pesos, a veces despreciables. Con un coeficiente de momento muy alto (cercano a 1) y una tasa de aprendizaje grande aún puede sobrepasar el mínimo o divergir en problemas ruidosos. Por último, en objetivos donde el escalado adaptativo es crítico, como los modelos de lenguaje basados en transformer, NAG rara vez compite con Adam o sus variantes y casi nunca es la elección por defecto.