stringtranslate.com

Optimización de hiperparámetros

En el aprendizaje automático , la optimización de hiperparámetros [1] o ajuste es el problema de 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, que debe configurarse antes de que comience el proceso. [2]

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 . [3] La función objetivo toma un conjunto de hiperparámetros y devuelve la pérdida asociada. [3] La validación cruzada se utiliza a menudo para estimar el rendimiento de esta generalización y, por lo tanto, elegir el conjunto de valores para los hiperparámetros que lo maximizan. [4]

Aproches

Búsqueda en cuadrícula de distintos valores de dos hiperparámetros. Para cada hiperparámetro se consideran 10 valores diferentes, por lo que se evalúan y comparan un total de 100 combinaciones diferentes. Los contornos azules indican regiones con buenos resultados, mientras que los rojos muestran regiones con malos resultados.

Búsqueda en cuadrícula

El método tradicional para la optimización de hiperparámetros ha sido la búsqueda en cuadrícula o el barrido de parámetros , que es simplemente 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 una validación cruzada en el conjunto de entrenamiento [5] o una evaluación en un conjunto de validación de reserva. [6]

Dado que el espacio de parámetros de un aprendiz automático puede incluir espacios de valores reales o ilimitados para ciertos parámetros, puede ser necesario establecer límites y discretizar manualmente antes de aplicar la búsqueda en cuadrícula.

Por ejemplo, un clasificador SVM de margen suave típico equipado con un núcleo RBF tiene al menos dos hiperparámetros que deben ajustarse para un buen rendimiento en datos no vistos: una constante de regularización C y un hiperparámetro de núcleo γ. Ambos parámetros son continuos, por lo que para realizar una búsqueda en cuadrícula, se selecciona un conjunto finito de valores "razonables" para cada uno, por ejemplo

Luego, la búsqueda en cuadrícula entrena un SVM con cada par ( C , γ) en el producto cartesiano de estos dos conjuntos y evalúa su desempeño en un conjunto de validación reservado (o mediante una validación cruzada interna en el conjunto de entrenamiento, en cuyo caso se entrenan múltiples SVM por par). Finalmente, el algoritmo de búsqueda en cuadrícula genera las configuraciones que obtuvieron el puntaje más alto en el procedimiento de validación.

La búsqueda en cuadrícula sufre la maldición de la dimensionalidad , pero a menudo es vergonzosamente paralela porque las configuraciones de hiperparámetros que evalúa son típicamente independientes entre sí. [4]

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

Búsqueda aleatoria

La búsqueda aleatoria reemplaza la enumeración exhaustiva de todas las combinaciones seleccionándolas aleatoriamente. Esto se puede aplicar simplemente a la configuración discreta descrita anteriormente, pero también se generaliza a espacios continuos y mixtos. Un beneficio 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 una pequeña cantidad de hiperparámetros afecta el rendimiento final del algoritmo de aprendizaje automático. [4] 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 vergonzosamente paralela y, además, permite la inclusión de conocimiento previo al especificar la distribución de la cual tomar la muestra. A pesar de su simplicidad, la búsqueda aleatoria sigue siendo una de las líneas de base 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 opciones de hiperparámetros al decidir 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 ruidosas. Aplicada a la optimización de hiperparámetros, la optimización bayesiana construye un modelo probabilístico de la función que asigna 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 tiene como objetivo 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 que el resultado es más incierto) y la explotación (hiperparámetros esperados cerca del óptimo). En la práctica, se ha demostrado [8] [9] [10] [11] 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 optimizar los hiperparámetros utilizando el descenso de gradiente . El primer uso de estas técnicas se centró en las redes neuronales. [12] Desde entonces, estos métodos se han extendido a otros modelos como las máquinas de vectores de soporte [13] o la regresión logística. [14]

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 utilizando la diferenciación automática . [15] [16] [17] [18] 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 del hessiano inverso. El método escala a millones de hiperparámetros y requiere memoria constante. [19]

En un enfoque diferente, [20] se entrena una hiperred para aproximarse a 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 [21] ofrecen una versión de este enfoque que ahorra memoria al elegir una representación compacta para la hiperred. Más recientemente, Δ-STN [22] 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 hiperred, se pueden utilizar métodos basados ​​en gradientes para optimizar hiperparámetros discretos también adoptando una relajación continua de los parámetros. [23] 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 buscar en el espacio de hiperparámetros un algoritmo determinado. [9] La optimización evolutiva de hiperparámetros sigue un proceso inspirado en el concepto biológico de evolución :

  1. Crear una población inicial de soluciones aleatorias (es decir, generar aleatoriamente tuplas de hiperparámetros, normalmente 100+)
  2. Evaluar las tuplas de hiperparámetros y adquirir su función de aptitud (por ejemplo, precisión de validación cruzada de 10 veces del algoritmo de aprendizaje automático con esos hiperparámetros)
  3. Clasifique las tuplas de hiperparámetros según su aptitud relativa
  4. Reemplace 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 alcanzar un rendimiento satisfactorio del algoritmo o hasta que ya no mejore.

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 , red neuronal típica [24] y búsqueda de arquitectura de red neuronal profunda , [25] [26] así como entrenamiento de pesos en redes neuronales profundas. [27]

