Métodos basados ​​en Newton en la optimización frente a la resolución de sistemas de ecuaciones no lineales


12

Pedí aclaraciones sobre una pregunta reciente sobre minpack y obtuve el siguiente comentario:

Cualquier sistema de ecuaciones es equivalente a un problema de optimización, por lo que los métodos de optimización basados ​​en Newton se parecen mucho a los métodos basados ​​en Newton para resolver sistemas de ecuaciones no lineales.

Lo que me confunde sobre este comentario (y las opiniones negativas relacionadas sobre solucionadores de mínimos cuadrados no lineales especializados como minpack) podría explicarse mejor en el ejemplo del método de gradiente conjugado . Este método es aplicable a los sistemas de Ax=b con una simétrica definida positiva matriz A . También podría usarse para resolver el problema general de mínimos cuadrados minx||Axb||2 para una matriz arbitraria A, pero no se recomienda hacerlo. Una explicación de por qué no deberíamos hacer esto es que el número de condición del sistema aumentaría significativamente.

Pero si convertir un sistema de ecuaciones en un problema de optimización se considera problemático incluso para el caso lineal, ¿por qué debería ser menos problemático para el caso general? Parece estar relacionado de alguna manera con el uso de un algoritmo de optimización de última generación, en lugar de usar un solucionador de mínimos cuadrados no lineal ligeramente envejecido. Pero, ¿no son los problemas relacionados con el desecho de información y el aumento del número de condición del sistema relativamente independiente del algoritmo de optimización realmente utilizado?

Respuestas:


10

Como se ha citado una de mis respuestas, intentaré aclarar por qué sugerí usar IPOPT en lugar de MINPACK.

Mis objeciones al uso de MINPACK no tienen nada que ver con los algoritmos que MINPACK usa y todo que ver con su implementación. Mi principal objeción es que el software se remonta a 1980 y se actualizó por última vez en 1999. Jorge Moré está retirado; Dudo que él o cualquiera de los otros autores del software lo controlen más, y no hay un equipo de personas que lo respalde activamente. La única documentación que puedo encontrar en el software es el informe técnico original de 1980 de Argonne escrito por Jorge Moré y los otros autores del MINPACK. (Los capítulos 1-3 se pueden encontrar aquí , y el Capítulo 4 se puede encontrar aquí.) Después de buscar el código fuente del MINPACK y examinar la documentación (los archivos PDF son imágenes escaneadas y no se pueden buscar), no veo ninguna opción para acomodar las restricciones. Dado que el póster original del problema de mínimos cuadrados no lineales quería resolver un problema de mínimos cuadrados no lineales restringidos, MINPACK ni siquiera resolverá ese problema.

Si observa la lista de correo IPOPT, algunos usuarios indican que el rendimiento del paquete en problemas de mínimos cuadrados no lineales (NLS) es mixto en relación con los algoritmos de Levenberg-Marquardt y los algoritmos de NLS más especializados (consulte aquí , aquí y aquí ). El rendimiento de IPOPT en relación con los algoritmos NLS depende, por supuesto, del problema. Teniendo en cuenta los comentarios de los usuarios, IPOPT parece una recomendación razonable en relación con los algoritmos NLS.

Sin embargo, hace un buen punto de que los algoritmos NLS deben investigarse. Estoy de acuerdo. Simplemente creo que debería usarse un paquete más moderno que MINPACK porque creo que funcionará mejor, será más útil y será compatible. Ceres parece un paquete candidato interesante, pero no puede manejar problemas restringidos en este momento. TAOfuncionaría en problemas de mínimos cuadrados con restricciones de caja, aunque no implementa el clásico Levenberg-Marquardt, sino que implementa un algoritmo sin derivadas. Un algoritmo sin derivadas probablemente funcionaría bien para problemas a gran escala, pero no lo usaría para problemas a pequeña escala. No pude encontrar ningún otro paquete que inspirara mucha confianza en su ingeniería de software. Por ejemplo, GALAHAD no parece utilizar el control de versiones o ninguna prueba automatizada, a primera vista. MINPACK tampoco parece hacer esas cosas. Si tiene experiencia con MINPACK o recomendaciones con respecto a un mejor software, soy todo oídos.

Con todo eso en mente, volviendo a la cita de mi comentario:

Cualquier sistema de ecuaciones es equivalente a un problema de optimización, por lo que los métodos de optimización basados ​​en Newton se parecen mucho a los métodos basados ​​en Newton para resolver sistemas de ecuaciones no lineales.

Un mejor comentario es probablemente algo en el sentido de:

nng(x)=0

Esta afirmación es válida incluso para resolver sistemas de ecuaciones bajo restricciones. No conozco ningún algoritmo que se considere "solucionador de ecuaciones" para el caso donde hay restricciones en las variables. El enfoque común que conozco, tal vez con ictericia por varios semestres de cursos de optimización e investigación en un laboratorio de optimización, es incorporar las restricciones sobre el sistema de ecuaciones en una formulación de optimización. Si intentara usar las restricciones en un esquema similar a Newton-Raphson para la resolución de ecuaciones, probablemente terminaría con un gradiente proyectado o un método proyectado de región de confianza, muy similar a los métodos utilizados en la optimización restringida.


