rcp211 – réseaux génératifs antagonistes

Post on 20-Jun-2022

1 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

1 / 24

RCP211 – Réseaux génératifsantagonistes

pix2pix – images HD – espaces latents

Nicolas Audebert nicolas.audebert@lecnam.net

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)

top related