Articulo de referencia

Optimización de hiperparámetros

En el aprendizaje automático , la optimización de hiperparámetros [ 1 ] o ajuste consiste en elegir un conjunto de hiperparámetros óptimos para un algoritmo de aprendizaje. Un h...

En el aprendizaje automático , la optimización de hiperparámetros [ 1 ] o ajuste consiste en elegir un conjunto de hiperparámetros óptimos para un algoritmo de aprendizaje. Un hiperparámetro es un parámetro cuyo valor se utiliza para controlar el proceso de aprendizaje, el cual debe configurarse antes de que comience el proceso. [ 2 ] [ 3 ]

La optimización de hiperparámetros determina el conjunto de hiperparámetros que produce un modelo óptimo que minimiza una función de pérdida predefinida en un conjunto de datos dado . [ 4 ] La función objetivo toma un conjunto de hiperparámetros y devuelve la pérdida asociada. [ 4 ] La validación cruzada se usa frecuentemente para estimar este rendimiento de generalización y, por lo tanto, elegir el conjunto de valores para los hiperparámetros que lo maximizan. [ 5 ]

Aproches

Búsqueda en cuadrícula de diferentes valores de dos hiperparámetros. Para cada hiperparámetro, se consideran 10 valores distintos, lo que da como resultado un total de 100 combinaciones diferentes. Los contornos azules indican regiones con resultados óptimos, mientras que los rojos muestran regiones con resultados deficientes.

El método tradicional para la optimización de hiperparámetros ha sido la búsqueda en cuadrícula , o barrido de parámetros , que consiste simplemente en una búsqueda exhaustiva a través de un subconjunto especificado manualmente del espacio de hiperparámetros de un algoritmo de aprendizaje. Un algoritmo de búsqueda en cuadrícula debe guiarse por alguna métrica de rendimiento, que normalmente se mide mediante validación cruzada en el conjunto de entrenamiento [ 6 ] o evaluación en un conjunto de validación independiente.

Dado que el espacio de parámetros de un algoritmo de aprendizaje automático puede incluir espacios de valores reales o no acotados para ciertos parámetros, puede ser necesario establecer límites manualmente y realizar una discretización antes de aplicar la búsqueda en cuadrícula. Por ejemplo, un clasificador SVM típico de margen suave equipado con un núcleo RBF tiene al menos dos hiperparámetros que deben ajustarse para obtener un buen rendimiento en datos no vistos: una constante de regularización C y un hiperparámetro del núcleo γ. Ambos parámetros son continuos, por lo que para realizar la búsqueda en cuadrícula, se selecciona un conjunto finito de valores "razonables" para cada uno, por ejemplo

do{10,100,1000}{\displaystyle C\in \{10,100,1000\}}
γ{0.1,0,2,0,5,1.0}{\displaystyle \gamma \en \{0.1,0.2,0.5,1.0\}}

A continuación, la búsqueda en cuadrícula entrena una máquina de vectores de soporte (SVM) con cada par ( C , γ) del producto cartesiano de estos dos conjuntos y evalúa su rendimiento en un conjunto de validación independiente (o mediante validación cruzada interna en el conjunto de entrenamiento, en cuyo caso se entrenan varias SVM por par). Finalmente, el algoritmo de búsqueda en cuadrícula devuelve la configuración que obtuvo la puntuación más alta en el procedimiento de validación.

La búsqueda en cuadrícula sufre la maldición de la dimensionalidad , pero a menudo es sorprendentemente paralela porque las configuraciones de hiperparámetros que evalúa suelen ser independientes entre sí. [ 5 ]

Búsqueda aleatoria entre diferentes combinaciones de valores para dos hiperparámetros. En este ejemplo, se evalúan 100 opciones aleatorias diferentes. Las barras verdes muestran que se consideran más valores individuales para cada hiperparámetro en comparación con una búsqueda en cuadrícula.

