Momentum

Stochastic Gradient Descent with Momentum o, simplemente, Momentum, es una variación del algoritmo de descenso de gradiente estocástico (SGD) que utiliza una técnica de suavizado para evitar oscilaciones excesivas en la dirección del gradiente y aumentar la velocidad de convergencia: En lugar de actualizar los parámetros utilizando solo la información del gradiente actual (tras evaluar n muestras), el algoritmo de Momentum utiliza un promedio ponderado del gradiente actual y de los gradientes anteriores para calcular la dirección de actualización (es decir, el gradiente a considerar para la actualización de los parámetros).

Este algoritmo requiere dos parámetros: el coeficiente de aprendizaje que ya conocemos (learning rate) y el llamado coeficiente de momentum. El coeficiente de momentum controla la influencia de los gradientes anteriores en la dirección de actualización. En función de los datos, un coeficiente de momentum alto puede ayudar a superar los mínimos locales en la función de error y llevar a una convergencia más rápida.

La actualización de los pesos en el algoritmo de Momentum se realiza, por lo tanto, de la siguiente manera:

  • Se evalúa el gradiente actual tras considerar n muestras
  • Se calcula la dirección de actualización como una combinación del gradiente actual y los gradientes anteriores ponderados usando el coeficiente de momentum
  • Se actualizan los parámetros del modelo utilizando la dirección de actualización y el coeficiente de aprendizaje

El algoritmo de Momentum se puede implementar de diferentes maneras, como utilizando un promedio ponderado simple de los gradientes anteriores o utilizando un promedio ponderado exponencial.