¿Qué son los hiperparámetros en el aprendizaje automático?

En el aprendizaje automático, utilizamos el término hiperparámetro para distinguirnos de los parámetros del modelo estándar. Por lo tanto, vale la pena entender primero cuáles son esos.

Un modelo de aprendizaje automático es la definición de una fórmula matemática con una serie de parámetros que deben aprenderse de los datos. Ese es el quid del aprendizaje automático: ajustar un modelo a los datos. Esto se realiza a través de un proceso conocido como entrenamiento modelo . En otras palabras, al entrenar un modelo con datos existentes, podemos ajustar los parámetros del modelo.

Sin embargo, hay otro tipo de parámetros que no se pueden aprender directamente del proceso de capacitación regular. Estos parámetros expresan propiedades de “nivel superior” del modelo, como su complejidad o la rapidez con que debe aprender. Se llaman hiperparámetros . Los hiperparámetros generalmente se arreglan antes de que comience el proceso de capacitación real.

Entonces, ¿cómo se deciden los hiperparámetros ? Probablemente esté más allá del alcance de esta pregunta, pero es suficiente decir que, en términos generales, esto se hace estableciendo diferentes valores para esos hiperparámetros, entrenando diferentes modelos y decidiendo cuáles funcionan mejor probándolos.

Entonces, para resumir. Hiperparámetros:

  • Defina conceptos de nivel superior sobre el modelo, como la complejidad o la capacidad de aprender.
  • No se puede aprender directamente de los datos en el proceso de capacitación del modelo estándar y debe predefinirse.
  • Se puede decidir estableciendo diferentes valores, entrenando diferentes modelos y eligiendo los valores que prueban mejor

Algunos ejemplos de hiperparámetros:

  • Número de hojas o profundidad de un árbol.
  • Número de factores latentes en una factorización matricial.
  • Tasa de aprendizaje (en muchos modelos)
  • Número de capas ocultas en una red neuronal profunda.
  • Número de agrupaciones en una agrupación de k-medias

Son simplemente los mismos “mandos” que uno “gira” al construir / ajustar un modelo de aprendizaje estadístico. Por ejemplo, en el descenso de gradiente estocástico, uno de estos puede ser la tasa de aprendizaje (o coeficiente de “tamaño de paso”). La razón para denotar uno de estos valores ajustables en un algoritmo de aprendizaje automático con el prefijo “hiper-” es decir explícitamente que no es un “parámetro modelo” que se optimiza / aprende durante una fase de entrenamiento (y en su lugar es establecido por el diseñador humano a priori, o ajustado automáticamente a través de mecanismos de modelos externos). En la literatura, los hiperparámetros también se conocen como “metaparámetros” y “parámetros libres”.

Me gustaría refinar un punto de la publicación de Xavier Amatriain:

No se puede aprender directamente de los datos en el proceso de capacitación del modelo estándar y debe predefinirse.

Aunque quizás esté fuera del entrenamiento estándar del modelo, es importante decir que los hiperparámetros se pueden determinar a partir de los datos mediante la selección del modelo .

Por ejemplo, los hiperparámetros en la regresión de proceso gaussiana (GPR) son los parámetros adicionales que describen la función de covarianza, como el ancho de banda del gaussiano si se usa un núcleo gaussiano, y generalmente son continuos. Normalmente están determinados por una optimización que encuentra los valores de hiperparámetros que maximizan la probabilidad (o en términos prácticos, minimiza la probabilidad logarítmica). Por lo tanto, se pueden aprender directamente de los datos y no es necesario que estén predefinidos.

Otro ejemplo, quizás más familiar, está en la regresión de LASSO. Las variables se pueden dividir en la salida del entrenamiento estándar [matemáticas] \ beta [/ matemáticas] (los coeficientes de regresión), mientras que el factor de penalización [matemáticas] \ lambda [/ matemáticas] es el hiperparámetro. Hay una variedad de criterios para seleccionar [matemática] \ beta [/ matemática] y [matemática] \ lambda [/ matemática] pero nuevamente pueden determinarse directamente a partir de los datos.

Del mismo modo, para hiperparámetros de valor discreto (como los que se enumeran en ibid. ), Utilizando AIC, BIC, etc., como criterios permiten que los hiperparámetros de valor entero se determinen a través de un proceso de selección de modelo.

Los hiperparámetros son propiedades específicas del modelo que son ‘fijas’ incluso antes de entrenar y probar su modelo con datos. Un ejemplo es el árbol de decisión. Un árbol de decisión básicamente toma el espacio de características y luego los divide en regiones cada vez más pequeñas, determinando dónde dividir en función de minimizar una métrica de error si clasifica las regiones después de la división de una manera u otra. Una vez que finaliza el proceso, las regiones finales son ‘hojas’ del árbol. Puede imaginar que cuántos puntos de datos hay en cada hoja es una regla que puede establecer de antemano para el modelo. Puede requerir que una hoja contenga al menos 50 puntos o solo 1 punto.

