Construirea unui autoencoder
Autoencoderele au mai multe aplicații interesante, cum ar fi detectarea anomaliilor sau eliminarea zgomotului din imagini. Scopul lor este să producă o ieșire identică cu intrarea. Datele de intrare sunt comprimate într-un spațiu de dimensiune mai mică – codificate (encoded). Modelul învață apoi să le decodifice (decode) înapoi la forma originală.
Vei codifica și decodifica setul de date MNIST cu cifre scrise de mână. Stratul ascuns va produce o reprezentare de 32 de dimensiuni a imaginii, care constă inițial din 784 de pixeli (28 x 28). Autoencoderele va învăța, în esență, să transforme imaginea originală de 784 de pixeli într-o imagine comprimată de 32 de pixeli și să folosească acea reprezentare codificată pentru a reconstrui imaginea originală de 784 de pixeli.
Modelul Sequential și straturile Dense sunt deja disponibile.
Hai să construim un autoencoder!
Acest exercițiu face parte din cursul
Introducere în Deep Learning cu Keras
Instrucțiuni pentru exercițiu
- Creează un model
Sequential. - Adaugă un strat dens cu atâția neuroni câte dimensiuni are imaginea codificată și cu
input_shapeegal cu numărul de pixeli din imaginea originală. - Adaugă un strat final cu atâția neuroni câți pixeli are imaginea de intrare.
- Compilează modelul
autoencoderfolosindadadeltaca optimizer și funcția de pierderebinary_crossentropy, apoi afișează un rezumat al acestuia.
Exercițiu interactiv practic
Încearcă acest exercițiu completând acest cod de exemplu.
# 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
____