Я предполагаю, что это основной вопрос, и он связан с направлением самого градиента, но я ищу примеры, где методы 2-го порядка (например, BFGS ) более эффективны, чем простой градиентный спуск.
Я предполагаю, что это основной вопрос, и он связан с направлением самого градиента, но я ищу примеры, где методы 2-го порядка (например, BFGS ) более эффективны, чем простой градиентный спуск.
Ответы:
Вот общая схема для интерпретации как градиентного спуска, так и метода Ньютона, что, возможно, является полезным способом восприятия разницы как дополнения к ответу @ Sycorax. (BFGS приближается к методу Ньютона; я не буду говорить об этом, в частности, здесь.)
Мы минимизируем функцию , но не знаем, как это сделать напрямую. Поэтому вместо этого мы берем локальное приближение в нашей текущей точке и минимизируем это.
Метод Ньютона приближает функцию, используя разложение Тейлора второго порядка:
Таким образом, градиентное спуск похоже на использование метода Ньютона, но вместо того, чтобы использовать разложение Тейлора второго порядка, мы притворяемся, что гессиан равен . ЭтотGчасто является существенно худшим приближением кf,чемN, и, следовательно, градиентный спуск часто требует гораздо худших шагов, чем метод Ньютона. Конечно, это уравновешивается тем, что каждый шаг градиентного спуска намного дешевле в расчете, чем каждый шаг метода Ньютона. Что лучше, полностью зависит от характера проблемы, ваших вычислительных ресурсов и ваших требований к точности.
Рассматривая пример @ Sycorax минимизации квадратичного
With Newton's method, we'll have so that it terminates with the exact answer (up to floating point accuracy issues) in a single step.
Essentially, the advantage of a second-derivative method like Newton's method is that it has the quality of quadratic termination. This means that it can minimize a quadratic function in a finite number of steps. A method like gradient descent depends heavily on the learning rate, which can cause optimization to either converge slowly because it's bouncing around the optimum, or to diverge entirely. Stable learning rates can be found... but involve computing the hessian. Even when using a stable learning rate, you can have problems like oscillation around the optimum, i.e. you won't always take a "direct" or "efficient" path towards the minimum. So it can take many iterations to terminate, even if you're relatively close to it. BFGS and Newton's method can converge more quickly even though the computational effort of each step is more expensive.
To your request for examples: Suppose you have the objective function
This will be stable if the magnitudes of the eigenvectors of are less than 1. We can use this property to show that a stable learning rate satisfies
In the specific context of neural networks, the book Neural Network Design has quite a bit of information on numerical optimization methods. The above discussion is a condensation of section 9-7.
In convex optimization you are approximating the function as the second degree polynomial in one dimensional case:
In this case the the second derivative
If you know the derivatives, then it's easy to get the next guess for the optimum:
The multivariate case is very similar, just use gradients for derivatives.
@Dougal already gave a great technical answer.
The no-maths explanation is that while the linear (order 1) approximation provides a “plane” that is tangential to a point on an error surface, the quadratic approximation (order 2) provides a surface that hugs the curvature of the error surface.
The videos on this link do a great job of visualizing this concept. They display order 0, order 1 and order 2 approximations to the function surface, which just intuitively verifies what the other answers present mathematically.
Also, a good blogpost on the topic (applied to neural networks) is here.