Monté un buscador de hiperparámetros con Keras Tuner sobre MNIST, pero planteado como si fuera el núcleo OCR para leer números de radicado manuscritos en un juzgado. Dejé que el tuner moviera la cantidad de capas convolucionales, los filtros, el learning rate y si aplicaba dropout o no. Corrí Random Search y Grid Search por separado y comparé. Curiosamente los dos llegaron a la misma configuración: una sola capa convolucional, learning rate de 0.01 y dropout activado. El Grid Search quedó apenas arriba en exactitud de validación, 0.9803 contra 0.9789.
Escribí build_model(hp) parametrizando de 1 a 3 capas convolucionales, filtros de 32 a 128 en pasos de 32, learning rate entre 1e-2, 1e-3 y 1e-4, y dropout como booleano
Corrí Random Search y Grid Search sobre los 60 000 dígitos de entrenamiento con 20 % de validación y comparé resultados: 0.9789 y 0.9803 de exactitud en validación
Registré ambas búsquedas con callbacks de TensorBoard y las revisé desde el panel dentro de Colab
Escribí el informe en APA explicando la diferencia entre parámetros e hiperparámetros y por qué un lote grande en una red enorme no garantiza aprender, sino memorizar
Lo que costó. El tiempo de cómputo me obligó a recortar. Dejé las dos búsquedas en cuatro intentos y dos épocas cada una, y aun así el Random Search se tomó 7 minutos con 46 segundos y el Grid Search 4 con 17.
Qué pedían
El enunciado y la rúbrica, tal cual los publicaron.