Couche d'échantillonnage
Pour ajouter une couche d’échantillonnage (sample layer) dans un Variational AutoEncoder (VAE), il est nécessaire de convertir les paramètres de l’espace latent (la moyenne et la log-variance) en un vecteur latent échantillonné. Ce processus utilise la technique appelée reparamétrage. Cela permet au modèle d’apprendre via backpropagation tout en échantillonnant aléatoirement dans l’espace latent.
Voici les étapes et un exemple pour inclure une couche d’échantillonnage dans l’architecture d’un VAE.
1. Reparamétrage pour la couche d’échantillonnage
L’idée du reparamétrage est la suivante :
z = \mu + \sigma \cdot \epsilon
Où :
( \mu )
est la moyenne, apprise par l’encodeur.( \sigma )
est l’écart type, calculé à partir de la log-variance apprise par l’encodeur.( \epsilon )
est un bruit échantillonné à partir d’une distribution gaussienne normale( \mathcal{N}(0, I) )
.
2. Ajouter une fonction de reparamétrage
Voici une fonction qui peut être utilisée dans la couche d’échantillonnage :
3. Construire l’architecture du VAE avec la couche d’échantillonnage
3.1. Encodeur
L’encodeur prend une image en entrée et produit deux sorties : la moyenne $( \mu )et la log-variance
( \log(\sigma^2) ).$
3.2. Décodeur
Le décodeur prend le vecteur latent ( z )
en entrée et génère l’image reconstruite.
3.3. Architecture complète du VAE
Ensuite, nous connectons l’encodeur et le décodeur pour créer le modèle VAE complet.
4. Calculer la perte (Loss)
Dans un VAE, la fonction de perte est composée de deux parties :
- La perte de reconstruction : mesure à quel point les données générées sont proches des données réelles.
- La divergence KL : mesure à quel point la distribution latente apprise
( q(z|x) )
diverge de la distribution gaussienne normale( p(z) )
.
5. Compilation du modèle
Nous compilons enfin le modèle avec la perte spécifique au VAE.
6. Entraînement du modèle
Ensuite, vous pouvez entraîner le modèle avec les données de Fashion MNIST par exemple :
Conclusion
En utilisant une couche d’échantillonnage avec le reparamétrage dans le VAE, nous permettons à notre modèle de créer des vecteurs latents tout en gardant la rétropropagation activée, ce qui est essentiel pour l’entraînement. Ensuite, ces vecteurs sont passés dans le décodeur pour générer de nouvelles données.