Estoy realizando una búsqueda de línea como parte de un algoritmo cuasi-Newton BFGS. En un paso de la búsqueda de línea, uso una interpolación cúbica para acercarme al minimizador local.
Sea ser la función de interés. Quiero encontrar una tal que .x ∗ f ′ ( x ∗ ) ≈ 0
Deje que , , y sean conocidas. Supongamos también . Encajo un polinomio cúbico para que , , y .f ′ ( x k ) f ( x k + 1 )0 ≤ x k < x ∗ < x k + 1 Q ( x ) = a x 3 + b x 2 + c x + d Q ( 0 ) = f ( x k ) Q ′ ( 0 ) = f ′ ( x k ) Q (Q ′ ( x k + 1 - x k ) = f ′ ( x k + 1 )
Resuelvo la ecuación cuadrática: para mi buscado usando la solución de forma cerrada.x ∗
Lo anterior funciona bien en la mayoría de los casos, excepto cuando ya que la solución de forma cerrada para divide por que se acerca mucho o es exactamente .( 1 ) a 0
Mi solución es mirar a y si es "demasiado pequeña" simplemente tomar la solución de forma cerrada para el minimizador de la polinomio cuadrático para los que ya tengo los coeficientes del ajuste anterior a .Q 2 ( x ) = b x 2 + c x + d b , c , d Q ( x )
Mi pregunta es: ¿cómo creo una buena prueba para cuándo tomar la interpolación cuadrática sobre el cúbico? El enfoque ingenuo para probar a es malo debido a razones numéricas, así que estoy mirando donde es la precisión de la máquina, pero no puedo decidir una buena que sea una escala invariante de .| a | < ϵ τ ϵ τ f
Pregunta adicional: ¿Hay algún problema numérico con el uso de los coeficientes, , del ajuste cúbico fallido o debería realizar un nuevo ajuste cuadrático con la forma adecuada de calcular los coeficientes?
Editar para aclarar: en mi pregunta, es en realidad lo que comúnmente se conoce como en la literatura. Simplemente simplifiqué la formulación de la pregunta. El problema de optimización que estoy resolviendo es no lineal en 6 dimensiones. Y soy muy consciente de que las condiciones de Wolfe son suficientes para la búsqueda de línea BFGS, por lo tanto, afirman que estaba interesado en ; Estoy buscando algo que satisfaga las fuertes condiciones de Wolfe y tomar el minimizador de la aproximación cúbica es un buen paso en el camino.ϕ ( α ) = f ( ˉ x k + α ¯ p k ) f ′ ( x ∗ ) ≈ 0
La pregunta no era sobre BFGS, sino cómo determinar cuándo el coeficiente cúbico es lo suficientemente pequeño como para que una aproximación cuadrática sea más apropiada.
Edición 2: Notación de actualización, las ecuaciones no cambian.
Hay un documento de Moré, implementado por Nocedal, sobre eso:
fuente