En 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.
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 determinado. [2] La función objetivo toma un conjunto de hiperparámetros y devuelve la pérdida asociada. [2] La validación cruzada se utiliza a menudo para estimar este rendimiento de generalización y, por lo tanto, elegir el conjunto de valores para los hiperparámetros que lo maximizan. [3]
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 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 de cuadrícula debe guiarse por alguna métrica de rendimiento, generalmente medida mediante validación cruzada en el conjunto de entrenamiento [4] o evaluación en un conjunto de validación reservado. [5]
Dado que el espacio de parámetros de un estudiante automático puede incluir espacios de valores reales o ilimitados para ciertos parámetros, puede ser necesario establecer límites y discretización manualmente antes de aplicar la búsqueda de cuadrícula.
Por ejemplo, un clasificador SVM de margen suave típico equipado con un kernel RBF tiene al menos dos hiperparámetros que deben ajustarse para lograr un buen rendimiento en datos invisibles: una constante de regularización C y un hiperparámetro del kernel γ. Ambos parámetros son continuos, por lo que para realizar una búsqueda en la cuadrícula, se selecciona un conjunto finito de valores "razonables" para cada uno, digamos
Luego, la búsqueda de cuadrícula entrena una 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 retenido (o mediante validación cruzada interna en el conjunto de entrenamiento, en cuyo caso múltiples SVM son entrenados por pareja). Finalmente, el algoritmo de búsqueda de cuadrícula genera las configuraciones que lograron la puntuación más alta en el procedimiento de validación.
La búsqueda de cuadrícula sufre la maldición de la dimensionalidad , pero a menudo es vergonzosamente paralela porque las configuraciones de hiperparámetros que evalúa suelen ser independientes entre sí. [3]
La búsqueda aleatoria reemplaza la enumeración exhaustiva de todas las combinaciones seleccionándolas aleatoriamente. Esto se puede aplicar simplemente 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 la búsqueda de Grid, especialmente cuando solo una pequeña cantidad de hiperparámetros afecta el rendimiento final del algoritmo de aprendizaje automático. [3] En este caso, se dice que el problema de optimización tiene una dimensionalidad intrínseca baja. [6] La búsqueda aleatoria también es vergonzosamente paralela y, además, permite la inclusión de conocimientos previos al especificar la distribución de la cual tomar muestras. A pesar de su simplicidad, la búsqueda aleatoria sigue siendo una de las bases importantes con la que comparar el rendimiento de los nuevos métodos de optimización de hiperparámetros.
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 del mapeo de funciones desde los valores de los hiperparámetros hasta el 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 actualizarla, 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 cuyo resultado es más incierto) y la explotación (hiperparámetros esperados cercanos al óptimo). En la práctica, se ha demostrado que la optimización bayesiana [7] [8] [9] [10] 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. .
Para algoritmos de aprendizaje específicos, es posible calcular el gradiente con respecto a los hiperparámetros y luego optimizar los hiperparámetros mediante el descenso de gradiente . El primer uso de estas técnicas se centró en las redes neuronales. [11] Desde entonces, estos métodos se han extendido a otros modelos como las máquinas de vectores de soporte [12] o la regresión logística. [13]
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 . [14] [15] [16] [17] 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. [18]
En un enfoque diferente, [19] se entrena una hiperred para aproximarse a la mejor función de respuesta. Una de las ventajas de este método es que también puede manejar hiperparámetros discretos. Las redes autoajustables [20] ofrecen una versión eficiente de la memoria de este enfoque al elegir una representación compacta para la hiperred. Más recientemente, Δ-STN [21] 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í 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. [22] Estos métodos se han utilizado ampliamente para la optimización de hiperparámetros de arquitectura en la búsqueda de arquitectura neuronal .
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. [8] La optimización de hiperparámetros evolutivos sigue un proceso inspirado en el concepto biológico de evolución :
La optimización evolutiva se ha utilizado en la optimización de hiperparámetros para algoritmos estadísticos de aprendizaje automático, [8] aprendizaje automático automatizado , redes neuronales típicas [23] y búsqueda de arquitectura de redes neuronales profundas , [24] [25], así como en el entrenamiento de los pesos en redes neuronales profundas. redes. [26]
El entrenamiento basado en la 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 de bajo rendimiento se reemplazan iterativamente con modelos que adoptan valores y ponderaciones de hiperparámetros modificados en función de los de mejor rendimiento. Este modelo de reemplazo de arranque en caliente 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 un hiperajuste manual. El proceso no hace suposiciones sobre la arquitectura del modelo, funciones de pérdida o procedimientos de entrenamiento.
PBT y sus variantes son métodos adaptativos: actualizan 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. [27]
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 carreras iterado, que centra la búsqueda en las configuraciones más prometedoras, utilizando pruebas estadísticas para descartar las que funcionan mal. [28] [29] Otro algoritmo de optimización de hiperparámetros de parada temprana es la reducción a la mitad sucesiva (SHA), [30] que comienza como una búsqueda aleatoria pero poda periódicamente los modelos de bajo rendimiento, centrando así los recursos computacionales en modelos más prometedores. La reducción a la mitad sucesiva asincrónica (ASHA) [31] 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 [32] 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 que sea más ampliamente aplicable y con menos entradas requeridas.
También se han desarrollado enfoques RBF [33] y espectral [34] .
Cuando se realiza la optimización de hiperparámetros, el conjunto de hiperparámetros a menudo se ajusta 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 del conjunto de validación. Por lo tanto, la puntuación del rendimiento de generalización del conjunto de validación (que puede ser de 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 hacerlo, el rendimiento de la generalización debe evaluarse en un conjunto independiente (que no tiene intersección) del conjunto (o conjuntos) utilizados 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 pruebas, o mediante un procedimiento de validación cruzada externo llamado validación cruzada anidada, que permite una estimación insesgada del rendimiento de generalización del modelo, teniendo en cuenta el sesgo debido a la optimización del hiperparámetro.