¿Cuál es una explicación intuitiva del algoritmo de optimización de aprendizaje profundo de Adam?

Asumiré que tiene un conocimiento básico de la idea principal detrás del descenso de gradiente y el concepto de tasas de aprendizaje adaptativo en general.

La optimización de Adam implica el uso de los primeros (m_t) y segundos (v_t) momentos de los gradientes. El primer momento implica el promedio de descomposición exponencial de los gradientes anteriores (similar al impulso) y el segundo momento implica el promedio de descomposición exponencial de los gradientes al cuadrado anteriores (como en RMS prop – Hinton http://www.cs.toronto.edu/~ tijme …) Esto nos da la regla de actualización:

De manera intuitiva, podemos ver que el optimizador Adam usa los promedios combinados de gradientes anteriores en diferentes momentos para darle más poder expresivo para actualizar mejor los parámetros de forma adaptativa.

Una forma intuitiva de pensar en Adam es en términos de coeficiente de variación (CV o simplemente incertidumbre ), que se usa ampliamente en lugar de SD para comparar la distribución de conjuntos de datos, que tienen diferentes unidades de medida o tienen las mismas unidades, pero difieren mucho en magnitud

Entonces podemos decir que para cada peso en nuestro modelo tenemos diferentes conjuntos de datos con el historial de gradientes que nos gustaría comparar. Definimos la regla de que cuanto mayor sea la distribución de estas distribuciones (mayor incertidumbre, CV), menor será la tasa de aprendizaje.

Los autores de Adam están escribiendo.

“Con un ligero abuso de la terminología, llamaremos a la relación [matemática] \ frac {\ hat {m_t}} {\ sqrt {\ hat {v_t}}} [/ matemática] la relación señal-ruido (SNR) ”

SNR se define como [math] SNR = \ frac {\ mu} {\ sigma} [/ math], donde [math] \ mu [/ math] es la media y [math] \ sigma [/ math] es el estándar desviación. Mientras que en Adán [matemáticas] v_t [/ matemáticas] se define como el gradiente al cuadrado, y no como la desviación al cuadrado de la media.

Para comprender mejor cómo funciona “SNR” para Adam, podemos tratar de pensar en v como [math] \ sqrt {\ hat {v_t}} \ approx | \ hat {m_t} | + \ sqrt {\ hat {SD_t}} [/ math] donde [math] \ sqrt {\ hat {SD_t}} [/ math] es la desviación estándar.

Luego, para estimar [math] SD_t [/ math] podemos modificar el promedio de ejecución de [math] v_t [/ math] para incluir [math] (g_t-m_t) ^ 2 [/ math] en lugar de [math] g_t ^ 2 [/mates].

  1. [matemáticas] m_ {t + 1} = \ beta_1 \ cdot m_t + (1 – \ beta_1) \ cdot g_t [/ matemáticas]
  2. [matemáticas] SD_ {t + 1} = \ beta_2 \ cdot SD_t + (1- \ beta_2) \ cdot (g_t-m_t) ^ 2 [/ matemáticas]
  3. [matemáticas] \ theta_ {t + 1} = \ theta_t – \ alpha \ cdot \ frac {\ hat {m_t}} {| \ hat {m_t} | + \ sqrt {\ hat {SD_t}} + \ epsilon} [/ math]

Si agregamos explícitamente la corrección de sesgo en la ecuación. 3

4. [matemáticas] \ theta_ {t + 1} = \ theta_t – \ alpha \ cdot \ frac {m_t} {| m_t | + \ frac {1- \ beta_1} {\ sqrt {1- \ beta_2}} \ cdot \ sqrt {SD_t} + \ epsilon} [/ math]

Como puede ver, esta corrección de sesgo no es más que agregar más peso a la desviación estándar que a la media.

También puede ver que podemos reescribir aún más la ecuación. 4 en términos de coeficiente de variación

5. [matemáticas] \ theta_ {t + 1} = \ theta_t – \ alpha \ cdot \ frac {sign (m_t)} {1 + \ frac {1- \ beta_1} {\ sqrt {1- \ beta_2}} \ cdot \ frac {\ sqrt {SD_t}} {| m_t |} + \ epsilon} = \ theta_t – \ alpha \ cdot \ frac {sign (m_t)} {1 + \ frac {1- \ beta_1} {\ sqrt { 1- \ beta_2}} \ cdot CV + \ epsilon} [/ math]

Entonces, como se escribió anteriormente, cuanto mayor sea la incertidumbre (CV), menor será la tasa de aprendizaje

Para volver a la definición original de la regla de actualización tal como fue definida por los autores de Adam, simplemente podemos omitir “1” en el denominador y usar v en lugar de CV

Puede leer la respuesta a una pregunta similar en la respuesta de Jose Soares Augusto a ¿Puede explicar la intuición básica detrás de ADAM: un método para la optimización estocástica? (Perdón por la publicidad automática 🙂).

HTH

Descargo de responsabilidad, no he leído ese artículo y no estoy familiarizado con el algoritmo de Adam. Pero si su pregunta es específica de cuál es la intuición con respecto a la optimización estocástica, esto puede ayudar

Recocido simulado

More Interesting

¿Los programadores pasan un tiempo considerable de su tiempo de trabajo en algoritmos?

Si solo quiero escribir algoritmos y lógica, y no quiero molestarme con la interfaz de usuario y la codificación frontal, ¿qué tipo de posición de software me conviene más?

Matemáticas generales que uno debe saber antes de tomar la clase de algoritmo? Especialmente para estudiantes con antecedentes no informáticos.

¿Pueden los algoritmos de aprendizaje de refuerzo actuales elegir múltiples acciones dado el estado actual?

En plataformas de programación competitivas como TopCoder y CodeChef, ¿cómo sé que una competencia o proyecto es bueno para participar?

¿Qué es la recurrencia en análisis de diseño y algoritmos?

¿Qué es el algoritmo de soporte?

¿Qué es un algoritmo para generar todos los gráficos?

¿Cuál es la complejidad del tiempo para la escalera de palabras?

¿Cómo puede el comercio algorítmico o de patrones generar ganancias cuando la teoría de eficiencia del mercado (de forma débil) argumenta que la información de precios pasada es irrelevante?

Los electrones son extraños. ¿Cómo conocen el camino más corto al suelo? ¿No tendrían que 'mirar' hacia adelante?

¿Dónde puedo encontrar datos de imágenes y sensores de las misiones MER-A y MER-B?

¿Cuál es el mejor instituto para estructuras de datos y algoritmos en Hyderabad?

¿Cuál es el camino más corto de Dijkstra para el siguiente gráfico?

¿Debo aprender Algoritmos si soy ingeniero aeroespacial?