Intuición detrás de Adagrad Optimizer

Adagrad son las siglas de Adaptive Gradient Optimizer . Había optimizadores como Gradient Descent, Stochastic Gradient Descent, mini-batch SGD, todos se usaban para reducir la función de pérdida con respecto a los pesos. La fórmula de actualización del peso es la siguiente:

(\mathrm{w})_{\mathrm{new}}=(\mathrm{w})_{\mathrm{old}}-\eta \frac{\partial \mathrm{L}}{\mathrm{dw}(\text { old })}

Basado en iteraciones, esta fórmula se puede escribir como:

w_{t}=w_{t-1}-\eta \frac{\partial L}{\partial w(t-1)}

dónde

w(t) = valor de w en la iteración actual, w(t-1) = valor de w en la iteración anterior y η = tasa de aprendizaje.

En SGD y mini-lote SGD, el valor de η solía ser el mismo para cada peso, o digamos para cada parámetro. Normalmente, η = 0,01 . Pero en Adagrad Optimizer, la idea central es que cada peso tiene una tasa de aprendizaje diferente (η) . Esta modificación tiene gran importancia, en el conjunto de datos del mundo real, algunas características son escasas (por ejemplo, en Bag of Words la mayoría de las características son cero, por lo que es escasa) y algunas son densas (la mayoría de las características serán mediodía-cero). ) , por lo que mantener el mismo valor de tasa de aprendizaje para todos los pesos no es bueno para la optimización. La fórmula de actualización de peso para adagrad se ve así:

\mathrm{w}_{\mathrm{t}}=\mathrm{w}_{\mathrm{t}-1}-\eta_{\mathrm{t}}^{\prime} \frac{\partial \mathrm{L}}{\partial \mathrm{w}(\mathrm{t}-1)}

Donde alfa(t) denota diferentes tasas de aprendizaje para cada peso en cada iteración. 

\eta_{\mathrm{t}}^{\prime}=\frac{\eta}{\operatorname{sqrt}\left(\alpha_{\mathrm{t}}+\epsilon\right)}

Aquí, η es un número constante, epsilon es un número de valor positivo pequeño para evitar el error de división por cero si en el caso de que alfa (t) se convierta en 0 porque si alfa (t) se convierte en cero, la tasa de aprendizaje se convertirá en cero, lo que a su vez después de multiplicar por derivada hará que w(antiguo) = w(nuevo), y esto conducirá a una pequeña convergencia.

\alpha_{t}=\sum_{i=1}^{t} g_{i}^{2}

g_{i=} \frac{\partial L}{\partial w(o l d)}

g_i is derivative of loss with respect to weight and g_i^2 will always be positive since its a square term, which means that alpha(t) will also remain positive, this implies that alpha(t) >= alpha(t-1).

Se puede ver en la fórmula que como alpha(t) y \eta_t^'es inversamente proporcional entre sí, esto implica que como alpha(t) aumentará, \eta_t^' disminuirá. Esto significa que a medida que aumente el número de iteraciones, la tasa de aprendizaje se reducirá de forma adaptativa, por lo que no es necesario seleccionar manualmente la tasa de aprendizaje.

Ventajas de Adagrad:

  • No se requiere ajuste manual de la tasa de aprendizaje.
  • Convergencia más rápida
  • Más confiable

Una de las principales desventajas del optimizador de Adagrad es que alfa(t) puede volverse grande a medida que aumente el número de iteraciones y, debido a esto \eta_t^', disminuirá a un ritmo mayor. Esto hará que el peso anterior sea casi igual al peso nuevo, lo que puede conducir a una convergencia lenta.

Publicación traducida automáticamente

Artículo escrito por nikki2398 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *