# Hiperparámetro (aprendizaje automático)

No confundir con Hiperparámetro (Bayesiano)
En el aprendizaje automático, un hiperparámetro es un parámetro cuyo valor se utiliza para controlar el proceso de aprendizaje. En cambio, los valores de otros parámetros (normalmente los pesos de los nodos) se obtienen mediante el entrenamiento.
Los hiperparámetros pueden clasificarse como hiperparámetros del modelo, que no pueden deducirse mientras se ajusta la máquina al conjunto de entrenamiento porque se refieren a la tarea de selección del modelo, o hiperparámetros del algoritmo, que en principio no influyen en el rendimiento del modelo pero afectan a la velocidad y la calidad del proceso de aprendizaje. Un ejemplo de hiperparámetro de modelo es la topología y el tamaño de una red neuronal. Ejemplos de hiperparámetros del algoritmo son la tasa de aprendizaje y el tamaño del lote, así como el tamaño del minilote. El tamaño del lote puede referirse a la muestra completa de datos, mientras que el tamaño del minilote sería un conjunto de muestras más pequeño.
Los distintos algoritmos de entrenamiento de modelos requieren distintos hiperparámetros; algunos algoritmos sencillos (como la regresión de mínimos cuadrados ordinarios) no requieren ninguno. Dados estos hiperparámetros, el algoritmo de entrenamiento aprende los parámetros a partir de los datos. Por ejemplo, LASSO es un algoritmo que añade un hiperparámetro de regularización a la regresión de mínimos cuadrados ordinarios, que debe establecerse antes de estimar los parámetros mediante el algoritmo de entrenamiento.

## Consideraciones

El tiempo necesario para entrenar y probar un modelo puede depender de la elección de sus hiperparámetros. Un hiperparámetro suele ser de tipo continuo o entero, lo que da lugar a problemas de optimización de tipo mixto. La existencia de algunos hiperparámetros está condicionada por el valor de otros, por ejemplo, el tamaño de cada capa oculta en una red neuronal puede estar condicionado por el número de capas.

### Parámetros de difícil aprendizaje

Por lo general, aunque no siempre, los hiperparámetros no pueden aprenderse con los conocidos métodos basados en el gradiente (como el descenso del gradiente o el LBFGS), que suelen emplearse para aprender parámetros. Estos hiperparámetros son los parámetros que describen la representación de un modelo que no pueden aprenderse con los métodos de optimización habituales pero que, sin embargo, afectan a la función de pérdida. Un ejemplo sería el hiperparámetro de tolerancia para errores en máquinas de vectores soporte.

### Parámetros imposibles de entrenar

A veces, los hiperparámetros no pueden aprenderse a partir de los datos de entrenamiento porque aumentan agresivamente la capacidad de un modelo y pueden empujar la función de pérdida a un mínimo no deseado (sobreajustándose a los datos y captando ruido en ellos), en lugar de asignar correctamente la riqueza de la estructura de los datos. Por ejemplo, si tratamos el grado de una ecuación polinómica que se ajusta a un modelo de regresión como un parámetro entrenable, el grado aumentaría hasta que el modelo se ajustara perfectamente a los datos, lo que produciría un error de entrenamiento bajo, pero un rendimiento de generalización pobre.

### Ajuste

La mayor parte de la variación de rendimiento puede atribuirse a unos pocos hiperparámetros. La sintonizabilidad de un algoritmo, hiperparámetro o hiperparámetros interactuantes es una medida de cuánto rendimiento puede obtenerse sintonizándolo. Para una LSTM, mientras que la tasa de aprendizaje seguida del tamaño de la red son sus hiperparámetros más cruciales, la dosificación y el impulso no tienen un efecto significativo en su rendimiento.
Aunque algunas investigaciones han defendido el uso de tamaños de minilotes de miles, otros trabajos han encontrado el mejor rendimiento con tamaños de minilotes de entre 2 y 32.

### Robustez

Una estocasticidad inherente al aprendizaje implica directamente que el rendimiento empírico de los hiperparámetros no es necesariamente su verdadero rendimiento. Los métodos que no son robustos a simples cambios en los hiperparámetros, semillas aleatorias o incluso diferentes implementaciones del mismo algoritmo no pueden integrarse en sistemas de control de misión crítica sin una simplificación y robustecimiento significativos.
Los algoritmos de aprendizaje por refuerzo, en particular, requieren medir su rendimiento con un gran número de semillas aleatorias, y también medir su sensibilidad a la elección de hiperparámetros. Su evaluación con un pequeño número de semillas aleatorias no captura el rendimiento adecuadamente debido a la alta varianza. Algunos métodos de aprendizaje por refuerzo, por ejemplo Gradiente de política determinista profundo DDPG (Deep Deterministic Policy Gradient), son más sensibles a la elección de hiperparámetros que otros.

### Optimización

La optimización de hiperparámetros encuentra una tupla de hiperparámetros que produce un modelo óptimo que minimiza una función de pérdida predefinida en datos de prueba dados. La función objetivo toma una tupla de hiperparámetros y devuelve la pérdida asociada.

## Reproducibilidad

Aparte de ajustar los hiperparámetros, el aprendizaje automático implica almacenar y organizar los parámetros y resultados, y asegurarse de que sean reproducibles. A falta de una infraestructura sólida para este fin, el código de investigación suele evolucionar rápidamente y compromete aspectos esenciales como la contabilidad y la reproducibilidad. Las plataformas de colaboración en línea para el aprendizaje automático van más allá al permitir a los científicos compartir, organizar y discutir automáticamente experimentos, datos y algoritmos. La reproducibilidad puede ser especialmente difícil para los modelos de aprendizaje profundo.