Я думаю, що це основне питання, і це стосується напрямку самого градієнта, але я шукаю приклади, коли методи 2-го порядку (наприклад, BFGS ) ефективніші, ніж простий градієнт.
Я думаю, що це основне питання, і це стосується напрямку самого градієнта, але я шукаю приклади, коли методи 2-го порядку (наприклад, BFGS ) ефективніші, ніж простий градієнт.
Відповіді:
Ось загальна рамка для інтерпретації градієнтного спуску та методу Ньютона, що, можливо, є корисним способом розглядати різницю як доповнення до відповіді @ Sycorax. (BFGS наближає метод Ньютона; тут я не буду говорити про це зокрема).
Ми мінімізуємо функцію , але не знаємо, як це зробити безпосередньо. Отже, замість цього ми беремо локальне наближення в нашій поточній точці і мінімізуємо це.
Метод Ньютона наближає функцію, використовуючи розширення Тейлора другого порядку:
Спуск градієнта, маючи лише градієнт, а не Гессіан, не може просто зробити наближення першого порядку і мінімізувати це, оскільки, як зазначав @Hurkyl, він не має мінімуму. Замість цього ми визначаємо розмір кроку і крок до x - t ∇ f ( x ) . Але зауважте, що x - t Таким чином, спуск градієнта мінімізує функцію Gx(y):=f(x)+∇f(x)T(y-x)+1
Таким чином, градієнтний спуск подібний до використання методу Ньютона, але замість того, щоб використовувати розширення Тейлора другого порядку, ми робимо вигляд, що Гессіан . ЦейGчасто є значно гіршим наближенням доf,ніжN, а отже, градієнтне спускання часто робить набагато гірші кроки, ніж метод Ньютона. Звичайно, це врівноважується тим, що кожен крок градієнтного спуску є набагато дешевшим для обчислення, ніж кожен крок методу Ньютона. Що краще, повністю залежить від характеру проблеми, ваших обчислювальних ресурсів та ваших вимог точності.
Переглядаючи приклад @ Sycorax щодо мінімізації квадратичного на мить, варто зазначити, що ця перспектива допомагає зрозуміти обидва методи.
У методі Ньютона у нас буде так що він закінчується точною відповіддю (аж до питань точності з плаваючою точкою) за один крок.
Градієнтний спуск, з іншого боку, використовує чия дотична площина приxє правильною, але кривизна якої абсолютно неправильна, і справді викидає важливі відмінності в різних напрямках, коли власне значенняA
По суті, перевага другого похідного методу, як метод Ньютона, полягає в тому, що він має якість квадратичного припинення. Це означає, що вона може мінімізувати квадратичну функцію в кінцевій кількості кроків. Такий метод, як градієнтний спуск, значною мірою залежить від швидкості навчання, що може спричинити оптимізацію або сходитися повільно, оскільки він підстрибує навколо оптимального, або розходиться цілком. Стабільні показники навчання можна знайти ... але передбачають обчислення гессіана. Навіть при використанні стабільної швидкості навчання у вас можуть виникнути такі проблеми, як коливання навколо оптимального, тобто ви не завжди будете брати "прямий" чи "ефективний" шлях до мінімального. Отже, це може зайняти багато ітерацій, щоб припинити, навіть якщо не буде 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.