Ajuste de Hiperparámetros con Random Search en Redes Neuronales

Clase 14 de 17Curso de Deep Learning con TensorFlow y Keras

Resumen

¿Cómo implementar Random Search para ajustar hiperparámetros en Keras?

Optimizar los hiperparámetros de un modelo de machine learning es esencial para lograr un alto rendimiento. Random Search es una técnica que ayuda a explorar diversas configuraciones y encontrar la más adecuada de manera automatizada. Utilizando la librería Keras Tuner, podemos ajustar nuestros modelos de manera efectiva. A continuación, te mostramos cómo implementar este método para redes neuronales en Keras.

¿Cómo construir y configurar el modelo inicial?

La construcción del modelo es un paso crucial. Consta de las capas de entrada, ocultas y salida. Las configuramos así:

  • Capa de entrada y salida: Se mantienen como en el modelo original.
  • Primera capa oculta: Definida por "units layer one", con valores entre 10 a 16. Se exploran diferentes configuraciones (10, 12, 14, 16) en pasos de dos en dos usando funciones de activación como ReLU o tangente hiperbólica.
  • Capa de dropout ajustable: Varía de 0 a 0.5 en pasos de 0.1, ajustando así el riesgo de sobreajuste.
  • Segunda capa opcional: Comprende de 5 a 10 neuronas, manteniendo concordancia con la primera capa.

Para el optimizador, podemos optar entre distintos algoritmos como Adam y AdamW, evaluando cuál funciona mejor.

¿Cuáles son los parámetros a configurar en Keras Tuner?

Para configurar Keras Tuner y optimizar el modelo, seguimos los siguientes pasos:

  1. Definir la métrica de optimización: En este caso, optimizamos el accuracy en la validación.
  2. Probar combinaciones: Ejecutamos diez combinaciones, con un número definido de ejecuciones por cada una.
  3. Configurar directorio y proyecto: Establecemos un directorio para almacenar configuraciones y nombramos el proyecto, por ejemplo, como "ajuste del abandono".
  4. Inicializar búsqueda: Para esta búsqueda inicial, utilizamos 20 epochs, mientras que para el entrenamiento final empleamos 50 epochs.

El proceso puede llevar varios minutos, alrededor de 15, dependiendo del hardware y del tamaño del dataset.

¿Cuáles son los resultados y cómo guardamos el mejor modelo?

Tras completar las iteraciones de búsqueda, se obtienen resultados en términos de accuracy y configuraciones óptimas de hiperparámetros:

  • Mejor configuración identificada:
    • Neuronas en la primera capa: 12.
    • Optimizador: Adam.
    • Dropout: 0.1.

Con los mejores parámetros identificados, podemos guardar el modelo configurado como Best Model. Luego procedemos a realizar los análisis de métricas y visualizaciones:

  • Matriz de confusión: Ayuda a entender el rendimiento del modelo con 931 y 204 correctamente clasificados.
  • Reporte de métricas: Con un recall de 90% y un F1-score de 0.87, lo cual es prometedor.

Visualizamos el rendimiento del modelo en gráficos de accuracy y loss, verificando mejoras significativas con respecto a iteraciones anteriores.

¿Por qué es importante optimizar los hiperparámetros?

Random Search no solo aumenta la eficiencia en la búsqueda de la mejor configuración, sino que también añade confianza en la toma de decisiones al ser automatizada. Evita el uso de valores arbitrarios y permite realizar ajustes precisos en las capas de la red. Al aplicar técnicas como el dropout, minimizamos el riesgo de sobreajuste, mejorando el rendimiento general del modelo.

Con estrategias de optimización avanzadas, construyes modelos más robustos y reduces el tiempo de entrenamiento al máximo. ¡Sigue aprendiendo y mejorando tus modelos! En la próxima clase, profundizaremos en cómo guardar un modelo para evitar repetir entrenamientos innecesarios.