Articulo de referencia

Método cuasi-Newton

En análisis numérico , un método cuasi-Newton es un método numérico iterativo que se utiliza para encontrar ceros o máximos y mínimos locales de funciones mediante una fórmula d...

En análisis numérico , un método cuasi-Newton es un método numérico iterativo que se utiliza para encontrar ceros o máximos y mínimos locales de funciones mediante una fórmula de recurrencia iterativa muy similar a la del método de Newton , con la diferencia de que utiliza 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 jacobiana o hessiana no están disponibles o su cálculo en cada iteración resulta impracticable.

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

Búsqueda de ceros: cálculo de raíces

Método de Newton para encontrar los ceros de una función.gramo{\displaystyle g}de múltiples variables viene dado porincógnitanorte+1=incógnitanorte[Jgramo(incógnitanorte)]1gramo(incógnitanorte){\displaystyle x_{n+1}=x_{n}-[J_{g}(x_{n})]^{-1}g(x_{n})}, dónde[Jgramo(incógnitanorte)]1{\displaystyle [J_{g}(x_{n})]^{-1}}es la inversa derecha de la matriz jacobianaJgramo(incógnitanorte){\displaystyle J_{g}(x_{n})}degramo{\displaystyle g}evaluado paraincógnitanorte{\displaystyle x_{n}}.

Estrictamente hablando, cualquier método que reemplace el jacobiano exactoJgramo(incógnitanorte){\displaystyle J_{g}(x_{n})}con una aproximación es un método cuasi-Newton. [ 1 ] Por ejemplo, el método de cuerdas (dondeJgramo(incógnitanorte){\displaystyle J_{g}(x_{n})}es reemplazado porJgramo(incógnita0){\displaystyle J_{g}(x_{0})}(para todas las iteraciones) es un ejemplo sencillo. Los métodos que se presentan a continuación para la optimización se refieren a una subclase importante de los métodos cuasi-Newton, los métodos secantes . [ 2 ]

Utilizar métodos desarrollados para encontrar extremos con el fin de encontrar ceros no siempre es una buena idea, ya que la mayoría de estos métodos requieren que la matriz empleada sea simétrica. Si bien esto se cumple en el contexto de la búsqueda de extremos, rara vez se cumple al buscar ceros. Los métodos "bueno" y "malo" de Broyden son dos métodos comúnmente utilizados para encontrar extremos que también pueden aplicarse 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). Estos métodos permiten encontrar la solución resolviendo cada sistema constituyente por separado (lo cual es más sencillo que el sistema global) de forma cíclica e iterativa hasta hallar la solución del sistema global. [ 2 ] [ 3 ]

Búsqueda de extremos: optimización

La búsqueda de un mínimo o un 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, sigramo{\displaystyle g}es el gradiente deF{\displaystyle f}, luego buscando los ceros de la función vectorialgramo{\displaystyle g}corresponde a la búsqueda de los extremos de la función escalarF{\displaystyle f}; el jacobino degramo{\displaystyle g}ahora se convierte en el Hessiano deF{\displaystyle f}La principal diferencia radica en que la matriz hessiana es simétrica , a diferencia de la matriz jacobiana, cuando se buscan ceros . La mayoría de los métodos cuasi-Newton utilizados en optimización aprovechan 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 . Estos métodos se basan en el método de Newton para hallar los puntos estacionarios de una función, es decir, aquellos donde el gradiente es cero. El método de Newton asume que la función puede aproximarse localmente como una cuadrática en la región cercana al ó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 las segundas derivadas de la función que se desea minimizar.

En los métodos cuasi-Newton, no es necesario calcular la matriz hessiana. Esta se actualiza analizando sucesivos vectores gradiente. Los métodos cuasi-Newton son una generalización del método de la secante para hallar la raíz de la primera derivada en problemas multidimensionales. En múltiples dimensiones, la ecuación de la secante está subdeterminada , y los métodos cuasi-Newton se diferencian en cómo restringen la solución, generalmente añadiendo una actualización simple de bajo rango a la estimación actual de la matriz hessiana.

