les réseaux de neurones GAN (generative adversarial networks)

La Data Science devient créative avec les GAN

Les champs d’application de la Data Science ne cessent de s’élargir. Les IA savaient déjà classer et prédire, elles deviennent créatives avec les GAN.

 

Les GAN, qu’est-ce que c’est ?

La technologie GAN (Generative Adversarial Networks), introduite en 2014 par Ian Goodfellow, est une approche innovante de programmation pour l’élaboration de modèles génératifs, c’est-à-dire capables de produire eux-mêmes des données.

Son développement rapide au cours des dernières années et ses multiples applications en font l’une des découvertes récentes les plus prometteuses du Machine Learning. Yann LeCun (patron de la recherche en IA chez Facebook) l’a d’ailleurs présentée comme « l’idée la plus intéressante des 10 dernières années dans le domaine du Machine Learning ».

En termes techniques, les GAN reposent sur l’entrainement non supervisé (unsupervised learning) de deux réseaux de neurones artificiels appelés Générateur et Discriminateur. Ces deux réseaux s’entrainent l’un l’autre dans le cadre d’une relation contradictoire :

  • le Générateur est en charge de créer des designs (ex : des images)
  • le Discriminateur reçoit des designs provenant (i) du générateur et (ii) d’une base de données constituée de designs réels. Il est en charge d’identifier la source de chaque design et ainsi de deviner si ces designs sont réels ou s’ils ont été générés par le Générateur.

A la suite du travail du Discriminateur, deux boucles de feedbacks transmettent aux deux réseaux de neurones l’identité des designs sur lesquels ils doivent s’améliorer.

  • Le Générateur reçoit l’identité des designs sur lesquels il a été démasqué par le Discriminateur,
  • Le Discriminateur reçoit l’identité des designs sur lesquels il a été trompé par le Générateur.

Les deux algorithmes entretiennent donc une relation gagnant-gagnant d’amélioration continue : le Générateur apprend à créer des designs de plus en plus réalistes et le Discriminateur apprend à identifier de mieux en mieux les designs réels de ceux provenant du Générateur.

les GAN qu'est ce que c'est

Prenons l’exemple bien connu des faussaires de billets de banque traqués par les policiers.

Le Générateur joue le rôle d’un faussaire qui produit une liasse de 100 faux billets de banque (dont les designs sont tous différents). Il la présente à un policier (le Discriminateur) qui, grâce à l’observation d’une base de données de billets authentiques qui lui a été transmise, a des connaissances basiques en identification de billets contrefaits. Le policier va donc analyser les billets du faussaire et les classer en deux catégories : ceux qu’il pense être vrais et ceux qu’il pense être faux. A chaque fois qu’un faux billet est identifié par le policier, celui-ci est renvoyé au faussaire. Cela va permettre à ce-dernier de connaitre les designs qui n’ont pas été capables de tromper la police et par symétrie, ceux qui ont été assez réalistes pour passer à travers les contrôles. Par cette logique d’apprentissage, le faussaire va pouvoir créer de nouveaux billets plus réalistes et les représenter au policier. Celui-ci donnera une nouvelle fois son verdict et ainsi de suite. Le processus s’arrête lorsque le faussaire (i.e. le Générateur) est capable de créer des billets qui trompent le policier (i.e. le Discriminateur) à tous les coups.

 

Quelques exemples d’application des GAN

Génération d’images

Jusqu’alors, les GAN ont surtout été utilisés pour la génération d’images avec des résultats satisfaisants : les images produites par des GAN peuvent être si réalistes que l’œil humain ne peut pas imaginer qu’elles ont été créées de toutes pièces (ou plutôt de tous pixels) par un ordinateur.

Voici quelques exemples d’images créées par des GAN.

Les images de chats présentées ci-dessous ne sont pas de vraies photos. Elles ont été générées par un modèle GAN entrainé sur la base de 10 000 photographies de chats. A noter que plus la base de données d’entrainement est grande, plus les images générées seront réalistes.

GAN - generative adversarial networks - chats

Image: Alexia Jolicoeur-Martineau/Meow Generator

Au-delà de cet exemple animalier, les applications business sont multiples pour les entreprises et peuvent concerner de nombreux secteur.

Génération de planches de designs pour l’automobile, le prêt-à-porter, l’ameublement, etc

