Regla de actualización de gradiente:
G(t, I) representa la derivada parcial de la función objetivo con respecto a θ(i) en el tiempo t. El proceso de actualización de cada parámetro de. SGD es el siguiente:
El proceso de actualización de los parámetros de Adagrad es el siguiente:
G(t) es una matriz diagonal, y cada elemento en la diagonal es el cuadrado de todos los gradientes de θ (i) antes del tiempo t Y, ε generalmente toma el orden de 1e-8, que existe para evitar que el divisor sea 0. Un fenómeno interesante es que sin la operación de raíz cuadrada, el rendimiento del algoritmo es muy pobre.
La principal desventaja de Adagrad es que su denominador es la acumulación de gradientes cuadrados, y su valor seguirá aumentando, lo que eventualmente hará que la tasa de aprendizaje disminuya a un nivel muy pequeño, haciendo que el algoritmo de aprendizaje no pueda para proceder.
Implementación de TensorFlow:
TF .train Optimizador de Adagrad (tasa de aprendizaje, valor_accumulador_inicial = 0.1, use_locking=False, nombre='Adagrad ')
El algoritmo Adadelta. Resuelve principalmente las deficiencias de Adagrad. Ya no acumula todos los gradientes pasados, solo acumula un número fijo de gradientes pasados.
Adadelta no utiliza la simple acumulación de gradientes al cuadrado, sino que utiliza el valor promedio de la atenuación histórica del gradiente al cuadrado.
γ suele ser igual a 0,9.
El denominador es equivalente a la raíz cuadrática media (RMS) del gradiente, es decir, la suma de los cuadrados de todos los valores, se promedia y luego se eleva al cuadrado para obtener el valor RMS.
Reglas de actualización de gradiente:
Establezca la tasa de aprendizaje eta en
No necesitamos establecer la tasa de aprendizaje por adelantado.
RMSprop es un método de tasa de aprendizaje adaptativo propuesto por Geoff Hinton. Junto con el método Adadelta, tiene como objetivo resolver el problema de la fuerte disminución en la tasa de aprendizaje de Adagrad. Consistente con el método Ada Delta.
Reglas de actualización de gradiente
Configuración de parámetros:
Hinton recomienda configurar γ=0,9 y una tasa de aprendizaje η=0,001.
Implementación de TensorFlow:
TF. train. rmspropoptimizer. ='RMSProp ')
Adam también establece de forma adaptativa diferentes tasas de aprendizaje para diferentes parámetros. Utiliza un promedio de decaimiento exponencial tanto para gradientes históricos como para gradientes históricos al cuadrado.
Regla de actualización de gradiente
Adam observó que si m(t) y v(t) se inicializan en vectores cero y la tasa de desintegración es pequeña (por ejemplo, cuando β1 y β2 son muy cerca de 1), en la iteración inicial, m(t) y v(t) siempre están desplazados a cero, por lo que se requiere una corrección de desplazamiento.
El gradiente luego se actualiza con los valores corregidos:
Adam propuso β 1 = 0,9, β 2 = 0,999, ε = 10 {-8}.
En la práctica, Adam supera a otros algoritmos.
Implementación de TensorFlow:
TF .train .adamoptimizer(learning _ rate = 0.001, beta1=0.9, beta2=0.999, epsilon=1e-08, use_locking=False, name=' Adam ')
La escala de gradiente en la regla de actualización de Adam es inversamente proporcional a la norma L2 del gradiente histórico.
Podemos generalizar esta regla a la norma Lp.
Cuando el valor de p aumenta, el valor de Lp a menudo se vuelve inestable, por lo que L1 y L2 se usan comúnmente en la práctica. Pero Adamax descubrió que L∞ puede converger a un valor estable.
Entonces podemos usar u(t) en su lugar.
Para actualizar el degradado en Adam.
Al mismo tiempo, u(t) no requiere corrección de compensación cero. Sugerencia de valor predeterminado: