¿Cómo se usa la optimización bayesiana en la práctica?

Entre muchos usos para la optimización bayesiana, una aplicación importante de la misma a las redes neuronales está en ajuste de hiperparámetros .

Los hiperparámetros son muy importantes para obtener un buen rendimiento con modelos como las redes neuronales; El conjunto correcto de hiperparámetros puede ser la diferencia entre un rendimiento inestable y degenerado y un artículo publicado. Sin embargo, el proceso para encontrar los hiperparámetros correctos sigue siendo algo así como un arte oscuro, y actualmente implica una búsqueda aleatoria o una búsqueda de cuadrícula en productos cartesianos de conjuntos de hiperparámetros.

En cambio, podemos tratar de abordar este problema desde una perspectiva más matemáticamente fundamentada porque, idealmente, sería bueno tener un espacio suave de hiperparámetros y explorar áreas de alta varianza o explotar áreas de medios bajos .

Esto es exactamente lo que hace la optimización bayesiana ; construimos un modelo probabilístico para la función objetivo (por ejemplo, la función objetivo para una red neuronal) y calculamos la distribución predictiva posterior de los valores de la función objetivo condicionados por hiperparámetros. Usando procesos gaussianos (GP), podemos integrar todas las funciones posibles y optimizar una función proxy barata. Hacerlo nos permite lograr un cuidadoso equilibrio entre explorar y explotar diferentes conjuntos de hiperparámetros.

Entonces, ¿por qué no todos hacen esto? Resulta que el uso de GP para la optimización bayesiana tiene su propio conjunto de problemas, incluidas las selecciones de función de covarianza incorrecta, encontrar los hiperparámetros correctos para los GP (irónicamente, tienen sus propios hiperparámetros que necesitan ajuste), no hay una implementación de software estándar, eficiente y rápida que hace esto automáticamente, y escalas limitadas para problemas grandes (como es común en soluciones Bayesianas). Es un enfoque de principios hermosos para encontrar conjuntos óptimos de hiperparámetros, pero en la práctica, con suficientes GPU, la búsqueda aleatoria o la búsqueda de cuadrícula a menudo funcionarán bastante bien en la exploración de conjuntos de hiperparámetros.

Más detalles se pueden encontrar aquí:

  • [1206.2944] Optimización práctica bayesiana de algoritmos de aprendizaje automático
  • [1605.07079] Optimización bayesiana rápida de hiperparámetros de aprendizaje automático en grandes conjuntos de datos
  • Un tutorial sobre la optimización bayesiana para el aprendizaje automático

More Interesting

¿Cuánto tiempo hasta que tengamos aviones autónomos, particularmente aviones de carga grandes y aviones de pasajeros?

Cómo convencer a mi gerente de que conozco el aprendizaje automático

Cómo usar KNN para datos mixtos (categóricos y numéricos)

¿Hay algún proyecto / investigación de Machine Learning interesante en el que pueda trabajar de forma independiente?

¿Los científicos informáticos realmente entienden cómo el aprendizaje profundo puede lograr sus resultados?

¿Cómo obtienen las empresas datos de capacitación para implementar el aprendizaje para clasificar algoritmos, especialmente en el contexto de búsqueda?

Cómo interpretar una capa totalmente conectada como una capa convolucional para hacer predicciones densas de píxeles

En el procesamiento del lenguaje natural para realizar análisis semántico, ¿es útil y necesario generar un árbol de análisis?

Cómo interpretar la salida de una red neuronal

¿Cómo se logra la detección de afirmaciones en el procesamiento del lenguaje natural?

¿Cómo soluciona un bosque aleatorio los problemas de regresión (no normalidad, heterocedasticidad, multicolinealidad, valores atípicos, valores faltantes y variables categóricas)?

¿Se pueden describir las redes adversas generativas como un método de entrenamiento en el que se aprende la función de pérdida en lugar de seleccionarse manualmente?

¿Cómo explicarías la probabilidad condicional y el teorema de Bayes a un niño?

Cómo lidiar con un conjunto de datos duro que no me da buenos resultados en la validación del modelo

Cómo migrar modelos de aprendizaje automático que están escritos en diferentes lenguajes de programación