Construyendo un autoencoder
Los autoencoders tienen varias aplicaciones interesantes, como la detección de anomalías o la eliminación de ruido en imágenes. Su objetivo es producir una salida idéntica a la entrada. La entrada se comprime en un espacio de menor dimensionalidad, codificado. Luego, el modelo aprende a decodificarlo para volver a su forma original.
Vas a codificar y decodificar el conjunto de datos MNIST de dígitos escritos a mano. La capa oculta codificará una representación de 32 dimensiones de la imagen, que originalmente consta de 784 píxeles (28 x 28). En esencia, el autoencoder aprenderá a transformar la imagen original de 784 píxeles en una imagen comprimida de 32 "píxeles" y a usar esa representación codificada para reconstruir la imagen original de 784 píxeles.
El modelo Sequential y las capas Dense están listas para que las uses.
¡Vamos a construir un autoencoder!
Este ejercicio forma parte del curso
Introducción al Deep Learning con Keras
Instrucciones del ejercicio
- Crea un modelo
Sequential. - Añade una capa densa con tantas neuronas como dimensiones de la imagen codificada y con
input_shapeigual al número de píxeles de la imagen original. - Añade una capa final con tantas neuronas como píxeles en la imagen de entrada.
- Compila tu
autoencoderusandoadadeltacomo optimizador ybinary_crossentropycomo función de pérdida, y luego muéstralo con un resumen.
ejercicio interactivo práctico
Prueba este ejercicio completando este código de ejemplo.
# Start with a sequential model
autoencoder = ____
# Add a dense layer with input the original image pixels and neurons the encoded representation
autoencoder.add(____(____, input_shape=(____, ), activation="relu"))
# Add an output layer with as many neurons as the orginal image pixels
autoencoder.add(____(____, activation = "sigmoid"))
# Compile your model with adadelta
autoencoder.compile(optimizer = ____, loss = ____)
# Summarize your model structure
____