La búsqueda aleatoria reemplaza la enumeración exhaustiva de todas las combinaciones seleccionándolas al azar. Esto se puede aplicar fácilmente al entorno discreto descrito anteriormente, pero también se generaliza a espacios continuos y mixtos. Una ventaja sobre la búsqueda en cuadrícula es que la búsqueda aleatoria puede explorar muchos más valores que la búsqueda en cuadrícula para hiperparámetros continuos. Puede superar a la búsqueda en cuadrícula, especialmente cuando solo un pequeño número de hiperparámetros afecta el rendimiento final del algoritmo de aprendizaje automático. [ 5 ] En este caso, se dice que el problema de optimización tiene una dimensionalidad intrínseca baja. [ 7 ] La búsqueda aleatoria también es fácilmente paralelizable y, además, permite la inclusión de conocimiento previo al especificar la distribución de la que se tomará el muestreo. A pesar de su simplicidad, la búsqueda aleatoria sigue siendo una de las bases importantes con las que comparar el rendimiento de los nuevos métodos de optimización de hiperparámetros.

Métodos como la optimización bayesiana exploran de forma inteligente el espacio de posibles elecciones de hiperparámetros, decidiendo qué combinación explorar a continuación basándose en observaciones previas.

Optimización bayesiana

La optimización bayesiana es un método de optimización global para funciones de caja negra con ruido. Aplicada a la optimización de hiperparámetros, construye un modelo probabilístico de la función que mapea los valores de los hiperparámetros al objetivo evaluado en un conjunto de validación. Al evaluar iterativamente una configuración de hiperparámetros prometedora basada en el modelo actual y luego actualizarlo, la optimización bayesiana busca recopilar observaciones que revelen la mayor cantidad de información posible sobre esta función y, en particular, la ubicación del óptimo. Intenta equilibrar la exploración (hiperparámetros para los cuales el resultado es más incierto) y la explotación (hiperparámetros que se espera que estén cerca del óptimo). En la práctica, se ha demostrado [ 8 ] [ 9 ] [ 10 ] [ 11 ] [ 12 ] que la optimización bayesiana obtiene mejores resultados en menos evaluaciones en comparación con la búsqueda en cuadrícula y la búsqueda aleatoria, debido a la capacidad de razonar sobre la calidad de los experimentos antes de ejecutarlos.

Optimización basada en gradientes

Para algoritmos de aprendizaje específicos, es posible calcular el gradiente con respecto a los hiperparámetros y luego optimizarlos mediante descenso de gradiente . El primer uso de estas técnicas se centró en redes neuronales. [ 13 ] Desde entonces, estos métodos se han extendido a otros modelos, como máquinas de vectores de soporte [ 14 ] o regresión logística. [ 15 ]

Un enfoque diferente para obtener un gradiente con respecto a los hiperparámetros consiste en diferenciar los pasos de un algoritmo de optimización iterativo mediante diferenciación automática . [ 16 ] [ 17 ] [ 18 ] [ 19 ] Un trabajo más reciente en esta dirección utiliza el teorema de la función implícita para calcular hipergradientes y propone una aproximación estable de la inversa de la matriz hessiana. El método es escalable a millones de hiperparámetros y requiere memoria constante. [ 20 ]

En un enfoque diferente, [ 21 ] se entrena una hiperred para aproximar la función de mejor respuesta. Una de las ventajas de este método es que también puede manejar hiperparámetros discretos. Las redes autoajustables [ 22 ] ofrecen una versión eficiente en memoria de este enfoque al elegir una representación compacta para la hiperred. Más recientemente, Δ-STN [ 23 ] ha mejorado aún más este método mediante una ligera reparametrización de la hiperred que acelera el entrenamiento. Δ-STN también produce una mejor aproximación del jacobiano de mejor respuesta al linealizar la red en los pesos, eliminando así los efectos no lineales innecesarios de grandes cambios en los pesos.

