Construindo um autoencoder
Autoencoders têm várias aplicações interessantes, como detecção de anomalias e remoção de ruído em imagens. Eles buscam produzir uma saída idêntica à entrada. A entrada é comprimida em um espaço de menor dimensão, codificada. Em seguida, o modelo aprende a decodificá-la de volta à forma original.
Você vai codificar e decodificar o conjunto de dados MNIST de dígitos manuscritos. A camada oculta vai codificar uma representação de 32 dimensões da imagem, que originalmente tem 784 pixels (28 x 28). Na prática, o autoencoder vai aprender a transformar a imagem original de 784 pixels em uma versão comprimida de 32 “pixels” e usar essa representação codificada para reconstruir a imagem original de 784 pixels.
O modelo Sequential e as camadas Dense já estão prontos para você usar.
Vamos construir um autoencoder!
Este exercício faz parte do curso
Introdução ao Deep Learning com Keras
Instruções do exercício
- Crie um modelo
Sequential. - Adicione uma camada densa com tantos neurônios quanto as dimensões da imagem codificada e
input_shapeigual ao número de pixels da imagem original. - Adicione uma camada final com tantos neurônios quanto pixels na imagem de entrada.
- Compile seu
autoencoderusandoadadeltacomo otimizador ebinary_crossentropycomo função de perda, depois gere o resumo do modelo.
Exercício interativo prático
Experimente este exercício completando este código de exemplo.
# 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
____