
Des autoencodeurs aux VAEs
Historiquement, les autoencodeurs ont servi de porte d’entrée aux représentations latentes en apprentissage profond, utiles pour la compression, le débruitage ou la détection d’anomalies (des notions clés en formation Data Scientist). En 2013, les autoencodeurs variationnels (VAEs) ont introduit une perspective probabiliste sur cet espace latent, afin non seulement de reconstruire des données, mais aussi d’en générer de nouvelles qui restent cohérentes avec l’ensemble d’entraînement.
Les autoencodeurs sont des réseaux de neurones non supervisés conçus pour compresser puis reconstruire des données. Leur architecture repose sur deux parties : un encodeur, qui réduit la dimensionnalité, et un décodeur, qui tente de reconstruire l’entrée initiale.
Un VAE conserve cette architecture, mais remplace l’encodage « point unique » par un encodage probabiliste : l’encodeur prédit les paramètres d’une distribution latente (généralement une moyenne μ et un écart type σ). Un échantillon z est ensuite tiré de cette distribution via l’astuce de reparamétrage, puis décodé. L’apprentissage combine une perte de reconstruction et un terme de divergence de Kullback‑Leibler qui régularise l’espace latent vers un a priori simple, souvent une gaussienne N(0, 1).
- Perspective conceptuelle : passer d’une simple compression fidèle à un modèle génératif probabiliste.
- Compétence clé : apprentissage d’un espace latent continu, exploitable pour l’interpolation et la synthèse.
- Applications typiques : génération d’images ou de sons, augmentation de données, détection d’anomalies, représentation compacte et exploitable.
AE vs VAE : quelles différences clés ?
Les deux familles partagent l’encodeur et le décodeur, mais diffèrent par la nature de l’encodage, la fonction de perte et les cas d’usage visés.
| Critère | AE « classique » | VAE |
|---|---|---|
| Nature du modèle | Déterministe, encode un point latent fixe | Probabiliste, encode une distribution latente (μ, σ) |
| Fonction de perte | Reconstruction uniquement | Reconstruction + KL pour rapprocher q(z|x) d’un a priori p(z) |
| Espace latent | Non contraint, risque de « trous » et d’îlots disjoints | Régularisé, plus continu et couvrant, propice à l’interpolation |
| Capacité générative | Limitée, surtout reconstruction des entrées vues | Élevée, génération d’échantillons plausibles par échantillonnage de z |
| Cas d’usage types | Compression, débruitage, pré‑apprentissage de caractéristiques | Data augmentation, morphing/interpolation, synthèse contrôlée, anomalies |
| Limites fréquentes | Surapprentissage, latent peu structuré pour générer | Compromis netteté/fidélité, sorties parfois plus « lissées » |
En pratique : si l’objectif principal est une reconstruction très précise pour compresser ou débruiter, un AE suffit souvent. Si l’on veut créer des variations réalistes, explorer l’espace des styles ou interpoler entre exemples, un VAE est mieux adapté. Pour l’anomalie, les deux se défendent : AE via l’erreur de reconstruction, VAE via la densité latente et l’incertitude.
Pourquoi parler de régularisation latente ?
Un AE « sous‑complet » apprend surtout à recopier les points d’entraînement. Il n’est pas incité à organiser l’entre‑deux, ce qui crée des zones latentes vides. Générer en dehors des points vus devient alors hasardeux.
Le VAE ajoute une contrainte probabiliste qui rapproche les encodages q(z|x) d’un a priori simple p(z) (souvent N(0, 1)). Cette régularisation procure deux propriétés utiles pour générer :
- Continuité : des z proches doivent décoder vers des sorties semblables, ce qui rend l’interpolation fluide.
- Couverture : presque tout z échantillonné dans l’a priori produit une sortie significative, ce qui évite les zones « mortes ».
Exemple intuitif : entre un « 3 » et un « 8 » manuscrits, un AE peut encoder deux îlots éloignés. Interpoler entre leurs codes mène à des artefacts. Avec un VAE, l’encodeur apprend des distributions qui se chevauchent légèrement et le décodeur reste entraîné à reconstruire pour tout échantillon tiré, ce qui permet de parcourir le chemin latent et d’obtenir une transformation progressive et plausible. Cette même structure rend aussi plus naturelle l’estimation d’incertitude et l’usage en détection d’anomalies, car les points « hors densité » se détectent par une faible probabilité latente ou une reconstruction dégradée.
Pourquoi utiliser un VAE ?

Les autoencodeurs sont des réseaux de neurones non supervisés conçus pour compresser puis reconstruire des données. Leur architecture repose sur deux parties : un encodeur, qui réduit la dimensionnalité, et un décodeur, qui tente de reconstruire l’entrée initiale. Un auto‑encodeur variationnel (VAE) conserve ce schéma, mais apprend une représentation latente probabiliste et continue. Résultat : il peut non seulement reconstruire, mais aussi générer de nouvelles données plausibles, interpoler entre des exemples, et quantifier l’incertitude via des distributions latentes.
- Générer des données nouvelles et plausibles pour l’augmentation de jeux d’entraînement.
- Interpoler en douceur dans l’espace latent pour explorer des variantes cohérentes d’un même objet.
- Mesurer une vraisemblance approximable des données via l’ELBO (utile pour comparer des modèles et détecter des anomalies).
- Bénéficier d’un entraînement stable avec une fonction de perte bien posée (reconstruction + régularisation KL).
- Ouvrir la voie à un contrôle conditionnel des sorties avec des variantes conditionnelles (CVAE).
Quels avantages pratiques par rapport aux AE classiques ?
- Génération contrôlable : un VAE apprend un espace latent continu et régulier. On peut déplacer des curseurs latents pour modifier des attributs, ou utiliser un CVAE pour conditionner la génération sur des étiquettes (catégorie, style, attribut visuel).
- Vraisemblance approximable : via la maximisation de l’ELBO, le VAE fournit une approximation de la log‑vraisemblance, utile pour évaluer la couverture des données, comparer des architectures et réaliser du scoring d’anomalies.
- Stabilité d’entraînement : pas de phase adversariale. L’optimisation conjointe de la reconstruction et de la divergence KL est généralement plus prévisible, avec moins de problèmes d’instabilité ou de collapse que d’autres modèles génératifs.
- Latent space exploitable : continuité et complétude favorisent l’interpolation, la manipulation sémantique et, avec un réglage de la pondération KL (par exemple β‑VAE), une meilleure « disentanglement » des facteurs de variation.
Cas concret : pour un catalogue produit, un CVAE peut être entraîné sur des images annotées par catégorie et couleur. On conditionne alors la génération sur « chaussures, rouge » afin de créer des variantes réalistes pour l’augmentation de données. L’équipe suit l’ELBO pour piloter l’entraînement, tout en inspectant visuellement des interpolations latentes pour vérifier la cohérence des attributs.
Quelles limites et trade‑offs accepter ?
Optimiser l’ELBO favorise une bonne modélisation probabiliste, mais la meilleure log‑vraisemblance ne rime pas toujours avec le meilleur rendu perceptuel. Les échantillons d’un VAE tendent à être plus lisses que ceux de modèles centrés sur la qualité visuelle. Régler la pondération de la KL influence fortement la structure du latent : plus de régularité peut dégrader la netteté, moins de régularité peut fragiliser la génération contrôlable.
- Qualité des échantillons vs log‑vraisemblance : des sorties parfois plus floues que d’autres modèles génératifs optimisés pour l’aspect visuel.
- ELBO reste une borne inférieure : elle sous‑estime la log‑vraisemblance réelle, ce qui complique l’évaluation absolue.
- Posterior collapse possible si la KL domine ou si le décodeur est trop puissant : le modèle ignore alors le latent.
- Sensibilité au choix du prior et de la dimension latente : trop petit espace, pertes d’information ; trop grand, généralisation plus faible.
- Contrôle conditionnel dépendant des labels pour les CVAE : qualité et granularité des annotations sont déterminantes.
- Compromis couverture vs fidélité : bonne couverture des modes de la distribution, parfois au prix d’une fidélité visuelle moindre.
À quoi ressemble l’architecture d’un VAE ?