Me gusta imaginar hiperparámetros como un punto de flexibilidad que permite que un modelo se adapte mejor a los datos que se proporcionan. Cuantos más hiperparámetros tenga que controlar, mejor podrá ajustarse a ese modelo, pero es más probable que ajuste demasiado su modelo si no tiene cuidado también.

Por lo tanto, seleccionar los hiperparámetros correctos no suele ser una tarea fácil. Dos formas comunes son hacer una búsqueda de cuadrícula (crear listas finitas para posibles hiperparámetros y ajustar modelos a todas las combinaciones y elegir el modelo con mejor rendimiento) o una búsqueda aleatoria (generar los hiperparámetros al azar a partir de alguna distribución, ajustar el modelo y encontrar los hiperparámetros que optimizan su puntaje general, precisión o alguna otra métrica).

El rol del algoritmo de aprendizaje automático es entrenar un modelo a partir de un conjunto de ejemplos dados. Los hiperparámetros, los parámetros libres o los metaparámetros son los parámetros en cualquier algoritmo de aprendizaje automático, que no se pueden aprender usando ese algoritmo. Por lo tanto, estos parámetros deben asignarse antes de la capacitación del modelo. Por el contrario, algunos parámetros se entrenan a través del algoritmo de la máquina, que se denominan parámetros del modelo.

Por ejemplo, el entrenamiento de la red neuronal artificial requiere cuatro pasos de decisión: selección del tipo de modelo con algoritmo, selección de la arquitectura de la red, asignación de parámetros de entrenamiento y aprendizaje de los parámetros del modelo. Por lo general, los parámetros de arquitectura y entrenamiento se denominan hiperparámetros.

Tipo de modelo

En el aprendizaje automático, dependiendo del tipo de problema, debe decidir el tipo de modelo como: red neuronal recurrente o de avance, máquina de vectores de soporte, regresión lineal, etc.

Arquitectura

Después de decidir el tipo de modelo, dependiendo de la experiencia previa, debe decidir la arquitectura del modelo: número de capas ocultas, número de nodos por capa oculta, número de capas de convolución, número y propiedades de filtro, normalización de lotes y agrupación capa, etc.

Parámetros de entrenamiento

Después de decidir el tipo de modelo y la arquitectura respectiva, se utilizan algunos parámetros para decidir cómo se entrenarán los modelos, como el aprendizaje y la velocidad de impulso, el tamaño del lote, etc., tales parámetros se denominan parámetros de entrenamiento.

Parámetro del modelo

Después de considerar todas las decisiones mencionadas anteriormente, ahora el modelo está listo para identificar el valor de algunos parámetros para ajustarse a los datos dados. Dichos parámetros se denominan parámetros del modelo. Ejemplo: pesos y sesgos en la red neuronal.

Los hiperparámetros son aquellos parámetros que no se clasifican estrictamente como parámetros del modelo. Por lo tanto, no puede optimizar estos parámetros junto con los parámetros habituales del modelo optimizando la función objetivo ([matemática] F_ {obj} [/ matemática]).

El hiperparámetro más común es el parámetro de regularización ([math] \ lambda [/ math]) que controla la complejidad de la regularización.

[matemáticas] F_ {obj} [/ matemáticas] = entrenar MSE + [matemáticas] \ lambda [/ matemáticas] * costo de complejidad de regularización

Otro de esos hiperparámetros es la tasa de aprendizaje ([matemáticas] \ eta [/ matemáticas]) para las actualizaciones de gradiente de los parámetros del modelo ([matemáticas] \ theta [/ matemáticas])

[matemáticas] \ theta: = \ theta \; [/ matemáticas] [matemáticas] – \; \ eta [/ math] * gradiente

Estos parámetros generalmente se eligen mediante validación cruzada o búsqueda de cuadrícula. Estos valores permanecen fijos una vez elegidos, durante todo el entrenamiento del modelo.

Los hiperparámetros no tienen una definición rigurosa en la mayoría de los marcos de aprendizaje automático, pero intuitivamente gobiernan el sistema subyacente en un “nivel superior” que los parámetros primarios de interés. Esto se puede entender mejor a partir de un ejemplo.