L’application la plus immédiate est des GAN est la génération d’idées de designs et de styles. Les GAN peuvent en effet produire des planches de styles qui pourraient alimenter la réflexion des responsables de la création et du design dans les entreprises, aussi bien dans la mode, que dans l’ameublement ou l’automobile.

Par exemple, les modèles de chaussures de sport présentés ci-dessous ont été générés par un modèle GAN.

GAN - generative adversarial networks - chaussures

Image: Deverall, Lee, Ayala/ Using Generative Adversarial Networks to Design Shoes

Génération de nouveaux personnages et de maps (i.e. décors) évolutives pour les jeux vidéo

Les jeux vidéo sont devenus de vrais blockbusters avec des budgets dignes des productions hollywoodiennes. Dans la course au réalisme et à l’immersion, les studios investissent des budgets significatifs pour créer des maps tentaculaires et des nouveaux décors qui permettent à chacun d’explorer le jeu de façon inédite.

Les GAN peuvent permettre aux éditeurs de générer des maps et des décors très réalistes en temps réel en fonction des déplacements dans le jeu des personnages. La « taille » des jeux devient alors infinie sans surcoût significatif de développement.

Génération de dessins techniques pour l’industrie

En alimentant un réseau GAN avec des dessins techniques et les caractéristiques correspondantes, les GAN sont capables de générer de nouveaux dessins techniques par exemple pour créer des châssis de voiture, des profils d’ailes d’avion, des coques de bateaux, etc.

C’est ce que présente Maurice Conti (responsable d’un grand laboratoire d’innovation : www.alpha.company) dans la vidéo ci-dessous où un algorithme génératif est utilisé pour créer un châssis de voiture de sport ultra-performant.

Prenons un autre exemple, celui du profil d’une aile d’avion, pour comprendre comment cela fonctionne. En alimentant un modèle GAN avec les données techniques d’un grand nombre de profils existants (matériaux, aérodynamisme, courbure, résistance, etc), le Générateur va apprendre à créer des dessins techniques répondant aux contraintes physiques et matériels de l’aviation, par exemple :

  • tel type de matériau doit être utilisé sur telle partie de l’aile
  • la structure doit être de telle épaisseur au niveau de l’embase des réacteurs
  • etc

Combinée à une fonction d’optimisation – par exemple, minimiser le coefficient de pénétration dans l’air – le modèle sera capable de générer des dessins (i) respectant les contraintes techniques et (ii) innovants en termes de performance.

Augmentation de la résolution d’images pour les enjeux de sécurité

Les images issues des vidéos de caméras de surveillance ne sont pas toujours d’une grande qualité et ne permettent pas nécessairement l’identification des éléments recherchés (ex : lecture d’une plaque d’immatriculation, reconnaissance d’un visage, visualisation d’un objet, etc).

Une sous-famille des GAN (les SRGAN : Super-Resolution Generative Adversarial Networks) a démontré sa capacité à augmenter la résolution d’images. Le Générateur produit alors des images de bonne qualité à partir d’images de qualité médiocre. Il les soumet au Discriminateur qui a été entrainé sur une base d’images de bonne résolution. Lorsque les images produites par le Générateur sont d’assez bonne qualité pour tromper le Discriminateur, le modèle s’arrête.

Les SRGAN peuvent ainsi être utilisés pour améliorer la qualité des images des caméras de vidéos surveillance et ainsi faciliter le travail d’identification des personnes qui les visionnent.

GAN - generative adversarial networks - resolution images

Image: motiondsp.com

Et pourquoi pas l’écriture de textes (poésie, essais, romans, notes de synthèses, etc)

On pourrait entraîner un réseau GAN sur la base de romans policiers et lui demander d’en générer un nouveau.

 

Le mot de la fin : créer et innover grâce aux GAN

Avec l’apparition des GAN, la Data Science s’est dotée d’un formidable outil de création et s’attaque ainsi à ce qui semblait être un des derniers prés carrés de l’intelligence humaine. Les premières applications se sont surtout développées autour de la génération d’images mais les possibilités de cette nouvelle technologie sont très nombreuses. Elle semble être un outil puissant au service de l’innovation produit.

Nous ne manquerons pas de publier sur ce blog les résultats des travaux de R&D de Wintics sur les GAN pour vous faire découvrir de nouvelles applications business.