Parece que ambos procesos se usan para estimar el valor máximo de una función desconocida, y ambos obviamente tienen diferentes formas de hacerlo.
Pero en la práctica, ¿cualquier método es esencialmente intercambiable? ¿Dónde me gustaría usar uno sobre el otro?
https://en.wikipedia.org/wiki/Simulated_annealing
Pregunta similar ¿
Optimización bayesiana o pendiente de gradiente?
optimization
maximum
bayesian-optimization
cañón289
fuente
fuente
Respuestas:
El recocido simulado (SA) es un algoritmo muy simple en comparación con la optimización bayesiana (BO). Ninguno de los métodos supone la convexidad de la función de costo y ninguno de los dos métodos depende en gran medida de la información del gradiente.
SA es, en cierto modo, una caminata aleatoria ligeramente educada. La solución candidata salta sobre el espacio de la solución que tiene un horario de salto particular (el parámetro de enfriamiento). No te importa dónde aterrizaste antes, no sabes dónde aterrizarás después. Es un enfoque típico de la cadena de Markov. No modela suposiciones fuertes sobre la superficie de la solución subyacente. La optimización de MCMC ha recorrido un largo camino desde SA (véase, por ejemplo, Hamiltoniano Monte Carlo ), pero no nos expandiremos más. Una de las cuestiones clave con SA es que necesita evaluar muchas veces "rápido". Y tiene sentido, necesita tantas muestras como sea posible para explorar tantos estados (es decir, soluciones candidatas) como sea posible. Utiliza solo un poquito de información de gradiente (que casi siempre acepta soluciones "mejores").
Mira ahora a BO. BO (o la regresión simplista del Proceso Gaussiano (GP) sobre sus evaluaciones de función de costo) intenta hacer exactamente lo contrario en términos de evaluación de función. Intenta minimizar el número de evaluaciones que realiza. Construye un modelo no paramétrico particular (generalmente un GP) para su función de costo que a menudo supone ruido. No utiliza información de gradiente en absoluto. BO le permite crear un modelo informativo de su función de costos con un pequeño número de evaluaciones de funciones. Luego "consulta" esta función ajustada para sus extremos. De nuevo el diablo está en los detalles; necesita muestrear inteligentemente (y asumir que su anterior también es medio razonable). Hay trabajo sobre dónde evaluar su función a continuación, especialmente cuando sabe que su función realmente evoluciona ligeramente con el tiempo (por ejemplo, aquí ).
Una ventaja obvia de SA sobre BO es que dentro de SA es muy sencillo poner restricciones en el espacio de su solución. Por ejemplo, si desea soluciones no negativas, simplemente limite su distribución de muestra en soluciones no negativas. Lo mismo no es tan directo en BO porque incluso si evalúa sus funciones de acuerdo con sus restricciones (por ejemplo, no negatividad), también necesitará restringir su proceso; Esta tarea, aunque no imposible, es más complicada.
En general, uno preferiría SA en casos en que la función de costo es barata de evaluar y BO en casos en que la función de costo es costosa de evaluar. Creo que SA está cayendo lenta pero constantemente en desgracia; especialmente el trabajo de optimización sin gradiente (por ejemplo , NEWQUA , BOBYQA ) elimina una de sus principales ventajas en comparación con los métodos de descenso de gradiente estándar que no tiene que evaluar una derivada. Del mismo modo, el trabajo sobre MCMC adaptativo (p. Ej., Ver referencia anterior) lo convierte en un desperdicio en términos de optimización de MCMC para casi todos los casos.
fuente