El primer algoritmo cuasi-Newton fue propuesto por William C. Davidon , físico del Laboratorio Nacional Argonne . Desarrolló la fórmula de actualización DFP en 1959 , popularizada posteriormente por Fletcher y Powell en 1963, aunque hoy en día se usa con poca frecuencia. Los algoritmos cuasi-Newton más comunes son la fórmula SR1 (de "rango uno simétrico"), el método BHHH , el método BFGS (propuesto 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 sea definida positiva y puede utilizarse para problemas indefinidos. El método de Broyden no requiere que la matriz de actualización sea simétrica y se utiliza para hallar 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 la matriz hessiana (o, en el caso de los métodos cuasi-Newton, su aproximación)B{\displaystyle B}no necesita ser invertido. El método de Newton y sus derivados, como los métodos de punto interior , requieren que el hessiano sea invertido, lo que normalmente se implementa resolviendo un sistema de ecuaciones lineales y suele ser bastante costoso. En contraste, los métodos cuasi-Newton generalmente generan una estimación deB1{\displaystyle B^{-1}}directamente.

Al igual que en el método de Newton , se utiliza una aproximación de segundo orden para encontrar el mínimo de una función.F(incógnita){\displaystyle f(x)}La serie Taylor deF(incógnita){\displaystyle f(x)}alrededor de una iteración es

F(incógnitak+Δincógnita)F(incógnitak)+F(incógnitak)TΔincógnita+12ΔincógnitaTBΔincógnita,{\displaystyle f(x_{k}+\Delta x)\approx f(x_{k})+\nabla f(x_{k})^{\mathrm {T} }\,\Delta x+{\frac {1}{2}}\Delta x^{\mathrm {T} }B\,\Delta x,}

dónde (F{\displaystyle \nabla f}) es el gradiente yB{\displaystyle B}una aproximación a la matriz hessiana . [ 4 ] El gradiente de esta aproximación (con respecto aΔincógnita{\displaystyle \Delta x}) es

F(incógnitak+Δincógnita)F(incógnitak)+BΔincógnita,{\displaystyle \nabla f(x_{k}+\Delta x)\approx \nabla f(x_{k})+B\,\Delta x,}

y al establecer este gradiente en cero (que es el objetivo de la optimización) se obtiene el paso de Newton:

Δincógnita=B1F(incógnitak).{\displaystyle \Delta x=-B^{-1}\nabla f(x_{k}).}

La aproximación hessianaB{\displaystyle B}se elige para satisfacer

F(incógnitak+Δincógnita)=F(incógnitak)+BΔincógnita,{\displaystyle \nabla f(x_{k}+\Delta x)=\nabla f(x_{k})+B\,\Delta x,}

que se denomina ecuación secante (la serie de Taylor del gradiente mismo). En más de una dimensiónB{\displaystyle B}está subdeterminado . Usandonorte{\displaystyle n}Serían suficientes secantes diferentes para determinarB{\displaystyle B}, pero es equivalente a calcular una matriz hessiana de diferencias finitas. En una dimensión, resolver paraB{\displaystyle B}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 de la 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 (BT=B{\displaystyle B^{T}=B}); además, las variantes que se enumeran a continuación pueden estar motivadas por encontrar una actualización.Bk+1{\displaystyle B_{k+1}}que sea lo más cercano posible aBk{\displaystyle B_{k}}en alguna norma ; es decir,Bk+1=argininaBBBkV{\displaystyle B_{k+1}=\operatorname {argmin} _{B}\|B-B_{k}\|_{V}}, dóndeV{\displaystyle V}es una matriz definida positiva que define la norma. Un valor inicial aproximadoB0=βI{\displaystyle B_{0}=\beta I}suele ser suficiente para lograr una convergencia rápida, aunque no existe una estrategia general para elegir.β{\displaystyle \beta }. [ 5 ] Nótese queB0{\displaystyle B_{0}}debe ser positivo-definido. Lo desconocidoincógnitak{\displaystyle x_{k}}se actualiza aplicando el paso de Newton calculado utilizando la matriz hessiana aproximada actualBk{\displaystyle B_{k}}:

  • Δincógnitak=αkBk1F(incógnitak){\displaystyle \Delta x_{k}=-\alpha _{k}B_{k}^{-1}\nabla f(x_{k})}, conα{\displaystyle \alpha }elegido para satisfacer las condiciones de Wolfe ;
  • incógnitak+1=incógnitak+Δincógnitak{\displaystyle x_{k+1}=x_{k}+\Delta x_{k}};
  • El gradiente calculado en el nuevo puntoF(incógnitak+1){\displaystyle \nabla f(x_{k+1})}, y
yk=F(incógnitak+1)F(incógnitak){\displaystyle y_{k}=\nabla f(x_{k+1})-\nabla f(x_{k})}

Se utiliza para actualizar la matriz hessiana aproximada.Bk+1{\displaystyle B_{k+1}}o directamente su inversoHk+1=Bk+11{\displaystyle H_{k+1}=B_{k+1}^{-1}}utilizando la fórmula de Sherman-Morrison .

  • Una propiedad clave de las actualizaciones de BFGS y DFP es que siBk{\displaystyle B_{k}}es definida positiva yαk{\displaystyle \alpha _{k}}se elige para satisfacer las condiciones de Wolfe, entoncesBk+1{\displaystyle B_{k+1}}También es definida positiva.

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 de Broyden simétrico de Powell (PSB) y el método de Greenstadt. [ 2 ] Estas actualizaciones recursivas de matrices de bajo rango también pueden representarse como una matriz inicial más una corrección de bajo rango. Esta es la representación cuasi-Newton compacta , que es particularmente efectiva para problemas con restricciones y/o de gran tamaño.

Relación con la inversión de matrices

CuandoF{\displaystyle f}es una función cuadrática convexa con hessiano definido positivo.B{\displaystyle B}, cabría esperar que las matricesHk{\displaystyle H_{k}}generado por un método cuasi-Newton para converger a la inversa de la matriz hessianaH=B1{\displaystyle H=B^{-1}}. Este es, en efecto, el caso de la clase de métodos cuasi-Newton basados ​​en actualizaciones de mínimo cambio. [ 6 ]

Métodos cuasi-Newton regulares

An attempt to provide an overview of the various approaches to quasi-Newton methods was made in 1985 in the article “Regular Quasi-Newton Methods.”[7] Here, a comprehensive class of these methods was developed, a representation of all rank 1 formulas of the so-called symmetric, novelized Huang class, which includes well-known methods such as the Davidon-Fletcher-Powell (DFP), Broyden-Fletcher-Goldfarb-Shanno (BFGS), and Self-Scaling-Variable-Metric (SSVM) methods. Suggestions for further optimization of the solution behavior of quasi-Newton methods are also given. The following class of “regular” (i.e., preferred for use due to special properties) Quasi-Newton update formulas was constructed:

Hi+1:=B(Hi,pi,qi,θi,ri,ρi){\displaystyle H_{i+1}:=B(H_{i},p_{i},q_{i},\theta _{i},r_{i},\rho _{i})}

with

B(H,p,q,θ,r,ρ)=rH+ρσ+rτθσ2ppT+r(θ1)τHqqTHrθσ(pqTH+HqpT);{\displaystyle B(H,p,q,\theta ,r,\rho )=rH+{{\rho \sigma +r\tau \theta } \over \sigma ^{2}}pp^{T}+r{{(\theta -1)} \over \tau }Hqq^{T}H-{{r\theta } \over \sigma }(pq^{T}H+Hqp^{T});}
HRnxn{\displaystyle H\in \mathbb {R} ^{nxn}} positive definite; p,qRn;ϵ=pTH1p;{\displaystyle p,q\in \mathbb {R} ^{n};\epsilon =p^{T}H^{-1}p;}
σ=pTq;τ=qTHq;θ,r,ρR;r>0;ρσ>0;{\displaystyle \sigma =p^{T}q;\tau =q^{T}Hq;\theta ,r,\rho \in \mathbb {R} ;r>0;\rho \sigma >0;}
θ[ϵτσ2]>σ2;rτ[ρσ+θ(rτρσ)]0{\displaystyle \theta [\epsilon \tau -\sigma ^{2}]>-\sigma ^{2};r\tau [\rho \sigma +\theta (r\tau -\rho \sigma )]\geq 0}.

For approximate, sufficiently accurate beam minimization, positive definite H0Rnxn{\displaystyle H_{0}\in \mathbb {R} ^{nxn}} and arbitrary x0Rn{\displaystyle x_{0}\in \mathbb {R} ^{n}}, the following applies to these regular methods, which are derived from the above formula:

1) The methods are quasi-Newton methods.

