Le dé­ve­lop­pe­ment rapide de l’in­tel­li­gence ar­ti­fi­cielle (IA ou AI en anglais) permet aux machines de devenir de plus en plus in­tel­li­gentes. Dans la mesure où elles ont la pos­si­bi­lité de se dé­ve­lop­per de manière autonome grâce aux données qui leur sont fournies, les machines créent de nouveaux moyens de nous aider à accomplir des tâches de plus en plus complexes.

Le système Ge­ne­ra­tive Ad­ver­sa­rial Networks (GAN) est une solution très pro­met­teuse, qui offre déjà des résultats im­pres­sion­nants dans divers domaines. Les GAN sont utilisés prin­ci­pa­le­ment pour la gé­né­ra­tion d’images, mais ils per­met­tent également la création au­to­ma­tique de textes. Que sont con­crè­te­ment les GAN ? Comment fonc­tion­nent-ils ? Comment les utiliser ef­fi­ca­ce­ment ?

Qu’est-ce que qu’un GAN ?

Avant de nous pencher sur ce que les GAN peuvent faire, il est important de savoir de quoi il s’agit.

Il s’agit d’un système d’ap­pren­tis­sage au­to­ma­tique (machine learning) développé en 2014 par Ian Good­fel­low et son équipe. La tâche d’un GAN est d’étudier des échan­til­lons de données réelles et, à partir de ceux-ci, de produire ses propres créations, qui doivent paraître si réelles au point que l’on ne puisse détecter qu’il s’agit d’images générées par or­di­na­teur, sans in­ter­ven­tion humaine. Pour cela, deux réseaux neuronaux sont utilisés en con­cur­rence.

La tâche du réseau gé­né­ra­teur est de créer une con­tre­fa­çon. On fournit des données au réseau, par exemple des photos de dif­fé­rentes personnes. En se basant sur ces in­for­ma­tions, le réseau peut ensuite générer sa propre photo. Pour cela, le réseau apprend d’abord les ca­rac­té­ris­tiques communes des originaux. La nouvelle image n’est donc pas une copie des données sources, mais une image nouvelle qui y ressemble. Dans notre exemple, il s’agit d’une photo d’une personne qui n’existe pas.

Les données de base et les in­for­ma­tions générées sont ensuite trans­mises au réseau par­te­naire. La tâche du réseau dis­cri­mi­na­teur est de vérifier toutes les données qu’il reçoit et de dé­ter­mi­ner si elles sont vraies ou fausses. Une image sera non seulement jugée fausse si elle s’éloigne trop du modèle, mais également si elle est trop parfaite : si le gé­né­ra­teur se contente de faire une moyenne des données reçues et d’en extraire une nouvelle image, il sera facile de voir qu’il s’agit de l’œuvre d’une machine. Le dis­cri­mi­na­teur filtre également les données qui n’ont pas l’air na­tu­relles.

Les deux réseaux s’opposent cons­tam­ment. Lorsque le réseau dis­cri­mi­na­teur reconnait une donnée erronée, il la renvoie à l’autre réseau. Dans ce cas, le réseau gé­né­ra­teur n’est pas encore au point et doit continuer à apprendre. Dans le même temps, le réseau dis­cri­mi­na­teur a également appris. Dans la mesure où les deux systèmes neuronaux s’en­traî­nent mu­tuel­le­ment, nous sommes en présence d’un système de deep learning. Le réseau gé­né­ra­teur cherche à générer des ensembles de données qui ont l’air si réels que le dis­cri­mi­na­teur les considère comme vrais. Le dis­cri­mi­na­teur, de son côté, cherche à analyser en pro­fon­deur et à com­prendre les exemples réels afin que les con­tre­fa­çons n’aient aucune chance d’être iden­ti­fiées comme vraies.

Comment fonc­tion­nent les GAN ?

Comme toutes les in­tel­li­gences ar­ti­fi­cielles, les GAN doivent aussi être entraînés pour pouvoir faire leur travail aussi bien que possible. Cette forme de machine learning s’effectue en six étapes :

  1. Dé­fi­ni­tion du problème : dans la première étape, il faut définir un problème à résoudre par le système. Ensuite, le dé­ve­lop­peur doit réunir des données que le système pourra utiliser.
  2. Ar­chi­tec­ture : dif­fé­rents problèmes né­ces­si­tent dif­fé­rents Ge­ne­ra­tive Ad­ver­sa­rial Networks. De ce fait, le GAN doit être équipé de l’ar­chi­tec­ture adéquate pour cette uti­li­sa­tion.
  3. Premier en­traî­ne­ment du réseau dis­cri­mi­na­teur : cette étape marque le début de l’en­traî­ne­ment lui-même. Le gé­né­ra­teur est arrêté et le réseau dis­cri­mi­na­teur analyse uni­que­ment les données réelles pour apprendre à les com­prendre.
  4. Premier en­traî­ne­ment du réseau gé­né­ra­teur : c’est au tour du dis­cri­mi­na­teur d’être arrêté et le gé­né­ra­teur commence à produire des données con­tre­faites.
  5. Deuxième en­traî­ne­ment du réseau dis­cri­mi­na­teur : à ce stade, on fournit au réseau dis­cri­mi­na­teur les données con­tre­faites générées par le réseau gé­né­ra­teur et il doit dé­ter­mi­ner les­quelles sont vraies et les­quelles ne le sont pas.
  6. Deuxième en­traî­ne­ment du réseau gé­né­ra­teur : le réseau gé­né­ra­teur s’améliore avec les résultats issus du deuxième en­traî­ne­ment du réseau dis­cri­mi­na­teur. Le réseau gé­né­ra­teur apprend à re­con­naitre les failles du dis­cri­mi­na­teur et cherche à les utiliser pour générer des ensembles de données con­tre­faites encore plus réalistes.

