El momentum añade memoria al descenso de gradiente: en lugar de moverse solo con el gradiente del paso actual, acumula una velocidad que arrastra la dirección de los pasos anteriores. Esa inercia, tomada de la física de una bola que rueda, suaviza el zigzag del descenso de gradiente estocástico y acelera la llegada al mínimo. La idea es de Boris Polyak, que la propuso en 1964, y sigue siendo la base de optimizadores modernos como Adam. Esta guía explica la fórmula $\mathbf{v}\leftarrow\beta\mathbf{v}+\nabla L$, el papel del coeficiente $\beta$ y cuándo el momentum marca la diferencia frente al SGD puro. La misma explicación está disponible en inglés.

Fórmula clave $\mathbf{v}\leftarrow\beta\mathbf{v}+\nabla L,\quad \mathbf{w}\leftarrow\mathbf{w}-\eta\mathbf{v}$

Puntos clave

  • El momentum guarda una velocidad acumulada v que combina los gradientes pasados con el actual, en vez de reaccionar solo a la pendiente del momento.
  • La actualización se hace en dos pasos: v ← βv + ∇L para acumular la velocidad y w ← w − ηv para mover los pesos con esa velocidad.
  • El coeficiente β (habitualmente 0,9) decide cuánta memoria conservamos: con 0,9 cada gradiente pesa durante unos diez pasos antes de diluirse.
  • El momentum atraviesa los valles alargados y las mesetas donde el descenso de gradiente estocástico se arrastra, porque las componentes útiles del gradiente se suman paso a paso.
  • Es la semilla de optimizadores como Nesterov y Adam, que en 2014 combinó el momentum con una tasa de aprendizaje adaptativa y se convirtió en el método por defecto del aprendizaje profundo.

¿Qué es el momentum?

El descenso de gradiente básico corrige los pesos mirando únicamente la pendiente en el punto donde está: calcula el gradiente ∇L, da un paso en dirección contraria y olvida todo lo anterior. Esa amnesia es su punto débil. Cuando la superficie de error es un valle estrecho y alargado, el gradiente apunta sobre todo hacia las paredes, no hacia el fondo, y el método rebota de lado a lado avanzando muy poco.

El momentum resuelve ese problema dándole memoria al proceso. En vez de usar el gradiente crudo, mantiene una velocidad v que se actualiza sumando el gradiente nuevo a una fracción de la velocidad anterior. Las direcciones que se repiten se refuerzan y las que oscilan se cancelan entre sí. El resultado es un movimiento más recto y más rápido hacia el mínimo. Este método parte del descenso de gradiente clásico y solo cambia cómo se calcula cada paso.

La analogía de la bola que rueda

La imagen habitual es una bola pesada que rueda por la superficie de error. El descenso de gradiente puro se comporta como una canica sin masa: en cada instante va exactamente hacia donde marca la pendiente y se detiene en cuanto el suelo se aplana. Una bola con masa, en cambio, tiene inercia: si lleva un rato bajando en una dirección, sigue avanzando en ella aunque el terreno cambie un poco.

Esa inercia es justo lo que aporta el momentum. En un valle estrecho, la bola pesada no rebota entre las paredes, sino que su velocidad acumulada la empuja a lo largo del fondo hacia el mínimo. En una meseta casi plana, donde una canica se quedaría parada, la bola conserva parte de la velocidad que traía y sigue rodando. Por eso a la versión original de Polyak se la conoce como el método de la bola pesada (heavy ball).

La fórmula de la velocidad acumulada

Matemáticamente, el momentum añade una sola variable, la velocidad $\mathbf{v}$, y reescribe la actualización en dos pasos:

$$\mathbf{v}\leftarrow\beta\mathbf{v}+\nabla L,\qquad \mathbf{w}\leftarrow\mathbf{w}-\eta\mathbf{v}$$

En pseudocódigo, el bucle de entrenamiento queda así:

v = 0                       # velocidad inicial
for paso in entrenamiento:
    grad = gradiente(L, w)  # gradiente de la perdida en w
    v = beta * v + grad     # acumula la velocidad
    w = w - eta * v         # mueve los pesos con esa velocidad

La primera línea, $\mathbf{v}\leftarrow\beta\mathbf{v}+\nabla L$, es el corazón del método: la nueva velocidad es una parte de la velocidad anterior (el término $\beta\mathbf{v}$) más el gradiente recién calculado. La segunda, $\mathbf{w}\leftarrow\mathbf{w}-\eta\mathbf{v}$, es la actualización de siempre, con la diferencia de que ahora usamos la velocidad $\mathbf{v}$ en lugar del gradiente suelto. Si pones $\beta=0$, la velocidad se reduce al gradiente y recuperas exactamente el descenso de gradiente clásico; el momentum es una generalización que lo contiene como caso particular. Este bloque encaja en el mapa de las matemáticas de las redes neuronales, dentro de la optimización.

El coste añadido del momentum es mínimo: una sola variable de estado por peso, la velocidad $\mathbf{v}$, y una multiplicación extra por paso, sin tocar la función de pérdida ni el cálculo del gradiente.

El coeficiente beta

