¿Qué es una explicación intuitiva del impulso en el entrenamiento de redes neuronales?

Me parece que la mejor intuición proviene de la física. Imagine una partícula bajo gravedad que cae sobre un terreno y de repente entra en un pequeño valle, pero logra continuar, suponiendo que fue lo suficientemente rápido. El impulso de partículas actuará, en otras palabras, como un “filtro” de irregularidades locales en el terreno. En esta analogía, la partícula es la solución actual (vector de peso en ANN) y el terreno la función de costo que nos gustaría optimizar (o la estimación de la función de costo).

Cuando el gradiente sigue cambiando de dirección, el impulso suavizará las variaciones. (la cita y la trama se toman de aquí)

Una explicación más informativa aparece aquí en la sección “Actualizaciones de parámetros”:

La actualización de momento es otro enfoque que casi siempre disfruta de mejores tasas de convergencia en redes profundas. Esta actualización puede ser motivada desde una perspectiva física del problema de optimización. En particular, la pérdida puede interpretarse como la altura de un terreno montañoso. Inicializar los parámetros con números aleatorios es equivalente a establecer una partícula con velocidad inicial cero en alguna ubicación. El proceso de optimización puede verse como equivalente al proceso de simulación del vector de parámetros (es decir, una partícula) como rodando en el paisaje. Dado que la fuerza sobre la partícula está relacionada con el gradiente de energía potencial, la fuerza que siente la partícula es precisamente el gradiente (negativo) de la función de pérdida. Además, el gradiente (negativo) es en esta vista proporcional a la aceleración de la partícula. Tenga en cuenta que esto es diferente del SGD, donde el gradiente integra directamente la posición. En cambio, la vista física sugiere una actualización en la que el gradiente solo influye directamente en la velocidad, lo que a su vez tiene un efecto en la posición.

Imagina un cohete en el espacio.
Cada ubicación en el espacio es una posible combinación de valores de peso (si asume un espacio 3D, significa que su red tiene solo 3 pesos).
La ubicación del cohete es la configuración de su red, y cuando procesa sus muestras de entrenamiento, en realidad se pregunta qué tan buena es esta ubicación para adivinar el resultado esperado.

Sin impulso : el cohete está inmóvil y solo puede teletransportarse. Si el gradiente de los pesos es (0; 1; 0) significa que el cohete se teletransportará 1 metro más en la dimensión y . El cohete no tiene inercia.

Con impulso : el cohete se mueve suavemente y no puede teletransportarse. Si el gradiente de los pesos es (0; 1; 0) significa que la velocidad del cohete en la dimensión y aumentará en 1 m / s. El cohete tiene algo de inercia.

Digamos que la ubicación perfecta (es decir, el mínimo global) en el espacio está muy lejos de la ubicación actual del cohete.
Sin impulso, el cohete no puede ir más rápido que 1 teletransportación de corto alcance por paso.
Con el impulso, el cohete no tiene limitación en su velocidad, porque los gradientes se suman sobre los pasos. Sin embargo, tiene una limitación. Si su gradiente es demasiado grande, significa que su cohete será demasiado rápido cuando llegue a la ubicación ideal, y su inercia evitará que se detenga a tiempo.

A principios de los noventa, el impulso en realidad se consideraba no útil, o incluso dañino. Usted puede preguntarse por qué?

Los conjuntos de datos eran bastante pequeños y la mayoría de los enfoques usaban un descenso de gradiente de lote completo. En el descenso de gradiente de lote completo, tiene una estimación exacta de los gradientes para actualizar los pesos.

Ahora, no puede hacer un descenso de gradiente de lote completo en conjuntos de datos modernos. Tardaría demasiado en converger, va a ser muy lento y no es adecuado para una arquitectura profunda. Por lo tanto, debe usar el descenso de gradiente estocástico mini-lote. En lugar de calcular gradientes exactos para las actualizaciones en todo el conjunto de datos, los estima en pocas muestras, por ejemplo , 64, el mini lote. Entonces, tiene gradientes aproximados para su actualización de pesos.
Esto tiene algunas ventajas, en conjuntos de datos redundantes conducirá a una convergencia más rápida.

