Upload
others
View
1
Download
0
Embed Size (px)
Citation preview
1 / 24
RCP211 – Réseaux génératifsantagonistes
pix2pix – images HD – espaces latents
Nicolas Audebert [email protected]
Conservatoire national des arts & métiers
24 novembre 2021
Rappels 1 / 24
Plan du cours
1 Rappels
2 Extensions des GAN conditionnels pour les images
3 GAN pour la synthèse d’images à haute résolution
4 Espace latent et contrôle des GAN
Rappels 2 / 24
Principe des GAN
Jeu minimax en opposition entre G et D :maxϕ Ex∼pdata [log Dϕ(x)] + Ex∼p(x[log(1− x)] : trouver lesparamètres de D qui séparent les données réelles des donnéessynthétiques.minθ Ez∼p(z)[log(1− Dϕ(Gθ(z)))] : trouver les paramètres de G quiproduisent des données qui trompent D.
Rappels 3 / 24
Schéma récapitulatif
Donnéesréelles
Extensions des GAN conditionnels pour les images 3 / 24
Plan du cours
1 Rappels
2 Extensions des GAN conditionnels pour les images
3 GAN pour la synthèse d’images à haute résolution
4 Espace latent et contrôle des GAN
Extensions des GAN conditionnels pour les images 4 / 24
GAN conditionnel convolutif
Schéma extrait de Suh et al., 2019
Formule du GAN conditionnelJeu minimax à deux joueurs, conditionné sur une variable aléatoire y :
minG
maxD
V(D,G) = Ex∼p(x)[log D(x|y)] + Ez∼pz(z)[log(1− D(G(z|y)))]
Extensions des GAN conditionnels pour les images 4 / 24
GAN conditionnel convolutif
Schéma extrait de Suh et al., 2019
ProblèmeLe discriminateur renvoie une unique réponse “réel” ou “faux” pour toutel’image.→ le GAN ne capture que la structure globale de l’image
Extensions des GAN conditionnels pour les images 5 / 24
PatchGAN
Schéma extrait de Demir et Unal, 2018
PatchGAN produit une carte deprédictions “réel/faux”. Chaque pixelde la carte de sortie correspond àune région de l’image d’entrée dudiscriminateur.
PatchGANPatchGAN est une architecture dediscriminateur proposée par Isola et al.(2017) dans l’article pix2pix.Principe : on ne conserve que la partieconvolutive du discriminateur.
→ le discriminateur agrège des décisionslocales→ D optimise la moyenne des entropiescroisées sur toutes les prédictions (i, j)
Extensions des GAN conditionnels pour les images 6 / 24
pix2pix : principe
pix2pixIsola et al., Image-to-Image Translation with Conditional Adversarial Nets,2017Principe : convertir des images d’un domaine A vers un domaine B à partir depaires existantes.Architecture : DCGAN conditionné à une image avec un discriminateurPatchGAN.
Extensions des GAN conditionnels pour les images 7 / 24
pix2pix : architecture
EncodeurModèle entièrement convolutif :U-NetEntrée : image du domaine ASortie : image du domaine B
DiscriminateurPatchGANEntrée : image (réelle ou fausse)Sortie : une prédiction par région
Extensions des GAN conditionnels pour les images 8 / 24
pix2pix : optimisation
Optimisationpix2pix est une méthode supervisée : il est nécessaire d’avoir des pairesd’images. On optimise :
minG
maxD
LGAN + λLdata(G)
avec une double fonction de coût :Attache aux données : Ldata(G) = Ex,y,z[∥y − G(x, z)∥1]GAN : LGAN(G,D) = Ey[log D(y)] + Ex,z[log(1− D(G(x, z))]
avec x les images source, y les images cible et z un bruit.
Interprétation : la perte L1 capte les basses fréquences (= structure globale)tandis que PatchGAN intègre les hautes fréquences (= détails). Le GAN agitcomme une régularisation perceptuelle.
Extensions des GAN conditionnels pour les images 9 / 24
CycleGAN
Peut-on réaliser la “traduction” d’image sans paires pour la supervision ?CycleGANZhu et al., Unpaired Image-to-Image Translation using Cycle-ConsistentAdversarial Networks, 2018Extension non supervisée de pix2pix
Principe : pour apprendre la transformation G : X → Y sans pairesd’exemples, on apprend aussi la transformation inverse F : Y → X.On souhaite avoir une idempotence du cycle F ◦ G (et G ◦ F) :
x → G(x) → F(G(x)) ≈ x (cohérence avant),y → F(y) → G(F(y)) ≈ y (cohérence arrière).
Extensions des GAN conditionnels pour les images 10 / 24
CycleGAN : fonctionnementOn dispose d’images x ∈ X et y ∈ Y. Il n’y a pas de correspondances entreles images.
Le modèle apprend G : X → Y et F : Y → X par deux GAN :
LGAN(G,DY,X,Y) = Ey∼p(y)[log DY(y)] + E ∼ p(x)[log(1− DY(G(x)))]
et impose une contrainte de cohérence cyclique :
Lcyc(G,F) = Ex∼p(x)[∥F(G(x))− x∥1] + Ey∼p(y)[∥G(F(y))− y∥1]
Extensions des GAN conditionnels pour les images 11 / 24
CycleGAN : résultats
GAN pour la synthèse d’images à haute résolution 11 / 24
Plan du cours
1 Rappels
2 Extensions des GAN conditionnels pour les images
3 GAN pour la synthèse d’images à haute résolution
4 Espace latent et contrôle des GAN
GAN pour la synthèse d’images à haute résolution 12 / 24
PGGAN
Principe : progressivement ajouter des couches au générateur et audiscriminateur pour raffiner les images à basse résolution en images hauterésolution.Karras et al., Progressive Growing of GANs for Improved Quality, Stability and Variation, 2018
GAN pour la synthèse d’images à haute résolution 13 / 24
PGGAN : ajout d’une couche
(a) Générateur à l’échelle 16× 16(b) Transition : α contrôle l’interpolation entre la nouvelle couche(32× 32) et la couche précédente 16× 16 réinterpolée(c) Générateur à l’échelle 32× 32
GAN pour la synthèse d’images à haute résolution 14 / 24
PGGAN : PixelNorm
Problème du jeu minimax : les normes des paramètres du générateur etdu discriminateur peuvent parfois croître sans limite.
PixelNorm : pixelwise feature vector normalizationLes activations ax,y après chaque couche convolutive du générateur sontnormalisées selon une variante de la Local Response Normalization (Krizhesvky
et al., 2012) :
bx,y =ax,y√
1N∑N−1
j=0 (ajx,y)2
→ normalise les activations et permet de contrôler l’amplitude desparamètres
GAN pour la synthèse d’images à haute résolution 15 / 24
StyleGAN
Principe : version“améliorée” dePGGAN, le codez ∈ Z est transforméen style w ∈ W. Cestyle est injecté dansles différentes couchesdu générateur.
Karras et al., A Style-Based Generator Architecture for Generative Adversarial Networks, 2019
GAN pour la synthèse d’images à haute résolution 16 / 24
StyleGAN : astuces
Adaptive Instance Normalization (AdaIN)
AdaINw est décomposé par unetransformation affine eny = (ys,yb).Le style permet ensuite de contrôlerchaque carte de caractéristiquesaprès une convolution dans l’AdaIN :
AIN(xi,y) = ys,ixi − µ((xi)
σ(xi)+ yb,i
GAN pour la synthèse d’images à haute résolution 16 / 24
StyleGAN : astucesStyle mixing : on remplace aléatoirement certains styles w par le style w′
d’une autre image.
GAN pour la synthèse d’images à haute résolution 17 / 24
StyleGAN : troncaturePour simplifier l’échantillonnage, on considère une distribution tronquée :
w′ = w + ψ (w − w)
où w = Ez∼p(z)[f((z)] est le centre de masse de W.G(w) est l’image “moyenne” et s’en éloigner dans une direction ou sonopposée “inverse” une image :
GAN pour la synthèse d’images à haute résolution 18 / 24
StyleGAN : espace des styles
L’espace de style W permet d’obtenir un espace latent structurédifféremment de l’a priori gaussien de Z. Le style correspond à unembedding que l’on espère plus interprétable.
Espace latent et contrôle des GAN 18 / 24
Plan du cours
1 Rappels
2 Extensions des GAN conditionnels pour les images
3 GAN pour la synthèse d’images à haute résolution
4 Espace latent et contrôle des GAN
Espace latent et contrôle des GAN 19 / 24
Espace latent
L’espace latent des modèles génératifs permet de parcourir la distributiondes données synthétiques.Mais les directions de l’espace latent n’ont en général pas de significationparticulière. Les attributs sémantiques d’une image sont mélangés : onparle d’entanglement.Comment explorer cet espace latent pour :
comprendre la structure des données ?interpréter sémantiquement les variations statistiques latentes ?modifier une donnée réelle de façon plausible ?
Espace latent et contrôle des GAN 20 / 24
Manipulation d’image
Pour une image générée G(z) = x, comment déplacer z de sorte à produireun effet donné sur x (e.g.pose, expression, couleur, etc.) ?
ProblématiqueComment trouver des directions sémantiques dans l’espace latent ?
Idée naïve : arithmétique des vecteurs dans l’espace latent« homme avec lunettes » - « homme sans lunettes » + « femme sanslunettes » = « femme avec lunettes »
Espace latent et contrôle des GAN 21 / 24
InterFaceGAN
Prérequis : un classifieur C capable d’identifier un attribut binairey ∈ {0, 1}.Objectif : trouver une direction d ∈ Z qui permet de contrôler la présencede l’attribut y dans les images générées G(z).Shen et al., Interpreting the latent space of GANs for semantic face editing, 2020
Algorithme1 Échantillonner N codes latents2 Générer les N images xi correspondantes3 Obtenir les pseudo-étiquettes yi = C(G(zi)) grâce au classifieur4 Conserver les n codes latents z+i (resp. z−i ) qui ont produit les images qui
obtiennent les scores les plus élevés (resp. les plus faibles)5 Trouver la direction d comme la normale à l’hyperplan séparateur d’une
SVM linéaire qui séparent Z+ et Z−
Espace latent et contrôle des GAN 22 / 24
GANSpaceHärkönen et al., Discovering Interpretable GAN Controls, 2020
PrincipeGANSpace exploite la structure de W et applique une ACP dans l’espace latentde StyleGAN.La découverte des directions est non-supervisée mais leur sémantique estinterprétée a posteriori.
Espace latent et contrôle des GAN 23 / 24
Édition d’image
Modifier une image existantePour modifier une image réelle, il est nécessaire de connaître son équivalentz dans l’espace latent : c’est le problème de l’inversion d’image.
Comparaison GAN/VAEUn auto-encodeur (variationnel) possède un encodeur qui réalise uneprojection X → Z. Ce n’est pas le cas des GAN.
Recherche par descente de gradientUne solution coûteuse pour retrouver z∗ qui génère une image cible xconsiste à minimiser :
minz∈Z
∥G(z)− x∥p
par descente de gradient.
Espace latent et contrôle des GAN 24 / 24
Apprentissage d’un encodeur pour l’inversion
Une solution moins coûteuse que la descente de gradient consiste àapprendre un réseau de neurones P paramétré par θ qui réalise laprojection X → Z.Algorithme
1 Échantillonner n codes zi et les images G(zi) = xi correspondantes2 Apprendre P par descente de gradient :θ∗P = arg minθ
∑ni=1 L(G(P(zi; θ)), zi)
3 Pour une image x′, le code associé est z′ = P(x′).
Une approche rapide et performante consiste à utiliser z = P(x) commeinitialisation pour une recherche par descente de gradient. (Zhu et al., 2016)