TL; DR
Recomiendo usar LIPO. Es demostrablemente correcto y probablemente mejor que la búsqueda aleatoria pura (PRS). También es extremadamente simple de implementar y no tiene hiperparámetros. No he realizado un análisis que compare LIPO con BO, pero mi expectativa es que la simplicidad y eficiencia de LIPO implica que superará a BO.
(Ver también: ¿Cuáles son algunas de las desventajas de la optimización de hiperparámetros bayesianos? )
Optimización Bayesiana
Los métodos de optimización bayesiana crean modelos sustitutos de procesos gaussianos para explorar el espacio de parámetros. La idea principal es que las tuplas de parámetros que están más juntas tendrán valores de función similares, por lo que la suposición de una estructura de covarianza entre puntos permite al algoritmo hacer conjeturas educadas sobre cuál es la mejor tupla de parámetros que vale la pena probar a continuación. Esta estrategia ayuda a reducir el número de evaluaciones de funciones; de hecho, la motivación de los métodos BO es mantener el número de evaluaciones de funciones lo más bajo posible mientras se "usa todo el búfalo" para hacer buenas suposiciones sobre qué punto probar a continuación. Existen diferentes cifras de mérito (mejora esperada, mejora cuantil esperada, probabilidad de mejora ...) que se utilizan para comparar los puntos a visitar a continuación.
Compare esto con algo así como una búsqueda de cuadrícula, que nunca usará ninguna información de sus evaluaciones de funciones anteriores para informar a dónde ir después.
Por cierto, esta también es una poderosa técnica de optimización global , y como tal no hace suposiciones sobre la convexidad de la superficie. Además, si la función es estocástica (por ejemplo, las evaluaciones tienen un ruido aleatorio inherente), esto puede explicarse directamente en el modelo GP.
Por otro lado, tendrá que ajustar al menos un GP en cada iteración (o varias, eligiendo el "mejor", o promediando las alternativas, o métodos completamente bayesianos). Luego, el modelo se usa para hacer (probablemente miles) de predicciones, generalmente en forma de optimización local de varios pasos, con la observación de que es mucho más barato evaluar la función de predicción GP que la función bajo optimización. Pero incluso con esta sobrecarga computacional, tiende a darse el caso de que incluso las funciones no convexas se pueden optimizar con un número relativamente pequeño de llamadas a funciones.
Un artículo ampliamente citado sobre el tema es Jones et al. , "Optimización global eficiente de costosas funciones de caja negra". Pero hay muchas variaciones en esta idea.
Búsqueda aleatoria
Incluso cuando la función de costo es costosa de evaluar, la búsqueda aleatoria puede ser útil. La búsqueda aleatoria es muy simple de implementar. La única opción que debe tomar un investigador es establecer la probabilidad que desee que sus resultados se encuentren en un cuantil ; el resto procede automáticamente usando resultados de probabilidad básica.qp q
Suponga que su cuantil es y desea una probabilidad de que los resultados del modelo se encuentren en el top por ciento de todas las tuplas de hiperparámetros. La probabilidad de que todas las tuplas intentadas no estén en esa ventana es (porque se eligen independientemente al azar de la misma distribución), por lo que la probabilidad de que al menos una tupla esté en esa región es . Poniendo todo junto, tenemosp = 0.95 100 × ( 1 - q ) = 5 n q n = 0.95 n 1 - 0.95 nq=0.95p=0.95100×(1−q)=5nqn=0.95n1−0.95n
1−qn≥p⟹n≥log(1−p)log(q)
que en nuestro caso específico produce .n≥59
Este resultado es la razón por la cual la mayoría de las personas recomiendan intentos de tuplas para la búsqueda aleatoria. Vale la pena señalar que es comparable al número de experimentos necesarios para obtener buenos resultados con los métodos basados en el Proceso Gaussiano cuando hay un número moderado de parámetros. A diferencia de los procesos gaussianos, el número de tuplas de consultas no cambia con el número de hiperparámetros para buscar; de hecho, para una gran cantidad de hiperparámetros, un método gaussiano basado en procesos puede tomar muchas iteraciones para avanzar.n = 60n=60n=60
Dado que tiene una garantía probabilística de cuán buenos son los resultados, puede ser una herramienta persuasiva para convencer a su jefe de que no es necesario realizar más experimentos.
LIPO y sus variantes
Esta es una llegada emocionante que, si no es nueva , ciertamente es nueva para mí. Continúa alternando entre colocar límites informados en la función y muestrear desde el mejor límite, y usar aproximaciones cuadráticas. Todavía estoy trabajando en todos los detalles, pero creo que esto es muy prometedor. Este es un buen artículo escrito en un blog , y el documento es Cédric Malherbe y Nicolas Vayatis " Optimización global de las funciones de Lipschitz ".