
El algoritmo de Gauss-Newton se utiliza para resolver problemas de mínimos cuadrados no lineales , lo que equivale a minimizar la suma de los cuadrados de una función. Es una extensión del método de Newton para encontrar el mínimo de una función no lineal . Dado que la suma de cuadrados debe ser no negativa, el algoritmo puede considerarse como una aplicación del método de Newton para aproximar iterativamente los ceros de las componentes de la suma, minimizando así dicha suma. En este sentido, el algoritmo también es un método eficaz para resolver sistemas de ecuaciones sobredeterminados . Tiene la ventaja de que no requiere el cálculo de segundas derivadas, que pueden ser difíciles de calcular. [ 1 ]
Los problemas de mínimos cuadrados no lineales surgen, por ejemplo, en la regresión no lineal , donde se buscan parámetros en un modelo de manera que el modelo concuerde bien con las observaciones disponibles.
El método lleva el nombre de los matemáticos Carl Friedrich Gauss e Isaac Newton , y apareció por primera vez en la obra de Gauss de 1809 Theoria motus corporum coelestium in sectionibus conicis solem ambientum . [ 2 ]
Descripción
Dadofunciones(a menudo llamados residuos) devariablesconEl algoritmo de Gauss-Newton encuentra iterativamente el valor deque minimizan la suma de cuadrados [ 3 ]
Comenzando con una suposición inicialPara el mínimo, el método procede mediante iteraciones
donde, si r y β son vectores columna , las entradas de la matriz jacobiana son
y el símbolodenota la transpuesta de la matriz .
En cada iteración, la actualizaciónSe puede encontrar reorganizando la ecuación anterior en los siguientes dos pasos:
Con sustituciones,, y, esto se convierte en la ecuación matricial convencional de forma, que luego se puede resolver mediante diversos métodos (véase Notas ).
Si m = n , la iteración se simplifica a
que es una generalización directa del método de Newton en una dimensión.
En el ajuste de datos, donde el objetivo es encontrar los parámetrosde tal manera que una función modelo dadaSe ajusta mejor a algunos puntos de datos, las funcionesson los residuos :
Entonces, el método de Gauss-Newton se puede expresar en términos del jacobiano.de la funcióncomo
Tenga en cuenta quees la pseudoinversa izquierda de.
Notas
La suposición m ≥ n en el enunciado del algoritmo es necesaria, ya que de lo contrario la matrizno es invertible y las ecuaciones normales no se pueden resolver (al menos de forma única).
El algoritmo de Gauss-Newton se puede derivar aproximando linealmente el vector de funciones r i . Usando el teorema de Taylor , podemos escribir en cada iteración:
conLa tarea de encontrarminimizando la suma de los cuadrados del lado derecho; es decir,
es un problema de mínimos cuadrados lineales , que se puede resolver explícitamente, obteniendo así las ecuaciones normales en el algoritmo.
Las ecuaciones normales son n ecuaciones lineales simultáneas en los incrementos desconocidos.. Se pueden resolver en un solo paso, utilizando la descomposición de Cholesky o, mejor aún, la factorización QR dePara sistemas grandes, un método iterativo , como el método del gradiente conjugado , puede ser más eficiente. Si existe una dependencia lineal entre las columnas de J r , las iteraciones fallarán, ya que se vuelve singular.
Cuandoes complejo :\mathbb {C} ^{n}\to \mathbb {C} } se debe usar la forma conjugada:.
Ejemplo

