Existe una importante investigación contemporánea sobre la optimización bayesiana (1) para ajustar los hiperparámetros ML. La motivación principal aquí es que se requiere un número mínimo de puntos de datos para tomar decisiones informadas sobre qué puntos vale la pena intentar (las llamadas a funciones objetivas son caras, por lo que hacer menos es mejor) porque entrenar un modelo requiere mucho tiempo, algunos modestamente Los grandes problemas de SVM en los que he trabajado pueden tardar entre minutos y horas en completarse.
Por otro lado, Optunity es una implementación de enjambre de partículas para abordar la misma tarea. No estoy abrumadoramente familiarizado con PSO, pero parece que debe ser menos eficiente en el sentido de que requiere un mayor número de puntos de prueba y, por lo tanto, evaluaciones de funciones objetivas, para evaluar la superficie del hiperparámetro.
¿Me estoy perdiendo un detalle clave que hace que PSO prefiera a BO en el contexto de aprendizaje automático? ¿O la elección entre los dos siempre es inherentemente contextual para la tarea de ajuste de hiperparámetros?
(1) Shahriari et al, "Sacando al ser humano del círculo: una revisión de la optimización bayesiana".
fuente
Respuestas:
Como desarrollador principal de Optunity, agregaré mis dos centavos.
Hemos realizado extensos puntos de referencia comparando Optunity con los solucionadores bayesianos más populares (por ejemplo, hyperopt, SMAC, bayesopt) en problemas del mundo real, y los resultados indican que PSO no es menos eficiente en muchos casos prácticos. En nuestro punto de referencia, que consiste en ajustar los clasificadores SVM en varios conjuntos de datos, Optunity es en realidad más eficiente que Hyperropt y SMAC, pero un poco menos eficiente que BayesOpt. Me encantaría compartir los resultados aquí, pero voy a esperar hasta que Optunity finalmente se publique en JMLR (en revisión desde hace más de un año, así que no contenga la respiración ...).
Como usted indica, el aumento de la eficiencia es un punto de venta de uso común para la optimización bayesiana, pero en la práctica solo se mantiene si las suposiciones de los modelos sustitutos subyacentes se mantienen, lo que está lejos de ser trivial. En nuestros experimentos, el solucionador de PSO muy simple de Optunity a menudo es competitivo con los complejos enfoques bayesianos en términos de número de evaluaciones de funciones. Los solucionadores bayesianos funcionan muy bien cuando cuentan con buenos antecedentes, pero con un previo poco informativo, prácticamente no hay beneficio estructural sobre los métodos metaheurísticos como PSO en términos de eficiencia.
Un gran punto de venta para PSO es el hecho de que es vergonzosamente paralelo. La optimización bayesiana a menudo es difícil de paralelizar, debido a su naturaleza inherentemente secuencial (la implementación de hyperopt es la única excepción real). Dadas las oportunidades de distribución, que se está convirtiendo en la norma, Optunity rápidamente toma la delantera en el tiempo de reloj de pared para obtener buenas soluciones.
Otra diferencia clave entre Optunity y la mayoría de las otras bibliotecas dedicadas de optimización de hiperparámetros es el público objetivo: Optunity tiene la interfaz más simple y está dirigida a expertos en aprendizaje no automático, mientras que la mayoría de las otras bibliotecas requieren cierta comprensión de la optimización bayesiana para usar de manera efectiva (es decir, son dirigido a especialistas).
La razón por la que creamos la biblioteca es que, a pesar del hecho de que existen métodos dedicados de optimización de hiperparámetros, carecen de adopción en la práctica. La mayoría de la gente todavía no está sintonizando en absoluto, haciéndolo manualmente o mediante enfoques ingenuos como la cuadrícula o la búsqueda aleatoria. En nuestra opinión, una razón clave para esto es el hecho de que las bibliotecas existentes antes de desarrollar Optunity eran demasiado difíciles de usar en términos de instalación, documentación, API y, a menudo, se limitaban a un solo entorno.
fuente
La respuesta depende del problema y no se puede dar sin un contexto adicional. Por lo general, la respuesta sería la siguiente. La optimización bayesiana es más adecuada para problemas de baja dimensión con un presupuesto computacional de hasta 10x-100x el número de variables. PSO puede ser bastante eficiente para presupuestos mucho más grandes, pero no es lo último en su nicho.
fuente