Lien de la note Hackmd
Deepfake
Les GAN permettent de creer de faux surprenat avec des reseaux profonds (d’ou Deepfakes)
- Creation de visage (StyleGAN)
- Fausse video comme celle de Poutine soulignant la faiblesse des democraties
Autoencoders
Avant les GAN il y a eu les autoencodeurs qui ne demandent pas de verite terrain
Les resultats sont moyens
U-net
U-net est une sorte d’autoencodeur avec une verite terrain et des ponts
Autoencodeur variationel (VAE)
On decoupe l’espace latent en sa moyenne et son ecart-type
Pour construire ce reseau on definit 2 fonctions d’erreur:
- Distance image d’arrivee/image de depart (cf autoencodeur)
- Divergence de Kullback-Leibler entre le vecteur de l’espace latent et une gaussienne type: $KL(N(\mu, \sigma), N(0,I))$
VAE - generation
On peut créer de nouvelles images en gardant la moyenne et en modulant l’écart type $z=\mu+\varepsilon\sigma$
Avec les chiffres manuscrits et un espace latent a 2 dimensions $[\mu, \sigma]$ on a:
Vector Quantised-Variational AutoEncoder (VQ-VAE)
On fabrique une collection de valeurs de vecteurs latents (embedding space). Une valeur est un vecteur lorsque le vecteur latent est en 3D
Si la sortie de l’encodeur est de $32\times 32\times 50$ alors la collection a des vecteurs de dimension $50$.
On traduit la sortie de l’encodeur en prenant pour chaque valeur, la plus proche dans la collection
VQ-VAE Compression
Un facteur de compression de $42$:
- L’image d’origine a $128\times128\times 3\times 8$ bits
- L’image est encodee avec $32\times32\times9$ bits ($521$ valeurs possibles)
- (il faut aussi stocker la collection de valeurs soit $512\times D$)
On peut entrainer un classifieur sur les images $32\times 32\times 1$, ca marche
VQ-VAE-2 - Multi-echelle
GAN
Un Generative Adversarial Network (GAN) est un autoencodeur avec un discriminateur qui indique si le resultat est un vrai ou faux
L’erreur du discriminateur permet qu’il se corrige (minimise l’erreur) et que le generateur se corrige (maximise l’erreur du discriminateur)
Conditional GAN
Le principe est d’enrichier un GAN en ajoutant des informations supplementaires (la classe de l’image par ex.) en entree du generateur et du discriminateur
On a ainsi des images plus realistes en sortie
Pix2Pix
C’est un GAN conditionel
Le generateur est un reseau en U et le discriminateur un classifieur CNN adapte.
On peut ainsi generer des images a partir de dessins.
Cycle GAN
Peut-on faire de l’auto-apprentissage (sans verite terrain) avec un GAN ?
Si le but est de passer d’un type d’image a un autre, c’est possible. Pour cela on utilise 2 generateurs, $G$ et $F$, et 2 discriminateurs, $DX$ et $DY$
- $G$ fabrique une image de type $Y$ a partir d’une image de type $X$
- $F$ fabrique une image de type $X$ a partir d’une image de type $Y$
- $DX$ indique si l’image donnee est vraie ou a ete generee par $F$
- $DY$ indique si l’image donnee est vraie ou a ete generee par $G$
Applications
StyleGAN
Melange de style
Avec 2 vecteurs de l’espace latent on peut melanger $2$ visage en injectant le 1er jusqu’a une couche dans la synthese, puis le second
Plus on injecte tard le 2e, moins l’impact est important (seulement les hautes frequences)
Vers le visage moyen
Lorsqu’on est dans l’espace $\mathcal W$ avec une valeur latente $w$ on peut interpler le visage moyen $\bar w$
\[w=\bar w+\psi(w-\bar w)\]