0% ont trouvé ce document utile (0 vote)
8 vues24 pages

Modèles de diffusion et U-Net en IA

Le document présente les modèles de diffusion, une technique générative d'images qui utilise un processus en deux étapes : la diffusion avant pour ajouter du bruit à une image et la diffusion inverse pour débruiter l'image à l'aide d'un réseau U-Net. Contrairement aux GANs, les modèles de diffusion ne reposent pas sur un jeu de minmax, mais génèrent des images claires et réalistes à partir de bruit. L'entraînement du modèle implique la création d'images bruitées à partir d'images réelles et l'utilisation de la rétropropagation pour minimiser l'erreur entre le bruit prédit et le bruit réel.

Transféré par

ben ibrahim roua
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
8 vues24 pages

Modèles de diffusion et U-Net en IA

Le document présente les modèles de diffusion, une technique générative d'images qui utilise un processus en deux étapes : la diffusion avant pour ajouter du bruit à une image et la diffusion inverse pour débruiter l'image à l'aide d'un réseau U-Net. Contrairement aux GANs, les modèles de diffusion ne reposent pas sur un jeu de minmax, mais génèrent des images claires et réalistes à partir de bruit. L'entraînement du modèle implique la création d'images bruitées à partir d'images réelles et l'utilisation de la rétropropagation pour minimiser l'erreur entre le bruit prédit et le bruit réel.

Transféré par

ben ibrahim roua
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Modèles de diffusion

Plan
• Début modèles génératifs
• GANs
• Unet
• Modèles de diffusion
Premières tentatives
• Deep Dream
• Utilisation d’un réseau de neurones entrainé sur imagenet pour exagérer
certaines images

• Original • 10 Iterations • 50 Iterations


Generative Adversarial Networks
• GAN (avec un discriminateur et un générateur)
Générateur
Discriminateur
Génération d’image
Et si nous voulions créer une image à partir d'une autre image ?
Comment pourrions-nous faire cela ?

• Connectez la sortie du discriminateur directement au générateur.

• Cela créerait un autoencodeur d'image. Le discriminateur devient


l'encodeur et le générateur devient le décodeur.
Architecture Unet
Architecture Unet
• Le U-Net a une architecture spéciale pour un autoencodeur d'images.
• Après chaque convolution, nous aurons une Feature Map.
• Du côté de l'encodeur, nous prendrons chaque Feature Map après la
chaque bloque et o n en crée une copie.
• Du côté du décodeur, nous empilerons chaque copie avec la Feature
Map correspondante.
• Ces Feature Map empilées seront des entrées dans une couche de
convolution transposée.
Architecture Unet
• Les connexions au milieu s’appellent les « Skip connections »
• Elles sont importantes pour :

• Préservation des Informations Spatiales : éviter toutes perte causer par le


pooling lors dans la partie encoder
• Capture des Détails : Obtenir plus de détails grace aux couches présentes
dans la partie encodeur,
• Amélioration du Flux de Gradients : Eviter le vanishing gradient
• Garder des informations contextuelles des couches profondes afin de
pouvoir générer de meilleurs images
Convolution transposé
• Convolution transposé avec padding 0 et stride 1
Qu’est-ce qu’un modèle de diffusion
• Génère des images à partir de bruit
• Contrairement au GANs qui utilisent un discriminateur et un
générateur pour faire un jeu minmax
• Les modèles de diffusion sont eux aussi des modèles génératifs
• Ils peuvent générer des images très claires et réalistes
• Ils sont utilisés actuellement dans le text to image
• Il utilisent des U-Nets
Origines en Thermodynamique

Green food coloring dissolving in a glass of water


Origines en Thermodynamique

t = 25 t = 75 t = 150
Processus
Deux étapes:
• Forward Diffusion :
Créer des timestep et ajouter du bruit à une image petit à petit pendant
chaque timestep jusqu’à obtenir une image totalement bruité au dernier
timestep

