Чому похідні другого порядку корисні для опуклої оптимізації?


18

Я думаю, що це основне питання, і це стосується напрямку самого градієнта, але я шукаю приклади, коли методи 2-го порядку (наприклад, BFGS ) ефективніші, ніж простий градієнт.


3
Чи занадто спрощено просто спостерігати, що "знайти вершину параболоїда" є набагато кращим наближенням до проблеми "знайти мінімум", ніж "знайти мінімум цієї лінійної функції" (що, звичайно, не має мінімуму, оскільки це лінійний)?

Відповіді:


20

Ось загальна рамка для інтерпретації градієнтного спуску та методу Ньютона, що, можливо, є корисним способом розглядати різницю як доповнення до відповіді @ Sycorax. (BFGS наближає метод Ньютона; тут я не буду говорити про це зокрема).

Ми мінімізуємо функцію f , але не знаємо, як це зробити безпосередньо. Отже, замість цього ми беремо локальне наближення в нашій поточній точці х і мінімізуємо це.

Метод Ньютона наближає функцію, використовуючи розширення Тейлора другого порядку:

f(у)Nх(у): =f(х)+f(х)Т(у-х)+12(у-х)Т2f(х)(у-х),
деf(х) позначає градієнтf в точціх а2f(х) гессіана вх . Потім він крокує доаргхвуNх(у) і повторюється.

Спуск градієнта, маючи лише градієнт, а не Гессіан, не може просто зробити наближення першого порядку і мінімізувати це, оскільки, як зазначав @Hurkyl, він не має мінімуму. Замість цього ми визначаємо розмір кроку і крок до x - t f ( x ) . Але зауважте, що x - tтх-тf(х) Таким чином, спуск градієнта мінімізує функцію Gx(y):=f(x)+f(x)T(y-x)+1

xtf(x)=argmaxy[f(x)+f(x)T(yx)+12tyx2]=argmaxy[f(x)+f(x)T(yx)+12(yx)T1tI(yx)].
Gx(y):=f(x)+f(x)T(yx)+12(yx)T1tI(yx).

Таким чином, градієнтний спуск подібний до використання методу Ньютона, але замість того, щоб використовувати розширення Тейлора другого порядку, ми робимо вигляд, що Гессіан . ЦейGчасто є значно гіршим наближенням доf,ніжN, а отже, градієнтне спускання часто робить набагато гірші кроки, ніж метод Ньютона. Звичайно, це врівноважується тим, що кожен крок градієнтного спуску є набагато дешевшим для обчислення, ніж кожен крок методу Ньютона. Що краще, повністю залежить від характеру проблеми, ваших обчислювальних ресурсів та ваших вимог точності.1tIGfN

Переглядаючи приклад @ Sycorax щодо мінімізації квадратичного на мить, варто зазначити, що ця перспектива допомагає зрозуміти обидва методи.

f(x)=12xTAx+dTx+c

У методі Ньютона у нас буде так що він закінчується точною відповіддю (аж до питань точності з плаваючою точкою) за один крок.N=f

Градієнтний спуск, з іншого боку, використовує чия дотична площина приxє правильною, але кривизна якої абсолютно неправильна, і справді викидає важливі відмінності в різних напрямках, коли власне значенняA

Gx(y)=f(x)+(Ax+d)Ty+12(xy)T1tI(xy)
xA істотно змінюються.

1
Це схоже на відповідь @ Aksakal , але більш глибоко.
Дугал

1
(+1) Це чудове доповнення!
Sycorax каже, що повернеться до Моніки

17

По суті, перевага другого похідного методу, як метод Ньютона, полягає в тому, що він має якість квадратичного припинення. Це означає, що вона може мінімізувати квадратичну функцію в кінцевій кількості кроків. Такий метод, як градієнтний спуск, значною мірою залежить від швидкості навчання, що може спричинити оптимізацію або сходитися повільно, оскільки він підстрибує навколо оптимального, або розходиться цілком. Стабільні показники навчання можна знайти ... але передбачають обчислення гессіана. Навіть при використанні стабільної швидкості навчання у вас можуть виникнути такі проблеми, як коливання навколо оптимального, тобто ви не завжди будете брати "прямий" чи "ефективний" шлях до мінімального. Отже, це може зайняти багато ітерацій, щоб припинити, навіть якщо не буде 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

F(x)=12xTAx+dTx+c
The gradient is
F(x)=Ax+d
and putting it into the steepest descent form with constant learning rate
xk+1=xkα(Axk+d)=(IαA)xkαd.

This will be stable if the magnitudes of the eigenvectors of IαA are less than 1. We can use this property to show that a stable learning rate satisfies

α<2λmax,
where λmax is the largest eigenvalue of A. The steepest descent algorithm's convergence rate is limited by the largest eigenvalue and the routine will converge most quickly in the direction of its corresponding eigenvector. Likewise, it will converge most slowly in directions of the eigenvector of the smallest eigenvalue. When there is a large disparity between large and small eigenvalues for A, gradient descent will be slow. Any A with this property will converge slowly using gradient descent.

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.


Great answer! I'm accepting @Dougal 's answer as I think it provides a simpler explanation.
Bar

6

In convex optimization you are approximating the function as the second degree polynomial in one dimensional case:

f(x)=c+βx+αx2

In this case the the second derivative

2f(x)/x2=2α

If you know the derivatives, then it's easy to get the next guess for the optimum:

guess=β2α

The multivariate case is very similar, just use gradients for derivatives.


2

@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.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.