Generative Adversarial Networks : la face créative de l’apprentissage automatique

Le développement rapide de l’intelligence artificielle (IA ou AI en anglais) permet aux machines de devenir de plus en plus intelligentes. Dans la mesure où elles ont la possibilité de se développer 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 Generative Adversarial Networks (GAN) est une solution très prometteuse, qui offre déjà des résultats impressionnants dans divers domaines. Les GAN sont utilisés principalement pour la génération d’images, mais ils permettent également la création automatique de textes. Que sont concrètement les GAN ? Comment fonctionnent-ils ? Comment les utiliser efficacement ?

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’apprentissage automatique (machine learning) développé en 2014 par Ian Goodfellow et son équipe. La tâche d’un GAN est d’étudier des échantillons 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 ordinateur, sans intervention humaine. Pour cela, deux réseaux neuronaux sont utilisés en concurrence.

La tâche du réseau générateur est de créer une contrefaçon. On fournit des données au réseau, par exemple des photos de différentes personnes. En se basant sur ces informations, le réseau peut ensuite générer sa propre photo. Pour cela, le réseau apprend d’abord les caractéristiques 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 informations générées sont ensuite transmises au réseau partenaire. La tâche du réseau discriminateur est de vérifier toutes les données qu’il reçoit et de déterminer 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érateur 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 discriminateur filtre également les données qui n’ont pas l’air naturelles.

Les deux réseaux s’opposent constamment. Lorsque le réseau discriminateur reconnait une donnée erronée, il la renvoie à l’autre réseau. Dans ce cas, le réseau générateur n’est pas encore au point et doit continuer à apprendre. Dans le même temps, le réseau discriminateur a également appris. Dans la mesure où les deux systèmes neuronaux s’entraînent mutuellement, nous sommes en présence d’un système de deep learning. Le réseau générateur cherche à générer des ensembles de données qui ont l’air si réels que le discriminateur les considère comme vrais. Le discriminateur, de son côté, cherche à analyser en profondeur et à comprendre les exemples réels afin que les contrefaçons n’aient aucune chance d’être identifiées comme vraies.

Comment fonctionnent les GAN ?

Comme toutes les intelligences artificielles, 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éfinition du problème : dans la première étape, il faut définir un problème à résoudre par le système. Ensuite, le développeur doit réunir des données que le système pourra utiliser.
  2. Architecture : différents problèmes nécessitent différents Generative Adversarial Networks. De ce fait, le GAN doit être équipé de l’architecture adéquate pour cette utilisation.
  3. Premier entraînement du réseau discriminateur : cette étape marque le début de l’entraînement lui-même. Le générateur est arrêté et le réseau discriminateur analyse uniquement les données réelles pour apprendre à les comprendre.
  4. Premier entraînement du réseau générateur : c’est au tour du discriminateur d’être arrêté et le générateur commence à produire des données contrefaites.
  5. Deuxième entraînement du réseau discriminateur : à ce stade, on fournit au réseau discriminateur les données contrefaites générées par le réseau générateur et il doit déterminer lesquelles sont vraies et lesquelles ne le sont pas.
  6. Deuxième entraînement du réseau générateur : le réseau générateur s’améliore avec les résultats issus du deuxième entraînement du réseau discriminateur. Le réseau générateur apprend à reconnaitre les failles du discriminateur et cherche à les utiliser pour générer des ensembles de données contrefaites encore plus réalistes.

Les deux réseaux se développent grâce à la mise en compétition et s’améliorent en précision et en efficacité. Le réseau générateur apprend à générer des ensembles de données toujours plus réalistes. Le réseau discriminateur apprend à identifier comme faux des ensembles de données contrefaites extrêmement trompeurs.

Pour afficher cette vidéo, des cookies de tiers sont nécessaires. Vous pouvez consulter et modifier vos paramètres de cookies ici.

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

Comme pour presque toutes les technologies, les développeurs doivent faire face à un certain nombre de défis, qu’il est nécessaire de régler pour assurer que le déroulement de l’entraînement se fasse sans accroc.

Une compétition équilibrée

Comme nous l’avons expliqué plus haut, les GAN se composent de deux systèmes neuronaux en compétition. Cela ne peut cependant fonctionner 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 fonctionner. Si le réseau générateur est plus performant que le réseau discriminateur, toutes les données contrefaites seront acceptées. Si le réseau discriminateur est plus performant que le réseau générateur, toutes les données contrefaites seront refusées. Dans ces deux cas, aucun des deux réseaux ne peut continuer de se développer.

Comprendre les objets

Les Generative Adversarial Networks sont souvent confrontés au problème de bien comprendre et reconnaître les objets. C’est particulièrement 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érateur ne comprend et n’analyse pas bien la structure et le positionnement de la photo, il peut très bien générer un chat avec deux paires d’yeux. Les perspectives peuvent également perturber les GAN et il arrive qu’ils ne comprennent pas qu’il s’agit de deux images du même motif, sous des angles différents.

Dans quel cadre utilise-t-on les GAN ?

Les Generative Adversarial Networks attirent particulièrement l’attention, même en dehors du domaine informatique, depuis que le collectif artistique 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 artistique, les GAN peuvent également être d’une grande utilité.

Prédiction vidéo

Les GAN peuvent utiliser des extraits vidéo pour prédire la suite d’une vidéo et ainsi prolonger indépendamment la vidéo à la fin d’un enregistrement. Pour cela, tous les éléments d’une vidéo, les mouvements, les traitements mais aussi les modifications de l’arrière-plan comme la pluie et les nuages sont pris en compte.

Génération d’images à partir d’un texte

Les GAN peuvent également générer des images en se basant sur des descriptions. Ils peuvent par exemple, en se basant sur un scénario, élaborer tout seuls un storyboard.

Génération d’objets complexes

Les Generative Adversarial Networks peuvent également transformer rapidement et automatiquement de simples croquis en objets tridimensionnels complexes. Ainsi, grâce à l’utilisation 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 vacillantes.

Amélioration 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 Generative Adversarial Networks utilisent les informations issues d’images similaires pour générer les informations manquantes.

Développement de nouveaux produits

Grâce aux GAN, certaines entreprises expérimentent déjà dans le développement de produits et développent intégralement, à l’aide de ce système, des nouveaux modèles et lignes de produits.

Génération de descriptions de produits

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

Les Generative Adversarial Networks sont déjà utilisés avec succès dans tous ces domaines. Les entreprises et les développeurs travaillent continuellement à de nouvelles possibilités d’applications et il est probable que les GAN revêtent, à moyen terme, une grande importance dans de nombreux domaines de nos vies personnelles et professionnelles.