Les autoencodeurs sont des réseaux de neurones non supervisés conçus pour compresser puis reconstruire des données. Leur architecture repose sur deux parties : un encodeur, qui réduit la dimensionnalité, et un décodeur, qui tente de reconstruire l’entrée initiale.
Un VAE reprend cette structure en y ajoutant une couche probabiliste. Le pipeline se lit ainsi :
- Encodeur : transforme l’entrée x en paramètres d’une distribution latente q(z|x).
- Échantillonnage dans l’espace latent : génère un vecteur z en injectant un bruit contrôlé.
- Décodeur : reconstruit une distribution sur x à partir de z, puis produit un échantillon ou une espérance.
Encodeur : que produit-il exactement ?
L’encodeur d’un VAE n’émet pas un code unique, il prédit les paramètres d’une famille de distributions latentes, le plus souvent une gaussienne factorisée. Concrètement, il sort deux têtes : un vecteur de moyennes μ(x) et un vecteur de log-variances log σ2(x). On parle d’inférence amortie : un même réseau, partagé pour toutes les observations, approxime la postérieure q(z|x) par ses paramètres.
Conseils pratiques : pour des images, on utilise un empilement de couches convolutives suivi de couches denses qui produisent μ et log σ2. Prédire log σ2 évite les variances négatives et stabilise l’entraînement. La taille du latent dépend de la complexité des données : petite pour MNIST, plus grande pour des visages ou scènes naturelles.
Espace latent et échantillonnage : comment injecter l’aléa ?
L’aléa est injecté via l’astuce de reparamétrisation : on échantillonne ε ∼ N(0, I) puis on forme z = μ(x) + σ(x) ⊙ ε. Cette écriture garde la différentiabilité par rapport à μ et σ, ce qui permet la rétropropagation. À l’entraînement, on échantillonne pour apprendre un espace latent continu et régulier. À l’inférence, on peut choisir : utiliser μ(x) pour une reconstruction déterministe, ou échantillonner plusieurs z pour générer des variantes plausibles.
Implications pratiques : un latent bien régularisé permet l’interpolation (passer en douceur d’un échantillon à un autre) et la synthèse de nouveaux exemples en tirant z ∼ N(0, I). Ajuster le poids du terme KL (par exemple en β-VAE) ou pratiquer un warm‑up du KL aide à éviter l’effondrement du latent quand le décodeur est très puissant.
Décodeur : comment reconstruit-on x depuis z ?
Le décodeur paramétrise une vraisemblance p(x|z) : au lieu de prédire seulement des pixels ou des valeurs, il prédit les paramètres d’une distribution sur l’espace d’entrée. Le choix dépend du type de données et conditionne la perte de reconstruction.
- Images binarisées ou mises à l’échelle dans [0,1] : sortie en logits puis Bernoulli par pixel, entraînée avec entropie croisée binaire.
- Images à valeurs réelles : sortie moyenne (et éventuellement log-variance) d’une Gaussienne, entraînée avec NLL gaussienne (MSE si variance fixée).
- Données catégorielles ou séquentielles : sortie catégorielle avec softmax sur le vocabulaire, entraînée avec entropie croisée.
Astuce pratique : ne pas normaliser la dernière couche de sortie, laisser l’activation adaptée au choix de vraisemblance (sigmoïde pour Bernoulli, aucune pour Gaussienne avec MSE, softmax pour catégorielle).
Où placer normalisation et skip connections ?
- Normalisation côté encodeur : placer BatchNorm, LayerNorm ou GroupNorm après les convolutions et avant l’activation. Préférence pratique : BatchNorm si lots suffisamment grands et stables, GroupNorm ou LayerNorm si lots petits ou données hétérogènes. Éviter la normalisation sur les têtes μ et log σ2 pour ne pas biaiser leurs statistiques.
- Normalisation côté décodeur : même règle : normaliser dans les blocs internes, jamais sur la couche de sortie. La normalisation aide la stabilité quand le décodeur est profond.
- Blocs résiduels : utiliser des résidus dans l’encodeur et le décodeur pour entraîner des réseaux plus profonds et limiter la perte d’information. Ordre recommandé dans un bloc : conv → normalisation → activation → conv → normalisation → somme résiduelle → activation.
- Skip connections type U‑Net : pour les images, relier des cartes de caractéristiques d’échelle identique entre encodeur et décodeur améliore fortement la netteté des reconstructions. Pour éviter que ces raccourcis court-circuitent le latent, réduire leur largeur (1×1 conv), ajouter du dropout léger, et pratiquer un warm‑up du KL.
- Activations : ReLU ou LeakyReLU fonctionnent bien, SiLU/GELU possibles pour des gains modestes. Adapter l’activation finale au choix de vraisemblance.
En résumé, un VAE efficace couple un encodeur qui prédit μ et log σ2, un échantillonnage reparamétré qui contrôle l’aléa, et un décodeur qui produit une distribution p(x|z) cohérente avec le type de données. La normalisation bien placée et des skip connections maîtrisées apportent stabilité et détails visuels sans sacrifier l’utilité de l’espace latent.
Le cœur du VAE : modélisation probabiliste

Les autoencodeurs sont des réseaux de neurones non supervisés conçus pour compresser puis reconstruire des données. Leur architecture repose sur deux parties : un encodeur, qui réduit la dimensionnalité, et un décodeur, qui tente de reconstruire l’entrée initiale.
Dans un VAE, cette architecture devient probabiliste. Trois distributions jouent des rôles complémentaires et clairement séparés : le prior p(z), la vraisemblance p(x|z) portée par le décodeur, et l’approximation variationnelle q(z|x) produite par l’encodeur.
1) Quel est le modèle génératif p(z) et p(x|z) ?
Le VAE définit un modèle de variables latentes qui génère les données observées :
- Prior p(z) : distribution a priori sur l’espace latent. Par défaut, on suppose souvent p(z) = N(0, I) pour favoriser un espace latent régulier, facile à échantillonner et à interpoler.
- Vraisemblance p(x|z) : distribution des observations conditionnée par z. Le décodeur paramètre cette distribution, puis l’on échantillonne x en deux étapes, z ~ p(z), puis x ~ pθ(x|z).
- Hypothèses usuelles : données i.i.d., covariance diagonale pour simplifier le calcul, dimension latente modérée pour éviter la mémorisation.
2) Qu’approxime-t-on avec q(z|x) ?
Le vrai postérieur p(z|x) est en général intraitable. On l’approche par qφ(z|x), distribution d’inférence amortie produite par un réseau encodeur. Concrètement, pour chaque entrée x, l’encodeur renvoie des paramètres de distribution sur z, souvent un vecteur de moyennes μ(x) et d’écarts types σ(x) pour une Gaussienne factorisée. Cette inférence est dite amortie, car un même réseau partage ses paramètres pour approximer p(z|x) pour toutes les données, ce qui rend l’inférence rapide à l’entraînement comme au test.
Cas concret : pour des images MNIST, l’encodeur calcule μ(x) et log σ(x). On échantillonne ensuite z = μ(x) + σ(x) ⊙ ε avec ε ~ N(0, I) afin de pouvoir rétropropager, puis le décodeur produit les paramètres de p(x|z) pour reconstruire ou générer.
3) Quelle vraisemblance choisir pour x|z ?
Le choix de p(x|z) dépend du type de données. Il détermine la perte de reconstruction appropriée.
| Type de données | p(x|z) typique | Perte courante | Remarques |
|---|---|---|---|
| Images binarisées ou pixels dans [0,1] | Bernoulli (par pixel) | Binary Cross-Entropy | Sortie sigmoïde, simple et efficace pour MNIST binarisé. |
| Données continues réelles | Gaussienne à variance fixe ou prédite | MSE ou NLL gaussienne | Souvent covariance diagonale, stable pour signaux réels. |
| Images 8 bits par canal | Logistique discrétisée, éventuellement en mélange | NLL de la logistique discrétisée | Mieux adaptée aux intensités quantifiées que la BCE ou la Gaussienne. |
| Comptes, événements rares | Poisson, NegBin | NLL correspondante | Respecte la nature discrète et la variance des comptes. |
| Catégories, tokens | Catégorielle | Cross-Entropy | Sortie softmax, utile pour texte ou classes discrètes. |
| Variables continues bornées dans [0,1] | Beta | NLL beta | Modélise naturellement des proportions. |
4) Quel prior utiliser pour z ?
Prior standard : N(0, I). Il est simple, régularise l’espace latent, facilite l’échantillonnage et l’interpolation. Cependant, il peut être trop restrictif si la vraie géométrie latente est complexe.
Variantes plus expressives :
- VampPrior : prior comme mélange de postérieurs évalués sur des pseudo‑entrées apprises. Plus flexible, il aligne mieux le prior sur la masse des données, au prix de paramètres supplémentaires.
- Priors hiérarchiques : plusieurs niveaux latents, parfois avec connexions ascendantes et descendantes. Ils capturent des facteurs globaux et locaux, améliorent la modélisation de données riches, mais complexifient l’inférence.
- Mélanges gaussiens ou priors transformés par flows : plus de capacité pour suivre des postérieurs multi‑modaux, avec un coût calculatoire accru.
Synthèse : commencer par N(0, I) pour la robustesse et la simplicité. Passer à un prior plus expressif, comme VampPrior ou un schéma hiérarchique, lorsque les reconstructions sont bonnes mais que l’échantillonnage manque de diversité ou que l’on observe un décalage marqué entre q(z|x) et le prior.
D’où vient l’ELBO et que signifie‑t‑elle ?

