Hiperparámetros en la clasificación
Loshiperparámetros se pueden considerar los valores que se usan para el entrenamiento. Por ejemplo, podríamos decidir entrenar de manera lenta o rápida. Los hiperparámetros afectan al entrenamiento, por lo que afectan al rendimiento final del modelo. Saber qué hiperparámetros están disponibles exactamente depende del tipo de modelo que entrenemos. Normalmente, experimentamos con hiperparámetros para optimizar el rendimiento de nuestro modelo.
Bosques aleatorios como ejemplo
Los bosques aleatorios tienen diferentes tipos de hiperparámetros disponibles. En concreto, con los bosques aleatorios, la línea entre los hiperparámetros de decisiones de arquitectura puede ser difusa. El motivo es que los hiperparámetros no solo afectan a los parámetros dentro del modelo, sino también a cómo se estructuran los árboles y el bosque.
Recuerde que, al principio del entrenamiento, a cada árbol de decisión se le proporcionan numerosas muestras, como 100 gimnastas, algunos de las cuales ganaron medallas. Se debe crear un árbol que divida progresivamente estas muestras en subgrupos de atletas más pequeños. El objetivo es que estos subgrupos contengan atletas que sean iguales, por ejemplo, dentro de cada subgrupo, todos los atletas ganaron medallas o todos no ganaron medallas. Vamos a explorar algunos hiperparámetros que pueden afectar a este proceso de entrenamiento.
Criterios de división
Durante el entrenamiento, el optimizador debe decidir cuándo dividir un nodo. Hay diferentes maneras de tomar decisiones como esta y el método elegido se conoce como hiperparámetro. Básicamente, los distintos métodos hacen referencia a diferentes maneras de evaluar la similitud de una muestra.
Los métodos comunes de dividir los nodos se basan en la teoría de la información. A grandes rasgos, se podría considerar como dividir una muestra para que las dos submuestras resultantes sean "más puras" que la original. Los métodos disponibles difieren ligeramente y pueden dar lugar a ligeras diferencias en el árbol resultante final, de forma muy similar a cómo las funciones de costo usadas para el descenso de gradiente pueden proporcionar modelos finales diferentes. En el siguiente conjunto de ejercicios, experimentaremos con dos criterios.
Disminución mínima de impurezas
El criterio utilizado para dividir nodos se puede personalizar más. Por ejemplo, establecer la disminución de pureza mínima significa que un nodo solo se puede dividir si mejora el modelo algo o bastante. Hay varios hiperparámetros relacionados que pueden bloquear la creación de nuevos nodos, como la profundidad máxima o el número mínimo de muestras en un nodo.
La razón por la que se restringe el crecimiento de un árbol demasiado lejos es para evitar el sobreajuste. Los árboles más grandes son mejores a la hora de buscar coincidencias en el conjunto de datos de entrenamiento, pero pueden ajustarse tanto a este conjunto de entrenamiento que dejen de funcionar con otros datos. En otras palabras, restringir la complejidad de un árbol puede reducir su tendencia al sobreajuste.
Número máximo de características
Cuando se crean árboles en un bosque aleatorio, se les proporciona un subconjunto de datos de entrenamiento al que ajustarse y una lista de características que se usarán. Lo importante es que cada árbol pueda recibir diferentes colecciones de características. Por ejemplo, un árbol puede usar Peso y Altura y otro Altura y Edad.
Es probable que al aumentar el número máximo de características que puede recibir cada árbol se mejore la capacidad de los mismos para ajustarse al conjunto de entrenamiento, ya que se proporciona más información. Para saber si esto ayuda o perjudica sus capacidades en el conjunto de pruebas, puede ser necesaria la experimentación. Esto se debe a que proporcionar siempre muchas características puede significar que los árboles del bosque terminen por ser más parecidos entre sí, lo que reduce la ventaja de un bosque aleatorio sobre un árbol de decisión simple. Encontrar el equilibrio entre estos extremos normalmente requiere cierta experimentación.
Propagación
El ajuste del modelo suele basarse, en algún momento, en números aleatorios. Los equipos no generan números realmente aleatorios, sino que contienen reglas que determinan cómo generar una lista de números aleatorios, dado un número inicial, denominado valor de inicialización aleatorio.
Por ejemplo, si nuestro valor de inicialización era 10 y se toman los tres primeros números "aleatorios", el equipo podría generar 0,75, 0,13, 0,68. Aunque estos números parezcan aleatorios, cada vez que partamos de 10, se obtendrá el mismo conjunto de números.
En el aprendizaje automático, usamos números aleatorios para inicializar los parámetros del modelo o para dividir los conjuntos de datos en conjuntos de entrenamiento y pruebas. Si se establece el valor de inicialización aleatorio, los valores aleatorios que se usen durante el proceso de entrenamiento serán los mismos siempre que se vuelva a ejecutar el código, lo que significa que cada vez que se vuelve a ejecutar el código, asignamos los mismos datos para probar o entrenar conjuntos y entrenar modelos que tengan el mismo estado de inicialización (parámetros iniciales).
Por el contrario, si no establecemos el valor de inicialización, lo seleccionará el equipo (por ejemplo, en función del tiempo) lo que significa que si el entrenamiento se ejecuta dos veces es posible que los resultados no sean idénticos.
La inicialización aleatoria no es estrictamente un hiperparámetro, pero lo presentamos aquí para resaltar que este parámetro externo puede desempeñar un papel en la eficacia del entrenamiento. Aunque suele ser menor, si el modelo es muy complejo o la cantidad de datos disponibles es pequeña, el rendimiento del conjunto de pruebas del modelo puede ser marcadamente diferente si se usan dos valores de inicialización distintos. En esos casos, a menudo merece la pena ejecutar el entrenamiento con varios valores de inicialización diferentes para evaluar hasta qué punto el diseño del modelo es adecuado y el rendimiento es simplemente una "cuestión de suerte".