AdaGrad y RMSProp cambian una idea simple del entrenamiento: en vez de una sola tasa de aprendizaje para toda la red, dan a cada peso la suya. AdaGrad reparte ese ritmo según cuánto se ha movido históricamente cada parámetro, pero acaba frenándose demasiado. RMSProp corrige justo ese defecto con una media móvil que olvida el pasado lejano. Esta guía explica cómo funcionan los dos, por qué se parecen y cuándo conviene cada uno. Forma parte del recorrido de las matemáticas detrás de las redes neuronales y la misma explicación está disponible en inglés.

Fórmula clave $w \leftarrow w-\eta\cdot\dfrac{\nabla L}{\sqrt{G+\varepsilon}}$

Puntos clave

  • AdaGrad y RMSProp son optimizadores adaptativos: cada peso $w$ recibe su propia tasa de aprendizaje efectiva en lugar de compartir una $\eta$ global.
  • AdaGrad acumula el cuadrado de todos los gradientes en un término $G$ y divide el paso entre $\sqrt{G+\varepsilon}$, con $\varepsilon \approx 10^{-8}$ para no dividir por cero.
  • El defecto de AdaGrad es que $G$ solo crece, así que la tasa efectiva tiende a cero y el entrenamiento se detiene antes de tiempo.
  • RMSProp sustituye esa suma infinita por una media móvil exponencial con un factor de decaimiento típico de $0{,}9$, que descarta el pasado lejano.
  • AdaGrad (2011) brilla con datos dispersos; RMSProp (2012) funciona mejor en redes profundas y es la base directa del optimizador Adam.

El problema de una tasa única

En el descenso de gradiente clásico todos los pesos comparten la misma tasa de aprendizaje $\eta$, según la regla $w \leftarrow w-\eta\cdot\nabla L$. El problema es que no todos los pesos necesitan el mismo trato. Algunos parámetros reciben gradientes grandes y frecuentes; otros, ligados a características que aparecen pocas veces, casi nunca se actualizan.

Con una única η tienes que elegir un valor de compromiso. Si lo subes para que los pesos raros aprendan algo, los pesos frecuentes se desestabilizan; si lo bajas para domar a los frecuentes, los raros tardan una eternidad. La idea de las tasas adaptativas es romper ese compromiso: dar un paso grande donde la señal ha sido escasa y un paso pequeño donde ya ha sido abundante. Formalmente, la escala del paso deja de ser un solo número y pasa a ser un vector con un valor por parámetro.

AdaGrad, acumular el cuadrado del gradiente

AdaGrad (Adaptive Gradient) lo propusieron John Duchi, Elad Hazan y Yoram Singer en 2011, en un artículo del Journal of Machine Learning Research[1]. Su mecanismo es directo: para cada peso guarda un acumulador $G$ que suma el cuadrado de todos los gradientes que ha recibido hasta el momento. La actualización queda $w \leftarrow w-\eta\cdot\dfrac{\nabla L}{\sqrt{G+\varepsilon}}$.

La consecuencia es elegante. Un peso que ha visto gradientes grandes tiene un $G$ grande, así que su denominador crece y sus pasos se acortan. Un peso con gradientes pequeños conserva un $G$ pequeño y mantiene pasos amplios. En la práctica esto reparte la tasa de aprendizaje de forma automática y hace que AdaGrad destaque en problemas con datos dispersos, como el procesamiento de texto, donde muchas características aparecen en muy pocos ejemplos. El término $\varepsilon$, un valor diminuto del orden de $10^{-8}$, solo está ahí para evitar la división por cero en el primer paso.

El decaimiento de AdaGrad

El punto débil de AdaGrad es la misma suma que lo hace funcionar. Como $G$ acumula cuadrados, que siempre son positivos, nunca deja de crecer. Iteración tras iteración el denominador $\sqrt{G+\varepsilon}$ se hace más grande, y la tasa de aprendizaje efectiva $\eta/\sqrt{G+\varepsilon}$ se encoge de forma monótona hacia cero. Tras miles de pasos, la red apenas se mueve aunque todavía le falte por aprender.

La tasa efectiva de AdaGrad, $\eta/\sqrt{G+\varepsilon}$, solo puede decrecer: como $G$ nunca disminuye, el paso de cada peso se acorta de forma irreversible. Ese es justo el comportamiento que la media móvil de RMSProp evita.

Este apagado prematuro es especialmente dañino en redes profundas, que necesitan muchas más iteraciones que los modelos lineales para los que AdaGrad se diseñó. Sebastian Ruder lo resume con claridad en su repaso de los optimizadores: «RMSprop y Adadelta se desarrollaron de forma independiente casi al mismo tiempo por la necesidad de resolver las tasas de aprendizaje radicalmente decrecientes de Adagrad», tal como cuenta en su síntesis de los métodos de optimización[2]. Ese es exactamente el hueco que RMSProp vino a tapar.

Ver la derivación