2) The matrices Hi{\displaystyle H_{i}} are positive definite for all iterations. Thus,

f(xi+1)<f(xi){\displaystyle f(x_{i+1})<f(x_{i})} applies for all iterations.

3) For all iterations i0{\displaystyle i\geq 0}, we obtain solutions to the minimization problem.

For exact beam minimization and quadratic objective functions, each of these methods also terminates at the minimum point after at most n iteration steps. In particular, the regular quasi-Newton methods have the good properties of both the extended Greenstadt class and the symmetric, extended Huang class with regard to convergence and stability.

It can be assumed that all particularly powerful quasi-Newton methods are regular.

Notable implementations

Implementations of quasi-Newton methods are available in many programming languages.

Notable open source implementations include:

  • GNU Octave uses a form of BFGS in its fsolve function, with trust region extensions.
  • GNU Scientific Library implements the Broyden-Fletcher-Goldfarb-Shanno (BFGS) algorithm.
  • ALGLIB implements (L)BFGS in C++ and C#
  • R's optim general-purpose optimizer routine uses the BFGS method by using method="BFGS".[8]
  • Scipy.optimize has fmin_bfgs. In the SciPy extension to Python, the scipy.optimize.minimize function includes, among other methods, a BFGS implementation.[9]

Notable proprietary implementations include:

