Los hiperparámetros son variables que controlan diferentes aspectos del entrenamiento. Estos son tres hiperparámetros comunes:
Por el contrario, los parámetros son las variables, como los pesos y la ordenada al origen, que forman parte del modelo. En otras palabras, los hiperparámetros son valores que controlas; los parámetros son valores que el modelo calcula durante el entrenamiento.
Tasa de aprendizaje
La tasa de aprendizaje es un número de punto flotante que estableces y que influye en la rapidez con la que converge el modelo. Si la tasa de aprendizaje es demasiado baja, el modelo puede tardar mucho tiempo en converger. Sin embargo, si la tasa de aprendizaje es demasiado alta, el modelo nunca convergence, sino que rebota alrededor de los pesos y la sesgo que minimizan la pérdida. El objetivo es elegir una tasa de aprendizaje que no sea demasiado alta ni demasiado baja para que el modelo converja rápidamente.
La tasa de aprendizaje determina la magnitud de los cambios que se deben realizar en las ponderaciones y el sesgo durante cada paso del proceso de descenso de gradientes. El modelo multiplica el gradiente por la tasa de aprendizaje para determinar los parámetros del modelo (valores de peso y sesgo) para la siguiente iteración. En el tercer paso del descenso de gradientes, la "pequeña cantidad" para moverse en la dirección de la pendiente negativa se refiere a la tasa de aprendizaje.
La diferencia entre los parámetros del modelo anterior y los del modelo nuevo es proporcional a la pendiente de la función de pérdida. Por ejemplo, si la pendiente es grande, el modelo da un paso grande. Si es pequeño, da un paso pequeño. Por ejemplo, si la magnitud del gradiente es 2.5 y la tasa de aprendizaje es 0.01, el modelo cambiará el parámetro en 0.025.
La tasa de aprendizaje ideal ayuda al modelo a converger dentro de una cantidad razonable de iteraciones. En la Figura 21, la curva de pérdida muestra que el modelo mejora significativamente durante las primeras 20 iteraciones antes de comenzar a converger:
Figura 21: Gráfico de pérdidas que muestra un modelo entrenado con una tasa de aprendizaje que converge rápidamente
Por el contrario, una tasa de aprendizaje demasiado pequeña puede tardar demasiado en converger. En la Figura 22, la curva de pérdida muestra que el modelo solo realiza mejoras mínimas después de cada iteración:
Figura 22. Gráfico de pérdida que muestra un modelo entrenado con una tasa de aprendizaje pequeña.
Una tasa de aprendizaje demasiado alta nunca converge porque cada iteración hace que la pérdida rebote o aumente de forma continua. En la Figura 23, la curva de pérdida muestra que el modelo disminuye y, luego, aumenta la pérdida después de cada iteración. En la Figura 24, la pérdida aumenta en iteraciones posteriores:
Figura 23. Gráfico de pérdida que muestra un modelo entrenado con una tasa de aprendizaje demasiado grande, en el que la curva de pérdida fluctúa de forma muy pronunciada, sube y baja a medida que aumentan las iteraciones.
Figura 24: Gráfico de pérdida que muestra un modelo entrenado con una tasa de aprendizaje demasiado grande, en el que la curva de pérdida aumenta drásticamente en iteraciones posteriores.
Ejercicio: Comprueba tu comprensión
Tamaño del lote
El tamaño del lote es un hiperparámetro que se refiere a la cantidad de ejemplos que procesa el modelo antes de actualizar sus pesos y sesgos. Podrías pensar que el modelo debería calcular la pérdida para cada ejemplo del conjunto de datos antes de actualizar los pesos y la polarización. Sin embargo, cuando un conjunto de datos contiene cientos de miles o incluso millones de ejemplos, no es práctico usar el lote completo.
Dos técnicas comunes para obtener el gradiente correcto en promedio sin necesidad de mirar cada ejemplo en el conjunto de datos antes de actualizar los pesos y el sesgo son el descenso de gradientes estocástico y el descenso de gradientes estocástico de minilote:
Descenso de gradientes estocástico (SGD): El descenso de gradientes estocástico solo usa un solo ejemplo (un tamaño de lote de uno) por iteración. Cuando se dan suficientes iteraciones, el SGD funciona, pero es muy ruidoso. El término “ruido” hace referencia a las variaciones durante el entrenamiento que hacen que la pérdida aumente en lugar de disminuir durante una iteración. El término "estocástico" indica que el ejemplo que compone cada lote se elige de forma aleatoria.
Observa en la siguiente imagen cómo la pérdida fluctúa ligeramente a medida que el modelo actualiza sus ponderaciones y sesgos con el descenso del gradiente estocástico, lo que puede generar ruido en el gráfico de pérdida:
Figura 25. Modelo entrenado con descenso de gradientes estocástico (SGD) que muestra ruido en la curva de pérdida.
Ten en cuenta que el uso del descenso estocástico del gradiente puede producir ruido en toda la curva de pérdida, no solo cerca de la convergencia.
Descenso de gradientes estocástico de minilote (SGD de minilote): El descenso de gradientes estocástico de minilote es un equilibrio entre el SGD y el lote completo. Para una cantidad de datos de $N$, el tamaño del lote puede ser cualquier número mayor que 1 y menor que $ N $. El modelo elige los ejemplos incluidos en cada lote de forma aleatoria, promedia sus gradientes y, luego, actualiza los pesos y sesgos una vez por iteración.
La determinación de la cantidad de ejemplos para cada lote depende del conjunto de datos y los recursos de procesamiento disponibles. En general, los tamaños de lotes pequeños se comportan como el SGD, y los tamaños de lotes más grandes se comportan como el descenso del gradiente de lotes completos.
Figura 26. Modelo entrenado con SGD de minilotes
Cuando entrenas un modelo, es posible que pienses que el ruido es una característica no deseada que se debe eliminar. Sin embargo, una cierta cantidad de ruido puede ser algo bueno. En módulos posteriores, aprenderás cómo el ruido puede ayudar a un modelo a generalizar y encontrar los sesgos y los pesos óptimos en una red neuronal.
Ciclos de entrenamiento
Durante el entrenamiento, un ciclo de entrenamiento significa que el modelo procesó cada ejemplo del conjunto de entrenamiento una vez. Por ejemplo, dado un conjunto de entrenamiento con 1,000 ejemplos y un tamaño de minilote de 100 ejemplos, el modelo necesitará 10 iterations para completar una época.
El entrenamiento suele requerir muchas épocas. Es decir, el sistema necesita procesar cada ejemplo en el conjunto de entrenamiento varias veces.
La cantidad de épocas es un hiperparámetro que estableces antes de que el modelo comience a entrenarse. En muchos casos, deberás experimentar con la cantidad de épocas que tarda el modelo en converger. En general, una mayor cantidad de ciclos de entrenamiento produce un mejor modelo, pero también lleva más tiempo entrenarlo.
Figura 27: Lote completo en comparación con minilote.
En la siguiente tabla, se describe cómo se relacionan el tamaño del lote y las épocas con la cantidad de veces que un modelo actualiza sus parámetros.
Tipo de lote | Cuándo se producen las actualizaciones de pesos y sesgos |
---|---|
Lote completo | Después de que el modelo vea todos los ejemplos en el conjunto de datos. Por ejemplo, si un conjunto de datos contiene 1,000 ejemplos y el modelo se entrena durante 20 épocas, el modelo actualiza los pesos y la polarización 20 veces, una por época. |
Descenso de gradientes estocástico | Después de que el modelo analiza un solo ejemplo del conjunto de datos. Por ejemplo, si un conjunto de datos contiene 1,000 ejemplos y se entrena durante 20 épocas, el modelo actualiza los pesos y la polarización 20,000 veces. |
Descenso de gradientes estocástico por minilotes | Después de que el modelo analiza los ejemplos de cada lote. Por ejemplo, si un conjunto de datos contiene 1,000 ejemplos, el tamaño del lote es 100 y el modelo se entrena durante 20 épocas, el modelo actualiza los pesos y la polarización 200 veces. |