Créer un autoencodeur
Les autoencodeurs ont plusieurs applications intéressantes, comme la détection d’anomalies ou la réduction de bruit d’image. Leur objectif est de produire une sortie identique à l’entrée. L’entrée est compressée dans un espace de dimension plus faible, encodée. Le modèle apprend ensuite à la décoder pour retrouver sa forme d’origine.
Vous allez encoder puis décoder le jeu de données MNIST de chiffres manuscrits. La couche cachée produira une représentation de l’image en 32 dimensions, alors que l’image d’origine comporte 784 pixels (28 × 28). L’autoencodeur apprendra donc à transformer l’image d’origine de 784 pixels en une image compressée de 32 « pixels » et à utiliser cette représentation encodée pour reconstituer l’image d’origine de 784 pixels.
Le modèle Sequential et les couches Dense sont prêts à être utilisés.
Construisons un autoencodeur !
Cet exercice fait partie du cours
Introduction au Deep Learning avec Keras
Instructions
- Créez un modèle
Sequential. - Ajoutez une couche dense avec autant de neurones que les dimensions de l’image encodée et un
input_shapeégal au nombre de pixels de l’image d’origine. - Ajoutez une couche finale avec autant de neurones que de pixels dans l’image en entrée.
- Compilez votre
autoencoderen utilisantadadeltacomme optimiseur etbinary_crossentropycomme fonction de perte, puis affichez son résumé.
Exercice interactif pratique
Essayez cet exercice en complétant cet exemple de code.
# 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
____