Además de los enfoques de hiperredes, los métodos basados ​​en gradientes pueden utilizarse para optimizar hiperparámetros discretos también mediante la adopción de una relajación continua de los parámetros. [ 24 ] Dichos métodos se han utilizado ampliamente para la optimización de hiperparámetros de arquitectura en la búsqueda de arquitectura neuronal .

Optimización evolutiva

La optimización evolutiva es una metodología para la optimización global de funciones de caja negra ruidosas. En la optimización de hiperparámetros, la optimización evolutiva utiliza algoritmos evolutivos para explorar el espacio de hiperparámetros para un algoritmo dado. [ 9 ] La optimización evolutiva de hiperparámetros sigue un proceso inspirado en el concepto biológico de evolución :

  1. Crea una población inicial de soluciones aleatorias (es decir, genera aleatoriamente tuplas de hiperparámetros, normalmente más de 100).
  2. Evaluar las tuplas de hiperparámetros y obtener su función de aptitud (por ejemplo, la precisión de la validación cruzada de 10 pliegues del algoritmo de aprendizaje automático con esos hiperparámetros).
  3. Clasifique las tuplas de hiperparámetros según su aptitud relativa.
  4. Reemplazar las tuplas de hiperparámetros con peor rendimiento por otras nuevas generadas mediante cruce y mutación.
  5. Repita los pasos 2 a 4 hasta que se alcance un rendimiento satisfactorio del algoritmo o este deje de mejorar.

La optimización evolutiva se ha utilizado en la optimización de hiperparámetros para algoritmos de aprendizaje automático estadístico, [ 9 ] aprendizaje automático automatizado , redes neuronales típicas [ 25 ] y búsqueda de arquitectura de redes neuronales profundas , [ 26 ] [ 27 ] así como entrenamiento de pesos en redes neuronales profundas. [ 28 ]

Basado en la población

El entrenamiento basado en población (PBT) aprende tanto los valores de los hiperparámetros como los pesos de la red. Múltiples procesos de aprendizaje operan de forma independiente, utilizando diferentes hiperparámetros. Al igual que con los métodos evolutivos, los modelos con bajo rendimiento se reemplazan iterativamente por modelos que adoptan valores de hiperparámetros y pesos modificados basados ​​en los de mejor rendimiento. Este arranque en caliente del modelo de reemplazo es la principal diferencia entre PBT y otros métodos evolutivos. De esta forma, PBT permite que los hiperparámetros evolucionen y elimina la necesidad de un ajuste manual. El proceso no presupone nada sobre la arquitectura del modelo, las funciones de pérdida ni los procedimientos de entrenamiento.

PBT y sus variantes son métodos adaptativos: actualizan los hiperparámetros durante el entrenamiento de los modelos. Por el contrario, los métodos no adaptativos tienen la estrategia subóptima de asignar un conjunto constante de hiperparámetros para todo el entrenamiento. [ 29 ]

Detención temprana basada

Reducción sucesiva a la mitad para ocho configuraciones arbitrarias de hiperparámetros. El método comienza con ocho modelos con configuraciones diferentes y aplica consecutivamente una reducción sucesiva a la mitad hasta que solo queda un modelo.

Una clase de algoritmos de optimización de hiperparámetros basados ​​en parada temprana está diseñada específicamente para grandes espacios de búsqueda de hiperparámetros continuos y discretos, particularmente cuando el costo computacional para evaluar el rendimiento de un conjunto de hiperparámetros es alto. Irace implementa el algoritmo de carrera iterada, que enfoca la búsqueda alrededor de las configuraciones más prometedoras, utilizando pruebas estadísticas para descartar las que tienen un rendimiento deficiente. [ 30 ] [ 31 ] Otro algoritmo de optimización de hiperparámetros de parada temprana es la reducción a la mitad sucesiva (SHA), [ 32 ] que comienza como una búsqueda aleatoria pero poda periódicamente los modelos de bajo rendimiento, enfocando así los recursos computacionales en modelos más prometedores. La reducción a la mitad sucesiva asíncrona (ASHA) [ 33 ] mejora aún más el perfil de utilización de recursos de SHA al eliminar la necesidad de evaluar y podar sincrónicamente los modelos de bajo rendimiento. Hyperband [ 34 ] es un algoritmo de nivel superior basado en parada temprana que invoca SHA o ASHA varias veces con distintos niveles de agresividad de poda, para que sea más ampliamente aplicable y con menos entradas requeridas.

