Mínimos cuadrados no lineales unilaterales con restricciones lineales

8

Estoy tratando de resolver un problema de mínimos cuadrados no lineales unilateral con restricciones lineales, es decir, el problema:

minxi=1mri(x) s.t Axb

dónde

ri(x)=fi(x)2 if fi(x)>0 , y ryo(X)=0 0 más.

En palabras, esto puede considerarse un problema de mínimos cuadrados donde solo se incluyen los residuos positivos (las F 's). No puedo enfatizar lo suficiente que este no es un caso de ajuste de datos. Soy consciente de lo que sucedería si se usara para la mayoría de los casos de ajuste de datos, donde el resultado sería simplemente una función que está "por encima" de todas las observaciones. La aplicación es para resolver un problema de optimización muy específico que normalmente se resuelve en la norma minmax ( minXEl |El |F(X)El |El | ). En todos los casos prácticos, la solución no llega a cero, es decir, El |El |F(X)El |El |0 0 debido al comportamiento de las funciones F .

Las funciones F no son lineales y tenemos acceso a sus derivados, de modo que podemos calcular analíticamente el jacobiano sin muchos problemas adicionales.

Con cierto éxito, hemos aplicado un algoritmo de Levenberg-Marquardt donde la función objetivo se formula como anteriormente, es decir, las F 's por debajo de 0 se eliminan de la suma y las filas correspondientes de la J jacobiana se Jponen a cero (es decir, J_ {i ,: } = 0Jyo,:=0 0 if Fyo(X)<=0 0 Esto es bastante crudo pero funciona bien, desafortunadamente no hemos podido incorporar las restricciones lineales.

Somos conscientes de una serie de métodos que resuelven el problema NLLSQ con solo restricciones limitadas, pero esos métodos obviamente no resuelven nuestro problema. Hemos encontrado solo un NLLSQ con restricciones lineales, llamado DQED, y lo hemos usado con éxito limitado (no estamos contentos con el número de iteraciones / evaluaciones de funciones) modificando nuestra función objetivo como lo hicimos con Levenberg Marquardt.

Lo que estoy buscando

Cualquier sugerencia de métodos que resuelvan el problema de los mínimos cuadrados no lineales con restricciones lineales. Además, las sugerencias sobre cómo modificar algoritmos para incorporar el hecho de que solo incluimos los residuos positivos son más que bienvenidas. Finalmente, cualquier sugerencia o pensamiento es bienvenido, aunque debo enfatizar nuevamente que la formulación del problema no es incorrecta, aunque me doy cuenta de que no es la más adecuada para la optimización debido a la falta de diferenciabilidad de cuando .r i ( x ) = 0ryo(X)ryo(X)=0 0

OscarB
fuente
Cuando escribe , quiere deciro? ¿Adivino lo último? F(X)max i | f i ( x ) |maxXEl |F(X)El |maxyoEl |Fyo(X)El |
David Ketcheson
El último sí. Gracias por preguntar, lo siento, eso no estaba claro.
OscarB

Respuestas:

2

Gran parte de mi respuesta a esta pregunta también se aplica aquí; simplemente ignore la parte PDE y finja que estoy hablando de un problema de optimización no lineal común y corriente.

En general, dado que tiene funciones continuas, puede usar métodos de búsqueda directa, aunque la convergencia de esos métodos puede ser más lenta que los métodos correspondientes que usan información derivada de orden superior (que, en este caso, no tiene). También puede intentar buscar solucionadores de optimización no suaves, como los que usan métodos de paquete. El nombre principal en el campo es Frank Clarke, quien desarrolló gran parte de la teoría detrás de la optimización no lisa; De lo contrario, no sé mucho sobre ese cuerpo de literatura.

Supongo que debido a las capacidades no diferenciadas en su objetivo, el uso de métodos que asumen información derivada de primer o segundo orden está causando problemas con la convergencia.

Geoff Oxberry
fuente
Gracias, intentaré una optimización no uniforme. Todavía espero encontrar a alguien que también haya analizado este problema; me sorprendería si soy el único que se ha ocupado de esto. Entonces, dejo la pregunta abierta por un momento.
OscarB
0

(Años después), como saben, los optimizadores de Levenberg-Marquardt toman un vector completo de funciones y hacen la suma y la cuadratura en su interior. Por lo tanto, verá solo , que es lo que desea, ¿es así?[Fyo]
f i > 0lmivmetrounar( metrounaX( [Fyo...], 0 0 )]
Fyo>0 0

Las restricciones lineales tienen la misma propiedad que su , que solo importan los términos positivos. Por lo tanto, puede simplemente levmar el lote: (con multiplicado por 1000 o 1000000.) Por supuesto, los tengo que mirar los signos de y , pero eso es fácil. También agregaría un término para evitar que desvíe hasta el infinito.lyonorteyo(X)UNAyoX-siyo0 0Fyo
lmivmetrounar( metrounaX( [Fyo... lyonorteyo...], 0 0 )]
lyonorteyoJunaCosiyounanortesyo(X)FyolyonorteyoXX

(Tanto Scipy least_squares como ceres hacen restricciones de cuadro, pero no veo ninguna forma de mapear regiones a cuadros).UNAXsi

denis
fuente