Basado en la población

El entrenamiento basado en la población (PBT) aprende tanto los valores de los hiperparámetros como los pesos de la red. Varios procesos de aprendizaje funcionan de forma independiente y utilizan diferentes hiperparámetros. Al igual que con los métodos evolutivos, los modelos de bajo rendimiento se reemplazan iterativamente con modelos que adoptan valores y pesos de hiperparámetros modificados en función de los de mejor rendimiento. Este arranque en caliente del modelo de reemplazo es el principal diferenciador entre PBT y otros métodos evolutivos. Por lo tanto, PBT permite que los hiperparámetros evolucionen y elimina la necesidad de realizar un hiperajuste manual. El proceso no hace suposiciones sobre la arquitectura del modelo, las funciones de pérdida o los procedimientos de entrenamiento.

Los métodos 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 durante todo el entrenamiento. [28]

Basado en la parada temprana

Reducción a la mitad sucesiva para ocho configuraciones arbitrarias de hiperparámetros. El método comienza con ocho modelos con diferentes configuraciones y aplica reducciones a la mitad sucesivas de forma consecutiva hasta que solo quede un modelo.

Una clase de algoritmos de optimización de hiperparámetros basados ​​en detención 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 en las configuraciones más prometedoras, utilizando pruebas estadísticas para descartar las que funcionan mal. [29] [30] Otro algoritmo de optimización de hiperparámetros de detención temprana es la reducción a la mitad sucesiva (SHA), [31] que comienza como una búsqueda aleatoria pero periódicamente poda los modelos de bajo rendimiento, enfocando así los recursos computacionales en modelos más prometedores. La reducción a la mitad sucesiva asincrónica (ASHA) [32] 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 [33] es un algoritmo basado en detención temprana de nivel superior que invoca SHA o ASHA varias veces con diferentes niveles de agresividad de poda, para ser más ampliamente aplicable y con menos entradas requeridas.

Otros

También se han desarrollado enfoques RBF [34] y espectral [35] .

Problemas con la optimización de hiperparámetros

