Zacznij terazZacznij za darmo

Budowanie autoenkodera

Autoenkoderzy mają wiele ciekawych zastosowań – od wykrywania anomalii po usuwanie szumów z obrazów. Ich zadaniem jest odtworzenie danych wyjściowych identycznych z wejściowymi. Dane wejściowe są kompresowane do przestrzeni o niższym wymiarze – to etap kodowania. Model uczy się następnie je dekodować z powrotem do oryginalnej postaci.

Zakodujemy i zdekodujemy zbiór danych MNIST zawierający odręcznie pisane cyfry. Warstwa ukryta będzie kodować 32-wymiarową reprezentację obrazu, który pierwotnie składa się z 784 pikseli (28 x 28). Autoenkoder nauczy się zatem przekształcać oryginalny obraz o 784 pikselach w skompresowaną reprezentację 32-pikselową, a następnie odtwarzać z niej pierwotny obraz 784-pikselowy.

Model Sequential oraz warstwy Dense są już gotowe do użycia.

Zbudujmy autoenkoder!

To ćwiczenie jest częścią kursu

Wprowadzenie do uczenia głębokiego z Keras

Zobacz kurs

Instrukcje do ćwiczenia

  • Utwórz model Sequential.
  • Dodaj warstwę gęstą z liczbą neuronów równą wymiarowi zakodowanego obrazu oraz input_shape odpowiadającym liczbie pikseli w oryginalnym obrazie.
  • Dodaj warstwę końcową z liczbą neuronów równą liczbie pikseli w obrazie wejściowym.
  • Skompiluj swój autoencoder, używając optymalizatora adadelta i funkcji straty binary_crossentropy, a następnie wyświetl jego podsumowanie.

Interaktywne ćwiczenie praktyczne

Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.

# 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
____
Edytuj i uruchom kod