Calcul de la perte dans un Variational AutoEncoder (VAE)
Voici comment calculer la valeur de perte dans un Variational AutoEncoder (VAE) en utilisant le code TensorFlow/Keras.
Calcul Valeur de Perte
Pour calculer la valeur de perte dans un Variational AutoEncoder (VAE), nous devons combiner deux types de pertes :
- Perte de reconstruction : Elle mesure la différence entre l’image d’entrée et l’image reconstruite, ce qui assure que l’image générée est proche de l’image originale.
- Perte de divergence KL (Kullback-Leibler) : Elle impose à la distribution latente apprise de rester proche d’une distribution normale standard, ce qui aide à régulariser l’espace latent.
Voici les étapes détaillées pour utiliser une fonction de perte et calculer la valeur de perte dans un VAE :
1. Perte de reconstruction
La perte de reconstruction est généralement calculée avec l’entropie croisée binaire ou l’erreur quadratique moyenne (MSE), selon le type de données (images, données continues, etc.). Pour des images, l’entropie croisée binaire est souvent utilisée.
2. Perte de divergence KL
La divergence KL est calculée entre la distribution latente apprise ( \mathcal{N}(z_{\mu}, z_{\sigma}) )
et une distribution gaussienne standard ( \mathcal{N}(0, I) )
. Elle est donnée par la formule suivante :
\text{KL divergence} = -0.5 \sum \left( 1 + \log(\sigma^2) - \mu^2 - \sigma^2 \right)
Dans le code :
3. Perte totale
La perte totale est la somme de la perte de reconstruction et de la perte de divergence KL.
Exemple complet du calcul de la perte dans un VAE :
4. Compilation et entraînement du modèle
Une fois que la perte totale est définie, vous pouvez compiler et entraîner le modèle avec un optimiseur, comme Adam :
Dans ce cas, la perte totale inclut à la fois l’aspect “génératif” (réduction de la divergence entre les distributions latentes) et “reconstructif” (reconstruction fidèle des images d’origine).