Vytvoření autoencoderu
Autoencodery mají řadu zajímavých využití – například detekci anomálií nebo odstraňování šumu z obrázků. Jejich cílem je produkovat výstup totožný se vstupem. Vstupní data jsou nejprve komprimována do prostoru s nižší dimenzí – zakódována. Model se pak naučí je dekódovat zpět do původní podoby.
Budeš kódovat a dekódovat dataset MNIST ručně psaných číslic. Skrytá vrstva zakóduje obrázek do 32rozměrné reprezentace, přičemž původní obrázek má 784 pixelů (28 x 28). Autoencoder se v podstatě naučí převést původní obrázek o 784 pixelech na komprimovaný obraz o 32 pixelech a poté využít tuto zakódovanou reprezentaci k obnovení původního obrázku s 784 pixely.
Model Sequential a vrstvy Dense jsou připraveny k použití.
Pojďme autoencoder sestavit!
Toto cvičení je součástí kurzu
Úvod do hlubokého učení s Keras
Pokyny k cvičení
- Vytvoř model
Sequential. - Přidej hustou vrstvu s takovým počtem neuronů, jaký odpovídá dimenzím zakódovaného obrázku, a nastav
input_shapena počet pixelů původního obrázku. - Přidej výstupní vrstvu s takovým počtem neuronů, jaký odpovídá počtu pixelů vstupního obrázku.
- Zkompiluj svůj
autoencoders optimalizátoremadadeltaa ztrátovou funkcíbinary_crossentropy, pak ho shrň.
Interaktivní cvičení na vyzkoušení si v praxi
Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.
# 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
____