Détruire pour créer
Dans un premier temps, oublions le texte et focalisons-nous sur l’image seule. Si générer une image est un processus complexe même pour un être humain, détruire une image (le problème inverse) est un problème trivial. Concrètement, à partir d’une image composée de pixels, changer la couleur de certains pixels aléatoirement constitue une méthode simple d’altération.
Nous pouvons présenter en entrée d’un réseau de neurones une image légèrement altérée et en sortie lui demander de prédire l’image d’origine. Nous pouvons alors entraîner le modèle à apprendre à débruiter des images, ce qui représente un premier pas vers la génération d’images. Ainsi, si l’on part d’une image fortement bruitée et que l’on réitère l’appel du modèle séquentiellement, nous obtiendrons à chaque appel une image de moins en moins bruitée jusqu’à obtenir une image entièrement débruitée.
Si nous exagérons le processus, nous pourrions alors partir d’une image composée uniquement de bruit (une neige de pixels aléatoires), autrement dit une image de rien et réitérer les appels à notre modèle « débruiteur » afin d’aboutir à une image comme illustré ci-dessous :
Nous avons alors un processus capable de générer des images mais d’un intérêt limité car, en fonction du bruit aléatoire, il peut après plusieurs itérations aboutir à générer n’importe quoi comme image de sortie. Nous avons donc besoin d’une méthode pour guider le processus de débruitage et c’est le texte qui sera utilisé pour cette tâche.