AdaGrad (Adaptative Gradient Algorithm o Algoritmo de Gradiente Adaptativo) es una modificación de Stochastic Gradient Descent en la que se utilizan diferentes tasas de aprendizaje para las variables teniendo en cuenta gradiente acumulado en cada una de ellas, de forma que a aquellas que acumulan un gradiente acumulado mayor se les aplica una tasa de aprendizaje menor y viceversa.
Aun cuando este algoritmo de optimización es uno de los más utilizados, un posible problema con el que podemos encontrarnos en ocasiones es que puede ocurrir que la tasa de aprendizaje para una variable decrezca demasiado rápidamente debido a la acumulación de altos valores del gradiente al comienzo del entrenamiento, lo que puede llevar a que el modelo no sea capaz de aproximarse al mínimo en dicha dimensión.
El algoritmo Adagrad fue propuesto por Duchi, Hazan y Singer en su artículo "Adaptive Subgradient Methods for Online Learning and Stochastic Optimization", presentado en la conferencia de aprendizaje automático NIPS 2010. Puedes acceder al artículo aquí.