Les autoencodeurs sont des réseaux de neurones non supervisés conçus pour compresser puis reconstruire des données. Leur architecture repose sur deux parties : un encodeur, qui réduit la dimensionnalité, et un décodeur, qui tente de reconstruire l’entrée initiale.
ELBO : quelle forme et quelle intuition ?
1) Dérivation succincte
Dans un modèle à variables latentes, on dispose d’un prior p(z) et d’une vraisemblance p(x|z). La postérieure p(z|x) est souvent intractable, on l’approxime donc par q(z|x). L’identité fondamentale écrit : log p(x) = ELBO(q) + KL[q(z|x) || p(z|x)]. Comme la divergence KL est positive, ELBO ≤ log p(x). En développant, on obtient la forme usuelle : ELBO(q) = Eq(z|x)[log p(x|z)] − KL[q(z|x) || p(z)].
2) Intuition pratique
Le premier terme E[log p(x|z)] correspond à la qualité de reconstruction apprise par le décodeur. Le second terme KL régularise l’encodeur en rapprochant q(z|x) d’un prior simple, typiquement une gaussienne standard, ce qui rend l’espace latent continu et exploitable pour l’échantillonnage. Dans un VAE, l’encodeur prédit les paramètres de q(z|x) (par exemple moyenne et écart‑type), le décodeur maximise la vraisemblance de reconstruction.
En synthèse : l’ELBO se lit comme reconstruction fidèle plus régularisation KL vers le prior, ce qui stabilise et structure l’espace latent.
Comment relier ELBO et log‑vraisemblance marginale ?
1) Pourquoi une borne
La quantité idéale à maximiser serait la log‑vraisemblance marginale log p(x) (apprentissage de type maximum de vraisemblance). Elle est rarement calculable, car elle intègre sur toutes les variables latentes. L’ELBO est une borne inférieure calculable, égale à log p(x) moins une divergence KL entre q(z|x) et la vraie postérieure p(z|x). Maximiser l’ELBO revient donc à rapprocher simultanément q(z|x) de p(z|x) et à augmenter log p(x). La borne est dite « serrée » lorsque q(z|x) coïncide avec la vraie postérieure.
2) Conséquences pratiques
- Optimiser l’ELBO donne un estimateur proche du maximum de vraisemblance tout en imposant une structure latente contrôlée par le prior.
Le poids du terme KL influe sur le compromis fidélité de reconstruction, régularité de l’espace latent. Des variantes comme β‑VAE pondèrent ce terme pour favoriser des latents plus « propres ».
Une KL trop forte, trop tôt, peut nuire à la reconstruction, alors qu’une KL trop faible peut produire un espace latent irrégulier. Des stratégies d’annealing graduent ce compromis pendant l’entraînement.
En synthèse : on optimise une borne car log p(x) est intractable. L’ELBO permet un apprentissage stable, comparable au maximum de vraisemblance, avec une régularisation explicite de l’espace latent.
Pourquoi l’astuce de reparamétrisation intervient-elle ici ?
1) Le problème de variance des gradients
Apprendre par gradient à travers un échantillonnage aléatoire direct z ~ q(z|x) donne des estimateurs de gradient à forte variance, peu stables. Les méthodes de type score‑function corrigent cela mais restent bruyantes.
2) La reparamétrisation, solution différentiable
On exprime l’échantillon latent comme une transformation déterministe de paramètres apprenables et d’un bruit externe indépendant : pour une gaussienne, z = μ(x) + σ(x) ⊙ ε avec ε ~ N(0, I). La stochasticité est portée par ε, tandis que le chemin x → (μ,σ) → z → décodeur → perte reste différentiable. On obtient des gradients à plus faible variance et un entraînement stable par rétropropagation.
Exemple rapide
Dans un VAE gaussien, l’encodeur produit μ et log σ². On échantillonne ε ~ N(0, I), puis z = μ + exp(0,5 log σ²) ⊙ ε. Le décodeur maximise la vraisemblance de reconstruction, et la perte totale combine ce terme avec KL[q(z|x) || p(z)].
En synthèse : la reparamétrisation permet aux gradients de traverser l’échantillonnage, réduit la variance des estimations et rend praticable l’optimisation de l’ELBO.
Perte en pratique : comment équilibrer KL et reconstruction ?