• Reverse diffusion :
On entraine un réseau de neurones (U-net) afin qu’il puisse détecter le
bruit dans une image bruitée
Forward Diffusion

• Pour générer le bruit, chaque canal de couleur pour chaque pixel aura
une valeur aléatoire sélectionnée par une distribution normale.
Forward Diffusion
Forward Diffusion

t=0 t=1 t=2 t=3 t=4 t=5 t=6 t=7 t=8 t=9 t = 10

1 𝑥−𝜇 2
1 −2 𝜎
𝑁 x; μ, 𝜎 2 = 𝑒
𝜎 2𝜋
Forward Diffusion

𝑞 𝐱1 ȁ𝐱 0 𝑞 𝐱 2 ȁ𝐱1 𝑞 𝐱 3 ȁ𝐱 2 𝑞 𝐱 4 ȁ𝐱 3 𝑞 𝐱 5 ȁ𝐱 4 𝑞 𝐱 6 ȁ𝐱 5 𝑞 𝐱 7 ȁ𝐱 6 𝑞 𝐱 8 ȁ𝐱 7 𝑞 𝐱 9 ȁ𝐱 8 𝑞 𝐱10 ȁ𝐱 9

t=0 t=1 t=2 t=3 t=4 t=5 t=6 t=7 t=8 t=9 t = 10

𝛽 = 0.0001, 0.0023, 0.0045, 0.0067, … , 0.0200


t=0 t=1 t=3 t=4 t = 10

𝑇 = 10 Total number of timesteps

𝛼 = 1−𝛽 Convenient shorthand


Forward diffusion

t=0 t=1 t=2 t=3 t=4 t=5 t=6 t=7 t=8 t=9 t = 10

𝑞 𝐱 𝑡 𝐱 𝑡−1 = 𝑁(𝐱 𝑡 ; 1 − 𝛽𝑡 ⋅ 𝐱 𝑡−1 , 𝛽𝑡 ⋅ 𝐈)

Code: Step 1:
noise = torch.randn_like(x_t) • Generate noise from a standard
x_t = [Link](1 - B[t]) * x_t + normal distribution
[Link](B[t]) * noise • Multiply result by 𝛽𝑡
Step 2:
• Multiply image at previous step by
1 − 𝛽𝑡
• Add it to the result from step 1
Reverse diffusion
• Maintenant qu’on peut générer des images bruités, comment on fait
pour débruité une image ?
• Tous simplement en enlevant le bruit détecté par le U-Net de l’image
• Lors de l’inférence (modèle déjà entrainé):
• On doit commencé par une image totalement bruité (bruit) (et donc dernier
timestep)
• Le bruit prédit par le modèle est celui du timestep courant
• On enlève le bruit de l’image et on se retrouve au timestep t-1
• On continue ainsi jusqu’à arrivé à t0 qui est l’image générée
Entrainement du modèle de diffusion
Pour entrainer un modèle de diffusion:
• On prend une image réelle
• On sélectionne un timestep (t)
• On calcule le bruit au timestep (t) et on l’applique à l’image
• On obtient une image bruitée
• On donne au U_net l’image bruitée + le timestep en entrée
• On donne au U_net le bruit au timestep (t) en sortie
Entrainement du modèle de diffusion
Training Data

Noisy image at time 𝑡 Noise added at time 𝑡

𝑞 𝐱 𝑡 𝐱 0 = 𝑁(𝐱 𝑡 ; 𝛼ത𝑡 ⋅ 𝐱 0 , 1 − 𝛼ത𝑡 ⋅ 𝐈) “Skip ahead” function

𝑡=
𝑡=5 𝑡 = 25
100
Entrainement du modèle de diffusion

• On calcule l’erreur entre le bruit prédit par le Unet et le bruit réel


• On utilise la MSE
• On fait la backpropagation
Entrainement du modèle de diffusion

Vous aimerez peut-être aussi