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!