El coeficiente $\beta$ controla cuánta memoria conserva la velocidad, y casi siempre se fija entre 0,9 y 0,99. Su efecto se entiende con una cuenta sencilla: con memoria geométrica, cada gradiente influye durante aproximadamente $1/(1-\beta)$ pasos. Con $\beta=0{,}9$ eso equivale a unos 10 pasos de historia efectiva; con $\beta=0{,}99$, a unos 100. Cuanto mayor es $\beta$, más larga es la memoria y más suave (pero también más perezosa) es la trayectoria.

Ver la derivación

Al desplegar la recurrencia $\mathbf{v}_t=\beta\mathbf{v}_{t-1}+\mathbf{g}_t$, el gradiente $\mathbf{g}_k$ de un paso contribuye a los siguientes con pesos $1,\beta,\beta^2,\dots$ Su influencia total es la suma geométrica $\sum_{i=0}^{\infty}\beta^i=\frac{1}{1-\beta}$, y el tiempo efectivo durante el que pesa antes de diluirse es precisamente $1/(1-\beta)$ pasos. Con $\beta=0{,}9$ eso da $10$; con $\beta=0{,}99$, $100$.

Elegir bien $\beta$ es un compromiso. Un valor demasiado alto, como 0,999, acumula tanta inercia que la bola se pasa de largo el mínimo y tarda en frenar. Uno demasiado bajo apenas aporta ventaja sobre el descenso de gradiente estocástico. En la práctica, $\beta=0{,}9$ es el punto de partida recomendado en casi todos los manuales, y solo se sube a 0,99 cuando el gradiente es muy ruidoso y conviene promediar más. Como lo explica Sebastian Ruder en su repaso de los algoritmos de optimización[1], «el término de momentum aumenta para las dimensiones cuyos gradientes apuntan en la misma dirección y reduce las actualizaciones para las dimensiones cuyos gradientes cambian de dirección».

Momentum frente a SGD puro

La diferencia práctica se nota en dos situaciones frecuentes. La primera son los valles alargados, donde el gradiente estocástico puro hace un zigzag lento entre las paredes. Con momentum, las componentes laterales del gradiente se cancelan entre pasos consecutivos mientras la componente hacia el fondo se suma, así que la trayectoria se endereza y el entrenamiento converge en bastantes menos épocas. El artículo interactivo Why Momentum Really Works[2], publicado en Distill en 2017, muestra visualmente cómo esa acumulación reduce las oscilaciones.

La segunda situación son las mesetas y los mínimos locales poco profundos. La velocidad acumulada actúa como una reserva de energía que ayuda a cruzar zonas casi planas y a salir de pequeños hoyos donde el descenso puro se quedaría atascado. El coste es mínimo: una variable extra por peso y una multiplicación más por paso. A cambio, el momentum se aplica igual de bien al descenso de gradiente por lotes, estocástico y mini-batch, sea cual sea el tamaño del lote sobre el que se estima el gradiente. La Wikipedia sobre el descenso de gradiente estocástico[3] recoge el momentum entre sus extensiones más usadas.

Preguntas frecuentes

¿En qué se diferencia el momentum del SGD puro?

En que el momentum guarda una velocidad acumulada en lugar de usar solo el gradiente del paso actual. El descenso de gradiente estocástico puro corrige los pesos con w ← w − η∇L y olvida cada paso; el momentum inserta antes v ← βv + ∇L, de modo que la dirección de los pasos anteriores sigue influyendo. Esa inercia reduce el zigzag y acelera la convergencia sin cambiar la función de pérdida.

¿Qué valor de beta conviene usar?

El punto de partida habitual es β = 0,9, que equivale a recordar unos diez pasos de gradiente. Si el gradiente es muy ruidoso, subir a 0,99 promedia más historia y estabiliza la trayectoria; bajar de 0,9 deja el método muy cerca del descenso de gradiente estocástico normal. Rara vez se pasa de 0,99, porque una inercia excesiva hace que el modelo se pase de largo el mínimo.

¿El momentum sirve con mini-batch?

Sí, y es precisamente ahí donde más se usa. Con mini-batch cada gradiente es una estimación ruidosa, y el promedio que hace el momentum sobre varios pasos filtra buena parte de ese ruido. Casi todos los entrenamientos modernos combinan mini-batch con momentum, o directamente con Adam, que integra el momentum como uno de sus dos ingredientes.

Conclusión

El momentum convierte el descenso de gradiente en un proceso con inercia: acumula una velocidad v ← βv + ∇L y mueve los pesos con ella mediante w ← w − ηv. Con un coeficiente β de 0,9 filtra el ruido, endereza la trayectoria en los valles alargados y cruza las mesetas donde el SGD puro se atasca, todo a cambio de una variable extra por peso. El siguiente paso natural es ver cómo Adam combina esta idea con una tasa de aprendizaje adaptativa, dentro del mapa de las matemáticas de las redes neuronales.

Fuentes

  1. repaso de los algoritmos de optimización
  2. Why Momentum Really Works
  3. Wikipedia sobre el descenso de gradiente estocástico
  4. Some methods of speeding up the convergence of iteration methods (Polyak, 1964)

Ruta: Optimización avanzada de redes neuronales