Cuando se realiza la optimización de hiperparámetros, el conjunto de hiperparámetros se ajusta a menudo 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 corre el riesgo de sobreajustar los hiperparámetros al conjunto de validación. Por lo tanto, la puntuación del rendimiento de generalización del conjunto de validación (que puede ser varios conjuntos en el caso de un procedimiento de validación cruzada) no se puede utilizar 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 (que no tenga intersección) del conjunto (o conjuntos) utilizado para la optimización de los hiperparámetros; de lo contrario, el rendimiento podría dar un valor demasiado optimista (demasiado grande). Esto se puede hacer en un segundo conjunto de prueba o mediante un procedimiento de validación cruzada externo llamado 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 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. ^ ab Claesen, Marc; Bart De Moor (2015). "Búsqueda de hiperparámetros en aprendizaje automático". arXiv : 1502.02127 [cs.LG].
  4. ^ abc Bergstra, James; Bengio, Yoshua (2012). "Búsqueda aleatoria para optimización de hiperparámetros" (PDF) . Revista de investigación en aprendizaje automático . 13 : 281–305.
  5. ^ 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 .
  6. ^ Chicco D (diciembre de 2017). "Diez consejos rápidos para el aprendizaje automático en biología computacional". BioData Mining . 10 (35): 35. doi : 10.1186/s13040-017-0155-3 . PMC 5721660 . PMID  29234465. 
  7. ^ Ziyu, Wang; Frank, Hutter; Masrour, Zoghi; David, Matheson; Nando, de Feitas (2016). "Optimización bayesiana en mil millones de dimensiones mediante incrustaciones aleatorias". Revista de investigación en inteligencia artificial . 55 : 361–387. arXiv : 1301.1942 . doi :10.1613/jair.4806. S2CID  279236.
  8. ^ Hutter, Frank; Hoos, Holger; Leyton-Brown, Kevin (2011), "Optimización basada en modelos secuenciales para la configuración general de algoritmos", Aprendizaje y optimización inteligente (PDF) , Lecture Notes in Computer Science, vol. 6683, págs. 507–523, CiteSeerX 10.1.1.307.8813 , doi :10.1007/978-3-642-25566-3_40, ISBN  978-3-642-25565-6, Número de identificación del sujeto  6944647
  9. ^ abc Bergstra, James; Bardenet, Remi; Bengio, Yoshua; Kegl, Balazs (2011), "Algoritmos para la optimización de hiperparámetros" (PDF) , Avances en sistemas de procesamiento de información neuronal
  10. ^ Snoek, Jasper; Larochelle, Hugo; Adams, Ryan (2012). "Optimización bayesiana práctica de algoritmos de aprendizaje automático" (PDF) . Avances en sistemas de procesamiento de información neuronal . 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) . Descubrimiento de conocimiento y minería de datos . arXiv : 1208.3719 . Código Bibliográfico :2012arXiv1208.3719T.
  12. ^ 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 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. Número de identificación del sujeto  238874.
  13. ^ Olivier Chapelle; Vladimir Vapnik; Olivier Bousquet; Sayan Mukherjee (2002). "Elección de múltiples parámetros para máquinas de vectores de soporte" (PDF) . Aprendizaje automático . 46 : 131–159. doi : 10.1023/a:1012450327387 .
  14. ^ 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 .
  15. ^ Domke, Justin (2012). "Métodos genéricos para modelado basado en optimización" (PDF) . Aistats . 22 . Archivado desde el original (PDF) el 2014-01-24 . Consultado el 2017-12-09 .
  16. ^ Maclaurin, Dougal; Duvenaud, David; Adams, Ryan P. (2015). "Optimización de hiperparámetros basada en gradientes mediante aprendizaje reversible". arXiv : 1502.03492 [stat.ML].
  17. ^ Franceschi, Luca; Donini, Michele; Frasconi, Paolo; Pontil, Massimiliano (2017). "Optimización de hiperparámetros basada en gradientes directos e inversos" (PDF) . Actas de la 34.ª Conferencia internacional sobre aprendizaje automático . arXiv : 1703.01785 . Código Bibliográfico :2017arXiv170301785F.
  18. ^ Shaban, A., Cheng, CA, Hatch, N. y Boots, B. (abril de 2019). Retropropagación truncada para optimización de dos niveles. En la 22.ª Conferencia Internacional sobre Inteligencia Artificial y Estadística (pp. 1723-1732). PMLR.
  19. ^ Lorraine, J., Vicol, P. y Duvenaud, D. (2018). Optimización de millones de hiperparámetros mediante diferenciación implícita. Preimpresión de arXiv arXiv:1911.02590 .
  20. ^ Lorraine, J., y Duvenaud, D. (2018). Optimización de hiperparámetros estocásticos a través de hiperredes. Preimpresión de arXiv arXiv:1802.09419 .
  21. ^ MacKay, M., Vicol, P., Lorraine, J., Duvenaud, D. y Grosse, R. (2019). Redes autoajustables: optimización de dos niveles de hiperparámetros utilizando funciones de mejor respuesta estructuradas. Preimpresión de arXiv arXiv:1903.03088 .
  22. ^ Bae, J., y Grosse, RB (2020). Delta-stn: Optimización binivel eficiente para redes neuronales utilizando respuestas jacobianas estructuradas. Avances en sistemas de procesamiento de información neuronal , 33 , 21725-21737.
  23. ^ Liu, H., Simonyan, K. y Yang, Y. (2018). Darts: búsqueda de arquitectura diferenciable. Preimpresión de arXiv arXiv:1806.09055 .
  24. ^ 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 a través de redes neuronales artificiales optimizadas". Journal of Systems and Software . 84 (8): 1270–1291. doi :10.1016/j.jss.2011.04.013. hdl : 11382/361472 .
  25. ^ 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].
  26. ^ 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 la población". arXiv : 1711.09846 [cs.LG].
  27. ^ 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].
  28. ^ 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].
  29. ^ 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 .
  30. ^ Birattari, Mauro; Stützle, Thomas; Paquete, Luis; Varrentrapp, Klaus (2002). "Un algoritmo de carrera para configurar metaheurísticas". Gecco 2002 : 11-18.
  31. ^ Jamieson, Kevin; Talwalkar, Ameet (27 de febrero de 2015). "Identificación no estocástica del mejor brazo y optimización de hiperparámetros". arXiv : 1502.07943 [cs.LG].
  32. ^ 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].
  33. ^ Li, Lisha; Jamieson, Kevin; DeSalvo, Giulia; Rostamizadeh, Afshin; Talwalkar, Ameet (16 de marzo de 2020). "Hyperband: un nuevo enfoque basado en Bandit para la optimización de hiperparámetros". Revista de investigación en aprendizaje automático . 18 : 1–52. arXiv : 1603.06560 .
  34. ^ Díaz, Gonzalo; Fokoue, Achille; Nannicini, Giacomo; Samulowitz, Horst (2017). "Un algoritmo efectivo para la optimización de hiperparámetros de redes neuronales". arXiv : 1705.08520 [cs.AI].
  35. ^ Hazan, Elad; Klivans, Adam; Yuan, Yang (2017). "Optimización de hiperparámetros: un enfoque espectral". arXiv : 1706.00764 [cs.LG].