Bygg en autoencoder
Autoencoders har flera intressanta användningsområden, till exempel anomalidetektion och brusreducering i bilder. Målet är att producera ett resultat som är identiskt med indata. Indatan komprimeras till ett lägre dimensionellt utrymme – den kodas. Modellen lär sig sedan att avkoda den tillbaka till sin ursprungliga form.
Du kommer att koda och avkoda MNIST-datamängden med handskrivna siffror. Det dolda lagret kodar en 32-dimensionell representation av bilden, som ursprungligen består av 784 pixlar (28 x 28). Autoencodern lär sig i grunden att omvandla den ursprungliga bilden med 784 pixlar till en komprimerad bild med 32 pixlar, och sedan använda den kodade representationen för att återskapa den ursprungliga bilden med 784 pixlar.
Modellen Sequential och Dense-lager är redo att användas.
Nu bygger vi en autoencoder!
Den här övningen är en del av kursen
Introduktion till djupinlärning med Keras
Övningsinstruktioner
- Skapa en
Sequential-modell. - Lägg till ett tätt lager med lika många neuroner som den kodade bildens dimensioner, och sätt
input_shapetill antalet pixlar i den ursprungliga bilden. - Lägg till ett slutligt lager med lika många neuroner som antalet pixlar i indatabilden.
- Kompilera din
autoencodermedadadeltasom optimerare ochbinary_crossentropysom förlustfunktion, och visa sedan en sammanfattning av den.
Interaktiv övning med praktiskt arbete
Testa den här övningen genom att slutföra den här exempelkoden.
# 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
____