Optimización de hiperparámetros

La optimización de hiperparámetros es una  tarea de aprendizaje automático que consiste en elegir un conjunto de hiperparámetros óptimos para un algoritmo de aprendizaje.

Los mismos tipos de modelos de aprendizaje automático pueden requerir diferentes suposiciones, pesos o tasas de aprendizaje para diferentes tipos de datos. Estos parámetros se denominan hiperparámetros y deben ajustarse para que el modelo pueda resolver de manera óptima el problema de aprendizaje. Para ello, se encuentra una tupla de hiperparámetros , que da el modelo óptimo que optimiza la función de pérdida dada sobre los datos independientes dados [1] . La función objetivo toma una tupla de hiperparámetros y devuelve la pérdida asociada [1] . La validación cruzada se utiliza a menudo para evaluar esta capacidad de generalización [2] .

Aproximaciones

Búsqueda en cuadrícula

El método tradicional para realizar la optimización de hiperparámetros es la búsqueda de celosía (o variación de parámetros ), que simplemente realiza una búsqueda exhaustiva en un subconjunto especificado manualmente del espacio de hiperparámetros del algoritmo de entrenamiento. La búsqueda de celosía debe ir acompañada de alguna medida de rendimiento, generalmente medida por validación cruzada en el conjunto de entrenamiento [3] , o ejecutando el algoritmo en un conjunto de prueba bien establecido [4] .

Dado que el espacio de parámetros de un algoritmo de aprendizaje automático para algunos parámetros puede incluir espacios con valores reales o ilimitados, es posible que sea necesario establecer manualmente el límite y la discretización antes de aplicar la búsqueda de red.

Por ejemplo, un clasificador típico de máquina de vector de soporte (SVM) de brecha suave equipado con una función de base radial del kernel tiene al menos dos hiperparámetros que deben ajustarse para un buen rendimiento en datos no disponibles: la constante de regularización C y el hiperparámetro del kernel γ. Ambos parámetros son continuos, por lo que se elige un conjunto finito de valores "aceptables" para la búsqueda de red, digamos

Luego, la búsqueda de celosía ejecuta el SVM para cada par ( C , γ) en el producto cartesiano de los dos conjuntos y prueba el rendimiento bajo los parámetros elegidos en el conjunto de prueba establecido (o mediante validación cruzada interna en el conjunto de entrenamiento, en cuyo caso múltiples SVM se ejecutan en pares). Finalmente, el algoritmo de búsqueda de celosía produce como resultado el resultado más alto logrado en el procedimiento de verificación.

La búsqueda de celosía sufre de la maldición de la dimensionalidad , pero a menudo es fácilmente paralelizable , ya que generalmente las cantidades hiperparamétricas con las que trabaja el algoritmo son independientes entre sí [2] .

Búsqueda aleatoria

La búsqueda aleatoria reemplaza la búsqueda exhaustiva de todas las combinaciones por una selección aleatoria de las mismas. Esto se puede aplicar fácilmente a las configuraciones discretas anteriores, pero el método también se puede generalizar a espacios continuos y mixtos. La búsqueda aleatoria puede superar a la búsqueda en celosía, especialmente si solo una pequeña cantidad de hiperparámetros afecta el rendimiento del algoritmo de aprendizaje automático [2] . En este caso, se dice que el problema de optimización tiene una dimensión intrínseca baja [5] . Las búsquedas aleatorias también son fácilmente paralelizables y, además, permiten el uso de datos preliminares especificando una distribución para el muestreo de parámetros aleatorios.

Optimización Bayesiana

La optimización bayesiana es un método de optimización global para una función desconocida (caja negra) con ruido. La optimización bayesiana aplicada a la optimización hiperparamétrica construye un modelo estocástico de la función de mapeo a partir de valores de hiperparámetros a una función objetivo aplicada sobre el conjunto de prueba. Mediante la aplicación iterativa de una configuración de hiperparámetros de perspectiva basada en el modelo actual y luego actualizándolo, la optimización bayesiana busca recopilar la mayor cantidad de información posible sobre esa función y, en particular, la ubicación del óptimo. El método intenta equilibrar el sondeo (hiperparámetros para los cuales el cambio se conoce de manera menos confiable) y el uso (hiperparámetros que se espera que estén más cerca del óptimo). En la práctica, la optimización bayesiana ha mostrado [6] [7] [8] [9] mejores resultados con menos cómputo en comparación con la búsqueda en cuadrícula y la búsqueda aleatoria debido a la posibilidad de juzgar la calidad de los experimentos incluso antes de que se realicen.

Optimización basada en gradiente

Para algoritmos de aprendizaje específicos, se puede calcular el gradiente de hiperparámetros y optimizarlos mediante el descenso de gradiente. El primer uso de estas técnicas se centró en las redes neuronales [10] . Estos métodos luego se extendieron a otros modelos, como máquinas de vectores de soporte [11] o regresión logística [12] .

Otro enfoque para usar gradientes de hiperparámetros es diferenciar los pasos del algoritmo de optimización iterativo usando la diferenciación automática [13] [14] .

Optimización evolutiva

