Me sorprendió mucho cuando comencé a leer algo sobre la optimización no convexa en general y vi declaraciones como esta:
Muchos problemas prácticos de importancia son no convexos, y la mayoría de los problemas no convexos son difíciles (si no imposibles) de resolver exactamente en un tiempo razonable. ( fuente )
o
En general, es NP-difícil encontrar un mínimo local y muchos algoritmos pueden atascarse en un punto de silla de montar. ( fuente )
Estoy haciendo una especie de optimización no convexa todos los días, es decir, relajación de la geometría molecular. Nunca lo consideré algo complicado, lento y susceptible de atascarse. En este contexto, tenemos claramente superficies no convexas de muchas dimensiones (> 1000 grados de libertad). Usamos principalmente técnicas de primer orden derivadas del descenso más pronunciado y el enfriamiento dinámico, como FIRE , que convergen en unos pocos cientos de pasos a un mínimo local (menos que el número de DOF). Espero que con la adición de ruido estocástico debe ser robusto como el infierno. (La optimización global es una historia diferente)
De alguna manera, no puedo imaginar cómo debería verse la superficie de energía potencial , para hacer que estos métodos de optimización se atasquen o converjan lentamente. Por ejemplo, el PSA muy patológico (pero no debido a la no convexidad) es esta espiral , pero no es un problema tan grande. ¿Puedes dar un ejemplo ilustrativo de PSA no convexo patológico?
Así que no quiero discutir con las citas anteriores. Más bien, tengo la sensación de que me falta algo aquí. Quizás el contexto.
fuente
Respuestas:
El malentendido radica en lo que constituye "resolver" un problema de optimización, por ejemplo, . Para los matemáticos, el problema solo se considera "resuelto" una vez que tenemos:argmin f( x )
Cuando es convexo, ambos ingredientes se obtienen fácilmente. La pendiente del gradiente localiza una solución candidata que hace que el gradiente desaparezca . La prueba de la optimización se deriva de un hecho simple enseñado en MATH101 que, si es convexo, y su gradiente desvanece en , entonces es una solución global.x ⋆ ∇ f ( x ⋆ ) = 0 f ∇ f x ⋆ x ⋆F X⋆ ∇ f( x⋆) = 0 F ∇ f X⋆ X⋆
Cuando no es convexo, una solución candidata aún puede ser fácil de encontrar, pero la prueba de la optimización se vuelve extremadamente difícil. Por ejemplo, podemos ejecutar un descenso en gradiente y encontrar un punto . Pero cuando no es convexo, la condición es necesaria pero ya no es suficiente para la optimización global. De hecho, ni siquiera es suficiente para la optimización local , es decir, ni siquiera podemos garantizar que sea un mínimo local basado solo en su información de gradiente. Un enfoque es enumerar todos los puntos que satisfacen , y esta puede ser una tarea formidable incluso en una o dos dimensiones.∇ f ( x ⋆ ) = 0 f ∇ f ( x ) = 0 x ⋆ ∇ f ( x ) = 0F ∇ f( x⋆) = 0 F ∇ f( x ) = 0 X⋆ ∇ f( x ) = 0
Cuando los matemáticos dicen que la mayoría de los problemas son imposibles de resolver, realmente están diciendo que la prueba de la optimización (incluso local) es imposible de construir . Pero en el mundo real, a menudo solo nos interesa calcular una solución "suficientemente buena", y esto se puede encontrar de infinitas maneras. Para muchos problemas altamente no convexos, nuestra intuición nos dice que las soluciones "suficientemente buenas" son realmente óptimas a nivel mundial, ¡incluso si somos completamente incapaces de demostrarlo!
fuente
Un ejemplo de un difícil problema de baja dimensión podría ser:
Dado que alcanzó un mínimo local, ¿cómo puede estar seguro de que es algo tan bueno como el mínimo global? ¿Cómo saber si su resultado es una solución óptima única, dado que es globalmente óptimo? ¿Cómo puedes crear un algoritmo robusto para todas las colinas y valles para que no se quede atascado en alguna parte?
Un ejemplo como este es donde las cosas pueden ponerse difíciles. Obviamente, no todos los problemas son así, pero algunos sí. Lo peor es que, en un entorno de la industria, la función de costo puede llevar mucho tiempo calcular y tener una superficie problemática como la anterior.
Ejemplo de problema real
Un ejemplo que podría abordar en el trabajo es hacer una optimización para un algoritmo de guía de misiles que podría ser robusto en muchas condiciones de lanzamiento. Usando nuestro clúster, podría obtener las mediciones de rendimiento que necesito en aproximadamente 10 minutos para una sola condición. Ahora para juzgar adecuadamente la robustez, querríamos al menos una muestra de condiciones para juzgar en contra. Entonces, digamos que ejecutamos seis condiciones, haciendo que una evaluación de esta función de costo tome una hora.
La dinámica de misiles no lineales, la dinámica atmosférica, los procesos de tiempo discreto, etc. resultan en una reacción bastante no lineal a los cambios en el algoritmo de guía, lo que hace que la optimización sea difícil de resolver. El hecho de que esta función de costo no sea convexa hace que el hecho de que se tome mucho tiempo evalúe un gran problema. Un ejemplo como este es donde nos esforzaríamos por obtener lo mejor que podamos en el tiempo que se nos da.
fuente
El problema es el de los puntos de silla, discutidos en la publicación que vinculaste. Del resumen de uno de los artículos vinculados :
Esencialmente, puede tener funciones donde tiene puntos de silla de montar que son indistinguibles de los mínimos locales cuando se observan las derivadas 1ª, 2ª y 3ª. Puede resolver esto yendo a un optimizador de orden superior, pero muestran que encontrar un mínimo local de cuarto orden es NP difícil.
Podría usar una serie de heurísticas para escapar de esos puntos, que pueden funcionar para muchos (¿la mayoría?) Ejemplos del mundo real, pero no se puede demostrar que siempre funcionen.
En la publicación del blog que vinculó, también analizan las condiciones bajo las cuales puede escapar de tales puntos de silla de montar en tiempo polinómico.
fuente