¿Por qué son útiles los derivados de segundo orden en la optimización convexa?

18

Supongo que esta es una pregunta básica y tiene que ver con la dirección del gradiente en sí, pero estoy buscando ejemplos en los que los métodos de segundo orden (por ejemplo, BFGS ) sean más efectivos que el simple descenso del gradiente.

Bar
fuente
3
¿Es demasiado simplista observar que "encontrar el vértice de un paraboloide" es una aproximación mucho mejor al problema de "encontrar un mínimo" que "encontrar el mínimo de esta función lineal" (que, por supuesto, no tiene un mínimo porque es lineal)?

Respuestas:

20

Aquí hay un marco común para interpretar tanto el descenso de gradiente como el método de Newton, que tal vez sea una forma útil de pensar en la diferencia como un suplemento a la respuesta de @ Sycorax. (BFGS se aproxima al método de Newton; aquí no hablaré sobre ello en particular).

Estamos minimizando la función f , pero no sabemos cómo hacerlo directamente. Entonces, en cambio, tomamos una aproximación local en nuestro punto actual x y minimizamos eso.

El método de Newton aproxima la función usando una expansión de Taylor de segundo orden: dondef ( x ) denota el gradiente de f en el punto x y2 f ( x ) el Hessian en x . Luego pasa a arg min y N x ( y ) y se repite.

f(y)Nx(y):=f(x)+f(x)T(yx)+12(yx)T2f(x)(yx),
f(x)fx2f(x)xargminyNx(y)

El descenso de gradiente, que solo tiene el gradiente y no el hessiano, no puede simplemente hacer una aproximación de primer orden y minimizar eso, ya que, como señaló @Hurkyl, no tiene un mínimo. En su lugar, definimos un tamaño de paso y paso a x - t ft . Pero tenga en cuenta que x -xtf(x) Por lo tanto, el descenso de gradiente minimiza una función 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).

Por lo tanto, el descenso de gradiente es como usar el método de Newton, pero en lugar de tomar la expansión de Taylor de segundo orden, pretendemos que el hessiano es . EsteGes a menudo una aproximación sustancialmente peor afqueN, y por lo tanto, el descenso del gradiente a menudo toma pasos mucho peores que el método de Newton. Esto está contrarrestado, por supuesto, porque cada paso del descenso del gradiente es mucho más barato de calcular que cada paso del método de Newton. Lo que es mejor depende completamente de la naturaleza del problema, sus recursos computacionales y sus requisitos de precisión.1tIGfN

Mirando el ejemplo de @ Sycorax de minimizar una f ( x ) cuadrática = 1

f(x)=12xTAx+dTx+c
por un momento, vale la pena señalar que esta perspectiva ayuda a comprender ambos métodos.

Con el método de Newton, tendremos para que termine con la respuesta exacta (hasta problemas de precisión de coma flotante) en un solo paso.N=f

El descenso de gradiente, por otro lado, usa

Gx(y)=f(x)+(Ax+d)Ty+12(xy)T1tI(xy)
xA
Dougal
fuente
1
Esto es similar a la respuesta de @ Aksakal , pero con más profundidad.
Dougal
1
(+1) ¡Esta es una gran adición!
Sycorax dice Reinstate Monica el
17

Esencialmente, la ventaja de un método de segunda derivada como el método de Newton es que tiene la calidad de terminación cuadrática. Esto significa que puede minimizar una función cuadrática en un número finito de pasos. Un método como el descenso de gradiente depende en gran medida de la velocidad de aprendizaje, lo que puede hacer que la optimización converja lentamente porque rebota alrededor de lo óptimo o diverja por completo. Se pueden encontrar tasas de aprendizaje estables ... pero implican calcular el hessian. Incluso cuando usa una tasa de aprendizaje estable, puede tener problemas como la oscilación alrededor del óptimo, es decir, no siempre tomará un camino "directo" o "eficiente" hacia el mínimo. Por lo tanto, puede llevar muchas iteraciones terminar, incluso siEstás relativamente cerca de eso. BFGS y el método de Newton pueden converger más rápidamente a pesar de que el esfuerzo computacional de cada paso es más costoso.

F(x)=12xTAx+dTx+c
F(x)=Ax+d
xk+1=xkα(Axk+d)=(IαA)xkαd.

IαA

α<2λmax,
λmaxAAA

En el contexto específico de las redes neuronales, el libro Neural Network Design tiene bastante información sobre métodos de optimización numérica. La discusión anterior es una condensación de la sección 9-7.

Sycorax dice reinstalar a Mónica
fuente
¡Gran respuesta! Estoy aceptando la respuesta de @Dougal ya que creo que proporciona una explicación más simple.
Bar
6

En la optimización convexa, está aproximando la función como polinomio de segundo grado en un caso unidimensional:

F(X)=C+βX+αX2

En este caso la segunda derivada

2F(X)/ /X2=2α

Si conoce las derivadas, entonces es fácil obtener la siguiente aproximación para el óptimo:

adivinar=-β2α

El caso multivariante es muy similar, solo use gradientes para derivados.

Aksakal
fuente
2

@Dougal ya dio una gran respuesta técnica.

La explicación no matemática es que mientras la aproximación lineal (orden 1) proporciona un "plano" que es tangencial a un punto en una superficie de error, la aproximación cuadrática (orden 2) proporciona una superficie que abraza la curvatura de la superficie de error.

Los videos en este enlace hacen un gran trabajo al visualizar este concepto. Muestran aproximaciones de orden 0, orden 1 y orden 2 a la superficie de la función, que solo verifica intuitivamente lo que las otras respuestas presentan matemáticamente.

Además, una buena publicación de blog sobre el tema (aplicada a redes neuronales) está aquí .

Zhubarb
fuente