Tras $t$ pasos, AdaGrad acumula $G_t=\sum_{i=1}^{t}(\nabla L_i)^2$. Como cada sumando es no negativo, la sucesión $G_t$ es monótona creciente, así que $\sqrt{G_t+\varepsilon}$ también crece y la tasa efectiva $\eta/\sqrt{G_t+\varepsilon}$ decrece de forma monótona. Si los gradientes no se anulan, $G_t\to\infty$ y la tasa efectiva tiende a $0$. RMSProp sustituye la suma por $G_t=\rho G_{t-1}+(1-\rho)(\nabla L_t)^2$; en régimen estacionario $G$ se estabiliza en torno a la media reciente de $(\nabla L)^2$, de modo que la tasa efectiva no colapsa.

RMSProp, la media móvil

RMSProp (Root Mean Square Propagation) lo presentó Geoffrey Hinton en 2012, no en un artículo formal, sino en la lección 6e de su curso de Coursera sobre redes neuronales; sus transparencias siguen siendo la referencia original[3]. La corrección es de una sola línea: en vez de sumar los cuadrados para siempre, RMSProp mantiene una media móvil exponencial de ellos.

En cada paso actualiza el acumulador con $G \leftarrow \rho\cdot G+(1-\rho)\cdot(\nabla L)^2$, donde $\rho$ es un factor de decaimiento, casi siempre fijado en $0{,}9$. Ese $\rho$ hace que los gradientes antiguos pierdan peso de forma gradual: el pasado reciente domina y el lejano se olvida. La regla de actualización de los pesos es idéntica a la de AdaGrad, $w \leftarrow w-\eta\cdot\dfrac{\nabla L}{\sqrt{G+\varepsilon}}$, pero ahora $G$ ya no crece sin control, sino que refleja la magnitud reciente del gradiente. Con eso la tasa efectiva se estabiliza en lugar de apagarse, y el entrenamiento puede continuar durante todas las iteraciones que haga falta.

AdaGrad frente a RMSProp

La diferencia entre los dos cabe en una sola palabra: memoria. AdaGrad tiene memoria infinita, recuerda todos los gradientes con el mismo peso y por eso se frena. RMSProp tiene memoria corta, controlada por ρ, y por eso se mantiene vivo. En la práctica, esto define cuándo usar cada uno. AdaGrad sigue siendo una opción sólida para modelos convexos y datos muy dispersos, donde su frenado incluso ayuda a converger. RMSProp es la elección habitual en redes profundas, donde el número de iteraciones es alto y el apagado de AdaGrad resultaría fatal.

Ninguno de los dos es el final del camino. La idea de la media móvil de RMSProp se combinó con el momento del gradiente para dar lugar a Adam, hoy el optimizador por defecto en la mayoría de los marcos de trabajo. Puedes ampliar el contexto en la entrada de Wikipedia sobre el descenso de gradiente estocástico[4], que recoge AdaGrad, RMSProp y sus descendientes en una misma familia.

Preguntas frecuentes

¿Cuál es la diferencia principal entre AdaGrad y RMSProp?

AdaGrad suma el cuadrado de todos los gradientes pasados, así que su acumulador solo crece y la tasa de aprendizaje efectiva acaba tendiendo a cero. RMSProp usa una media móvil exponencial con un factor de decaimiento de $0{,}9$, que olvida los gradientes antiguos y mantiene la tasa estable durante todo el entrenamiento.

¿Cuándo conviene usar AdaGrad en lugar de RMSProp?

AdaGrad rinde bien en problemas convexos y con datos dispersos, como modelos de texto donde muchas características aparecen en pocos ejemplos, porque su frenado gradual no es un obstáculo. En redes neuronales profundas, con miles de iteraciones, ese mismo frenado detiene el aprendizaje, y entonces RMSProp o Adam son mejores opciones.

¿Para qué sirve el término épsilon en la fórmula?

El término $\varepsilon$, un valor muy pequeño del orden de $10^{-8}$, se suma dentro de la raíz para evitar dividir por cero cuando el acumulador $G$ todavía vale cero, en el primer paso o para pesos que aún no han recibido gradiente. No cambia el comportamiento del optimizador, solo garantiza que la operación sea numéricamente estable.

Conclusión

AdaGrad y RMSProp comparten la misma ambición: dar a cada peso su propia tasa de aprendizaje según su historia de gradientes. AdaGrad lo consigue acumulando cuadrados, pero paga el precio de frenarse hasta detenerse. RMSProp cambia esa suma infinita por una media móvil con decaimiento $0{,}9$ y así conserva un ritmo estable. Entender este par es el mejor puente hacia Adam, que hereda lo mejor de RMSProp y le añade el momento del gradiente.

Fuentes

  1. artículo del Journal of Machine Learning Research
  2. su síntesis de los métodos de optimización
  3. transparencias siguen siendo la referencia original
  4. la entrada de Wikipedia sobre el descenso de gradiente estocástico

Ruta: Optimización avanzada de redes neuronales