En este ejemplo, se utilizará el algoritmo de Gauss-Newton para ajustar un modelo a ciertos datos, minimizando la suma de los cuadrados de los errores entre los datos y las predicciones del modelo.
En un experimento biológico que estudiaba la relación entre la concentración del sustrato [ S ] y la velocidad de reacción en una reacción mediada por enzimas, se obtuvieron los datos de la siguiente tabla.
Se desea encontrar una curva (función modelo) de la forma
que mejor se ajusta a los datos en el sentido de mínimos cuadrados, con los parámetrosyPor determinar.
Denotemos porylos valores de [ S ] y tasa respectivamente, con. DejaryLo encontraremos.yde tal manera que la suma de los cuadrados de los residuos
se minimiza.
El jacobinodel vector de residuoscon respecto a las incógnitases unmatriz con el-fila que tiene las entradas
Comenzando con las estimaciones iniciales deyDespués de cinco iteraciones del algoritmo de Gauss-Newton, los valores óptimosySe obtienen los siguientes resultados. La suma de los cuadrados de los residuos disminuyó del valor inicial de 1,445 a 0,00784 tras la quinta iteración. El gráfico de la figura de la derecha muestra la curva determinada por el modelo para los parámetros óptimos con los datos observados.
Propiedades de convergencia
Se garantiza que la iteración de Gauss-Newton convergerá hacia un punto mínimo local.bajo 4 condiciones: [ 4 ] Las funcionesson dos veces continuamente diferenciables en un conjunto convexo abierto, el jacobinoes de rango de columna completo, la iteración inicialestá cercay el valor mínimo locales pequeño. La convergencia es cuadrática si.
Se puede demostrar [ 5 ] que el incremento Δ es una dirección de descenso para S y, si el algoritmo converge, entonces el límite es un punto estacionario de S. Para un valor mínimo grandeSin embargo, la convergencia no está garantizada, ni siquiera la convergencia local como en el método de Newton , ni la convergencia bajo las condiciones habituales de Wolfe. [ 6 ]
La tasa de convergencia del algoritmo de Gauss-Newton puede aproximarse a cuadrática . [ 7 ] El algoritmo puede converger lentamente o no converger en absoluto si la estimación inicial está lejos del mínimo o de la matriz.está mal condicionado . Por ejemplo, considere el problema conecuaciones yvariable, dada por
Para,es un óptimo local. SiEn ese caso, el problema es lineal y el método encuentra el óptimo en una iteración. Si |λ| < 1, el método converge linealmente y el error disminuye asintóticamente con un factor |λ| en cada iteración. Sin embargo, si |λ| > 1, el método ni siquiera converge localmente. [ 8 ]
Resolución de sistemas de ecuaciones sobredeterminados
La iteración de Gauss-Newton es un método eficaz para resolver sistemas de ecuaciones sobredeterminados en forma decon ydóndees la inversa de Moore-Penrose (también conocida como pseudoinversa ) de la matriz jacobiana.de. Puede considerarse una extensión del método de Newton y goza de la misma convergencia cuadrática local [ 4 ] hacia soluciones regulares aisladas.
Si la solución no existe pero la iteración inicialestá cerca de un puntoen el que la suma de cuadradosalcanza un pequeño mínimo local, la iteración de Gauss-Newton converge linealmente a. El puntoA menudo se la denomina solución de mínimos cuadrados del sistema sobredeterminado.
Derivación del método de Newton
A continuación, el algoritmo de Gauss-Newton se derivará del método de Newton para la optimización de funciones mediante una aproximación. En consecuencia, la tasa de convergencia del algoritmo de Gauss-Newton puede ser cuadrática bajo ciertas condiciones de regularidad. En general (bajo condiciones más débiles), la tasa de convergencia es lineal. [ 9 ]
Relación de recurrencia para el método de Newton para minimizar una función S de parámetroses
donde g denota el vector gradiente de S y H denota la matriz hessiana de S.
Desde, el gradiente viene dado por
Los elementos del hessiano se calculan diferenciando los elementos del gradiente,, con respecto a:
El método de Gauss-Newton se obtiene ignorando los términos de derivada de segundo orden (el segundo término en esta expresión). Es decir, el hessiano se aproxima mediante
dóndeson entradas del jacobiano J r . Nótese que cuando el hessiano exacto se evalúa cerca de un ajuste exacto tenemos casi cero, por lo que el segundo término también se vuelve casi cero, lo que justifica la aproximación. El gradiente y el hessiano aproximado se pueden escribir en notación matricial como
Estas expresiones se sustituyen en la relación de recurrencia anterior para obtener las ecuaciones operacionales. ;\quad \Delta =-\left(\mathbf {J_{r}} ^{\operatorname {T} }\mathbf {J_{r}} \right)^{-1}\mathbf {J_{r}} ^{\operatorname {T} }\mathbf {r} .}
La convergencia del método de Gauss-Newton no está garantizada en todos los casos. La aproximación
que debe cumplirse para poder ignorar los términos de derivada de segundo orden puede ser válido en dos casos, para los cuales se espera convergencia: [ 10 ]
- Los valores de la funciónson de pequeña magnitud, al menos en torno al mínimo.
- Las funciones son solo "ligeramente" no lineales, de modo quees relativamente pequeño en magnitud.
Versiones mejoradas
Con el método de Gauss-Newton, la suma de los cuadrados de los residuos S puede no disminuir en cada iteración. Sin embargo, dado que Δ es una dirección de descenso, a menos quees un punto estacionario, sostiene quepara todos suficientemente pequeñosPor lo tanto, si se produce una divergencia, una solución es emplear una fracción.del vector de incremento Δ en la fórmula de actualización:
En otras palabras, el vector de incremento es demasiado largo, pero aún apunta "cuesta abajo", por lo que recorrer solo una parte del camino disminuirá la función objetivo S. Un valor óptimo parase puede encontrar utilizando un algoritmo de búsqueda lineal , es decir, la magnitud dese determina encontrando el valor que minimiza S , generalmente utilizando un método de búsqueda directa en el intervaloo una búsqueda lineal con retroceso como la búsqueda lineal de Armijo . Normalmente,debe elegirse de manera que satisfaga las condiciones de Wolfe o las condiciones de Goldstein . [ 11 ]
En los casos en que la dirección del vector de desplazamiento es tal que la fracción óptima α es cercana a cero, un método alternativo para manejar la divergencia es el uso del algoritmo de Levenberg-Marquardt , un método de región de confianza . [ 3 ] Las ecuaciones normales se modifican de tal manera que el vector de incremento se rota hacia la dirección de descenso más pronunciado ,
donde D es una matriz diagonal positiva. Nótese que cuando D es la matriz identidad I y, entoncesPor lo tanto, la dirección de Δ se aproxima a la dirección del gradiente negativo..
El llamado parámetro de MarquardtTambién se puede optimizar mediante una búsqueda lineal, pero esto es ineficiente, ya que el vector de desplazamiento debe recalcularse cada vez.se modifica. Una estrategia más eficiente es la siguiente: cuando se produce una divergencia, aumente el parámetro de Marquardt hasta que S disminuya . Luego, mantenga el valor de una iteración a la siguiente, pero redúzcalo si es posible hasta alcanzar un valor límite, momento en el que el parámetro de Marquardt puede establecerse en cero; la minimización de S se convierte entonces en una minimización estándar de Gauss-Newton.
Optimización a gran escala
Para la optimización a gran escala, el método de Gauss-Newton es de especial interés porque a menudo (aunque ciertamente no siempre) es cierto que la matrizes más disperso que el Hessiano aproximadoEn tales casos, el cálculo del paso en sí normalmente deberá realizarse con un método iterativo aproximado apropiado para problemas grandes y dispersos, como el método del gradiente conjugado .
Para que este tipo de enfoque funcione, se necesita al menos un método eficiente para calcular el producto.
para algún vector p . Con el almacenamiento de matrices dispersas , en general es práctico almacenar las filas deen forma comprimida (por ejemplo, sin entradas cero), lo que dificulta el cálculo directo del producto anterior debido a la transposición. Sin embargo, si se define c i como la fila i de la matrizSe cumple la siguiente relación simple:
De esta forma, cada fila contribuye de manera aditiva e independiente al producto. Además de respetar una estructura de almacenamiento dispersa práctica, esta expresión es idónea para cálculos paralelos . Cabe destacar que cada fila c i es el gradiente del residuo r i correspondiente ; teniendo esto en cuenta, la fórmula anterior subraya que los residuos contribuyen al problema de forma independiente entre sí.
Algoritmos relacionados
En un método cuasi-Newton , como el de Davidon, Fletcher y Powell o el de Broyden-Fletcher-Goldfarb-Shanno ( método BFGS ), se obtiene una estimación de la matriz hessiana completa.se construye numéricamente utilizando primeras derivadasDe esta forma, tras n ciclos de refinamiento, el método se aproxima lo máximo posible al método de Newton en cuanto a rendimiento. Cabe destacar que los métodos cuasi-Newton pueden minimizar funciones reales generales, mientras que los métodos de Gauss-Newton, Levenberg-Marquardt, etc., solo son adecuados para problemas de mínimos cuadrados no lineales.
Otro método para resolver problemas de minimización utilizando únicamente derivadas de primer orden es el descenso de gradiente . Sin embargo, este método no tiene en cuenta las derivadas de segundo orden, ni siquiera de forma aproximada. Por consiguiente, resulta muy ineficiente para muchas funciones, especialmente si los parámetros presentan fuertes interacciones.
Ejemplos de implementación
Julia
La siguiente implementación en Julia proporciona un método que utiliza un jacobiano proporcionado y otro que lo calcula con diferenciación automática .
""" gaussnewton(r, J, β₀, maxiter, tol)Realizar la optimización de Gauss-Newton para minimizar la función residual `r` con jacobiano `J` comenzando desde `β₀`. El algoritmo termina cuando la norma del paso es menor que `tol` o después de `maxiter` iteraciones. """ function gaussnewton ( r , J , β₀ , maxiter , tol ) β = copy ( β₀ ) for _ in 1 : maxiter Jβ = J ( β ); Δ = - ( Jβ ' * Jβ ) \ ( Jβ ' * r ( β )) β += Δ if sqrt ( sum ( abs2 , Δ )) < tol break end end return β endimport AbstractDifferentiation as AD , Zygote backend = AD.ZygoteBackend ( ) # hay otros backends disponibles""" gaussnewton(r, β₀, maxiter, tol)Realizar la optimización de Gauss-Newton para minimizar la función residual `r` a partir de `β₀`. El jacobiano correspondiente se calcula mediante diferenciación automática. El algoritmo finaliza cuando la norma del paso es menor que `tol` o después de `maxiter` iteraciones. """ function gaussnewton ( r , β₀ , maxiter , tol ) β = copy ( β₀ ) for _ in 1 : maxiter rβ , Jβ = AD . value_and_jacobian ( backend , r , β ) Δ = - ( Jβ [ 1 ] ' * Jβ [ 1 ]) \ ( Jβ [ 1 ] ' * rβ ) β += Δ if sqrt ( sum ( abs2 , Δ )) < tol break end end return β endNotas
- ↑ Mittelhammer, Ron C.; Miller, Douglas J.; Judge, George G. (2000). Fundamentos econométricos . Cambridge: Cambridge University Press. pp. 197–198 . ISBN 0-521-62394-4.
- ↑ Floudas, Christodoulos A. ; Pardalos, Panos M. (2008). Enciclopedia de Optimización . Springer. pág. 1130. ISBN 9780387747583.
- 1 2 Björck (1996)
- 1 2 J.E. Dennis, Jr. y RB Schnabel (1983). Métodos numéricos para optimización sin restricciones y ecuaciones no lineales . Reproducción de SIAM 1996 de la edición de Prentice-Hall de 1983. pág. 222.
- ↑ Björck (1996), pág. 260.
- ↑ Mascarenhas (2013), "La divergencia de los métodos BFGS y Gauss-Newton", Mathematical Programming , 147 (1): 253–276 , arXiv : 1309.7922 , doi : 10.1007/s10107-013-0720-6 , S2CID 14700106
- ^ Björck (1996), pág. 341, 342.
- ↑ Fletcher (1987), pág. 113.
- ↑ "Copia archivada" (PDF) . Archivado del original (PDF) el 4 de agosto de 2016. Recuperado el 25 de abril de 2014 .
{{cite web}}: CS1 mantenimiento: copia archivada como título ( enlace ) - ↑ Nocedal (1999), pág. 259.
- ↑ Nocedal, Jorge. (1999). Optimización numérica . Wright, Stephen J., 1960-. Nueva York: Springer. ISBN 0387227423OCLC 54849297
Referencias
- Björck, A. (1996). Métodos numéricos para problemas de mínimos cuadrados . SIAM, Filadelfia. ISBN 0-89871-360-9.
- 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 (1999). Optimización numérica . Nueva York: Springer. ISBN 0-387-98793-2.
{{cite book}}: CS1 mantenimiento: ubicación del editor ( enlace )
Enlaces externos
- Probabilidad, Estadística y Estimación El algoritmo se detalla y se aplica al experimento biológico analizado como ejemplo en este artículo (página 84 con las incertidumbres en los valores estimados).
Implementaciones
- Artelys Knitro es un solucionador no lineal que implementa el método de Gauss-Newton. Está escrito en C y cuenta con interfaces para C++/C#/Java/Python/MATLAB/R.
- Algoritmos y métodos de optimización
- Mínimos cuadrados
- Algoritmos estadísticos