Detección de sobreajuste
En este ejercicio, trabajaremos con un pequeño subconjunto de ejemplos del conjunto de datos original de letras del lenguaje de signos. Una muestra pequeña, unida a un modelo muy parametrizado, conducirá generalmente a un ajuste excesivo. Esto significa que tu modelo se limitará a memorizar la clase de cada ejemplo, en lugar de identificar características que generalicen a muchos ejemplos.
Detectarás el sobreajuste comprobando si la pérdida de la muestra de validación es sustancialmente mayor que la pérdida de la muestra de entrenamiento y si aumenta con el entrenamiento. Con una muestra pequeña y una tasa de aprendizaje alta, el modelo tendrá dificultades para converger en un óptimo. Establecerás una tasa de aprendizaje baja para el optimizador, lo que facilitará la identificación del sobreajuste.
Observa que keras
se ha importado de tensorflow
.
Este ejercicio forma parte del curso
Introducción a TensorFlow en Python
Instrucciones de ejercicio
- Define un modelo secuencial en
keras
llamadomodel
. - Añade una primera capa densa con 1024 nodos, una activación
relu
y una forma de entrada de (784,). - Ajusta el ritmo de aprendizaje a 0,001.
- Configura la operación
fit()
para que itere sobre la muestra completa 50 veces y utilice el 50% de la muestra con fines de validación.
Ejercicio interactivo práctico
Pruebe este ejercicio completando este código de muestra.
# Define sequential model
____
# Define the first layer
____
# Add activation function to classifier
model.add(keras.layers.Dense(4, activation='softmax'))
# Finish the model compilation
model.compile(optimizer=keras.optimizers.Adam(lr=____),
loss='categorical_crossentropy', metrics=['accuracy'])
# Complete the model fit operation
model.fit(sign_language_features, sign_language_labels, epochs=____, validation_split=____)