8 votos

Resumen de Métodos de Optimización.

Contexto: Así que en muchos de mis estudios personales, me encuentro con formas de resolver problemas que implican la optimización de alguna función objetivo. (Vengo de un fondo en procesamiento de señales).

De todos modos, parezco estar aprendiendo acerca de esos métodos mientras avanzo; en eso, se introducen cuando hay un problema en cuestión. Esto está bien, supongo, pero desearía tener más una 'mapa' mental general de ellos en mi cabeza.

Por ejemplo, sé acerca de los algoritmos de ascenso/descenso de gradientes, y también recientemente he aprendido sobre un método de segundo orden como el método de Newton, que utiliza la curvatura. (Publicaré una pregunta diferente al respecto).

Ascenso/Descenso de Gradientes:

$$ \mathbf{w_{n+1} = w_n \pm \alpha\frac{\delta J(w)}{\delta w}} $$

Método de Newton:

$$ \mathbf{w_{n+1} = w_n \pm \frac{\delta J(w)}{\delta w} \begin{bmatrix} \frac{\delta^2 J(w)}{\delta w^2} \end{bmatrix}^{-1}} $$

Preguntas:

1) Me gustaría primero, pedir un resumen de otros métodos de optimización que sean similares a las formas anteriores, en el sentido de que uno tiene que calcular realmente las primeras y/o segundas derivadas de una función de costo de antemano.

2) Mi segunda pregunta es, ¿qué métodos de optimización hay que no requieren que uno tenga explícitamente una ecuación para una función de costo, y/o su primera/segunda derivada? Por ejemplo, digamos que tengo una función de costo de caja negra que quiero usar en un procedimiento de optimización. ¿Qué método(s) podrían estar disponibles para mí en este caso? Obviamente, no conocería su ecuación explícita para la función de costo, o cualquiera de sus derivadas. Existiría simplemente como costo = función_de_costo_caja_negra(vector de pesos, datos);

¡Gracias!

7voto

Libor Puntos 662

1)

Los métodos de primer orden tienen muchas variantes, por ejemplo, utilizando direcciones conjugadas en lugar de la dirección de descenso más empinada (Método del Gradiente Conjugado).

También existen una multitud de algoritmos de "búsqueda de línea" para calcular la longitud del paso en los métodos de primer orden. Estos incluyen algoritmos de búsqueda binaria (sección dorada), Newton y métodos quasi-Newton: El método de segundo orden se utiliza para calcular la longitud del paso en el método de primer orden. Parece extraño, pero la idea es que el método de primer orden puede funcionar en múltiples dimensiones, mientras que la búsqueda de línea de segundo orden solo se usa en una función objetivo univariante (línea en la dirección del paso).

En teoría, también puedes usar derivadas numéricas, es decir, calcularlas a partir de la función de coste. Esto te permite utilizar métodos de primer orden sin representación analítica para las derivadas. Los métodos para calcular derivadas incluyen la aproximación de diferencias finitas, el método de Neville, el método de Ridder y la diferenciación automática.

Los métodos de segundo orden como Gauss-Newton y Levenberg-Marquardt no utilizan Hesseiano explícito:

$$H\approx J^{\mathbb{T}}J$$

La razón detrás de esta aproximación (que no requiere derivadas de segundo orden explícitas) estaría fuera del alcance de la respuesta, pero el uso de dicho Hesseiano tiende a ser más numéricamente estable porque los términos de segundo orden son sensibles al ruido.


2)

Existen muchos métodos para optimización sin derivadas, algunos están diseñados para conjuntos de datos grandes y dispersos, como la función de coste de caja negra que tienes. Tales métodos incluyen: métodos basados en modelos, Métodos de Búsqueda de Coordenadas y Patrones, Método de Dirección Conjugada, Método de Nelder-Mead y Filtrado Implícito.

Quizás un diseño adecuado de tu función de coste te permitirá omitir datos desconocidos sin dañar demasiado el resultado.


Los siguientes libros me ayudaron enormemente y ambos entran en detalle cuando se trata de optimización de alta fidelidad (conjuntos de datos grandes y dispersos, derivadas desconocidas):

Jorge Nocedal, Stephed J. Wright: "Optimización Numérica, Segunda Edición"

Press, Teukolsky, Vetterling, Flannery: "Recetas Numéricas, Tercera Edición"

3voto

Kartik Audhkhasi Puntos 973

Aquí están mis respuestas a tus preguntas:

(1) También agregaría el método de gradiente conjugado no lineal, métodos quasi-Newton (por ejemplo, L-BFGS), método de puntos interiores a esta lista. Estoy bastante seguro de que existen muchos más algoritmos de optimización numérica que utilizan información de gradiente. También puedes notar que es práctica común en optimización aproximar el gradiente mediante diferencias finitas en caso de no tener su forma funcional.

(2) Echa un vistazo al algoritmo de Nelder-Mead, que es para optimización sin restricciones sin utilizar información de derivadas. Sin embargo, se requerirá evaluar la salida de la función objetivo durante las iteraciones.

1voto

Eric Le Merdy Puntos 89

Acerca de la pregunta 2, si puedes evaluar la función objetivo, aunque no tengas la fórmula exacta (es decir, la función objetivo es un modelo de simulación, o una caja negra que responde a entradas), entonces puedes usar heurísticas como recocido simulado, algoritmos genéticos, búsqueda tabú y similares. De hecho, con estos métodos no es necesario evaluar las primeras/segundas derivadas, y pueden ser realmente efectivos para encontrar buenas soluciones. Por otro lado, al ser métodos heurísticos, no hay garantía de que la(s) solución(es) encontrada(s) sea(n) un óptimo global.

Por otro lado, si tu función objetivo es muy difícil o costosa de calcular (es decir, el modelo de simulación tarda bastante tiempo en ejecutarse), puedes echar un vistazo a métodos basados en el muestreo o en una función sustituta (lamento no poder ayudarte mucho sobre este tema).

1voto

rookiepig Puntos 131

Para tu primera pregunta. Recomiendo firmemente el libro "Optimización Numérica" Jorge Nocedal, Stephen J. Wright.

De hecho, solo leer el Capítulo 2.2 es suficiente (10 páginas), en el cual se resumen los algoritmos de optimización según dos estrategias:

  • búsqueda de línea
  • región de confianza

Creo que la parte más valiosa de este resumen es que analizaron la motivación principal de cada algoritmo de optimización. Aunque es bastante corto, puede darte una sólida base sobre los métodos de optimización convencionales.

El libro no es gratuito, sin embargo, está disponible en Google Book.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X