Tengo experiencia con MINPACK. Es lo suficientemente bueno como método local. Me gusta que sus criterios de detención funcionen bien sin ajustes. Sé que la cosa con las restricciones puede ser molesta, especialmente porque no sería un cambio importante en el algoritmo en sí. Incluso sé de implementaciones de LM que ofrecen límites en las variables y restricciones lineales generales, pero estas implementaciones no son mucho más jóvenes que MINPACK, y no me he molestado en evaluarlas.
Thomas Klimpel

1
g(x)=0g(x)2

@JedBrown: debería cambiar el idioma. En mi opinión, la optimización sin derivados (DFO) solo es preferible cuando las evaluaciones de funciones son muy caras. Por alguna razón, el caso fundamental que viene a la mente es cuando el objetivo implica resolver un PDE, por eso dije "a gran escala" (por supuesto, para mí, en optimización, "PDE a gran escala" significa algo diferente a para usted, que resuelve PDE en paralelo de forma regular). Cuando pienso en "resolver ecuaciones con restricciones", el problema que tengo en mente es . (continúa)g(x)=0,xS,SRn,SRn
Geoff Oxberry

@JedBrown: Una forma estándar de abordar ese problema es resolver . Puede haber otras formas, pero no conozco ninguna. No estoy sugiriendo que un descarte ; los mínimos con valores de función objetivo distintos de cero claramente no resuelven el sistema de ecuaciones que se están resolviendo. En el caso no convexo, los métodos de optimización global son necesarios para certificar la existencia o inexistencia de soluciones. No tengo mucha experiencia con las desigualdades variacionales, por lo que no me queda claro de inmediato dónde entran en juego los VI, especialmente porque no es necesariamente un cono. minxSg(x)2g(x)=0S
Geoff Oxberry

1
Por lo que aún tiene que ser capaz de definir con precisión lo que entendemos por una solución que se encuentra en el límite del . Los VI, a menudo escritos como una formulación de complementariedad, hacen exactamente eso. Tengo la opinión opuesta con respecto a los derivados libres, especialmente cuando el espacio de diseño es grande. Si el objetivo implica una resolución PDE costosa, considero que es un requisito que tengamos un adjunto para poder usar gradientes para explorar el espacio de diseño. Un adjunto PDE cuesta solo un pequeño múltiplo de una resolución directa independientemente de la dimensión del espacio. Esto impone requisitos adicionales a la suavidad del modelo. S
Jed Brown

14

Si un sistema no lineal dado es la condición de optimización de primer orden para un problema de optimización, entonces a menudo podemos producir un algoritmo más robusto utilizando esa información. Por ejemplo, considere la ecuación

Trama del objetivo original

Esto claramente tiene un mínimo único y esperamos que nuestro método de optimización lo encuentre independientemente del punto de partida. Pero si solo observamos las condiciones de optimización de primer orden, estamos buscando una solución de [Wolfram Alpha]xf(x)=0

degradado

que tiene una solución única, pero muchos métodos de búsqueda de raíz pueden atascarse en el mínimo local.

Si reformulamos un nuevo problema de optimización para minimizar la norma del gradiente al cuadrado, estamos buscando un mínimo global de [Wolfram Alpha] que tiene múltiples mínimos locales.xf(x)2

ingrese la descripción de la imagen aquí

Para resumir, comenzamos con un problema de optimización que tenía una solución única que podíamos garantizar que encontraría un método. Reformulamos como un problema de búsqueda de raíz no lineal que tenía una solución única que podíamos identificar localmente, pero un método de búsqueda de raíz (como Newton) podría estancarse antes de llegar a él. Luego reformulamos el problema de búsqueda de raíz como un problema de optimización que tenía múltiples soluciones locales (no se puede utilizar ninguna medida local para identificar que no estamos en el mínimo global).

En general, cada vez que convertimos un problema de optimización a rootfinding o viceversa, hacemos que los métodos disponibles y las garantías de convergencia asociadas sean más débiles. La mecánica real de los métodos a menudo es muy similar, por lo que es posible reutilizar una gran cantidad de código entre los solucionadores no lineales y la optimización.


Jed, esos enlaces WA no van exactamente a lo que dices que hacen. Los paréntesis se ignoran o se pasan incorrectamente en la URL.
Bill Barth

Extraño, los enlaces funcionan para mí. ¿Podría depender del navegador web? ¿Alguna sugerencia para una forma alternativa de presentar esto?
Jed Brown

No estoy seguro. ¡Cortar y pegar el enlace reformateado de una pestaña a la siguiente hace que se atornille WA para atornillarlo nuevamente solo!
Bill Barth

¿Alguien más tiene problemas con los enlaces? He intentado en varios navegadores y funciona bien en todos los casos.
Jed Brown

Esta es una buena respuesta. Sin embargo, decidí aceptar la respuesta de Geoff Oxberry, porque parte de lo que estaba tratando de entender son los problemas del "mundo real" relacionados con la pregunta. Esto incluye que las personas como yo usan y recomiendan MINPACK, a pesar de conocer sus deficiencias, y que otras personas piden consejos sobre cómo resolver sistemas no lineales "trivialmente pequeños", pero no logran probar ni un solo solucionador durante un período de tres meses. periodo de tiempo.
Thomas Klimpel
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.