Qu'est-ce qu'un Generative Adversarial Network ? Un guide simple

Qu'est-ce qu'un Generative Adversarial Network ? Un guide simple
L'intelligence artificielle (IA) connaît une sorte d'explosion cambrienne (https://www.pbs.org/wgbh/evolution/library/03/4/l_034_02.html). Ce qui semblait être de la science-fiction il y a encore peu de temps s'est rapproché de la réalité au cours des dernières années. Et l'intérêt ne fait que croître grâce à la publication d'outils tels que ChatGPT. Mais tout comme l'explosion cambrienne, le saut évolutif de l'IA ne se résume pas à une seule chose. Il existe en fait de nombreux fronts sur lesquels nous faisons progresser les logiciels d'IA en même temps.
Dans ce billet, nous allons parler de l'un de ces types d'IA : les réseaux adversaires génératifs, un modèle d'IA efficace utilisé pour divers types de tâches.
Discriminatif vs. génératif
Tout comme nous classons les fossiles d'animaux en domaines, royaumes et phylums, nous classons également les réseaux d'IA. Au niveau le plus élevé, nous classons les réseaux d'IA en deux catégories : les réseaux "discriminatifs" et les réseaux "génératifs". Un réseau neuronal génératif est une IA qui crée quelque chose de nouveau. Il diffère d'un réseau discriminatif, qui classifie quelque chose qui existe déjà dans des catégories particulières. C'est un peu ce que nous faisons en ce moment, en classant les réseaux adversaires génératifs (GAN) dans des catégories appropriées.
Ainsi, si vous souhaitez utiliser des balises textuelles pour créer une nouvelle image visuelle, comme dans le cas de [Midjourney] (https://www.midjourney.com/home/?callbackUrl=%2Fapp%2F), vous utiliserez un réseau génératif. En revanche, si vous disposiez d'une énorme pile de données à classer et à étiqueter, vous utiliseriez un modèle discriminant.
Où se situe le réseau adversarial génératif ?
Le nom implique qu'un GAN est génératif. Mais le deuxième mot est également important. Un GAN est une application intelligente des modèles discriminatifs et génératifs. Un modèle GAN s'entraîne avec un groupe initial de données d'entraînement classées. Ensuite, le modèle génératif tente de générer de nouvelles instances qu'il estime compatibles avec le modèle. Dans un second temps, le modèle discriminatif recevra à la fois le contenu généré et le contenu de l'ensemble d'apprentissage. Il tentera de classer le contenu comme étant généré ou faisant partie de l'ensemble de formation.
C'est la partie adversaire de l'acronyme GAN. La partie générative du modèle continue d'essayer de créer un contenu de mieux en mieux généré jusqu'à ce qu'il puisse "tromper" de manière fiable le modèle discriminatif. L'objectif fondamental d'un GAN est d'entraîner un modèle génératif qui génère un contenu de haute qualité, mais il utilise à la fois des modèles génératifs et discriminatifs pour y parvenir.
Supervisé vs. non supervisé
Après notre classification par domaine (discriminatif ou génératif), notre prochaine étape consiste à déterminer si un modèle est "supervisé" ou "non supervisé". Il s'agit d'une classification qui peut s'avérer un peu plus obscure. Bien que la classification supervisé/non supervisé soit instructive, de nombreux types de modèles d'IA utiliseront une approche hybride. Un modèle supervisé, comme son nom l'indique, implique généralement une supervision humaine pendant la phase de formation. La phase de formation d'un modèle supervisé implique plusieurs séries d'entrées initiales et de sorties souhaitées.
Les modèles non supervisés, comme leur nom l'indique, fonctionnent avec moins ou pas d'intervention humaine. L'objectif est que le modèle prenne un ensemble d'entraînement original et subisse plusieurs cycles d'entraînement de plus en plus performants afin de générer un meilleur contenu après chaque cycle.
Quel est le type de réseau adversarial génératif ?
Un GAN est un modèle d'IA non supervisé. Le style de va-et-vient des cycles de formation contradictoire est conçu pour améliorer continuellement le contenu généré. Pour un développeur travaillant avec un GAN, vous devrez fournir des classifications de haute qualité de votre ensemble de données d'entraînement initial, et fournir la puissance de calcul nécessaire pour exécuter plusieurs itérations. Mais une fois que vous avez fourni les ressources nécessaires, vous pouvez faire fonctionner le GAN avec une interaction humaine minimale.
Réseau adversarial génératif vs. réseau neuronal convolutif
Les nouveaux développeurs qui travaillent avec un GAN se posent souvent la question de sa relation avec un réseau neuronal convolutif (CNN). Un CNN est un type de modèle discriminant utilisé pour classer des données sur la base d'un contenu étiqueté existant. De nombreux GAN utilisent un CNN comme modèle discriminant qui remet en question le contenu généré au début du cycle de formation. Les CNN sont très souvent utilisés pour classer les images dans les architectures de reconnaissance d'images par ordinateur.
Les CNN sont également parfois utilisés comme étape de génération dans l'architecture GAN. L'utilisation d'un CNN pour générer du contenu en sortie de l'étape générationnelle nécessite généralement l'ajout d'une logique supplémentaire telle qu'un [autoencodeur variationnel] (https://www.e2enetworks.com/blog/how-to-implement-convolutional-variational-autoencoder-in-pytorch-with-cuda) plutôt que l'utilisation d'un CNN traditionnel. Lorsque vous utilisez cet outil en combinaison avec un CNN traditionnel, vous pouvez utiliser un CNN à la fois pour l'étape générationnelle et pour l'étape contradictoire du processus de formation du GAN.
Foire aux questions
Maintenant que nous avons une bonne idée de ce qu'est un GAN et de ce qu'il fait, abordons quelques questions fréquemment posées sur les GAN et sur les raisons pour lesquelles vous pourriez en choisir un pour votre projet.
Quelles sont les utilisations courantes des GAN ?
L'un des principaux avantages d'un GAN est qu'il peut générer des exemples réalistes d'une grande variété de contenus. Avec le bon type de données de formation, vous pouvez utiliser des invites textuelles pour générer l'un des types de contenu suivants :
- Images
- Contenu audio (comme la musique)
- Conversion d'images en noir et blanc en couleurs
- Conversion de croquis à la main en représentations photoréalistes
- Prédire les futures images d'une vidéo en fonction des images précédentes
- Créer des [deepfakes] (https://www.theguardian.com/technology/2020/jan/13/what-are-deepfakes-and-how-can-you-spot-them)
Pourquoi choisir un Generative Adversarial Network ?
Nous avons beaucoup parlé de la classification des GAN, de leur fonctionnement et de leurs possibilités. Mais nous n'avons pas répondu à une question simple : pourquoi choisir d'utiliser un GAN ? L'une des raisons pour lesquelles vous pouvez utiliser un GAN est que vous êtes confronté à des problèmes pour lesquels vous ne disposez pas d'un grand nombre de données à utiliser pour l'apprentissage. La nature d'un GAN est que vous pouvez travailler avec une quantité limitée de données de formation, puis vous pouvez laisser le GAN générer d'autres données qui sont réinjectées dans la routine de formation. De nombreux systèmes d'apprentissage automatique exigent que vous les entraîniez sur une quantité considérable de données pré-étiquetées. L'utilisation d'un GAN permet de s'affranchir de cette contrainte.
Les GAN sont également particulièrement performants pour travailler et générer des images. Qu'il s'agisse de créer de nouvelles images à partir d'invites textuelles ou de mettre à jour une image d'entrée avec du contenu généré, les GAN sont intéressants parce qu'ils fournissent des résultats visuellement impressionnants.
Pourquoi éviter d'utiliser un Generative Adversarial Network ?
Si vous envisagez d'adopter un GAN, vous devez tout de même tenir compte de quelques inconvénients. Tout d'abord, les GAN ne conviennent pas si vous essayez d'entraîner votre modèle à peu de frais. Les GAN sont particulièrement coûteux à former, en raison du cycle de formation en plusieurs étapes et de la nécessité d'effectuer plusieurs cycles de formation. Par conséquent, si vous essayez de respecter un budget strict, l'adoption d'un GAN n'est peut-être pas un bon choix.
En outre, les GAN subissent parfois ce que l'on appelle un [effondrement du mode] (https://pub.towardsai.net/gan-mode-collapse-explanation-fa5f9124ee73), où le contenu de la sortie est un sous-ensemble limité des données d'apprentissage, et non pas la gamme de variété que vous espérez.
Les GAN sont d'une grande utilité lorsqu'ils sont adaptés
Pour revenir à notre métaphore évolutionniste, un GAN n'est pas un crabe ou une tortue. Ce n'est pas un animal que l'on verra encore remplir le même rôle dans plusieurs années. Au contraire, les GAN évoluent. Les chercheurs n'ont pas fini de découvrir ce que les GAN peuvent faire et comment les concevoir et les former au mieux. Si vous envisagez d'adopter l'apprentissage automatique pour vos flux de travail, il est tout à fait logique de rechercher des GAN, mais il se peut qu'ils ne soient pas l'outil idéal pour votre travail. S'ils ne semblent pas l'être, vous devriez éviter d'essayer de les intégrer dans un travail où ils n'ont pas leur place. Mais si vous effectuez un travail qui correspond à un GAN, en particulier la manipulation ou la création d'images, l'adoption et la formation d'un GAN apporteront probablement des avantages considérables à vos flux de travail.
Découvrez Zilliz, un algorithme de base de données vectorielles rentable.
- Discriminatif vs. génératif
- Supervisé vs. non supervisé
- Réseau adversarial génératif vs. réseau neuronal convolutif
- Foire aux questions
- Les GAN sont d'une grande utilité lorsqu'ils sont adaptés
Contenu
Commencez gratuitement, évoluez facilement
Essayez la base de données vectorielle entièrement managée conçue pour vos applications GenAI.
Essayer Zilliz Cloud gratuitement