La optimización evolutiva es una metodología para la optimización global de funciones desconocidas con ruido. En la optimización de hiperparámetros, la optimización evolutiva usa algoritmos evolutivos para encontrar hiperparámetros para un algoritmo dado [7] . La optimización de hiperparámetros evolutivos sigue un proceso inspirado en el concepto biológico de evolución :

  1. Creamos una población inicial de soluciones aleatorias (es decir, una tupla de hiperparámetros generada aleatoriamente, generalmente más de 100)
  2. Evaluar tuplas de hiperparámetros y derivar su función de aptitud (por ejemplo, usando una validación cruzada de precisión 10x de un algoritmo de aprendizaje automático con estos hiperparámetros)
  3. Clasifique las tuplas de hiperparámetros por su aptitud relativa
  4. Reemplace las tuplas de hiperparámetros con peor rendimiento con nuevas tuplas de hiperparámetros formadas por cruce y mutación
  5. Repita los pasos 2-4 hasta que obtengamos un rendimiento satisfactorio del algoritmo o hasta que el rendimiento deje de mejorar

La optimización evolutiva se utiliza para optimizar hiperparámetros para algoritmos de aprendizaje automático estadístico [7] , aprendizaje automático automático [15] [16] , para encontrar la arquitectura de redes neuronales profundas [17] [18] , así como para formar pesos en redes neuronales profundas . redes [19] .

Otro

También se están desarrollando los métodos de la función de base radial (RBF) [20] y el método espectral [21] .

Software de código abierto

Búsqueda en cuadrícula

Búsqueda aleatoria

Optimización Bayesiana

Basado en degradado

Métodos evolutivos

Otro

Servicios comerciales

Véase también

Notas

  1. 1 2 Claesen, Marc & Bart De Moor (2015), Búsqueda de hiperparámetros en aprendizaje automático, arΧiv : 1502.02127 [cs.LG]. 
  2. 1 2 3 Bergstra, Bengio, 2012 , pág. 281–305.
  3. Chin-Wei Hsu, Chih-Chung Chang y Chih-Jen Lin (2010). Una guía práctica para apoyar la clasificación de vectores. Archivado el 25 de junio de 2013 en Wayback Machine . Informe técnico, Universidad Nacional de Taiwán .
  4. Chicco, 2017 , pág. 1–17.
  5. Ziyu, Frank, Masrour, David, de Feitas, 2016 .
  6. Hutter, Hoos, Leyton-Brown, 2011 .
  7. 1 2 3 Bergstra, Bardenet, Bengio, Kegl, 2011 .
  8. Snoek, Larochelle, Adams, 2012 .
  9. Thornton, Hutter, Hoos, Leyton-Brown, 2013 .
  10. Larsen, Hansen, Svarer, Ohlsson, 1996 .
  11. Chapelle, Vapnik, Bousquet, Mukherjee, 2002 , pág. 131–159.
  12. Chuong, Foo, Ng, 2008 .
  13. Domke, 2012 .
  14. 1 2 Maclaurin, Douglas; Duvenaud, David & Adams, Ryan P. (2015), Optimización de hiperparámetros basada en gradiente a través del aprendizaje reversible, arΧiv : 1502.03492 [stat.ML]. 
  15. 1 2 Olson, Urbanowicz, Andrews, Lavender, Kidd, Moore, 2016 , pág. 123–137.
  16. 1 2 Olson, Bartley, Urbanowicz, Moore, 2016 , pág. 485–492.
  17. Miikkulainen R, Liang J, Meyerson E, Rawal A, Fink D, Francon O, Raju B, Shahrzad H, Navruzyan A, Duffy N, Hodjat B (2017), Evolving Deep Neural Networks, arΧiv : 1703.00548 [cs.NE] . 
  18. Jaderberg M, Dalibard V, Osindero S, Czarnecki WM, Donahue J, Razavi A, Vinyals O, Green T, Dunning I, Simonyan K, Fernando C, Kavukcuoglu K (2017), Capacitación de redes neuronales basada en la población, arΧiv : 1711.09846 [cs.LG]. 
  19. Such FP, Madhavan V, Conti E, Lehman J, Stanley KO, Clune J (2017), Deep Neuroevolution: Genetic Algorithms Are a Competitive Alternative for Training Deep Neural Networks for Reinforcement Learning, arΧiv : 1712.06567 [cs.NE]. 
  20. 1 2 Díaz, Gonzalo; Fokoué, Achille; Nannicini, Giacomo & Samulowitz, Horst (2017), Un algoritmo efectivo para la optimización de hiperparámetros de redes neuronales, arΧiv : 1705.08520 [cs.AI]. 
  21. 1 2 Hazan, Elad; Klivans, Adam & Yuan, Yang (2017), Optimización de hiperparámetros: un enfoque espectral, arΧiv : 1706.00764 [cs.LG]. 
  22. Martínez-Cantin, 2014 , p. 3915-3919.
  23. Kotthoff, Thornton, Hoos, Hutter, Leyton-Brown, 2017 , pág. 1–5.
  24. Feurer, Klein, Eggensperger, Springenberg, Blum, Hutter, 2015 , pág. 2962–2970.
  25. Baptista, Ricardo & Poloczek, Matthias (2018), Optimización bayesiana de estructuras combinatorias, arΧiv : 1806.08838 [stat.ML]. 
  26. Hutter, Hoos, Leyton-Brown, 2011 , pág. 507-523.
  27. Nikitin, Vychuzhanin, Sarafanov, Polonskaia, Revin, Barabanova, Maximov, Kalyuzhnaya, Boukhanovsky, 2022 , p. 109–125.
  28. Gorissen, Crombecq, Couckuyt, Demeester, Dhaene, 2010 , pág. 2051-2055

Literatura