Einen Autoencoder erstellen
Autoencoder haben mehrere spannende Anwendungen, etwa Anomalieerkennung oder Bildentrauschen. Sie zielen darauf ab, eine Ausgabe zu erzeugen, die mit den Eingaben identisch ist. Die Eingabe wird in einen Raum geringerer Dimension komprimiert, also kodiert. Das Modell lernt dann, sie wieder in ihre ursprüngliche Form zu dekodieren.
Du wirst den MNIST-Datensatz handgeschriebener Ziffern kodieren und dekodieren. Die verborgene Schicht kodiert eine 32-dimensionale Darstellung des Bildes, das ursprünglich aus 784 Pixeln (28 × 28) besteht. Der Autoencoder lernt im Kern, das ursprüngliche 784-Pixel-Bild in ein komprimiertes 32-Pixel-Bild zu verwandeln und diese kodierte Repräsentation zu nutzen, um das ursprüngliche 784-Pixel-Bild wiederherzustellen.
Das Sequential-Modell und Dense-Schichten stehen bereit.
Lass uns einen Autoencoder bauen!
Diese Übung ist Teil des Kurses
<Kurs>Einstieg ins Deep Learning mit Keras</Kurs>Übungsanweisungen
- Erstelle ein
Sequential-Modell. - Füge eine Dense-Schicht mit so vielen Neuronen wie die Dimensionen des kodierten Bildes hinzu und setze
input_shapeauf die Anzahl der Pixel im Originalbild. - Füge eine letzte Schicht mit so vielen Neuronen hinzu, wie das Eingabebild Pixel hat.
- Kompiliere deinen
autoencodermitadadeltaals Optimierer undbinary_crossentropyals Loss und gib dann eine Zusammenfassung aus.
Interaktive praktische Übung
Versuche dich an dieser Übung, indem du diesen Beispielcode vervollständigst.
# 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
____