AdaGrad is an adaptive optimization method that adjusts each parameter's effective learning rate using the squared gradients accumulated for that parameter. A fixed learning rate struggles with both slowly varying objectives, where larger steps help, and rapidly varying objectives, where large steps cause oscillation. section 10.4
AdaGrad proceeds by accumulating gradient history and scaling updates:
- Compute the gradient for each parameter at the current optimization step. section 10.4
- Accumulate the squared gradients seen so far separately for each parameter. section 10.4
- Divide the learning rate by the square root of each parameter's accumulated squared-gradient sum. section 10.4
- Reduce effective learning rates for parameters receiving large gradients while preserving relatively larger steps in gently sloped directions. section 10.4
Contrasting objective landscapes
For a slowly varying objective, small gradients make a larger effective learning rate useful. For a rapidly varying objective, large gradients reduce the effective learning rate and limit oscillation around the optimum. section 10.4
AdaGrad's central trade-off is cumulative: its learning rates decrease as more gradient history is collected. RMSProp modifies this behavior by replacing the full accumulation with an exponentially weighted moving average that discards distant history. section 10.4