Digamos que estás lanzando una moneda que aterriza con probabilidad [math] \ theta [/ math]. Lanzas la moneda 20 veces y obtienes 15 caras. Sin embargo, en lugar de estimar [math] \ theta [/ math] directamente como [math] 15/20 = 75% [/ math], supongamos que tiene un conocimiento previo adicional sobre cuál es la probabilidad de que la moneda caiga cabezas. Es decir, cree que la mayoría de las monedas producidas en el mundo tenderán a tener una probabilidad de 1/2, y desea modelar explícitamente su incertidumbre sobre este parámetro agregando una distribución previa: [matemáticas] p \ sim Beta (\ alpha, \ beta) [/ math] para algunos [math] \ alpha, \ beta \ in \ mathbb {R} [/ math].

Luego, la distribución posterior [matemática] p (\ theta \ mid \ text {15 caras de 20 monedas)} / / matemática puede calcularse como [matemática] Beta (\ alpha + 15, \ beta + 5) [/ mates]. Usando el valor promedio de la parte posterior como su estimación de [matemáticas] \ theta [/ matemáticas], se obtiene

[matemáticas] \ theta = \ frac {\ alpha + 15} {\ alpha + \ beta + 20} [/ matemáticas]

Ahora observe la importancia explícita de los hiperparámetros [math] \ alpha, \ beta [/ math]. Especificar una distribución previa de [math] Beta (1,1) [/ math] representa una creencia previa débil de que la moneda tiene una probabilidad de 1/2 de lanzar caras: [math] \ theta \ aproximadamente 72.7% [/ math]. Por otro lado, [matemáticas] Beta (10,10) [/ matemáticas] representa una creencia bastante fuerte: [matemáticas] \ theta \ aproximadamente 62.5% [/ matemáticas]. Por lo tanto, si bien los hiperparámetros no son directamente de interés, pueden influir fuertemente en el resultado final de su procedimiento de inferencia.

Los hiperparámetros surgen naturalmente cuando se considera el enfoque bayesiano para el aprendizaje estadístico, que implica encontrar la distribución de probabilidad de los parámetros del modelo dado un conjunto de datos de entrenamiento:

[matemáticas] \ begin {align} p (\ vec {w} \ mid \ vec {x}, \ vec {t}) \ propto p (\ vec {t} \ mid \ vec {x}, \ vec {w }) p (\ vec {w}) \ end {align} [/ math]

En esa expresión, [math] p (\ vec {w}) [/ math] en el lado derecho es la distribución anterior, que representa los supuestos sobre los parámetros del modelo. Para ser más explícito, en realidad debería escribirse como [math] p (\ vec {w} \ mid \ alpha) [/ math], donde [math] \ alpha [/ math] es un hiperparámetro .

Como ejemplo, suponga que se supone que la distribución previa de los parámetros del modelo es una distribución gaussiana con media cero:

[matemáticas] \ begin {align} p (\ vec {w} \ mid \ alpha) = \ left (\ frac {1} {2 \ pi \ alpha ^ 2} \ right) ^ {M / 2} e ^ { – \ vec {w} \ cdot \ vec {w} / (2 \ alpha ^ 2)} \ end {align} [/ math]

Aquí, el hiperparámetro [math] \ alpha [/ math] es la varianza del parámetro modelo [math] \ vec {w} [/ math].

Buena pregunta.

Según mi experiencia en redes neuronales, los hiperparámetros son cosas que los usuarios de la aplicación deben inicializar. Por ejemplo, tasa de aprendizaje y tamaño de lote, etc.

More Interesting

¿Por qué no se prueba bien Theano en otros sistemas que no sean Linux?

¿Es posible aplicar la localización de objetos sin tener regiones de caja en la verdad básica?

¿Qué significa el valor propio de un hessiano en el aprendizaje automático?

¿Cómo responden las redes neuronales profundas para la clasificación de imágenes a las variaciones típicas de la imagen, como la iluminación, la distancia focal, etc.?

Cómo calcular la similitud de coseno entre tweets

¿Cómo aprendo estadísticas y probabilidad de aprendizaje automático?

¿Cómo se comparan las bibliotecas de aprendizaje automático de Python con las de Go?

¿Cuál es la relación de la función objetivo de muestreo negativo con la función objetivo original en word2vec?

¿Cuál es su opinión sobre los rastros de elegibilidad para el aprendizaje de la diferencia temporal? ¿Es solo una asignación de crédito o un truco de aceleración?

Cómo explicar el aprendizaje automático y la minería de datos a personas no informáticas

¿Cuáles son las principales aplicaciones de aprendizaje profundo en centros de datos?

¿Cuáles son los principales avances en el procesamiento del lenguaje natural en 2015?

¿Cambridge o Stanford / Berkeley son mejores en aprendizaje automático?

¿Cuáles son las consecuencias y desventajas de usar datos agregados? ¿Cómo podemos combatirlos si no hay datos de nivel granular?

¿Por qué visualizamos filtros en redes neuronales convolucionales? ¿No son los filtros solo conjuntos de pesas? ¿De qué sirve tratar un conjunto de pesas como una imagen?