In a nutshell
Optimizers are the rules that turn gradients into actual weight updates while a model trains. Plain SGD takes a fixed-size step straight down the gradient, which zig-zags in narrow valleys. Momentum accumulates a running velocity so it powers through those valleys. Adam goes further, keeping a separate adaptive step size for each parameter, which usually reaches the minimum in the fewest steps.