Les deux réseaux se dé­ve­lop­pent grâce à la mise en com­pé­ti­tion et s’amé­lio­rent en précision et en ef­fi­ca­cité. Le réseau gé­né­ra­teur apprend à générer des ensembles de données toujours plus réalistes. Le réseau dis­cri­mi­na­teur apprend à iden­ti­fier comme faux des ensembles de données con­tre­faites ex­trê­me­ment trompeurs.

Quels défis le système doit-il gérer ?

Comme pour presque toutes les tech­no­lo­gies, les dé­ve­lop­peurs doivent faire face à un certain nombre de défis, qu’il est né­ces­saire de régler pour assurer que le dé­rou­le­ment de l’en­traî­ne­ment se fasse sans accroc.

Une com­pé­ti­tion équi­li­brée

Comme nous l’avons expliqué plus haut, les GAN se composent de deux systèmes neuronaux en com­pé­ti­tion. Cela ne peut cependant fonc­tion­ner que lorsque les deux réseaux sont aussi puissants et efficaces l’un que l’autre. Lorsque l’un des deux réseaux est supérieur à l’autre, le système cesse de fonc­tion­ner. Si le réseau gé­né­ra­teur est plus per­for­mant que le réseau dis­cri­mi­na­teur, toutes les données con­tre­faites seront acceptées. Si le réseau dis­cri­mi­na­teur est plus per­for­mant que le réseau gé­né­ra­teur, toutes les données con­tre­faites seront refusées. Dans ces deux cas, aucun des deux réseaux ne peut continuer de se dé­ve­lop­per.

Com­prendre les objets

Les Ge­ne­ra­tive Ad­ver­sa­rial Networks sont souvent con­fron­tés au problème de bien com­prendre et re­con­naître les objets. C’est par­ti­cu­liè­re­ment le cas avec les photos. Par exemple, dans le cas d’une image réelle montre deux chats avec chacun deux yeux, si le gé­né­ra­teur ne comprend et n’analyse pas bien la structure et le po­si­tion­ne­ment de la photo, il peut très bien générer un chat avec deux paires d’yeux. Les pers­pec­tives peuvent également perturber les GAN et il arrive qu’ils ne com­pren­nent pas qu’il s’agit de deux images du même motif, sous des angles dif­fé­rents.

Dans quel cadre utilise-t-on les GAN ?

Les Ge­ne­ra­tive Ad­ver­sa­rial Networks attirent par­ti­cu­liè­re­ment l’attention, même en dehors du domaine in­for­ma­tique, depuis que le collectif ar­tis­tique Obvious a eu recours à cette technique pour créer une œuvre d’art. La peinture réalisée a été vendue aux enchères pour 432 500 dollars. En dehors du domaine ar­tis­tique, les GAN peuvent également être d’une grande utilité.

Pré­dic­tion vidéo

Les GAN peuvent utiliser des extraits vidéo pour prédire la suite d’une vidéo et ainsi prolonger in­dé­pen­dam­ment la vidéo à la fin d’un en­re­gis­tre­ment. Pour cela, tous les éléments d’une vidéo, les mou­ve­ments, les trai­te­ments mais aussi les mo­di­fi­ca­tions de l’arrière-plan comme la pluie et les nuages sont pris en compte.

Gé­né­ra­tion d’images à partir d’un texte

Les GAN peuvent également générer des images en se basant sur des des­crip­tions. Ils peuvent par exemple, en se basant sur un scénario, élaborer tout seuls un sto­ry­board.

Gé­né­ra­tion d’objets complexes

Les Ge­ne­ra­tive Ad­ver­sa­rial Networks peuvent également trans­for­mer ra­pi­de­ment et au­to­ma­ti­que­ment de simples croquis en objets tri­di­men­sion­nels complexes. Ainsi, grâce à l’uti­li­sa­tion des GAN, un simple arbre dessiné peut devenir un objet complexe qui comprend de multiples détails comme le vent dans les feuilles et les cimes d’arbres va­cil­lantes.

Amé­lio­ra­tion d’images

Les GAN peuvent également améliorer des photos de mauvaise qualité ou ajouter de nouveaux détails à la place des pixels manquants. Les Ge­ne­ra­tive Ad­ver­sa­rial Networks utilisent les in­for­ma­tions issues d’images si­mi­laires pour générer les in­for­ma­tions man­quantes.

Dé­ve­lop­pe­ment de nouveaux produits

Grâce aux GAN, certaines en­tre­prises ex­pé­ri­men­tent déjà dans le dé­ve­lop­pe­ment de produits et dé­ve­lop­pent in­té­gra­le­ment, à l’aide de ce système, des nouveaux modèles et lignes de produits.

Gé­né­ra­tion de des­crip­tions de produits

Les GAN peuvent également prendre en charge l’éla­bo­ra­tion de textes et sont déjà utilisés pour la gé­né­ra­tion des des­crip­tions de produits, qui jouent un rôle toujours plus important dans la décision d’achat du client. Grâce aux GAN, ces des­crip­tions peuvent non seulement être générées ra­pi­de­ment, mais les réseaux peuvent en outre analyser quelles des­crip­tions étaient les plus efficaces par le passé et en concevoir des nouvelles basées sur ces modèles.

Les Ge­ne­ra­tive Ad­ver­sa­rial Networks sont déjà utilisés avec succès dans tous ces domaines. Les en­tre­prises et les dé­ve­lop­peurs tra­vail­lent con­ti­nuel­le­ment à de nouvelles pos­si­bi­li­tés d’ap­pli­ca­tions et il est probable que les GAN revêtent, à moyen terme, une grande im­por­tance dans de nombreux domaines de nos vies per­son­nelles et pro­fes­sion­nelles.

Aller au menu principal