You want to find the minimum of a function. Gradient descent is the obvious first tool: measure the slope, step downhill, repeat. But the slope alone is a blunt instrument. If the landscape curves steeply in one direction and gently in another, a step that works in one direction overshoots in the other. You waste iterations zigzagging when you could be gliding.
The fix is to model the curvature — the matrix of second derivatives known as the Hessian. If you know the Hessian, you can correct each step so that it lands precisely at the bottom of the local quadratic bowl. This is Newton's method, and it converges in very few iterations.
The catch is the Hessian itself. For a function of variables it is an matrix, which costs to store and to invert on every step — completely impractical for modern machine learning where might be in the millions.
Quasi-Newton methods split the difference. Instead of computing the exact Hessian, they estimate it from the gradient differences that accumulate as the algorithm moves. They ask: given that the gradient changed by when the position changed by , what does that tell us about curvature? The answer shapes a rank-2 update to the current Hessian approximation.
The most successful version of this idea is BFGS, named after Broyden, Fletcher, Goldfarb and Shanno, who independently derived it in 1970. It is the default optimizer in scipy, the backbone of many statistical fitting routines, and the intellectual parent of L-BFGS — the optimizer behind much of modern deep learning.
Comments
Loading comments...