Véase también

Referencias

  1. Broyden, CG (1972). «Métodos cuasi-Newton». En Murray, W. (ed.). Métodos numéricos para la optimización sin restricciones . Londres: Academic Press. pp. 87–106 . ISBN  0-12-512250-0.
  2. 1 2 3 Haelterman, Rob (2009). "Estudio analítico del método cuasi-Newton de mínimos cuadrados para problemas de interacción" . Tesis doctoral, Universidad de Gante . Recuperado el 14 de agosto de 2014 .
  3. Rob Haelterman; Dirk Van Eester; Daan Verleyen (2015). "Aceleración de la solución de un modelo físico dentro de un tokamak mediante el método de actualización de columnas (inversa)" . Journal of Computational and Applied Mathematics . 279 : 133–144 . doi : 10.1016/j.cam.2014.11.005 .
  4. "Introducción al teorema de Taylor para funciones multivariables - Math Insight" . mathinsight.org . Consultado el 11 de noviembre de 2021 .
  5. Nocedal, Jorge; Wright, Stephen J. (2006). Optimización numérica . Nueva York: Springer. pp . 142. ISBN  0-387-98793-2.
  6. Robert Mansel Gower; Peter Richtarik (2015). "Las actualizaciones cuasi-Newton aleatorizadas son algoritmos de inversión de matrices linealmente convergentes". arXiv : 1602.01768 [ math.NA ].
  7. Bacharach, Guido; Freiling, Gerhard (1985). Reguläre Quasi-Newton-Verfahren . Universidad de Duisburgo.
  8. "función optim - RDocumentation" . www.rdocumentation.org . Consultado el 21 de febrero de 2022 .
  9. "Scipy.optimize.minimize — Manual de SciPy v1.7.1" .
  10. "Optimización sin restricciones: métodos para la minimización local — Documentación del lenguaje Wolfram" . reference.wolfram.com . Consultado el 21 de febrero de 2022 .
  11. El Grupo de Algoritmos Numéricos. "Índice de palabras clave: cuasi-Newton" . Manual de la biblioteca NAG, Mark 23. Consultado el 9 de febrero de 2012 .
  12. El Grupo de Algoritmos Numéricos. "E04 – Minimizar o maximizar una función" (PDF) . Manual de la biblioteca NAG, Mark 23. Consultado el 9 de febrero de 2012 .
  13. "Encontrar el mínimo de una función multivariable sin restricciones - MATLAB fminunc" . Archivado del original el 12/01/2012 . Consultado el 07/03/2012 .
  14. "Algoritmos de optimización no lineal con restricciones - MATLAB y Simulink" . www.mathworks.com . Consultado el 21 de febrero de 2022 .

Lecturas adicionales

  • Bonnans, JF; Gilbert, J. Ch.; Lemaréchal, C. ; Sagastizábal, CA (2006). Optimización numérica  : aspectos teóricos y numéricos (Segunda  edición). Springer. ISBN 3-540-35445-X.
  • Fletcher, Roger (1987), Métodos prácticos de optimización (2.ª  ed.), Nueva York: John Wiley & Sons , ISBN 978-0-471-91547-8.
  • Nocedal, Jorge; Wright, Stephen J. (1999). «Métodos cuasi-Newton» . Optimización numérica . Nueva York: Springer. págs. 192–221 . ISBN  0-387-98793-2.
  • Press, WH; Teukolsky, SA; Vetterling, WT; Flannery, BP (2007). «Sección 10.9. Métodos cuasi-Newton o de métrica variable en multidimensiones» . Numerical Recipes: The Art of Scientific Computing (3.ª  ed.). Nueva York: Cambridge University Press. ISBN 978-0-521-88068-8.
  • Scales, LE (1985). Introducción a la optimización no lineal . Nueva York: MacMillan. págs. 84–106 . ISBN  0-333-32552-4.