Depuis une victoire face aux meilleurs joueurs humains de Go, par exemple, ou plus récemment, la prévision de la météo avec une précision jamais atteinte, les avancées des IA se poursuivent et continuent de surprendre. Un résultat encore plus déconcertant est celui de la génération d’images d’un réalisme saisissant alimentant une confusion certaine entre le vrai et le faux. Mais comment ces images sont-elles générées automatiquement ?
Les modèles de génération d’images reposent sur l’apprentissage profond, c’est-à-dire des réseaux de neurones de très grande taille pouvant atteindre plusieurs milliards de paramètres. Un réseau de neurones peut être considéré comme une fonction qui va associer à des données en entrée, des prédictions en sortie. Cette fonction est composée d’un ensemble de paramètres (des valeurs numériques) initialement aléatoires que le réseau va apprendre à fixer par apprentissage.
Pour donner un ordre de grandeur, le modèle Stable Diffusion, capable de générer des images réalistes est composé de 8 milliards de paramètres et son entraînement a coûté 600 000 dollars.
Ces paramètres, il faut les apprendre. Pour expliquer leur apprentissage, nous pouvons nous intéresser au cas plus simple de la détection d’objets à partir d’images. Une image est présentée en entrée du réseau et celui-ci doit prédire en sortie des étiquettes d’objets possibles (voiture, personne, chat…).
L’apprentissage consiste alors à trouver une bonne combinaison de paramètres permettant de prédire le plus correctement possible les objets présents dans les images. La qualité de l’apprentissage dépendra principalement de la quantité de données étiquetées, de la taille des modèles et de la puissance de calcul disponible.
Dans le cas de la génération d’images, c’est en quelque sorte le processus inverse que l’on souhaite faire : à partir d’un texte décrivant une scène, est attendue en sortie du modèle la création d’une image correspondant à cette description, ce qui est considérablement plus complexe que de prédire une étiquette.
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.
Du bruit à l’image
Pour le processus de débruitage nous avons besoin d’images, celles-ci proviennent d’internet et
permettent de constituer le jeu de données d’apprentissage. Pour le texte nécessaire au guidage du débruitage, ce sont tout simplement les légendes des images trouvées sur Internet qui sont utilisées.
Parallèlement à l’apprentissage du débruitage de l’image, un réseau représentant le texte est associé. Ainsi, lorsque le modèle apprend à débruiter une image, il apprend également à quels mots ce débruitage est associé. L’apprentissage terminé, nous obtenons un modèle qui à partir d’un texte descriptif et d’un bruit total va, par itération successive, éliminer le bruit pour converger vers une image collant à la description textuelle.
Le processus permet de s’affranchir d’un étiquetage manuel spécifique. Il se nourrit des millions d’images associées à leurs légendes déjà présentes sur le web. Pour finir, une image valant mille mots, en guise d’exemple, l’image ci-dessus est générée à partir du texte suivant : « fried egg flowers in the bacon garden (fleurs d’œufs frits dans un jardin de bacon) » par le modèle Stable Diffusion.
Christophe Rodrigues, Enseignant-chercheur en informatique, Pôle Léonard de Vinci
Cet article est republié à partir de The Conversation sous licence Creative Commons. Lire l’article original.