La optimización bayesiana es una estrategia de diseño secuencial para la optimización global de funciones de caja negra [1] que no asume ninguna forma funcional. Por lo general, se emplea para optimizar funciones costosas de evaluar.
Historia
El término generalmente se atribuye a Jonas Mockus y se acuñó en su trabajo a partir de una serie de publicaciones sobre optimización global en las décadas de 1970 y 1980. [2] [3] [4]
Estrategia
La optimización bayesiana se utiliza normalmente en problemas de la forma , dónde es un conjunto de puntos cuya pertenencia se puede evaluar fácilmente. La optimización bayesiana es particularmente ventajosa para problemas en los quees difícil de evaluar, es una caja negra con alguna estructura desconocida, se basa en menos de 20 dimensiones y no se evalúan las derivadas . [6]
Dado que se desconoce la función objetivo, la estrategia bayesiana es tratarla como una función aleatoria y colocar un prior sobre ella. El prior captura creencias sobre el comportamiento de la función. Después de recopilar las evaluaciones de función, que se tratan como datos, el anterior se actualiza para formar la distribución posterior sobre la función objetivo. La distribución posterior, a su vez, se utiliza para construir una función de adquisición (a menudo también denominada criterios de muestreo de relleno) que determina el siguiente punto de consulta.
Se utilizan varios métodos para definir la distribución anterior / posterior sobre la función objetivo. Los dos métodos más comunes utilizan procesos gaussianos en un método llamado Kriging . Otro método menos costoso utiliza el Estimador de árbol Parzen para construir dos distribuciones para los puntos 'altos' y 'bajos', y luego encuentra la ubicación que maximiza la mejora esperada. [7]
La optimización bayesiana estándar se basa en cada siendo fáciles de evaluar, y los problemas que se desvían de esta suposición se conocen como problemas exóticos de optimización bayesiana . Los problemas de optimización pueden volverse exóticos si se sabe que hay ruido, las evaluaciones se realizan en paralelo, la calidad de las evaluaciones se basa en un compromiso entre dificultad y precisión, la presencia de condiciones ambientales aleatorias o si la evaluación involucra derivadas. [6]
Ejemplos de
Los ejemplos de funciones de adquisición incluyen probabilidad de mejora, mejora esperada, pérdidas esperadas bayesianas, límites de confianza superior (UCB), muestreo de Thompson e híbridos de estos. [8] Todos ellos intercambian exploración y explotación para minimizar el número de consultas de funciones. Como tal, la optimización bayesiana es adecuada para funciones que son caras de evaluar.
Métodos de solución
El máximo de la función de adquisición se encuentra típicamente recurriendo a la discretización o mediante un optimizador auxiliar. Las funciones de adquisición suelen comportarse bien y se maximizan mediante una técnica de optimización numérica , como el método de Newton o métodos cuasi-Newton como el algoritmo de Broyden-Fletcher-Goldfarb-Shanno .
Aplicaciones
El enfoque se ha aplicado para resolver una amplia gama de problemas, [9] que incluyen aprender a clasificar , [10] gráficos por computadora y diseño visual, [11] [12] robótica , [13] [14] [15] [16] redes de sensores , [17] [18] configuración automática de algoritmos, [19] [20] cajas de herramientas de aprendizaje automático automático , [21] [22] [23] aprendizaje reforzado , planificación, atención visual, configuración de arquitectura en aprendizaje profundo , análisis de programas estáticos , física experimental de partículas , [24] [25] química, diseño de materiales y desarrollo de fármacos. [6] [26] [27]
Ver también
- Bandido de múltiples brazos
- Muestreo de Thompson
- Optimización global
- Diseño experimental bayesiano
Referencias
- ^ Jonas Mockus (2012). Enfoque bayesiano de la optimización global: teoría y aplicaciones . Académico Kluwer.
- ^ Jonas Mockus: sobre métodos bayesianos para buscar el extremo . Técnicas de optimización 1974: 400-404
- ^ Jonas Mockus: sobre métodos bayesianos para buscar el extremo y su aplicación. Congreso IFIP 1977: 195-200
- ^ J. Mockus, Enfoque bayesiano de la optimización global. Editores académicos Kluwer, Dordrecht, 1989
- ↑ Wilson, Samuel (22/11/2019), paquete ParBayesianOptimization R , consultado el 12/12/2019
- ^ a b c Frazier, Peter I. (8 de julio de 2018). "Un tutorial sobre optimización bayesiana". arXiv : 1807.02811 [ stat.ML ].
- ^ JS Bergstra, R. Bardenet, Y. Bengio, B. Kégl: Algoritmos para la optimización de hiperparámetros. Avances en los sistemas de procesamiento de información neuronal: 2546-2554 (2011)
- ^ Matthew W. Hoffman, Eric Brochu, Nando de Freitas : Asignación de cartera para optimización bayesiana. Incertidumbre en la inteligencia artificial: 327–336 (2011)
- ^ Eric Brochu, Vlad M. Cora, Nando de Freitas: un tutorial sobre optimización bayesiana de funciones de costos costosas, con aplicación al modelado de usuarios activos y aprendizaje por refuerzo jerárquico . CoRR abs / 1012.2599 (2010)
- ^ Eric Brochu, Nando de Freitas, Abhijeet Ghosh: aprendizaje activo de preferencias con datos de elección discreta . Avances en los sistemas de procesamiento de información neuronal: 409-416 (2007)
- ^ Eric Brochu, Tyson Brochu, Nando de Freitas: Un enfoque de optimización interactiva bayesiana para el diseño de animación procedimental . Simposio sobre animación por computadora 2010: 103–112
- ^ Yuki Koyama, Issei Sato, Daisuke Sakamoto, Takeo Igarashi: búsqueda de línea secuencial para una optimización eficiente del diseño visual por multitudes . ACM Transactions on Graphics, Volumen 36, Número 4, páginas 48: 1–48: 11 (2017). DOI: https://doi.org/10.1145/3072959.3073598
- ^ Daniel J. Lizotte, Tao Wang, Michael H. Bowling, Dale Schuurmans: Optimización automática de la marcha con regresión del proceso gaussiano . Conferencia conjunta internacional sobre inteligencia artificial: 944–949 (2007)
- ^ Ruben Martinez-Cantin, Nando de Freitas, Eric Brochu, Jose Castellanos y Arnaud Doucet. Un enfoque de exploración-explotación bayesiano para una detección y una planificación óptimas en línea con un robot móvil guiado visualmente . Robots autónomos. Volumen 27, Número 2, págs. 93–103 (2009)
- ^ Scott Kuindersma, Roderic Grupen y Andrew Barto. Control de riesgo variable mediante optimización estocástica . International Journal of Robotics Research, volumen 32, número 7, págs. 806–825 (2013)
- ^ Roberto Calandra, André Seyfarth, Jan Peters y Marc P. Deisenroth Optimización bayesiana para aprender a caminar bajo incertidumbre . Ana. Matemáticas. Artif. Intell. Volumen 76, Número 1, págs. 5-23 (2016) DOI: 10.1007 / s10472-015-9463-9
- ^ Niranjan Srinivas, Andreas Krause, Sham M. Kakade, Matthias W. Seeger: Límites de arrepentimiento teórico de la información para la optimización del proceso gaussiano en el entorno de Bandit . Transacciones IEEE sobre teoría de la información 58 (5): 3250–3265 (2012)
- ^ Roman Garnett, Michael A. Osborne, Stephen J. Roberts: optimización bayesiana para la selección de conjuntos de sensores . Conferencia internacional ACM / IEEE sobre procesamiento de información en redes de sensores: 209–219 (2010)
- ^ Frank Hutter, Holger Hoos y Kevin Leyton-Brown (2011). Optimización secuencial basada en modelos para configuración general de algoritmos , aprendizaje y optimización inteligente
- ^ J. Snoek, H. Larochelle, RP Adams Optimización bayesiana práctica de algoritmos de aprendizaje automático . Avances en los sistemas de procesamiento de información neuronal: 2951-2959 (2012)
- ^ J. Bergstra, D. Yamins, DD Cox (2013). Hyperopt: una biblioteca de Python para optimizar los hiperparámetros de los algoritmos de aprendizaje automático . Proc. Ciencia ficción 2013.
- ^ Chris Thornton, Frank Hutter, Holger H. Hoos, Kevin Leyton-Brown: Auto-WEKA: selección combinada y optimización de hiperparámetros de algoritmos de clasificación . KDD 2013: 847–855
- ^ Jasper Snoek, Hugo Larochelle y Ryan Prescott Adams. Optimización práctica bayesiana de algoritmos de aprendizaje automático . Avances en los sistemas de procesamiento de información neuronal, 2012
- ^ Philip Ilten, Mike Williams, Yunjie Yang. Sintonización del generador de eventos mediante optimización bayesiana . 2017 JINST 12 P04028. DOI: 10.1088 / 1748-0221 / 12/04 / P04028
- ^ Evaristo Cisbani y col. Diseño de detector optimizado por IA para el futuro Colisionador de iones de electrones: el estuche RICH de radiador doble 2020 JINST 15 P05009. DOI: 10.1088 / 1748-0221 / 15/05 / P05009
- ^ Gomez-Bombarelli et al. Diseño químico automático utilizando una representación continua de moléculas basada en datos . ACS Central Science, Volumen 4, Número 2, 268-276 (2018)
- ^ Griffiths y col. Optimización Bayesiana Restringida para Diseño Químico Automático usando Autoencoders Variacionales Chemical Science: 11, 577-586 (2020)
enlaces externos
- GPyOpt , biblioteca de código abierto de Python para optimización bayesiana basada en GPy .
- Bayesopt , una implementación eficiente en C / C ++ con soporte para Python, Matlab y Octave.
- Spearmint , una implementación de Python centrada en la computación en paralelo y en clúster.
- SMAC , una implementación de Java de optimización bayesiana basada en bosques aleatorios para la configuración general de algoritmos.
- ParBayesianOptimization , una implementación paralela de alto rendimiento de optimización bayesiana con procesos gaussianos en R.
- pybo , una implementación de Python de optimización bayesiana modular.
- Bayesopt.m , una implementación de Matlab de optimización bayesiana con o sin restricciones.
- MOE MOE es una implementación de Python / C ++ / CUDA de Optimización Global Bayesiana usando Procesos Gaussianos.
- SigOpt SigOpt ofrece optimización global bayesiana como un servicio SaaS enfocado en casos de uso empresarial.
- Mind Foundry OPTaaS ofrece optimización global bayesiana a través de servicios web con restricciones de parámetros flexibles.
- bayeso , una implementación de Python de optimización bayesiana.
- BoTorch , una biblioteca de código abierto modular y moderna basada en PyTorch para la investigación de optimización bayesiana con soporte para GPyTorch .
- GPflowOpt , un paquete de código abierto basado en TensorFlow para la optimización bayesiana.
- trieste , una caja de herramientas de optimización bayesiana de código abierto basada en TensorFlow y GPflow .