¿Por qué el impulso ayuda a entrenar una red neuronal?

Imagine a un snowboarder bajando por una media tubería, alternando direcciones de lado a lado, y haciendo saltos y trucos en el camino. Si bien esto puede ser impresionante, no es la forma más rápida y directa de descender. Ahora imagina sesgando progresivamente la dirección del snowboarder hacia el promedio de sus direcciones anteriores. Los movimientos laterales se cancelarán, y él terminará esquivando cuesta abajo.

Ok, ahora el half-pipe es su superficie de error, la posición del snowboarder es su parámetro actual … el impulso suaviza los movimientos aleatorios del descenso de gradiente estocástico y aumenta la velocidad en la dirección general a la que va. Al hacerlo, aprovecha eficientemente la curvatura local del espacio.

Para profundizar un poco más matemáticamente, el impulso es similar a la aceleración del gradiente de Nesterov, que es un método de primer orden asintóticamente óptimo.

Editar: ¿por qué ayuda con redes profundas? No estoy seguro de que ayude más con las redes profundas que en general, pero si hace una gran diferencia allí, la razón podría ser que estas redes tienen muchos parámetros, lo que significa que hay más direcciones para que el gradiente se equivoque .