Otros

También se han desarrollado enfoques RBF [ 35 ] y espectrales [ 36 ] .

Problemas con la optimización de hiperparámetros

Al optimizar los hiperparámetros, el conjunto de hiperparámetros se suele ajustar a un conjunto de entrenamiento y se selecciona en función del rendimiento de generalización, o puntuación, de un conjunto de validación. Sin embargo, este procedimiento conlleva el riesgo de sobreajustar los hiperparámetros al conjunto de validación. Por lo tanto, la puntuación de rendimiento de generalización del conjunto de validación (que puede constar de varios conjuntos en el caso de un procedimiento de validación cruzada) no puede utilizarse para estimar simultáneamente el rendimiento de generalización del modelo final. Para ello, el rendimiento de generalización debe evaluarse en un conjunto independiente (sin intersección) del conjunto (o conjuntos) utilizados para la optimización de los hiperparámetros; de lo contrario, el rendimiento podría arrojar un valor demasiado optimista (demasiado alto). Esto puede realizarse en un segundo conjunto de prueba o mediante un procedimiento de validación cruzada externa denominado validación cruzada anidada, que permite una estimación imparcial del rendimiento de generalización del modelo, teniendo en cuenta el sesgo debido a la optimización de los hiperparámetros.

Véase también

Referencias

  1. Matthias Feurer y Frank Hutter. Optimización de hiperparámetros . En: AutoML: Métodos, sistemas, desafíos , páginas 3–38.
  2. Yang, Li (2020). "Sobre la optimización de hiperparámetros de algoritmos de aprendizaje automático: teoría y práctica". Neurocomputing . 415 : 295–316 . arXiv : 2007.15745 . doi : 10.1016/j.neucom.2020.07.061 .
  3. ^ Franceschi L, Donini M, Perrone V, Klein A, Archambeau C, Seeger M, Pontil M, Frasconi P (2024). "Optimización de hiperparámetros en aprendizaje automático". arXiv : 2410.22854 [ estad.ML ].
  4. ^ Claesen , Marc; Bart De Moor (2015). "Búsqueda de hiperparámetros en aprendizaje automático". arXiv : 1502.02127 [ cs.LG ].
  5. 1 2 3 Bergstra, James; Bengio, Yoshua (2012). "Búsqueda aleatoria para la optimización de hiperparámetros" (PDF) . Journal of Machine Learning Research . 13 : 281–305 .
  6. Chin-Wei Hsu, Chih-Chung Chang y Chih-Jen Lin (2010). Una guía práctica para la clasificación de vectores de soporte . Informe técnico, Universidad Nacional de Taiwán .
  7. Ziyu, Wang; Frank, Hutter; Masrour, Zoghi; David, Matheson; Nando, de Feitas (2016). "Optimización bayesiana en mil millones de dimensiones mediante incrustaciones aleatorias" . Journal of Artificial Intelligence Research . 55 : 361–387 . arXiv : 1301.1942 . doi : 10.1613/jair.4806 . S2CID 279236 . 
  8. Hutter, Frank; Hoos, Holger; Leyton-Brown, Kevin (2011), "Optimización secuencial basada en modelos para la configuración general de algoritmos", Aprendizaje y optimización inteligente (PDF) , Lecture Notes in Computer Science, vol. 6683, pp. 507–523 , CiteSeerX 10.1.1.307.8813 , doi : 10.1007/978-3-642-25566-3_40 , ISBN    978-3-642-25565-6, S2CID 6944647 
  9. 1 2 3 Bergstra, James; Bardenet, Remi; Bengio, Yoshua; Kegl, Balazs (2011), "Algoritmos para la optimización de hiperparámetros" (PDF) , Advances in Neural Information Processing Systems
  10. Snoek, Jasper; Larochelle, Hugo; Adams, Ryan (2012). "Optimización bayesiana práctica de algoritmos de aprendizaje automático" (PDF) . Advances in Neural Information Processing Systems . arXiv : 1206.2944 . Bibcode : 2012arXiv1206.2944S .
  11. Thornton, Chris; Hutter, Frank; Hoos, Holger; Leyton-Brown, Kevin (2013). "Auto-WEKA: Selección combinada y optimización de hiperparámetros de algoritmos de clasificación" (PDF) . Knowledge Discovery and Data Mining . arXiv : 1208.3719 . Bibcode : 2012arXiv1208.3719T .
  12. Kernc (2024), SAMBO: Optimización secuencial y basada en modelos: Optimización global eficiente en Python , doi : 10.5281/zenodo.14461363 , consultado el 30 de enero de 2025
  13. Larsen, Jan; Hansen, Lars Kai; Svarer, Claus; Ohlsson, M (1996). "Diseño y regularización de redes neuronales: El uso óptimo de un conjunto de validación" (PDF) . Redes neuronales para el procesamiento de señales VI. Actas del taller de la IEEE Signal Processing Society de 1996. págs. 62–71 . CiteSeerX 10.1.1.415.3266 . doi : 10.1109/NNSP.1996.548336 . ISBN   0-7803-3550-3. S2CID 238874 . 
  14. Olivier Chapelle; Vladimir Vapnik; Olivier Bousquet; Sayan Mukherjee (2002). "Elección de múltiples parámetros para máquinas de vectores de soporte" (PDF) . Machine Learning . 46 ( 1–3 ): 131–159 . doi : 10.1023/a:1012450327387 .
  15. Chuong B; Chuan-Sheng Foo; Andrew Y Ng (2008). "Aprendizaje eficiente de múltiples hiperparámetros para modelos log-lineales" (PDF) . Avances en sistemas de procesamiento de información neuronal . 20 .
  16. Domke, Justin (2012). "Métodos genéricos para el modelado basado en optimización" (PDF) . Aistats . 22. Archivado del original (PDF) el 24 de enero de 2014. Recuperado el 9 de diciembre de 2017 .
  17. Maclaurin, Dougal; Duvenaud, David; Adams, Ryan P. (2015). "Optimización de hiperparámetros basada en gradiente mediante aprendizaje reversible". arXiv : 1502.03492 [ stat.ML ].
  18. Franceschi, Luca; Donini, Michele; Frasconi, Paolo; Pontil, Massimiliano (2017). "Optimización de hiperparámetros basada en gradiente directo e inverso" (PDF) . Actas de la 34.ª Conferencia Internacional sobre Aprendizaje Automático . arXiv : 1703.01785 . Bibcode : 2017arXiv170301785F .
  19. Shaban, Amirreza; Cheng, Ching-An; Hatch, Nathan; Boots, Byron (2018). "Retropropagación truncada para optimización de dos niveles". arXiv : 1810.10667 [ cs.LG ].
  20. Lorraine, Jonathan; Vicol, Paul; Duvenaud, David (2019). "Optimizing Millions of Hyperparameters by Implicit Differentiation". arXiv : 1911.02590 [ cs.LG ].
  21. Lorraine, Jonathan; Duvenaud, David (2018). "Optimización estocástica de hiperparámetros mediante hiperredes". arXiv : 1802.09419 [ cs.LG ].
  22. MacKay, Matthew; Vicol, Paul; Lorraine, Jon; Duvenaud, David; Grosse, Roger (2019). "Redes autoajustables: optimización de dos niveles de hiperparámetros mediante funciones de mejor respuesta estructuradas". arXiv : 1903.03088 [ cs.LG ].
  23. Bae, Juhan; Grosse, Roger (2020). "Delta-STN: Optimización eficiente de dos niveles para redes neuronales mediante jacobianos de respuesta estructurada". arXiv : 2010.13514 [ cs.LG ].
  24. ^ Liu, Hanxiao; Simonyan, Karen; Yang, Yiming (2018). "DARTS: Búsqueda de arquitectura diferenciable". arXiv : 1806.09055 [ cs.LG ].
  25. Kousiouris G, Cuccinotta T, Varvarigou T (2011). "Los efectos de la programación, el tipo de carga de trabajo y los escenarios de consolidación en el rendimiento de las máquinas virtuales y su predicción mediante redes neuronales artificiales optimizadas" . Journal of Systems and Software . 84 (8): 1270– 1291. doi : 10.1016/j.jss.2011.04.013 . hdl : 11382/361472 .
  26. ^ Miikkulainen R, Liang J, Meyerson E, Rawal A, Fink D, Francon O, Raju B, Shahrzad H, Navruzyan A, Duffy N, Hodjat B (2017). "Evolución de las redes neuronales profundas". arXiv : 1703.00548 [ cs.NE ].
  27. 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). "Entrenamiento de redes neuronales basado en poblaciones". arXiv : 1711.09846 [ cs.LG ].
  28. Such FP, Madhavan V, Conti E, Lehman J, Stanley KO, Clune J (2017). "Neuroevolución profunda: los algoritmos genéticos son una alternativa competitiva para entrenar redes neuronales profundas para el aprendizaje por refuerzo". arXiv : 1712.06567 [ cs.NE ].
  29. Li, Ang; Spyra, Ola; Perel, Sagi; Dalibard, Valentín; Jaderberg, Max; Gu, Chenjie; Budden, David; Harley, Tim; Gupta, Pramod (5 de febrero de 2019). "Un marco generalizado para la formación basada en la población". arXiv : 1902.01894 [ cs.AI ].
  30. López-Ibáñez, Manuel; Dubois-Lacoste, Jérémie; Pérez Cáceres, Leslie; Stützle, Thomas; Birattari, Mauro (2016). "El paquete irace: carreras iteradas para la configuración automática de algoritmos" . Perspectiva de la investigación de operaciones . 3 (3): 43– 58. doi : 10.1016/j.orp.2016.09.002 . hdl : 10419/178265 .
  31. Birattari, Mauro; Stützle, Thomas; Paquete, Luis; Varrentrapp, Klaus (2002). "Un algoritmo de carreras para configurar metaheurísticas". Gecco 2002 : 11-18 .
  32. Jamieson, Kevin; Talwalkar, Ameet (27-02-2015). "Identificación no estocástica del mejor brazo y optimización de hiperparámetros". arXiv : 1502.07943 [ cs.LG ].
  33. Li, Liam; Jamieson, Kevin; Rostamizadeh, Afshin; Gonina, Ekaterina; Hardt, Moritz; Recht, Benjamín; Talwalkar, Ameet (16 de marzo de 2020). "Un sistema para el ajuste de hiperparámetros masivamente paralelo". arXiv : 1810.05934v5 [ cs.LG ].
  34. Li, Lisha; Jamieson, Kevin; DeSalvo, Giulia; Rostamizadeh, Afshin; Talwalkar, Ameet (2020-03-16). "Hyperband: Un nuevo enfoque basado en bandidos para la optimización de hiperparámetros". Journal of Machine Learning Research . 18 : 1–52 . arXiv : 1603.06560 .
  35. Diaz, Gonzalo; Fokoue, Achille; Nannicini, Giacomo; Samulowitz, Horst (2017). "Un algoritmo eficaz para la optimización de hiperparámetros de redes neuronales". arXiv : 1705.08520 [ cs.AI ].
  36. Hazan, Elad; Klivans, Adam; Yuan, Yang (2017). "Optimización de hiperparámetros: un enfoque espectral". arXiv : 1706.00764 [ cs.LG ].