Sin embargo, a la inversa de lo que mucha gente piensa, en la convergencia del descenso de gradiente estocástico mini-lote de la arquitectura profunda, la fase crítica es la inicial corta, unos pocos cientos de iteraciones, y no la fase de régimen largo que conduce a resultados de mayor precisión, incluso si esta fase domina en términos de tiempo de entrenamiento.

¿Por qué?

Porque en la fase inicial, lejos de la convergencia, la ruidosa estimación de gradientes de algunos mini lotes puede borrar el camino hacia un mínimo local, haciendo difícil la convergencia, si no imposible.

Entonces, ¿por qué necesitarías impulso?
Debido a que su actualización actual no dependerá solo de la estimación de gradiente de su lote actual, sino que dependerá en una pequeña parte de eso y en una mayor parte de las estimaciones que se realizaron en el lote anterior, como en Un sistema autorregresivo.

Por lo tanto, su proceso de convergencia tomará una “velocidad de inercia”, que lo hará resistente al ruido que encontrará en el “lodo” de la fase transitoria inicial.

Esa es también la razón por la cual el impulso debería ser más fuerte en la fase inicial en comparación con cuando el entrenamiento está cerca de la convergencia.

El momento es una propiedad física que permite que un objeto particular con masa continúe en su trayectoria incluso cuando se aplica una fuerza externa opuesta, esto significa un sobreimpulso. Por ejemplo, uno acelera un automóvil y luego, de repente, acciona los frenos, el automóvil se deslizará y se detendrá después de una corta distancia sobrepasando la marca en el suelo.

El mismo concepto se aplica a las redes neuronales, durante el entrenamiento, la dirección de actualización tiende a resistir el cambio cuando se agrega impulso al esquema de actualización. Cuando la red neuronal se acerca a un mínimo local poco profundo, es como aplicar frenos, pero no es suficiente para afectar instantáneamente la dirección y magnitud de la actualización. Por lo tanto, las redes neuronales entrenadas de esta manera superarán los puntos mínimos locales más pequeños y solo se detendrán en un mínimo global más profundo.

Por lo tanto, el impulso en las redes neuronales les ayuda a salir de los puntos mínimos locales para encontrar un mínimo global más importante. Demasiado impulso puede crear problemas, así como los sistemas que no son estables pueden crear oscilaciones que crecen en magnitud, en tales casos uno necesita agregar términos de descomposición, etc. Es solo física aplicada al entrenamiento de redes neuronales u optimizaciones numéricas.

Espero que esto ayude.

More Interesting

Cómo iniciar el aprendizaje automático desde PHP

¿Cuál es el significado intuitivo de una matriz de covarianza?

¿Debería un científico de datos novato centrarse en conceptos matemáticos o herramientas?

¿Python es más lento que MATLAB para la ciencia de datos y el aprendizaje automático?

¿Es una idea loca aprender el aprendizaje automático y el aprendizaje profundo sin ningún conocimiento avanzado de matemáticas?

¿Hay alguna manera de extraer la función subyacente de una red neuronal entrenada?

¿Cómo se logra la detección de afirmaciones en el procesamiento del lenguaje natural?

Kaggle: ¿Cuáles son las técnicas utilizadas para reducir el número de columnas antes de predecir la variable dependiente? Por favor vea la descripción

¿Qué tan perspicaz es el artículo de arXiV: [1504.00641] Una teoría probabilística del aprendizaje profundo? ¿Extiende nuestra comprensión del aprendizaje profundo y presenta un marco unificador?

¿Cuál es la diferencia de aprender características latentes usando SVD y usando vectores incrustados en una red profunda?

Redes neuronales convolucionales: ¿Cuáles son algunos posibles proyectos de cursos de aprendizaje automático de nivel de posgrado que utilizan CNN? Específicamente en el límite de PNL y CV.

Yoshua Bengio: ¿Será el aprendizaje profundo un paso hacia la IA consciente?

¿Qué debo hacer cuando tengo una cita con las características NULL?

¿Por qué las redes convolucionales profundas llegaron tan tarde?

Cómo comenzar a trabajar en conjuntos de datos de Kaggle