Un autoencodeur variationnel cherche à compresser l’entrée dans un espace latent puis à la reconstruire, tout en régularisant ce latent via un terme de divergence KL. En pratique, l’équilibre entre « reconstruction » et « KL » se règle surtout par des recettes d’entraînement plutôt que par la théorie pure.
Faut-il pondérer le KL (β‑VAE, annealing) ?
Idée opérationnelle : ajuster le poids du KL pour contrôler le compromis « qualité de reconstruction ↔ structure du latent ».
- β‑VAE (β > 1) : augmente la pression de régularisation, favorise le disentanglement et un latent plus factorisé, souvent au prix de reconstructions moins nettes. Utile si l’objectif prioritaire est l’apprentissage de facteurs interprétables (Higgins et al., 2017).
- β ≈ 1 : point de départ robuste pour des VAEs généralistes quand on veut un bon équilibre sans forcer la factorisation.
- Annealing / warm‑up : démarrer avec un β faible puis l’augmenter progressivement sur plusieurs epochs. Cela laisse d’abord le modèle apprendre à reconstruire, puis on renforce la régularisation pour éviter que le décodeur ignore z. Très utilisé en texte et séries séquentielles (Bowman et al., 2016; Sønderby et al., 2016). Variante efficace : annealing cyclique, qui répète des cycles de montée du β pour « réactiver » périodiquement l’usage du latent.
- Conseil pratique : surveiller simultanément la perte de reconstruction, la KL totale et la KL par dimension. Si la KL chute proche de zéro alors que la reconstruction reste bonne, le modèle commence probablement à ignorer le latent.
Conséquences à anticiper : plus β est grand, plus le latent tend à se structurer mais les sorties peuvent se lisser; plus β est petit, plus la reconstruction est précise mais le latent peut devenir moins utile pour la génération contrôlée.
Free bits et KL warm‑up : quand les utiliser ?
- Free bits : définir un petit seuil par dimension de z en dessous duquel la KL n’est pas pénalisée. Cela garantit un « budget d’information » minimal par dimension et évite la sous‑utilisation du latent, surtout quand le décodeur est puissant. Recommandé si vous observez une KL quasi nulle trop tôt malgré un apprentissage correct. Astuce: régler le seuil sur validation, puis l’abaisser doucement une fois le modèle stabilisé.
- KL warm‑up : faire croître le poids de la KL de 0 à 1 (ou vers la valeur‑cible de β) sur N epochs. Très simple à implémenter, efficace pour éviter le posterior collapse en début d’entraînement, notamment avec des décodeurs auto‑régressifs.
- Combiner : un warm‑up progressif + une petite marge de free bits offre souvent une courbe d’apprentissage plus stable que l’un ou l’autre seul.
En pratique : activez free bits si la KL tombe systématiquement à zéro malgré l’annealing, ou si seules 1 à 2 dimensions latentes portent l’essentiel de l’information.
Comment diagnostiquer et corriger le posterior collapse ?
- Signes concrets :
- KL totale proche de zéro pendant plusieurs epochs, ou KL par dimension nulle pour la majorité des dimensions.
- La reconstruction ne change presque pas si l’on remplace l’échantillon z par sa moyenne μ.
- Information mutuelle I(x; z) très faible, latents quasi constants quelle que soit l’entrée.
- Affaiblir le décodeur quand il est très expressif: réduire sa profondeur, ses résidus, ou appliquer word dropout / historyless decoding pour le texte. Ajouter du dropout côté décodeur aide souvent à forcer l’usage de z (Bowman et al., 2016).
- Régler l’objectif : activer KL warm‑up, annealing cyclique, ou free bits. Éviter de figer β > 1 trop tôt.
- Améliorer l’inférence : techniques de type lagging inference networks pour mieux aligner l’encodeur sur le générateur quand ce dernier « va trop vite ».
Cas concret : si votre VAE texte sature à KL ≈ 0 dès les premières epochs, activez un warm‑up linéaire du β sur 10 à 20 epochs, appliquez un word dropout modéré dans le décodeur pour réduire l’auto‑récurrence, puis ajoutez un petit seuil de free bits par dimension. Surveillez la KL moyenne et la perplexité: la KL doit monter progressivement tandis que la perplexité se stabilise.
Reconstruction loss : MSE, BCE ou Logistic discrétisée ?
Choisir la bonne perte de reconstruction conditionne la stabilité de l’entraînement et l’aspect des sorties. Repères simples :
| Perte | Quand l’utiliser | Atouts | Pièges fréquents |
|---|---|---|---|
| MSE (erreur quadratique) | Signaux continus ou images traitées comme réels dans [0,1]; régression, données bruitées | Stable, simple, bons compromis pour le débruitage | Tendance au flou sur images naturelles si le modèle moyenne les modes |
| BCE (entropie croisée binaire) | Pixels véritablement binaires ou très proches (ex. MNIST binarisé) | Probabiliste, bien calibrée pour données Bernoulli | Hypothèse Bernoulli inadaptée aux images 8 bits, risques de saturations et de contrastes irréalistes |
| Logistic discrétisée (souvent en mixture) | Images 8 bits avec intensités entières; génération haute fidélité | Respecte la nature discrète des pixels, meilleures vraisemblances et détails plus nets dans la pratique | Implémentation plus complexe, coût de calcul plus élevé |
Conseil rapide par domaine : pour des images naturelles 8 bits, privilégier une logistic discrétisée (souvent en mélange) plutôt que BCE; pour signaux continus ou tâches de débruitage, la MSE reste un choix robuste. Ajustez ensuite β et l’annealing pour retrouver l’équilibre avec la KL.
Comment entraîner et implémenter un VAE ?
Les autoencodeurs sont des réseaux de neurones non supervisés conçus pour compresser puis reconstruire des données. Leur architecture repose sur deux parties : un encodeur, qui réduit la dimensionnalité, et un décodeur, qui tente de reconstruire l’entrée initiale.
Un VAE ajoute une couche probabiliste à cet aller‑retour encodeur‑décodeur, ce qui impose une structure continue à l’espace latent et permet de générer de nouveaux échantillons. Voici les pratiques d’ingénierie concrètes pour l’implémenter et l’entraîner efficacement.
Comment implémenter la couche de sampling pour backprop ?
Utilise l’astuce de reparamétrisation pour garder un chemin de gradient différentiable. L’encodeur prédit deux tenseurs de même forme, la moyenne μ et la log‑variance log σ². Au lieu d’échantillonner directement, on échantillonne un bruit ε puis on construit z de façon déterministe par rapport aux paramètres.
- Sorties de l’encodeur: μ, log σ² (apprend la log‑variance pour la stabilité numérique).
- Écarts types: σ = exp(0,5 × log σ²), calculé en précision standard.
- Échantillonnage indépendant du modèle: ε ∼ N(0, I) avec la même forme que σ.
- Reparamétrisation: z = μ + σ ⊙ ε (opérations élément‑par‑élément).
- Inférence: pour des reconstructions déterministes, utilise z = μ; pour la génération, échantillonne ε.
- KL par échantillon: cumule la divergence KL par instance puis moyenne sur le batch pour éviter une dépendance à la taille de lot.
Quels hyperparamètres régler en priorité ?
| Hyperparamètre | Rôle | Pistes de départ | Plages utiles | Signaux de diagnostic |
|---|---|---|---|---|
| dim(z) | Capacité de l’espace latent | Images simples: 8, 16, CIFAR‑10: 32, 64, audio court: 16, 32 | 2, 128 selon la complexité | Trop petit: reconstructions pauvres; trop grand: KL→0 et sur‑apprentissage |
| β (β‑VAE) | Pondère la KL vs reconstruction | 1, puis balayer 0,5, 4 | 0,1, 8 | β élevé: images floues, latents plus « propres »; β faible: échantillons nets mais latents peu réguliers |
| Learning rate | Vitesse de convergence | Adam: 1e‑3 | 3e‑4 à 3e‑3 | LR trop haut: pertes NaN ou oscillations; trop bas: KL collée à 0 et lenteur |
| Batch size | Estimation de gradient, stabilité KL | 64, 128 | 32, 256 selon mémoire | Batch minuscule: KL instable; immense: sous‑régularisation si moyenne mal normalisée |
| Init. des poids | Démarrage stable | Xavier/Glorot pour couches linéaires, He pour ReLU | , | Init. inadéquate: KL ou reconstruction explosent en début d’entraînement |
| Régularisations | Généralisation, stabilité | Weight decay 1e‑5, dropout léger côté encodeur (0, 0,2) | WD 1e‑6, 1e‑4; pas de dropout dans le décodeur pour garder la netteté | Trop de régularisation: sur‑lissage et flou; trop peu: sur‑apprentissage |
Quels schémas d’optimisation et d’annealing adopter ?
- Annealing de la KL
- Warm‑up linéaire: β passe de 0 à sa valeur cible sur 10, 50 % des premières époques.
- Sigmoïde ou cosinus: progression douce qui évite un « saut » brutal.
- Free bits: impose un plancher par dimension (par exemple 0,5 nat) avant de compter la KL, utile contre l’effondrement de la postérieure.
- Schedules de LR
- Cosine annealing (avec ou sans redémarrages), fiable et simple.
- One‑cycle: bon pour converger vite sur de petits jeux.
- Step decay: réduit le LR à 0,1× à des jalons fixes si la perte stagne.
- Early stopping
- Surveille la validation ELBO ou une métrique perceptuelle, patience 5, 10 époques.
- Gradient clipping
- Global‑norm ou value clip, seuil 0,5, 1,0, limite les explosions dues à exp(log σ²).
Bonnes pratiques PyTorch/TF : quels patterns éviter ?
- Travailler en log‑variance: apprends log σ², calcule σ = exp(0,5 × log σ²). Clamp log σ² dans une plage raisonnable (par exemple [‑10, 10]) pour éviter underflow/overflow.
- Reconstruction stable: préfère les pertes « with logits » (BCEWithLogitsLoss, tf.nn.sigmoid_cross_entropy_with_logits) au combo Sigmoïde + BCE séparé.
- KL en précision suffisante: même en mixed precision, force le calcul de la KL en float32, puis moyenne. En PyTorch, désactive autocast pour la KL critique; en TF, caste explicitement.
- Pas de sampling non différentiable: évite d’appeler des générateurs aléatoires à l’intérieur d’opérations qui cassent le graphe. Échantillonne ε proprement puis compose z = μ + σ ⊙ ε.
- Normalisation: BatchNorm peut interagir avec le bruit, LayerNorm/GroupNorm sont souvent plus stables côté encodeur.
- Mémoire mixte: en PyTorch, utilise GradScaler et vérifie les sous‑réseaux sensibles (log‑sum‑exp) hors autocast; en TF, policy mixed_float16 mais garde la perte en float32.
- Moyennage cohérent: calcule la KL par échantillon puis moyenne, évite de la sommer sur le batch, sinon la pondération dépend de la taille de lot.
- Initialisation et activations: ReLU/LeakyReLU avec He, Tanh/SiLU avec Xavier; évite des activations saturantes au goulot.
- Mode entraînement/inférence: assure‑toi d’activer/désactiver correctement dropout et normalisations (model.train()/eval() en PyTorch, training=True/False en TF/Keras).
Quels jeux de données pour débuter ?
- MNIST / Fashion‑MNIST (28×28 niveaux de gris): idéal pour valider l’implémentation, dim(z) 2, 16, convergence rapide.
- CIFAR‑10 (32×32 couleur): teste la capacité du décodeur convolutionnel, dim(z) 32, 64, plus sensible au flou.
- SmallSpeech (ex.: sous‑ensemble de Google Speech Commands, 10 mots, spectrogrammes 1 canal): bon terrain pour les signaux 1D/2D, dim(z) 16, 32.
Commence par MNIST pour déboguer la boucle d’entraînement et la KL, passe à CIFAR‑10 pour valider la qualité de génération couleur, puis à SmallSpeech si ton cas d’usage vise l’audio court. Ajuste dim(z) et β en conséquence.
Quels problèmes fréquents et comment les corriger ?
| Symptôme | Cause probable | Correctifs rapides |
|---|---|---|
| Reconstructions floues | β trop élevé, décodeur sous‑dimensionné, loss mal choisie | Réduire β, enrichir le décodeur (upsampling + conv), utiliser BCE with logits ou MSE selon les données |
| Mode collapse apparent (toutes les sorties se ressemblent) | KL trop forte en début d’entraînement, LR trop bas | KL warm‑up, free bits, augmenter légèrement le LR, vérifier la moyenne par échantillon |
| KL≈0 permanente | Postérieure qui ignore le prior, gradient trop faible | Réduire la difficulté de reconstruction, baisser dropout, init plus « vive », annealing plus lent |
| Pertes NaN ou explosions | exp(log σ²) qui déborde, LR trop élevé | Clamper log σ², gradient clipping 0,5, 1,0, baisser LR, calculer KL en float32 |
| Échantillons bruités lors de la génération | dim(z) trop grande, prior mal régularisé | Diminuer dim(z), augmenter β progressivement, ajouter weight decay léger |
| Artifacts de déconv (damier) | Transposed convs mal paramétrées | Privilégier upsampling bilinéaire + conv 3×3, soigner strides et padding |
Quelles architectures selon la modalité (image, texte, audio) ?
Les autoencodeurs sont des réseaux de neurones non supervisés conçus pour compresser puis reconstruire des données. Leur architecture repose sur deux parties : un encodeur, qui réduit la dimensionnalité, et un décodeur, qui tente de reconstruire l’entrée initiale.
Selon la modalité traitée, le choix d’architecture et des blocs de décodage influence fortement la stabilité d’entraînement, les artefacts et la qualité perçue. Les repères ci‑dessous orientent vers des choix concrets pour l’image, le texte et l’audio, puis proposent des fourchettes pratiques de taille latente et de normalisation.
Images : ConvVAE et upsampling vs conv‑transpose : que choisir ?
Deux familles de décodeurs dominent en VAE convolutionnels. Les décodeurs resize‑conv (upsampling bilinéaire ou voisin le plus proche suivi d’une convolution) sont généralement plus stables et limitent les artefacts en damier. Les décodeurs à convolutions transposées (conv‑transpose) peuvent produire des contours plus nets mais accroissent le risque d’artefacts si le choix stride‑noyau et l’initialisation ne sont pas soigneusement contrôlés.
- Choisir upsampling + conv si la stabilité prime: moins d’artefacts de grille, comportement prévisible avec petits batchs, facile à combiner avec blocs résiduels et normalisation par groupes.
- Choisir conv‑transpose si la netteté perçue est critique: potentiel de détails plus marqués à résolution égale, au prix d’un réglage plus fin des strides, noyaux et contraintes de régularisation.
- Bonnes pratiques, quel que soit le choix:
- Aligner stride et taille de noyau, ou insérer un léger flou anti‑repliement pour réduire les damiers.
- Privilégier des blocs résiduels, la normalisation par groupes quand le batch est petit, et une perte perceptuelle en complément de la MSE si l’objectif est visuel.
- En haute résolution, envisager un hybride: upsampling + conv aux premiers niveaux, conv‑transpose aux derniers paliers pour la finesse.
Texte : séquences et word dropout : quelles précautions ?
- Décodeurs RNN: capacité modérée, bon compromis pour phrases courtes à moyennes. Moins sujets à ignorer le latent que des décodeurs très puissants.
- Décodeurs Transformer: excellents sur longues séquences, mais risque accru de posterior collapse si le décodeur reconstruit sans utiliser le latent.
- Précautions pratiques contre le collapse:
- Word dropout ou token dropout côté entrée du décodeur pour l’obliger à exploiter z.
- Annélage du KL (β progressif) et stratégie free bits pour garantir un minimum d’information par dimension latente.
- Capacité contrôlée du décodeur: limiter la profondeur initiale, puis relâcher après stabilisation du KL.
- Injection du latent en prefix ou via biais conditionnels sur clés/valeurs d’attention plutôt qu’un simple concat en position 0.
- Réduire le teacher forcing au fil de l’entraînement ou utiliser un scheduled sampling mesuré.
En pratique, pour des données textuelles brèves et structurées, un RNN ou un petit Transformer avec β‑VAE progressif et word dropout suffit souvent. Pour des documents plus longs, préférer un Transformer pré‑normé avec injection latente en préfixe, annélage KL et free bits.
Audio : spectrogrammes vs waveforms : que recommander ?
Modéliser le son dans l’espace temps‑fréquence (melspectrogrammes) simplifie l’apprentissage, compresse naturellement l’information et facilite la reconstruction via un vocodeur. Modéliser directement l’onde temporelle offre une fidélité de phase maximale, utile pour la restauration à très haute qualité, mais complique l’optimisation et augmente le coût calculatoire.
- Pour TTS et séparation de sources légères: VAE sur melspectrogrammes avec perte sur amplitude log, puis vocodeur neuronal. Distributions de sortie: Gaussienne ou Student‑t sur magnitudes log, éventuellement pertes multi‑résolution STFT.
- Pour sur‑échantillonnage ou SSR: spectrogrammes adaptés quand la ressource est contrainte; passer au waveform si la cohérence de phase et les transitoires très courts sont critiques.
- Pour waveforms: décodeurs 1D conv résiduels, pertes STFT multi‑échelles et distributions plus robustes aux pics (Laplace ou mélanges logistiques discrétisés). Normaliser l’amplitude en prétraitement, éventuellement μ‑law.
Quelle taille de latent et normalisation selon la modalité ?
| Modalité | Entrée typique | Latent recommandé | Normalisation recommandée | Notes pratiques |
|---|---|---|---|---|
| Images | 64×64 à 256×256 | Vecteur 64, 512 pour 64, 128 px. Pour 256 px, carte 8×8×64, 128 ou vecteur 1024, 4096 selon le budget. | Encodeur: GroupNorm ou BatchNorm. Décodeur: GroupNorm ou WeightNorm. SpectralNorm optionnel si instabilité. | Privilégier des blocs résiduels. En petits batchs, préférer GroupNorm à BatchNorm. |
| Texte | 32, 512 tokens | Vecteur 16, 128. Injection par préfixe ou biais conditionnel dans l’attention. | LayerNorm pré‑norme sur Transformers. Pas de BatchNorm sur séquences. | Utiliser annélage du KL et free bits 0,5, 1,0 nat par dimension pour éviter le collapse. |
| Audio (mels) | 80, 128 mels × T | Vecteur 32, 256 ou carte 4×T/16×32, 64 selon le cadre temporel. | Conv2D: BatchNorm ou GroupNorm. Normalisation entrée: moyenne‑variance par canal ou PCEN. | Perte STFT multi‑résolution utile pour une meilleure qualité perçue. |
| Audio (onde) | 22,05, 48 kHz, 1D | Vecteur 64, 512, parfois multi‑bandes pour l’efficacité. | Conv1D: WeightNorm ou LayerNorm. Échelle d’amplitude standardisée, μ‑law en option. | Coût élevé; commencer en spectrogramme puis affiner en onde si nécessaire. |
Ces fourchettes servent de point de départ. Ajustez la taille du latent selon la diversité des données et le niveau de détail attendu, et choisissez la normalisation en fonction de la taille de batch et du type de bloc utilisé.
Comment visualiser et diagnostiquer l’espace latent ?
Les autoencodeurs sont des réseaux de neurones non supervisés conçus pour compresser puis reconstruire des données. Leur architecture repose sur deux parties : un encodeur, qui réduit la dimensionnalité, et un décodeur, qui tente de reconstruire l’entrée initiale.
Diagnostiquer l’espace latent sert à vérifier la continuité, l’exhaustivité et l’utilité des représentations, puis à relier des dimensions latentes à des facteurs compréhensibles. Les exercices ci‑dessous aident à repérer surapprentissage, effondrement du posterior, déséquilibres de densité et manque de diversité.
- Interpolations et traversals ciblés, pour évaluer la continuité et la sémantique des axes latents.
- Projections t‑SNE ou UMAP de z pour visualiser clusters, recouvrements et valeurs aberrantes.
- Lecture des clusters et séparation de classes pour guider l’interprétabilité.
- Inspection conjointe reconstructions et échantillons générés, pour juger netteté, artefacts et couverture.
- Mesures d’incertitude et de densité en z, utiles pour l’abstention, l’OOD et la qualité des points latents.
Comment réaliser interpolations et traversals ?
- Interpolation linéaire entre deux encodages: encoder deux exemples xa et xb, récupérer leurs moyennes latentes μa, μb, puis décoder les points z(t) = (1−t)μa + tμb pour t de 0 à 1. Attendre des transitions progressives sans sauts visuels.
- Interpolation sphérique (slerp): utile pour rester dans des régions de densité comparable, surtout si l’on observe des traversées par des zones peu plausibles. Comparez slerp et linéaire sur la même paire.
- Traversals 1‑D: fixer z à μ(x), puis faire varier une seule dimension j dans l’intervalle [μj − kσj, μj + kσj] avec k petit. Une variation monotone et localisée indique un facteur plus interprétable.
- Grilles 2‑D: choisir deux dimensions, balayer une grille, garder les autres dims à μ. Utile pour repérer des bords de décision et des “trous” du manifold.
- Marches aléatoires courtes autour de μ: décoder une trajectoire en z et vérifier l’absence de discontinuités.
- Bonnes pratiques: standardiser par σ avant les pas, travailler avec les moyennes μ de q(z|x) pour la lisibilité, noter en parallèle l’erreur de reconstruction et le terme KL afin de relier visuel et optimisation.
Astuce pratique: si les traversals changent plusieurs attributs à la fois, augmentez la pondération de la régularisation latente pendant l’entraînement, ou réduisez la dimension de z pour encourager des facteurs plus nets.
t‑SNE/UMAP sur z : que peut‑on en apprendre ?
Les projections non linéaires de l’espace latent aident à repérer la structure globale et les recouvrements locaux. Utilisez de préférence les moyennes μ(x) au lieu d’échantillons bruyants.
- Colorations utiles: étiquette de classe si disponible, erreur de reconstruction, entropie/variance par point, densité locale.
- Signaux positifs: clusters compacts et séparés lorsque la tâche l’exige, gradients visuels continus le long des trajectoires d’interpolation.
- Alertes: amas très aplatis ou massifs recouvrements entre classes, doigts de gant dispersés, nombreux points isolés loin du nuage principal.
- Lecture avec prudence: t‑SNE et UMAP déforment les distances globales, combinez toujours avec des métriques numériques et des traversals décodés.
Que révèlent clusters et séparation de classes ?
La géométrie des clusters traduit le compromis reconstruction vs régularisation. Des clusters trop serrés avec forts recouvrements signalent souvent un z sous‑dimensionné ou un terme de régularisation trop élevé, alors que des îlots très éloignés peuvent indiquer une généralisation faible entre modes.
Cas concret: sur des chiffres manuscrits, un recouvrement 3, 5 ou 4, 9 est attendu. Si l’overlap est excessif et s’accompagne d’erreurs de reconstruction pour ces paires, essayez d’augmenter légèrement la dimension de z ou de diminuer la pénalisation latente. Si au contraire tout est parfaitement séparé mais les interpolations produisent des images peu plausibles entre classes, la régularisation manque et l’espace intermédiaire n’est pas rempli.
Reconstructions et samples : quoi regarder ?
- Netteté et micro‑détails: contours nets, textures cohérentes. Un flou systématique suggère des pertes pixel à pixel trop dominantes.
- Artefacts: motifs en damier, halos, bavures de couleur, répétitions non naturelles.
- Fidélité vs diversité: reconstructions proches de l’entrée, échantillons variés couvrant les modes du jeu d’entraînement.
- Couverture des classes: vérifier que toutes les classes ou styles apparaissent lors d’un échantillonnage en grille du prior.
- Continuité: morphings fluides sans discontinuités en interpolant entre deux exemples.
- Signes de collapse du posterior: terme KL proche de zéro, traversals qui ne changent presque rien, échantillons “moyennisés”.
- Pistes d’amélioration si flou: pertes perceptuelles, hybrides type VAE‑GAN, ajustement de la pondération reconstruction vs KL.
Synthèse: combinez une grille de reconstructions, une grille d’échantillons du prior et des interpolations. Cette triade met en évidence la plupart des problèmes de qualité et de couverture.
Mesurer l’incertitude et la densité en z : utile en pratique ?
Un VAE produit pour chaque x une distribution latente q(z|x) décrite par μ et σ. Ces paramètres offrent des signaux exploitables pour la confiance et la détection d’anomalies.
- Incertitude locale: utilisez la variance ou l’entropie de q(z|x). Des valeurs élevées signalent des entrées ambiguës, utiles pour l’abstention ou l’envoi en revue humaine.
- Densité sous le prior: évaluez la densité de μ sous le prior choisi. Un score très faible indique un point potentiellement hors distribution.
- Densité empirique: ajustez un estimateur de densité (par exemple un mélange gaussien) sur les μ d’entraînement, puis calculez un log‑score pour la donnée courante.
- Cartes d’incertitude: projetez entropie, norme de μ ou log‑densité sur la projection t‑SNE/UMAP pour repérer régions douteuses, bords et outliers.
- Réglages: si l’incertitude est partout faible mais les interpolations sont heurtées, augmentez la régularisation latente. Si elle est partout forte, vérifiez la capacité du modèle ou la qualité des données.
En pratique, combiner traversals, projections, contrôle visuel et mesures d’incertitude fournit un diagnostic robuste de l’espace latent, améliore l’interprétabilité et oriente les ajustements d’architecture, de dimension de z et de pondération de la régularisation.
VAE vs AE vs GAN : quand choisir quoi ?
Les autoencodeurs sont des réseaux de neurones non supervisés conçus pour compresser puis reconstruire des données. Leur architecture repose sur deux parties : un encodeur, qui réduit la dimensionnalité, et un décodeur, qui tente de reconstruire l’entrée initiale.
Synthèse pour décideurs techniques : choisissez un VAE si vous voulez un modèle génératif stable avec espace latent continu, interpolation contrôlable et mesure de vraisemblance approchée. Choisissez un GAN si la priorité absolue est la qualité visuelle et le photoréalisme, au prix d’un entraînement plus délicat et d’un risque de collapse de modes. Choisissez un AE classique si l’objectif principal est la reconstruction, la compression, le débruitage ou la détection d’anomalies axée sur l’erreur de reconstruction, sans exigence de génération réaliste.
Comment se comparent qualité, diversité et couverture des modes ?
Forces et faiblesses natives selon trois critères clés d’un modèle génératif.
| Critère | AE | VAE | GAN |
|---|---|---|---|
| Qualité visuelle par échantillon | Excellente fidélité pour reconstruire l’entrée vue, peu convaincant pour générer de nouveaux échantillons | Bonne mais souvent plus lisse, tendance au flou sur images complexes | Très élevée, détails nets et textures réalistes |
| Diversité des échantillons | Faible hors données vues, pas pensé pour explorer l’espace des sorties | Élevée grâce à l’espace latent continu et régularisé | Variable, peut être élevée mais exposée au collapse de modes |
| Couverture des modes | Centrée sur le voisinage des entrées | Généralement bonne, interpolation fluide entre modes | Risque de rater des modes de la distribution si entraînement instable |
| Contrôle du latent et interpolation | Limité | Solide, trajectoires latentes régulières et interprétables | Possible, mais moins structuré nativement |
| Reconstruction fidèle d’une entrée donnée | Forte | Bonne mais contrainte par la régularisation KL | Non prioritaire |
En bref, VAE maximise la couverture et l’exploration avec un compromis sur la netteté, GAN maximise la netteté avec un risque de diversité réduite, AE optimise la reconstruction sans viser la génération réaliste.
Quid de la stabilité d’entraînement et du coût ?
- AE : stabilité élevée, coût faible à modéré, tuning simple. Bon point de départ pour des pipelines de représentation ou de débruitage.
- VAE : stabilité généralement élevée grâce à l’objectif ELBO, coût modéré, tuning raisonnable. Points d’attention : pondération KL, dimension du latent, choix de la distribution de sortie.
- GAN : stabilité sensible, coût souvent élevé car deux réseaux et entraînement adversarial, tuning délicat. Points d’attention : équilibre générateur/discriminateur, régularisation, architecture et choix de pertes. Attendez-vous à plus d’essais-erreurs et à une consommation GPU plus importante.
Règle pratique : si vous avez des ressources limitées et besoin de résultats exploitables rapidement, VAE ou AE sont plus prévisibles. Si l’enjeu métier exige un rendu au niveau production visuelle, budgétez du temps et du calcul pour stabiliser un GAN.
Et la vraisemblance calibrée : qui la fournit ?
Les VAE optimisent une borne inférieure de la log-vraisemblance (ELBO). Ils fournissent donc une estimation cohérente de la probabilité des données, utile pour l’évaluation, l’incertitude et certains usages d’anomaly detection. Les GAN n’optimisent pas de vraisemblance explicite et ne permettent pas de calculer p(x) de façon calibrée. Les AE classiques n’apprennent pas une distribution de données, ils minimisent l’erreur de reconstruction : l’erreur peut servir de signal d’anomalie, mais ce n’est pas une probabilité bien calibrée.
Conclusion opérationnelle : pour des besoins de scoring probabiliste ou de mesure d’incertitude, privilégiez un VAE. Pour un rendu le plus réaliste possible sans exigence de vraisemblance explicite, un GAN est préférable. Pour de la compression, du débruitage ou un pré-entraînement de représentations, un AE reste la solution simple et efficace.
Comment améliorer la qualité des échantillons ?
Les autoencodeurs sont des réseaux de neurones non supervisés conçus pour compresser puis reconstruire des données. Leur architecture repose sur deux parties : un encodeur, qui réduit la dimensionnalité, et un décodeur, qui tente de reconstruire l’entrée initiale.
Dans les VAE, le flou provient souvent d’objectifs de reconstruction trop « moyens » et de sorties supposées gaussiennes qui lissent les détails fins. Pour gagner en netteté sans perdre la cohérence globale ni la vraisemblance, quatre familles de stratégies sont les plus efficaces.
- Ajouter une composante adversariale : hybrides VAE‑GAN pour pousser au réalisme perceptif.
- Rendre le décodeur autoregressif et conditionné sur le latent pour modéliser finement les dépendances locales.
- Structurer le latent en hiérarchie multi‑échelles (HVAE) afin de séparer contenu global et textures.
- Rendre le prior et, ou le posterior plus expressifs avec des flows afin de mieux épouser la distribution des données.
VAE‑GAN : quand est‑ce pertinent ?
Comparaison. Un VAE maximise une vraisemblance approchée et favorise des reconstructions lisses, alors qu’un GAN apprend un critère perceptif via un discriminateur et produit des images plus nettes. Le VAE‑GAN combine les deux : le décodeur du VAE est entraîné avec une perte adversariale (souvent complétée par une perte perceptive) tout en conservant la régularisation latente du VAE.
Conséquences. Le compromis réalisme vs vraisemblance se déplace vers plus de réalisme visuel, avec netteté et textures améliorées. En contrepartie, l’entraînement devient plus sensible aux instabilités adversariales et peut introduire un biais du discriminateur (risque de mode dropping). À privilégier quand l’objectif est la qualité perceptive des échantillons et que l’on accepte une complexité d’entraînement accrue.
Décodeurs autoregressifs conditionnés : quels gains ?
Explicatif. Remplacer la tête de sortie « simple » du décodeur par un décodeur autoregressif conditionné sur le latent (par exemple de type PixelCNN, Transformer ou équivalent discretisé) permet de modéliser explicitement les corrélations locales des pixels ou tokens. Le latent fixe la structure globale, l’autoregression affine les détails.
Comparaison. Par rapport à un VAE standard, on observe en général une nette hausse de la netteté et une meilleure diversité locale, tout en conservant la cohérence globale imposée par le code latent. Attention toutefois au risque d’« effondrement du posterior » si le décodeur devient trop puissant : on le limite avec de l’annealing du terme KL, du « free‑bits » ou des pénalités adaptées. Le coût d’inférence augmente et la génération est moins parallélisable.
Hiérarchiser le latent (HVAE) : pour quoi faire ?
Explicatif. Un HVAE organise plusieurs niveaux de variables latentes, du plus grossier au plus fin. Les niveaux supérieurs capturent la scène, la mise en page ou les grandes formes, les niveaux inférieurs modélisent les détails de texture et de bord. Cette factorisation multi‑échelles réduit le flou car chaque niveau porte une responsabilité claire.
- Meilleure cohérence globale grâce aux latents de haut niveau.
- Netteté accrue et détails plus riches via les latents bas niveau.
- Apprentissage plus stable qu’un unique code latent « fourre‑tout ».
- Contrôle plus fin lors de l’édition ou du guidage par niveau d’échelle.
Flows sur le posterior/prior : quand les ajouter ?
Explicatif. Les normalizing flows enrichissent la forme des distributions latentes. Appliqués au posterior q(z|x), ils permettent à l’encodeur d’approcher des posteriors complexes, donc une ELBO plus serrée et de meilleures reconstructions. Appliqués au prior p(z), ils améliorent l’échantillonnage pur en rapprochant le prior de l’agrégat des posteriors, ce qui rejaillit sur la qualité des échantillons générés.
- Gains attendus : expressivité accrue, ELBO mieux optimisée, réduction du flou et des artéfacts hors‑manifold.
- Coûts associés : calcul des jacobiens, mémoire plus élevée, temps d’entraînement et d’inférence augmentés.
- Pratique courante : commencer par des flows côté posterior (ex. IAF) pour un meilleur encodage, ajouter un prior « flow‑based » si la qualité d’échantillons plafonne.
- À réserver aux données aux structures complexes ou quand le modèle de base montre des limites d’expressivité.
Variantes avancées et limites
Au‑delà du VAE « vanilla » qui encode une distribution latente continue puis reconstruit l’entrée via un décodeur, l’écosystème s’est structuré en familles de variantes répondant à des objectifs précis : contrôle de la génération, disentanglement, meilleurs priors, variables latentes discrètes, objectifs d’entraînement plus serrés, et hybrides orientés qualité perceptive. Cette section synthétise ces familles et leurs limites pratiques.
1. Qu’est-ce qu’un CVAE ?
Un CVAE conditionne l’encodeur et le décodeur par des variables auxiliaires y, souvent des étiquettes ou attributs. Concrètement, on concatène y à x côté encodeur pour produire q(z|x,y), et y alimente aussi le décodeur p(x|z,y). Cela donne un contrôle explicite sur la sortie tout en gardant l’entraînement variationnel.
Cas concret : sur MNIST, un CVAE formé avec les labels permet d’échantillonner z tout en fixant y=“4” pour générer uniquement des 4. En vision, on peut conditionner par “barbe”, “lunettes” ou “style” afin de guider la synthèse d’attributs précis.
2. Qu’apporte le β‑VAE pour le disentanglement ?
Le β‑VAE pondère la divergence KL par un facteur β supérieur à 1 dans l’ELBO. En augmentant la pression de régularisation, il favorise des dimensions latentes plus indépendantes et interprétables, au prix possible d’une reconstruction moins fidèle.
- Intuition : un KL plus fort contraint q(z|x) à rester proche du prior facteurisé, ce qui pousse le modèle à « démêler » les facteurs de variation.
- Métriques usuelles pour évaluer le disentanglement : β‑VAE score, FactorVAE score, Mutual Information Gap (MIG), DCI Disentanglement, SAP score. Choisir plusieurs métriques, leurs sensibilités diffèrent selon les jeux de données et le superviseur disponible.
- Pratique : ajuster β, la capacité latente et l’architecture du décodeur. Trop puissant, le décodeur peut contourner la pression KL et nuire au disentanglement.
3. VampPrior : pourquoi remplacer N(0, I) ?
Le prior gaussien standard peut être trop simple pour des données multimodales. VampPrior remplace p(z)=N(0,I) par une mixture de postérieurs évalués sur des pseudo‑entrées apprises {uk} : p(z)=1/K ∑k q(z|uk). Le prior « s’adapte » ainsi à la géométrie des données et évite une régularisation excessive.
Comparaison : face à N(0,I), VampPrior améliore souvent la log‑vraisemblance tenue et la couverture de modes, avec un surcoût d’apprentissage des pseudo‑entrées et une complexité d’implémentation légèrement supérieure.
4. Latents discrets (Gumbel‑Softmax, VQ‑VAE) : pour quels cas ?
Quand les facteurs sous‑jacents sont naturellement symboliques ou nécessitent des « codes » compacts, des latents discrets sont adaptés.
- Gumbel‑Softmax : relâchement différentiable d’un échantillonnage catégoriel. Utile pour apprendre des choix discrets dans un cadre end‑to‑end.
- VQ‑VAE : quantification vectorielle avec codebook et pertes d’engagement. Le latent est un index dans un dictionnaire appris, propice à des représentations compressibles et à la génération hi‑fi avec un décodeur auto‑régressif ou diffusion.
- Cas d’usage : texte et symboles, unités acoustiques pour TTS et audio bas débit, codebooks visuels pour compression d’images ou vidéos, représentation discrète robuste au bruit.
5. IWAE : quelle différence d’objectif ?
L’IWAE maximise une borne plus serrée de log p(x) via K échantillons d’importance. L’objectif moyen‑log des poids d’importance rapproche l’optimum de la vraie log‑vraisemblance quand K augmente, renforçant le signal de gradient pour l’encodeur.
Comparaison : par rapport à l’ELBO VAE classique, l’IWAE offre en général de meilleures estimations de log‑p(x) et des inférences plus riches, mais au prix d’une variance de gradient accrue et d’un coût d’entraînement proportionnel à K. Un compromis typique : K petit à moyen avec techniques de réduction de variance.
6. Quand combiner VAE et GAN ?
- VAE‑GAN : remplace ou complète la perte de reconstruction par une perte adversariale, souvent dans un espace de caractéristiques, pour réduire le flou.
- α‑GAN et variantes : ajout d’un discriminateur sur x et parfois sur z pour rapprocher q(z) de p(z) et améliorer la fidélité visuelle.
- Pratique : utile quand l’objectif est perceptuel : visages, textures, super‑résolution. Conseils : équilibrer soigneusement les poids des pertes, surveiller l’effondrement de modes, employer un discriminant multi‑échelles et une reconstruction perceptuelle.
7. Quelles limites majeures aujourd’hui ?
- Flou et métriques : l’optimisation de la vraisemblance favorise des moyennes qui paraissent floues, et la bonne log‑vraisemblance ne corrèle pas toujours avec la qualité perçue.
- Posterior collapse : avec des décodeurs puissants, z peut être ignoré. Atténuations : KL annealing, free‑bits, β adaptable, décodeurs moins auto‑régressifs, IWAE.
- Calibration et évaluation : scores de disentanglement et FID/IS capturent des aspects partiels. Multiplier les métriques et inclure des tests humains selon l’usage.
- Passage à l’échelle : haute résolution, longues séquences et multimodal exigent des priors plus expressifs, des hiérarchies latentes, ou des décodeurs plus forts.
- Mismatch prior‑posterior : un prior trop simple force des compromis. Pistes : VampPrior, flows, priors hiérarchiques ou auto‑régularisés.
Synthèse et pistes futures : combiner VAEs avec priors appris et flows, hybrider avec pertes perceptuelles adversariales, explorer des latents discrets pour la compression et l’édition, et recourir à des décodeurs modernes, y compris diffusion ou auto‑régresseurs, pour concilier couverture de modes, fidélité perceptuelle et contrôle des facteurs.
Comment évaluer un VAE ?
Comme tout autoencodeur, un VAE combine un encodeur qui compresse les données en variables latentes et un décodeur qui reconstruit l’entrée. L’évaluation d’un VAE doit juger à la fois la qualité probabiliste du modèle (likelihoods et bornes) et la qualité perçue ou utile des sorties, ainsi que l’adéquation aux tâches cibles.
- Qualité probabiliste : ELBO, log‑vraisemblance estimée, bits‑per‑dimension (bpd), NLL.
- Estimateurs avancés : IWAE pour une borne plus serrée de la log‑vraisemblance.
- Qualité visuelle et diversité : FID, IS, à manier avec prudence.
- Structure des représentations : scores de désentrelacement (MIG, DCI) si pertinent.
- Tâches aval spécifiques : détection d’anomalies avec AUROC, AUPRC, FPR@TPR, etc.
ELBO et log‑vraisemblance : comment les utiliser ?
ELBO est la fonction d’entraînement des VAE : c’est une borne inférieure de la log‑vraisemblance log p(x). Maximiser l’ELBO revient à équilibrer deux termes, reconstruction et régularisation KL, pour apprendre une distribution latente utilisable par le décodeur. La log‑vraisemblance véritable est rarement accessible, d’où l’intérêt de rapporter des bornes et des estimateurs cohérents.
Pièges fréquents et conséquences : (1) comparer des ELBO issus d’architectures, de priors ou de prétraitements différents induit des conclusions trompeuses ; (2) un ELBO plus haut ne garantit pas de meilleures images si l’objectif produit est perceptuel ; (3) l’effondrement du postérieur peut fausser l’interprétation, surtout avec des décodeurs très puissants ; (4) les variantes pondérées (par exemple β‑VAE) modifient la borne, il faut le signaler explicitement.
Bits‑per‑dimension et NLL : comment les rapporter ?
Pour des données image, la NLL moyenne peut être normalisée en bits‑per‑dimension afin de comparer des modèles et des résolutions : bpd = NLL moyenne par échantillon divisée par (D × log 2), où D = H × W × C. Cette normalisation permet une lecture « par pixel/canal » et facilite la comparaison cross‑paper.
- Toujours préciser : dataset, résolution exacte, profondeur de quantification (par exemple 8‑bit), et méthode de dé‑quantification (uniforme 1/256 ou variat.).
- Indiquer l’unité : nats ou bits. Si vous partez de nats, convertir en divisant par log 2.
- Spécifier le split d’évaluation et la taille d’échantillonnage.
- Si la tête de sortie change (Bernoulli, logistique discrétisée, Gaussienne), le signaler, car la NLL dépend du choix.
- Publier la moyenne et l’écart‑type sur plusieurs seeds pour la bpd et la NLL.
Estimation par importance (IWAE) : quand s’en servir ?
IWAE fournit une borne plus serrée de log p(x) en agrégeant K échantillons d’importance du postérieur amorti. À mesure que K augmente, la borne se resserre et se rapproche de la log‑vraisemblance, au prix d’un coût de calcul plus élevé et d’une variance potentiellement accrue si K est faible.
En pratique : utiliser IWAE pour l’évaluation hors entraînement avec K >= 64 lorsque c’est possible, et rapporter la courbe « borne vs K » pour montrer la stabilité. Éviter d’optimiser le modèle exclusivement sur l’objectif IWAE si l’objectif produit est perceptuel, et séparer clairement la perte d’entraînement (ELBO) de la métrique d’évaluation (IWAE@K).
Que valent FID/IS pour les VAE ?
FID et IS mesurent réalisme et diversité d’images via des features d’un réseau Inception pré‑entraîné. Elles corrèlent avec la qualité perçue sur ImageNet, mais ne mesurent pas la vraisemblance du modèle et dépendent du domaine, de la résolution et du nombre d’échantillons.
Conséquences : utiliser FID/IS comme compléments visuels, pas comme critères uniques. Respecter les bonnes pratiques (même résolution que l’entraînement Inception, N d’images suffisant, protocole reproductible). Pour des domaines hors ImageNet ou pour juger la fidélité aux entrées, préférer FID sur reconstructions, et envisager des métriques distributionnelles alternatives quand disponibles.
Disentanglement (MIG, DCI) : quand est‑ce pertinent ?
Les scores MIG et DCI quantifient la séparation de facteurs latents dans l’espace appris. Ils sont surtout pertinents lorsque les facteurs de variation sont connus ou souhaités par le produit, par exemple pour le contrôle éditable d’attributs.
- Pertinent si : votre cas d’usage requiert des contrôles interprétables, vous travaillez sur des jeux synthétiques à facteurs connus, ou vous ciblez de l’édition d’attributs.
- À manier avec prudence si : facteurs inconnus, données naturelles complexes, ou objectif principalement perceptuel où un MIG élevé n’implique pas forcément une meilleure UX.
- Toujours rapporter le dataset, la procédure de scoring et les seeds, et compléter par des évaluations aval concrètes.
Anomaly detection : quelles métriques (AUROC, PR) ?
Pour la détection d’anomalies avec un VAE, le score peut provenir de la NLL estimée, de l’ELBO, du terme de reconstruction ou d’un score hybride. L’évaluation doit gérer le fort déséquilibre classe normale vs anomalie.
- AUROC pour une vue globale seuil‑indépendante, mais sensible à l’imbalance.
- AUPRC ou Average Precision recommandés quand la classe anomalie est rare.
- FPR@TPR donnée (par exemple FPR à 95 % TPR) pour des contraintes opérationnelles.
- Calibration du seuil sur un set de validation, reporting sur un test totalement tenu à part.
- Documenter la définition de l’anomalie, le taux de contamination et la source du score (reconstruction, NLL, hybride).
Quelles applications concrètes pour un VAE ?
Les autoencodeurs sont des réseaux de neurones non supervisés conçus pour compresser puis reconstruire des données. Leur architecture repose sur deux parties : un encodeur, qui réduit la dimensionnalité, et un décodeur, qui tente de reconstruire l’entrée initiale. Les auto‑encodeurs variationnels (VAE) ajoutent une modélisation probabiliste de l’espace latent, ce qui ouvre des usages concrets en génération de données, en détection d’anomalies et en apprentissage avec peu ou pas de labels.
Génération d’images, audio, texte : quels cas d’usage ?
- Images: augmentation de données pour la vision industrielle, prototypage créatif, interpolation entre styles, super‑résolution légère et débruitage. Jeux de données typiques: MNIST, Fashion‑MNIST, CIFAR‑10, CelebA (visages), LSUN (scènes).
- Audio: synthèse de timbres, morphing de voix, restauration de signaux, génération de sons instrumentaux. Jeux de données: NSynth, LibriSpeech, VCTK.
- Texte: génération de variations de phrases pour paraphrase contrôlée, anonymisation légère par réécriture, data augmentation pour classifieurs. Jeux de données: Yelp/IMDB (avis), Yahoo Answers, WikiText.
Cas concret: un studio R&D entraîne un VAE sur CelebA pour apprendre un espace latent « visage ». Les équipes produit ajustent des dimensions latentes pour générer des avatars variés tout en respectant la cohérence globale (éclairage, pose), puis exportent un lot d’images synthétiques pour compléter un dataset interne et réduire le biais de classe rare.
Détection d’anomalies : comment s’y prendre ?
- Constituer un jeu normal only (sans anomalies) et standardiser le prétraitement.
- Entraîner un VAE et surveiller l’ELBO (perte reconstruction + divergence KL) sur validation.
- Pipeline « reconstruction »:
- Calculer l’erreur de reconstruction par échantillon (MSE, BCE selon le type de sortie).
- Fixer un seuil sur un percentile de l’erreur sur données normales, puis signaler toute entrée au‑dessus de ce seuil.
- Pipeline « vraisemblance/ELBO »:
- Utiliser l’ELBO comme score: valeurs faibles suggèrent une sortie atypique par rapport au modèle.
- Calibrer un seuil sur l’ELBO validé par une petite quantité d’exemples annotés ou via un contrôle statistique (par exemple, sélection sur FAR ciblé).
- Production:
- Pour séries temporelles, scorer en fenêtre glissante et lisser par médiane.
- Suivre la dérive: si la distribution des scores se décale, réentraîner ou ajuster les seuils.
Pratique: commencer simple avec la reconstruction, puis ajouter le score ELBO pour réduire les faux positifs quand l’erreur de reconstruction est ambiguë.
Compression et édition d’attributs : comment procéder ?
Un VAE apprend un espace latent compact où chaque dimension capture des facteurs de variation. En encourageant des latents plus « décorrélés » (pondération β sur le terme KL), on facilite des contrôles par curseurs d’attributs. L’édition consiste à déplacer un code latent le long d’une direction d’attribut, puis à décoder.
- Identifier des directions d’attributs: moyenne des latents d’exemples « avec » l’attribut moins moyenne « sans » (exemple: lunettes, sourire, saturation couleur).
- Implémenter des sliders: pour un échantillon z, appliquer z’ = z + α·v_attribut, avec α contrôlé par l’utilisateur.
- Conserver la plausibilité: rester dans une norme latente raisonnable et surveiller l’ELBO pour éviter des sorties hors distribution.
- Compression: utiliser l’encodeur comme compresseur et le décodeur comme décompresseur pour des actifs intermédiaires (images, audio) où une légère perte est acceptable.
Apprentissage conditionnel et semi‑supervisé : quand l’employer ?
Quand les labels sont rares ou coûteux, un VAE conditionnel (CVAE) profite du non supervisé pour modéliser la structure globale, puis conditionne la génération ou l’inférence sur un petit ensemble d’étiquettes (classe, style, attribut). En semi‑supervisé, on joint objectif non supervisé (ELBO) et objectif supervisé léger pour tirer parti d’un grand volume non annoté.
Cas concret: classification de défauts visuels avec 5 % d’images étiquetées. On préentraîne un VAE sur toutes les images, puis on ajoute une tête de classification sur les latents et on conditionne le décodeur sur la classe pour mieux séparer les facteurs. Résultat attendu: meilleure F1 qu’un supervisé pur à taille d’échantillon constante, et latents plus utiles pour la détection d’anomalies.
Mini‑workflows par domaine : que faire étape par étape ?
- Vision industrielle (inspection):
- Données normales, 10, 50 k images, recadrage et normalisation.
- VAE conv: sorties sigmoïdes, perte BCE + KL.
- Seuil sur erreur de reconstruction, validation par lot de défauts connus.
- Déploiement: scoring lot‑par‑lot, suivi du taux d’alerte.
- Audio qualité télécom:
- Transformée en spectrogrammes log‑mels.
- VAE 2D, masquage de bandes pour robustesse.
- Score ELBO pour repérer artefacts et coupures.
- Texte (paraphrase contrôlée):
- Tokenisation sous‑mots, VAE séquentiel.
- Conditionnement sur étiquette de polarité/style.
- Filtrage de sorties par contraintes de longueur et perplexité.
- Séries temporelles IoT:
- Fenêtrage fixe, standardisation par capteur.
- VAE 1D, entraîné sur fonctionnement nominal.
- Détection: moyenne glissante de l’erreur, alerte si dépassement persistant.
- Création d’avatars:
- VAE sur visages recadrés, équilibrage par attributs.
- Sliders latents (âge, sourire, luminosité) avec garde‑fous sur la norme de z.
- Export par lots pour data augmentation.
Synthèse: commencer par un VAE simple et des métriques lisibles (ELBO, erreur de reconstruction), ajouter le conditionnement si un contrôle fin est nécessaire, puis industrialiser le scoring avec suivi de dérive et réentraînement planifié.
Conclusion
Les autoencodeurs sont des réseaux de neurones non supervisés conçus pour compresser puis reconstruire des données. Leur architecture repose sur deux parties : un encodeur, qui réduit la dimensionnalité, et un décodeur, qui tente de reconstruire l’entrée initiale. Les autoencodeurs variationnels étendent ce principe avec un encodage probabiliste continu, régularisé par la divergence KL et optimisé via l’ELBO et l’astuce de reparamétrage, ce qui permet à la fois reconstruction, interpolation et génération de nouveaux échantillons.
- Choix clés : sélectionner AE classiques pour la compression ou le débruitage, VAE pour la génération et l’interpolation, CVAE si un contrôle conditionnel des attributs est nécessaire, VAE‑GAN pour améliorer la netteté au prix d’un entraînement plus complexe. Adapter l’architecture aux données (CNN pour images, MLP pour tabulaire, modèles séquentiels ou transformeurs pour séries et texte). Régler les hyperparamètres essentiels : dimension de l’espace latent z, pondération entre reconstruction et KL (par exemple β‑VAE), fonction de perte (MSE ou entropie croisée) et normalisation des données.
- Pièges fréquents : espace latent trop petit ou trop grand, ce qui dégrade soit la fidélité soit la générativité ; pondération KL inadéquate entraînant un flou marqué ou, à l’inverse, un effondrement de la postérieure ; surapprentissage en l’absence de validation, d’arrêt anticipé et de régularisation ; espace latent mal régularisé qui ne permet pas une interpolation continue ; évaluation limitée à la seule perte sans inspection qualitative ou métriques adaptées au cas d’usage ; préparation des données insuffisante et fuite entre ensembles d’entraînement et de test.
- Prochaines étapes : prototyper sur un petit jeu public (par exemple MNIST ou Fashion‑MNIST) pour valider le pipeline ; visualiser l’espace latent et des interpolations entre points ; comparer reconstruction, diversité et cohérence des échantillons selon z, β et l’architecture ; tester des variantes utiles (débruitage, CVAE, annealing de la KL) ; transposer ensuite sur votre jeu de données cible pour des tâches comme la détection d’anomalies ou la génération synthétique, en documentant systématiquement les réglages et les résultats.












