En el análisis numérico , un método cuasi-Newton es un método numérico iterativo utilizado para encontrar ceros o para encontrar máximos y mínimos locales de funciones a través de una fórmula de recurrencia iterativa muy similar a la del método de Newton , excepto que se utilizan aproximaciones de las derivadas de las funciones en lugar de derivadas exactas. El método de Newton requiere la matriz jacobiana de todas las derivadas parciales de una función multivariada cuando se utiliza para buscar ceros o la matriz hessiana cuando se utiliza para encontrar extremos . Los métodos cuasi-Newton, por otro lado, se pueden utilizar cuando las matrices jacobianas o las matrices hessianas no están disponibles o no son prácticas para calcular en cada iteración.
Algunos métodos iterativos que se reducen al método de Newton, como la programación cuadrática secuencial , también pueden considerarse métodos cuasi-Newton.
El método de Newton para encontrar ceros de una función de múltiples variables está dado por , donde es la inversa izquierda de la matriz jacobiana de evaluada para .
Estrictamente hablando, cualquier método que reemplace el jacobiano exacto con una aproximación es un método cuasi-Newton. [1] Por ejemplo, el método de la cuerda (donde se reemplaza por para todas las iteraciones) es un ejemplo simple. Los métodos que se dan a continuación para la optimización se refieren a una subclase importante de los métodos cuasi-Newton, los métodos secantes . [2]
El uso de métodos desarrollados para encontrar extremos con el fin de encontrar ceros no siempre es una buena idea, ya que la mayoría de los métodos utilizados para encontrar extremos requieren que la matriz que se utiliza sea simétrica. Si bien esto es válido en el contexto de la búsqueda de extremos, rara vez se cumple cuando se buscan ceros. Los métodos "buenos" y "malos" de Broyden son dos métodos que se utilizan comúnmente para encontrar extremos y que también se pueden aplicar para encontrar ceros. Otros métodos que se pueden utilizar son el método de actualización de columnas, el método de actualización de columnas inversa, el método de mínimos cuadrados cuasi-Newton y el método de mínimos cuadrados inversos cuasi-Newton.
Más recientemente, se han aplicado métodos cuasi-Newton para encontrar la solución de múltiples sistemas acoplados de ecuaciones (por ejemplo, problemas de interacción fluido-estructura o problemas de interacción en física). Permiten encontrar la solución resolviendo cada sistema constituyente por separado (lo que es más simple que el sistema global) de manera cíclica e iterativa hasta que se encuentra la solución del sistema global. [2] [3]
La búsqueda de un mínimo o máximo de una función escalar está estrechamente relacionada con la búsqueda de los ceros del gradiente de esa función. Por lo tanto, los métodos cuasi-Newton se pueden aplicar fácilmente para encontrar los extremos de una función. En otras palabras, si es el gradiente de , entonces la búsqueda de los ceros de la función vectorial corresponde a la búsqueda de los extremos de la función escalar ; el jacobiano de ahora se convierte en el hessiano de . La principal diferencia es que la matriz hessiana es una matriz simétrica , a diferencia del jacobiano cuando se buscan ceros. La mayoría de los métodos cuasi-Newton utilizados en optimización explotan esta simetría.
En optimización , los métodos cuasi-Newton (un caso especial de los métodos de métrica variable ) son algoritmos para encontrar máximos y mínimos locales de funciones . Los métodos cuasi-Newton para optimización se basan en el método de Newton para encontrar los puntos estacionarios de una función, puntos donde el gradiente es 0. El método de Newton supone que la función puede aproximarse localmente como una cuadrática en la región alrededor del óptimo, y utiliza las derivadas primera y segunda para encontrar el punto estacionario. En dimensiones superiores, el método de Newton utiliza el gradiente y la matriz hessiana de derivadas segundas de la función a minimizar.
En los métodos cuasi-Newton, no es necesario calcular la matriz hessiana. La hessiana se actualiza analizando vectores de gradiente sucesivos. Los métodos cuasi-Newton son una generalización del método secante para encontrar la raíz de la primera derivada en problemas multidimensionales. En múltiples dimensiones, la ecuación secante está subdeterminada y los métodos cuasi-Newton difieren en cómo restringen la solución, generalmente agregando una simple actualización de bajo rango a la estimación actual de la hessiana.
El primer algoritmo cuasi-Newton fue propuesto por William C. Davidon , un físico que trabajaba en el Laboratorio Nacional de Argonne . Desarrolló el primer algoritmo cuasi-Newton en 1959: la fórmula de actualización DFP , que luego fue popularizada por Fletcher y Powell en 1963, pero que rara vez se usa en la actualidad. Los algoritmos cuasi-Newton más comunes actualmente son la fórmula SR1 (para "rango uno simétrico"), el método BHHH , el método BFGS (sugerido independientemente por Broyden, Fletcher, Goldfarb y Shanno, en 1970) y su extensión de baja memoria L-BFGS . La clase de Broyden es una combinación lineal de los métodos DFP y BFGS.
La fórmula SR1 no garantiza que la matriz de actualización mantenga una definición positiva y se puede utilizar para problemas indefinidos. El método de Broyden no requiere que la matriz de actualización sea simétrica y se utiliza para encontrar la raíz de un sistema general de ecuaciones (en lugar del gradiente) actualizando el jacobiano (en lugar del hessiano).
Una de las principales ventajas de los métodos cuasi-Newton sobre el método de Newton es que no es necesario invertir la matriz hessiana (o, en el caso de los métodos cuasi-Newton, su aproximación) . El método de Newton y sus derivados, como los métodos de puntos interiores , requieren que se invierta la matriz hessiana, lo que normalmente se implementa resolviendo un sistema de ecuaciones lineales y suele ser bastante costoso. Por el contrario, los métodos cuasi-Newton suelen generar una estimación de directamente.
Al igual que en el método de Newton , se utiliza una aproximación de segundo orden para hallar el mínimo de una función . La serie de Taylor de alrededor de una iteración es
donde ( ) es el gradiente , y una aproximación a la matriz hessiana . [4] El gradiente de esta aproximación (con respecto a ) es
y establecer este gradiente en cero (que es el objetivo de la optimización) proporciona el paso de Newton:
Se elige la aproximación hessiana para satisfacer
que se llama ecuación secante (la serie de Taylor del gradiente en sí). En más de una dimensión está subdeterminada . En una dimensión, resolver y aplicar el paso de Newton con el valor actualizado es equivalente al método de la secante . Los diversos métodos cuasi-Newton difieren en su elección de la solución a la ecuación secante (en una dimensión, todas las variantes son equivalentes). La mayoría de los métodos (pero con excepciones, como el método de Broyden ) buscan una solución simétrica ( ); además, las variantes enumeradas a continuación pueden estar motivadas por la búsqueda de una actualización que sea lo más cercana posible a en alguna norma ; es decir, , donde es alguna matriz definida positiva que define la norma. Un valor inicial aproximado suele ser suficiente para lograr una convergencia rápida, aunque no hay una estrategia general para elegir . [5] Nótese que debe ser definida positiva. La incógnita se actualiza aplicando el paso de Newton calculado utilizando la matriz hessiana aproximada actual :
se utiliza para actualizar el hessiano aproximado , o directamente su inverso utilizando la fórmula de Sherman-Morrison .
Las fórmulas de actualización más populares son:
Otros métodos son el método de Pearson, el método de McCormick, el método Powell symmetrical Broyden (PSB) y el método de Greenstadt. [2] Estas actualizaciones recursivas de matriz de bajo rango también se pueden representar como una matriz inicial más una corrección de bajo rango. Esta es la representación compacta cuasi-Newton , que es particularmente efectiva para problemas restringidos y/o grandes.
Cuando es una función cuadrática convexa con hessiano positivo definido , se esperaría que las matrices generadas por un método cuasi-Newton converjan al hessiano inverso . Este es de hecho el caso para la clase de métodos cuasi-Newton basados en actualizaciones de cambio mínimo. [6]
Las implementaciones de métodos cuasi-Newton están disponibles en muchos lenguajes de programación.
Las implementaciones de código abierto notables incluyen:
fsolve
función, con extensiones de región de confianza .optim
La rutina optimizadora de propósito general de R utiliza el método BFGSmethod="BFGS"
mediante el uso de . [7]scipy.optimize.minimize
función incluye, entre otros métodos, una implementación de BFGS . [8]Las implementaciones propietarias notables incluyen:
fminunc
función utiliza (entre otros métodos) el método cuasi-Newton BFGS . [12] Muchos de los métodos restringidos de la caja de herramientas de optimización utilizan BFGS y la variante L-BFGS . [13]