Compétition entre réseaux de neurones artificiels pour créer des images réalistes

Bataille rangée entre deux armées de neurones. Jason Snyder/Flickr, CC BY-SA

« Ce que je ne peux créer, je ne peux le comprendre », disait le physicien Richard Feynman. Dans le domaine de l’intelligence artificielle, et de l’apprentissage automatique en particulier, transposer cette affirmation revient à affirmer que pour qu’un algorithme d’apprentissage soit capable de comprendre ses données d’entrée, il doit être capable de créer des données fortement semblables.

Dans cette optique, les modèles génératifs se sont développés ces dernières années. L’objectif de ces méthodes est de découvrir la quintessence des données réelles qui leur sont proposées, d’en apprendre un modèle (souvent une distribution de probabilité) qui leur permette ensuite de générer de nouvelles données, jamais rencontrées, et qui sont proches des données réelles.

Des applications très diverses

Parmi tous les modèles génératifs proposés, les GAN (Generative Adversarial Network, ou réseaux contradictoires générateurs) connaissent depuis leur création en 2014 un succès franc, et ne cessent depuis de se développer. De nombreuses applications ont vu le jour en génération d’images, parmi lesquelles on peut citer :

Figure 1. Author provided
  • la génération d’images à partir de leur description textuelle : étant donnée une description textuelle d’une scène, il est possible d’entraîner certains types de réseaux contradictoires pour qu’ils génèrent la ou les images les plus probablement ressemblantes à cette description (figure 1-(a))

  • La génération haute résolution de visages : à partir d’une base d’entraînement de visages de célébrités, un GAN est capable de générer des visages de personnes qui a priori n’existent pas (figure 1-(b)).

  • la traduction d’images : l’idée est ici d’appliquer une représentation issue d’une image à une autre image. Par exemple, appliquer un style pictural (le style impressionniste) à une photographie, ou encore appliquer des propriétés d’un objet d’une image (par exemple un visage souriant) à un autre objet (un visage non souriant) (figure 1-(c)).

  • La prédiction de vidéos : à partir d’une séquence vidéo, il est possible d’entraîner un GAN pour qu’il soit capable de prédire la ou les images suivante(s) de la vidéo.

Un faussaire joue contre un expert

Pour comprendre comment fonctionnent ces réseaux, imaginons un faussaire d’art, Gérard, dont l’objectif est de produire des toiles aussi vraies que possible. Daniel, un expert, reçoit un ensemble de toiles, authentiques et fausses, et sa mission est de les classer dans la bonne catégorie. L’objectif de Gérard est de tromper Daniel en faisant passer ses toiles pour des vraies. Daniel essaye quant à lui de se tromper le moins possible. Les deux objectifs sont concurrents, et Gérard et Daniel jouent donc un jeu à deux joueurs, où Daniel essaye de maximiser son taux de bonne reconnaissance, tandis que Gérard essaye de le minimiser. Chacun essaye bien sûr de gagner.

Un réseau contradictoire générateur met donc en place un jeu à deux joueurs (figure 2). Le premier d’entre eux est appelé le générateur G (Gérard, le faussaire). Il s’agit d’un réseau de neurones qui produit des images (les toiles) à partir de variables z (les couleurs sur la palette), générées aléatoirement et de distribution connue pz.

En d’autres termes, G produit des images pouvant être vues comme des réalisations d’une distribution inconnue pG. Le deuxième joueur D (Daniel, l’expert) est également un réseau de neurones, appelé discriminateur, qui détermine si son entrée ressemble à une vraie image (un vrai tableau), ou s’il s’agit d’une image générée par G (un faux). Pour lui permettre de faire son choix, D apprend ce qu’est un vrai tableau : il a accès à une base de données de tableaux (issus d’un musée par exemple) où les images sont des réalisations d’une distribution inconnue pdata,

Figure 2 : schéma synoptique d’un réseau contradictoire générateur. Author provided

Les réseaux de neurones ayant besoin d’être entraînés pour fonctionner, l’entraînement de G vise à accroître le taux d’erreur de D (c’est-à-dire faire croire à D que les tableaux générés sont des authentiques toiles de maître). L’entraînement de D se fait sur un ensemble particulier, composé de vraies toiles issues de la base de données et de faux générés par G, et D essaye d’optimiser son taux de bonne reconnaissance.

G et D jouent alors alternativement et, dans sa version de base, l’objectif pour les deux joueurs se traduit par l’optimisation d’une fonction à deux termes. Le premier terme force D à classer des données réelles comme telles (tableaux de maîtres), le second force D à classer les données générées par G comme tel (faux).

G tente de tromper D en lui faisant étiqueter ses échantillons comme réels (tableaux de maîtres), essayant donc de minimiser la fonction, tandis que D essaye de la maximiser. Il est démontré (théorème du minimax de von Neumann) qu’il est alors possible de trouver une situation d’interaction stable entre les joueurs (un équilibre de Nash), c’est-à-dire trouver une solution au problème d’optimisation.

Avec ce processus, G s’est aidé de D pour apprendre une distribution proche de pdata, sans jamais avoir vu d’images réelles. Il peut donc générer seul de nouvelles images qui ressemblent à la base de données de tableaux. Gérard peut peindre des faux parfaits et les vendre au prix fort…

Pratiquement, les réseaux G et D sont des réseaux de neurones, tels que des perceptrons multicouches ou des réseaux convolutifs.


Read more: Deep learning, des réseaux de neurones pour traiter l’information


Les réseaux contradictoires générateurs sont utilisés pour d’autres applications que la génération d’images réalistes. On peut parler ici de recherche de documents par le contenu, de recherche de médicaments ou encore de commande de robots.

Si Yann LeCun, l’un des pères de l’apprentissage profond, a dit sous forme de boutade « L’apprentissage contradictoire est la chose la plus cool depuis le pain en tranches », il est évident aujourd’hui que les réseaux GAN sont des méthodes très prometteuses dans de nombreux domaines.