Comment ces IA inventent-elles des images ?

ScienceEtonnante
13 Jan 202322:52

Summary

TLDRLe script vidéo présente les dernières avancées dans le domaine de l'intelligence artificielle, notamment les algorithmes génératifs capables de créer des images à partir de descriptions textuelles. Il explique les principes de base du machine learning et du deep learning, ainsi que les différences entre l'apprentissage supervisé et non supervisé. Le script aborde ensuite les réseaux adversaires génératifs (GAN) et les algorithmes de diffusion, qui ont permis de générer des images de qualité à partir de simples textes. Enfin, il souligne les problèmes éthiques et juridiques soulevés par ces technologies, comme la désinformation et les droits d'auteur.

Takeaways

  • 🤖 Les IA génératives utilisent des algorithmes pour créer de nouvelles images à partir d'une description, sans chercher dans une base de données d'images existantes.
  • 📈 L'intelligence artificielle est un domaine qui vise à réaliser des tâches traditionnellement réalisées par des humains en utilisant des machines.
  • 🧠 Le machine learning, et en particulier le deep learning, sont au cœur du fonctionnement des IA génératives.
  • 🔍 L'apprentissage supervisé consiste en fournir à un algorithme des exemples pour qu'il apprenne à faire le lien entre une entrée et une sortie.
  • 🔄 Les réseaux adversaires génératifs (GAN) sont une technique qui utilise deux réseaux de neurones en opposition pour améliorer la qualité des images générées.
  • 🎨 Les algorithmes de diffusion fonctionnent en dégradant une image en bruit et en apprenant à un réseau de neurones à la retirer progressivement pour générer de nouvelles images.
  • 🔑 Le conditionnement permet de spécifier la catégorie ou le style d'image à générer, en utilisant des plongements (embeddings) pour associer un sens numérique à un texte ou une description.
  • 🌐 Les algorithmes de diffusion ont été améliorés récemment, permettant de générer des images à partir de textes libres et de descriptions.
  • 📝 Les algorithmes de génération d'images soulèvent des questions éthiques et juridiques, notamment en ce qui concerne la désinformation et les droits d'auteur.
  • 🔍 Il est important de se familiariser avec les techniques de base de l'IA pour comprendre comment fonctionnent les outils de génération d'images.
  • 🔗 Les algorithmes de diffusion et les GAN sont des avancées récentes dans le domaine de l'IA qui permettent de créer des images de manière automatisée et de manière plus réaliste.

Q & A

  • Quels sont les programmes d'intelligences artificielles capables de créer des images à partir d'une description?

    -Les programmes d'IA mentionnés dans le script qui peuvent créer des images à partir d'une description sont DALL·E, Midjourney et Stable Diffusion.

  • Comment les IA génératives fonctionnent-elles?

    -Les IA génératives créent de nouvelles images en intégrant une part d'aléatoire dans leur conception, permettant ainsi d'obtenir de nombreuses variations à partir d'une même demande. Elles utilisent des algorithmes capables de créer du contenu à la demande, contrairement à des moteurs de recherche comme Google Images qui cherchent des images existantes.

  • Qu'est-ce que le machine learning et dans quelle mesure il est lié à l'intelligence artificielle?

    -Le machine learning est un domaine de recherche en IA qui consiste à développer des algorithmes capables d'apprendre. Il se base sur des données auxquelles les algorithmes ont accès pour réaliser leur apprentissage, dans le but de réaliser des tâches traditionnellement effectuées par des humains qui nécessitent de l'intelligence.

  • Qu'est-ce que le deep learning et comment il est utilisé dans le machine learning?

    -Le deep learning est une approche du machine learning qui utilise des réseaux de neurones profonds, une classe spécifique d'algorithmes. Il a connu un énorme succès ces dernières années et est presque systématiquement lié au terme IA aujourd'hui en raison de son efficacité.

  • Comment fonctionne l'apprentissage supervisé dans le machine learning?

    -L'apprentissage supervisé consiste à entraîner un algorithme en lui fournissant une grande base de données d'exemples pour qu'il puisse ajuster ses paramètres et apprendre à réaliser une tâche spécifique, comme la classification d'images par exemple.

  • Pourquoi l'approche de prédiction par apprentissage supervisé ne fonctionne-t-elle pas pour générer des images à partir de texte?

    -L'approche de prédiction par apprentissage supervisé ne fonctionne pas pour générer des images à partir de texte car elle implique de donner en entrée beaucoup d'informations pour obtenir une sortie très limitée, tandis que la génération d'images à partir d'un texte demande le contraire : donner très peu d'informations (un mot ou une phrase) pour obtenir une image entière avec beaucoup plus d'informations.

  • Quels sont les défis pour les algorithmes de génération d'images pour qu'ils puissent créer des images à partir de texte libre?

    -Les défis pour les algorithmes de génération d'images pour qu'ils puissent créer des images à partir de texte libre incluent la nécessité de comprendre la distribution des exemples dans l'espace de toutes les possibilités, de pouvoir échantillonner de nouvelles images qui pourraient figurer dans la base de données initiale, et d'intégrer une part d'aléatoire pour éviter la génération de la même image à chaque demande.

  • Qu'est-ce que les réseaux adversariaux génératifs (GAN) et comment ils fonctionnent?

    -Les réseaux adversariaux génératifs (GAN) sont des algorithmes qui utilisent deux réseaux de neurones, un faussaire et un expert, qui s'entraînent ensemble de manière adversative pour que le faussaire puisse générer des images très similaires aux vraies et que l'expert ait du mal à différencier les images générées des vraies images.

  • Comment les algorithmes de diffusion sont-ils capables de générer des images à partir d'un texte libre?

    -Les algorithmes de diffusion sont capables de générer des images à partir d'un texte libre en utilisant un processus de débruitage progressif conditionné par le plongement (embedding) de la description de l'image. Ils apprennent à débruiter des images en étant conditionnés par la catégorie ou par le plongement d'une description, permettant ainsi de générer des images à partir d'une phrase ou d'une description donnée.

  • Quels sont les problèmes éthiques et juridiques posés par la génération d'images à l'aide d'IA?

    -Les problèmes éthiques et juridiques posés par la génération d'images à l'aide d'IA incluent la possibilité de créer des images trompeuses qui peuvent être utilisées pour la désinformation, ainsi que les questions de propriété intellectuelle liées à l'utilisation d'images trouvées sur Internet qui ne sont pas nécessairement libres de droits.

  • Comment les algorithmes de traitement du langage naturel interviennent-ils dans la génération d'images à partir de texte libre?

    -Les algorithmes de traitement du langage naturel interviennent dans la génération d'images à partir de texte libre en permettant de calculer le plongement (embedding) d'une description, qui est une représentation numérique de son sens. Ce plongement est ensuite utilisé pour conditionner le processus de débruitage des algorithmes de diffusion afin de générer une image correspondant à la description donnée.

  • Comment les algorithmes de diffusion peuvent-ils être utilisés pour générer des images d'un certain type?

    -Les algorithmes de diffusion peuvent être utilisés pour générer des images d'un certain type en entraînant un réseau de neurones à débruiter des images de ce type. Le réseau apprend à enlever progressivement le bruit ajouté à des images pour les ramener à leur état original, et peut ainsi être conditionné pour générer de nouvelles images de ce type en étant donné une image purement bruitée et en lui demandant de la débruiter progressivement.

Outlines

00:00

🤖 Intelligences Artificielles et Génération d'Images

Le paragraphe introduit les intelligences artificielles (IA) et leur capacité à générer des images à partir de descriptions. Il mentionne des programmes efficaces comme DALL·E, Midjourney et Stable Diffusion. Ces IA ne cherchent pas des images existantes, mais créent de nouvelles images en utilisant des algorithmes génératives. L'algorithme est entraîné avec une description et produit une image aléatoire basée sur cette description. Le paragraphe explique également les notions de machine learning, d'apprentissage automatique et de deep learning, qui sont à la base de ces IA.

05:01

📈 Apprentissage Supervisé et Classement d'Images

Dans ce paragraphe, l'auteur explique le processus d'apprentissage supervisé utilisé pour classer des images. Il utilise l'exemple de reconnaissance d'images pour montrer comment un algorithme peut être entraîné à identifier des objets dans des images. L'algorithme ajuste ses paramètres en fonction d'exemples de données pour améliorer ses performances. Le paragraphe souligne que l'algorithme ne fait que manipuler des nombres et effectuer des opérations mathématiques. Il compare ensuite les tâches de prédiction et de génération d'images, indiquant que la génération ne peut pas être réalisée par un simple apprentissage supervisé.

10:02

🔄 Réseaux Adversaires Génératifs (GAN)

Le paragraphe présente les réseaux adversaires génératifs (GAN) comme une solution pour générer des images de types spécifiques. Il décrit le processus d'entraînement d'un GAN, qui consiste à entraîner deux réseaux de neurones en opposition : un générateur qui crée des images et un discriminateur qui les évalue. Ces réseaux s'entraînent ensemble de manière 'adversative' pour améliorer leurs performances, aboutissant à la création d'images de qualité à partir d'exemples d'images existantes.

15:03

🔄 Différence entre GAN et Apprentissage Non Supervisé

Ce paragraphe compare l'apprentissage supervisé et non supervisé, en utilisant des exemples en deux dimensions pour illustrer la différence. L'apprentissage supervisé consiste à prédire une sortie Y à partir d'une entrée X, tandis que l'apprentissage non supervisé cherche à comprendre la distribution des données. L'algorithme de génération d'images est une tâche d'apprentissage non supervisé, où l'algorithme échantillonne de nouvelles images en se basant sur la distribution des exemples d'une base de données. Il est également mentionné que les GAN sont efficaces pour générer des images de types spécifiques, mais nécessitent un entraînement pour chaque type de catégorie.

20:05

🌐 Algorithmes de Diffusion

Le paragraphe explique les algorithmes de diffusion, une nouvelle technique qui permet de générer des images en utilisant un processus de dégradation et de nettoyage. Il décrit comment un réseau de neurones peut être entraîné à débruiter des images en utilisant des images bruitées et des images originales. L'algorithme apprend à 'halluciner' une image à partir de bruit pur en étant conditionné par la classe de l'image. La technique de diffusion est utilisée pour générer des images à partir de descriptions textuelles en utilisant des algorithmes de traitement du langage naturel pour conditionner le processus de débruitage.

💬 Éthique et Juridique des Algorithmes de Génération d'Images

Le dernier paragraphe aborde les questions éthiques et juridiques liées aux algorithmes de génération d'images. Il souligne les risques potentiels de désinformation et les problèmes de propriété intellectuelle, notamment lorsqu'il s'agit d'images en ligne et d'art numérique. L'auteur admet ne pas avoir les compétences juridiques nécessaires pour traiter ces questions et invite les spectateurs à garder ces interrogations à l'esprit, car elles sont complexes et en évolution constante.

Mindmap

Keywords

💡Intelligences Artificielles (IA)

Les Intelligences Artificielles (IA) sont des systèmes informatiques conçus pour réaliser des tâches qui traditionnellement nécessitent de l'intelligence humaine. Elles sont au cœur du développement technologique actuel et sont utilisées dans divers domaines, tels que la reconnaissance d'images, le traitement du langage naturel et la génération de contenu. Dans le contexte de cette vidéo, les IA sont utilisées pour générer des images à partir de descriptions textuelles, comme le démontre la technologie derrière DALL·E, Midjourney et Stable Diffusion.

💡Apprentissage Automatique (Machine Learning)

L'Apprentissage Automatique, également connu sous le nom de Machine Learning, est un domaine de l'IA où les algorithmes sont conçus pour apprendre à partir de données. Les algorithmes analysent et tirent des conclusions de grandes quantités de données, s'améliorant ainsi au fil du temps. Cette approche est utilisée pour résoudre des problèmes complexes, comme la reconnaissance d'images ou la prédiction de comportements futurs.

💡Deep Learning

Le Deep Learning est une technique d'Apprentissage Automatique qui utilise des réseaux de neurones profonds pour apprendre des structures de données complexes. Ces réseaux sont composés de couches multiples qui extraient des caractéristiques de plus en plus abstraites des données d'entrée. Le Deep Learning est particulièrement efficace pour les tâches de reconnaissance et de génération d'images.

💡Génération d'Images

La génération d'Images est le processus d'élaboration de images complètement nouvelles à l'aide d'algorithmes. Ces images peuvent être créées à partir de descriptions textuelles, de bruite, ou d'autres images existantes. La génération d'images est utilisée dans de nombreux domaines, y compris l'art, la publicité et les jeux vidéo.

💡Réseaux Adversariaux Génératifs (GAN)

Les Réseaux Adversariaux Génératifs (GAN) sont des modèles d'IA qui comprennent deux parties : un générateur et un discriminateur. Le générateur crée des données, tandis que le discriminateur évalue leur authenticité. Ces deux parties s'entraînent ensemble pour améliorer la qualité des données générées. Les GAN sont souvent utilisés pour générer des images et d'autres types de contenu médiatique.

💡Méthodes de Diffusion

Les Méthodes de Diffusion sont une technique d'IA qui consiste à générer des images en apprenant à débruiter des images bruitées. Elles fonctionnent en inversant le processus de dégradation d'images pour créer de nouvelles images à partir de simples descriptions textuelles.

💡Plongement (Embedding)

Le Plongement, ou Embedding, est une technique d'IA qui consiste à transformer des mots ou des phrases en vecteurs numériques qui représentent le sens ou la signification de ces mots dans un espace de données multidimensionnel. Cela permet de comparer et de manipuler des données textuelles de manière efficace.

💡Conditionnement

Le Conditionnement est une technique utilisée dans les IA pour ajuster le comportement d'un modèle en fonction d'une certaine entrée, comme une catégorie ou une description. Cela permet aux modèles de générer des résultats spécifiques à une tâche ou à répondre à des demandes plus complexes.

💡Échantillons (Sampling)

L'Échantillons est le processus d'extraire des exemples d'un ensemble de données ou d'un espace de possibilités. Dans le contexte des IA génératives, l'échantillonnage est utilisé pour créer de nouvelles images en tirant des échantillons du comportement des données d'entrée.

💡Classification d'Images

La Classification d'Images est une technique d'IA qui consiste à attribuer des étiquettes ou des catégories à des images en fonction de leur contenu. Cela permet aux algorithmes de reconnaître et de distinguer différents objets, scenes ou actions sur les images.

💡Éthique et Juridique

L'Éthique et Juridique dans le contexte des IA fait référence aux questions morales et légales liées au développement et à l'utilisation des technologies d'IA. Cela inclut la désinformation, les droits d'auteur et la propriété intellectuelle, ainsi que les conséquences éthiques des actions des IA.

Highlights

Les IA génératives sont capables de créer de nouvelles images à partir d'une description.

Les algorithmes de génération d'IA ne cherchent pas d'images existantes, mais créent de nouvelles images.

On peut spécifier le type d'objectif photo ou le style du peintre dans les images générées par IA.

Les IA utilisent des algorithmes de deep learning pour générer du contenu à la demande.

L'apprentissage supervisé est utilisé pour entraîner les algorithmes IA à reconnaître des patterns dans les données.

Les réseaux de neurones profonds sont au cœur du fonctionnement des IA génératives.

Les GAN (réseaux adversariaux génératifs) sont une méthode efficace pour générer des images d'un type donné.

Les algorithmes de diffusion utilisent un processus de dégradation et de nettoyage pour créer de nouvelles images.

Les méthodes de diffusion peuvent générer des images en étant conditionnées par une classe ou une description.

Les algorithmes de diffusion ont été améliorés récemment, permettant de générer des images à partir de textes libres.

Les algorithmes de génération d'IA soulèvent des questions éthiques et juridiques, notamment en ce qui concerne la désinformation et les droits d'auteur.

Les IA peuvent imiter le style d'un artiste sans son consentement, posant des problèmes de propriété intellectuelle.

Les algorithmes de génération d'IA permettent de créer des images qui semblent impossibles à créer il y a quelques années.

Les IA génératives sont capables d'intégrer une part d'aléatoire dans leur conception, permettant de varier les résultats.

Les IA utilisent des opérations mathématiques pour manipuler des nombres et générer des images.

Les IA peuvent être entraînées à générer des images de différents types, comme des chats, des voitures ou des appartements.

Les algorithmes de diffusion ont été initialement proposés pour générer des images, mais ont été améliorés pour devenir plus polyvalents.

Les IA peuvent être conditionnées par des descriptions de texte libre pour générer des images correspondantes.

Transcripts

play00:00

Depuis maintenant plusieurs mois, vous n’avez certainement pas échappé à la déferlante

play00:05

des images qui sont générées par des intelligences artificielles, des IA. Qu’il s’agisse

play00:10

de DALL·E, de Midjourney ou encore de Stable Diffusion, il existe maintenant plusieurs

play00:15

programmes extrêmement efficaces, capables de créer de toute pièce une image à partir

play00:20

d’une description.

play00:21

Et ce que font ces IA, ça n’est pas du Google Image. Elles ne vont pas chercher une

play00:26

image existante, mais elles produisent des images nouvelles, qui n’existent pas, et

play00:31

qu’elle créent à la demande. Il peut s’agit de photographies, de peinture ou d’art numérique,

play00:36

et on peut même parfois spécifier le type d’objectif photo ou le style du peintre

play00:40

que l’on souhaite retrouver.

play00:41

On appelle ces types d’algorithmes des IA génératives, car elles sont capables de

play00:46

créer du contenu à la demande, en intégrant à la conception une part d’aléatoire,

play00:51

de façon à pouvoir obtenir plein de variations à partir de la même demande.

play00:55

Si vous avez essayé ces IA génératives, vous avez peut-être été comme moi ébahis

play00:59

par leurs capacités à faire quelque chose qui semblait impossible il y a seulement quelques

play01:03

années. Ca parait presque magique tellement ça fonctionne bien. Mais au fait, comment

play01:08

ça fonctionne vraiment ? Eh bien c’est ce qu’on va voir ensemble aujourd’hui

play01:14

!

play01:15

[jingle]

play01:16

Commençons par quelques remarques de base sur la terminologie. Ce qu’on appelle l’intelligence

play01:22

artificielle, c’est un domaine aux contours un peu flous. On peut dire que son objectif

play01:27

est de réaliser à l’aide de machines, des tâches traditionnellement réalisées

play01:31

par des humains, et dont on estime qu’elle requièrent de l’intelligence. Sans trop

play01:35

préciser le sens qu’on donne à ce terme.

play01:37

[DIAGRAMME Au sein de l’IA, il y a un champ de recherche assez bien identifié qu’on

play01:41

appelle le machine learning, ou apprentissage automatique. L’idée est de s’attaquer

play01:46

notamment à des questions d’IA, en mettant au point des algorithmes capables d’apprendre.

play01:51

Et qui réalisent leur apprentissage à partir de données auxquelles ils ont accès.

play01:55

Et dans le machine learning, il y a le deep learning. Et ça, c’est l’idée d’utiliser

play01:59

une classe assez spécifique d’algorithmes que sont les réseaux de neurones profonds,

play02:03

et qui ont connu un énorme succès depuis une dizaine d’années.]

play02:06

Aujourd’hui quand on utilise le terme IA, il s’agit presque systématiquement de deep

play02:11

learning, tant cette approche est efficace. Je ne vais pas évoquer ici les principes

play02:15

de base du deep learning, j’avais fait toute une vidéo sur le sujet il y a quelques temps,

play02:19

je vous invite à aller la voir si ça vous intéresse.

play02:21

Quand on parle d’algorithmes capables d’apprendre, cela fonctionne souvent selon le même principe.

play02:27

Imaginez qu’on veuille créer un algorithme qui soit capable de reconnaitre ce qu’il

play02:31

y a sur une image.

play02:32

[ALGO On veut un programme à qui on donne une image en entrée, et qui produise un mot

play02:38

en sortie. Et on veut que cet algorithme réponde « Chat » sur cette image, sur celle-ci

play02:43

« Voiture », etc. Pour réaliser cela, on va utiliser ce qu’on appelle de l’apprentissage

play02:49

supervisé.

play02:50

Au départ notre algorithme va être ignorant, et répondre n’importe quoi quand on lui

play02:54

présente une image. Et puis on va lui fournir une grande base de données d’exemples.

play02:58

C’est-à-dire des milliers d’images de chats, de voiture, de tasses, avec à chaque

play03:03

fois la réponse qu’on attendrait de lui.]

play03:05

En utilisant ces exemples, l’algorithme va peu à peu ajuster ses paramètres pour

play03:10

s’améliorer, il va apprendre. Jusqu’à être capable de réaliser lui-même le travail

play03:14

de façon suffisamment correcte. On dit alors que l’algorithme aura été entrainé, et

play03:19

on pourra commencer à l’utiliser.

play03:21

Cette façon de faire, c’est donc l’apprentissage supervisé. De façon plus générale si on

play03:26

veut qu’un algorithme prenne en entrée X et réponde Y, on lui donne une base de

play03:30

données d’exemples (x,y), et on l’entraine en espèrant qu’il va finir par savoir faire

play03:35

le lien.

play03:36

C’est ce qu’on appelle parfois une tâche de prédiction, puisqu’on donne X en entrée

play03:40

et on demande à l’algorithme de prédire Y. Dans mon premier exemple X ce sont des

play03:45

images et Y ce sont des mots. On classifie les images avec des mots. Mais le principe

play03:50

fonctionne avec plein d’autres concepts.

play03:51

Par exemple X ce peut-être toutes les caractéristiques d’une transaction bancaire, et Y est une

play03:58

classification pour estimer si la transaction est frauduleuse ou pas. Ou bien X c’est

play04:02

le texte d’un e-mail et Y c’est une classification entre Spam/Non-spam. Beaucoup des applications

play04:08

actuelles concrètes du machine learning reposent sur ce principe d’apprentissage supervisé,

play04:13

qui permet de réaliser des tâches de prédiction.

play04:16

Ca semble un peu magique présenté comme ça, de penser qu’un algorithme peut reconnaitre

play04:21

des images et associer les bons mots, mais il faut bien voir que tout ce que fait l’algorithme,

play04:25

c’est de manipuler des nombres. Tout se fait via des opérations mathématiques.

play04:29

[CHIFFRES Par exemple sur la classification des images, voici comment on fait en pratique.

play04:33

On définit d’abord un nombre fini de catégories : « Chat », « Voiture », « Tasse »,

play04:39

etc. Et on leur attribue des numéros : 1,2,3 etc. On peut faire disons 1000 catégories,

play04:45

et à chaque image de notre base de données on va associer une de ces 1000 catégories.

play04:49

Et pour l’image elle-même, on va aussi la représenter comme une série de nombres.

play04:53

Une image 600x600, ce sont 360 000 pixels, chacun de ces pixels va être codé en rouge/vert/bleu

play05:00

donc il faut 3 nombres par pixel. Au total je peux décrire complètement mon image en

play05:06

un peu plus d’un million de nombres.

play05:08

Donc ce que je cherche à faire, c’est un algorithme qui prenne en entrée une série

play05:12

d’un million de nombres qui représentent l’image, et qui me crache en sortie un nombre

play05:16

entre 1 et 1000 représentant la catégorie qu’il pense être la bonne.]

play05:20

On n’a pas besoin d’expliquer à l’algorithme ce qu’est une image, un chat ou une voiture;

play05:26

lui, il manipule juste des nombres. Et il va s’en faire une idée tout seul en essayant

play05:30

de mettre en relation les valeurs des pixels des images et les 1000 catégories qu’on

play05:35

aura prédéfinies.

play05:36

Ces algorithmes de classification d’images fonctionnent maintenant extrêmement bien,

play05:40

avec des performances proches de celles des humains. Alors intuitivement, on se dit que

play05:45

ça, ça n’a pas l’air très très éloigné de ce qu’on voudrait faire pour générer

play05:48

des images.

play05:49

[REVERSE Pour classifier des images existantes, en entrée X on a des images, et en sortie

play05:54

Y un mot qui les décrit, et une base de données pour réaliser l’entrainement. On n’a

play05:59

qu’à entrainer un algorithme du même genre sur la même base de données, mais à l’envers.

play06:04

On lui donne un mot en entrée, et on attend qu’il produise une image en sortie. Facile,

play06:09

non ?]

play06:10

Eh bien non, ça ne marche pas comme ça. Il y a plusieurs raisons à cela. Dans une

play06:15

tâche de prédiction, comme la classification des images, on donne en entrée beaucoup d’informations,

play06:20

des centaines de milliers de pixels, et en sortie on récupère quelque chose de très

play06:24

limité, juste un numéro de catégorie par exemple. L’algorithme de classification

play06:29

réalise en quelque sorte de la synthèse d’information.

play06:32

Ici c’est l’inverse qu’on veut, on donne très peu de choses en entrée, disons juste

play06:36

un mot. Et on s’attend en sortie à récupérer une image entière, qui contient donc beaucoup

play06:41

plus d’information que ce qu’on a mis au départ. Ca ne peut pas marcher avec un

play06:44

simple apprentissage supervisé.

play06:47

En fait si, on peut essayer. Mais ce qu’il risque de se passer c’est que notre algorithme,

play06:52

une fois entrainé, chaque fois qu’on lui demande une image de chat il va nous ressortir

play06:57

exactement l’image de chat qu’il avait dans sa base de données. Ou bien une sorte

play07:01

de moyenne de toutes les images de chat qu’on lui a fournies. Et c’est pas ça qu’on

play07:06

veut.

play07:07

L’autre aspect important, c’est qu’on veut que notre algorithme de génération

play07:10

d’image ait une part d’aléatoire. Si je lui demande 50 fois un chat, je veux qu’il

play07:15

me produise 50 images différentes, pas 50 fois le même chat.

play07:20

Générer ça n’est pas la même chose que prédire. Donc vous voyez que pour créer

play07:23

des images à partir d’un texte, prendre une approche traditionnelle de prédiction

play07:28

par apprentissage supervisé, eh bien ça ne va pas marcher. Il faut faire autrement.

play07:32

Alors voyons comment.

play07:33

[jingle]

play07:34

En 2014, une première façon de faire assez efficace a été proposée par une équipe

play07:38

de l’Université de Montréal : les réseaux adversariaux génératifs, ou GAN en anglais.

play07:43

Alors qu’est-ce que ça veut dire ce truc. Pour voir ça, prenons un problème plus simple

play07:48

que celui que j’ai évoqué. Imaginons pour commencer que je veuille uniquement créer

play07:53

des images de chat.

play07:54

[GAN Je dispose d’une grande base de données d’images de chat, je veux juste être capable

play07:58

d’en créer plein d’autres, de nouvelles, qui n’existent pas initialement dans la

play08:02

base, et qui ressemblent bien à des chats. Pour cela, je vais entrainer non pas un, mais

play08:08

deux réseaux de neurones.

play08:09

Le premier, on va l’appeler le faussaire. Il aura pour rôle de générer aléatoirement

play08:14

des images à partir d’une série de paramètres. Et le deuxième, on va l’appeler l’expert,

play08:19

et sa tâche va être simple : si on lui présente une image, il va devoir apprendre à reconnaitre

play08:25

si l’image est une vraie image de chat, qui provient de la base, ou bien une image

play08:29

inventée.

play08:30

Rappelez-vous le principe de l’apprentissage, au début ces algorithmes sont mauvais. Le

play08:34

faussaire, quand on lui demande de produire une image de chat, il va produire des images

play08:39

de ce genre, du bruit complet. Et l’expert, quand on lui présente deux images en lui

play08:44

demandant quelle est la « vraie », au début il va répondre au pif.

play08:47

Et puis à force d’essais et d’erreurs, ces réseaux vont progresser car à chaque

play08:51

fois on leur donne le résultat. On indique au faussaire s’il a réussi à berner l’expert.

play08:57

Et l’expert lui sait s’il a correctement discriminé les images qu’on lui présente.

play09:02

Au départ, l’expert va assez vite apprendre à reconnaitre les vrais chats des fausses

play09:07

images, qui sont initialement assez pourries. Et puis peu à peu le faussaire va progresser

play09:11

et faire des images qui seront de mieux en mieux, et ça va forcer l’expert à améliorer

play09:16

son niveau.]

play09:17

Et en laissant les deux s’entrainer ensemble suffisamment longtemps, on finira si tout

play09:21

va bien par avoir un faussaire capable de produire des images très semblables aux vraies,

play09:26

et un expert qui aura bien du mal à faire la différence. Ce principe d’entrainement,

play09:31

on l’appelle « adversarial », puisque les deux réseaux de neurones s’affrontent

play09:35

et progressent de concert. C’est comme si vous demandiez à deux joueurs de foot de

play09:40

s’entrainer ensemble : l’un fait le tireur de pénalty et l’autre le gardien, avec

play09:43

l’idée qu’ils vont conjointement progresser.

play09:45

Ces réseaux adversariaux génératifs, ou GAN, existent maintenant depuis plusieurs

play09:50

années, et vous les avez certainement vus à l’oeuvre si vous connaissez le site This

play09:54

Person Does Not Exist.

play09:56

[THIS PERSON Sur ce site, on a des réseaux ont été entrainé à partir de photos de

play10:01

visages, et qui sont donc excellent à inventer de nouveaux visages de toute pièce. Il y

play10:06

a parfois des défauts mineurs mais dans l’ensemble c’est assez bluffant.

play10:09

Dans le même genre, vous avez aussi pour les voitures This Car Does Not Exist, pour

play10:15

les maisons This House Does Not Exist, et ah oui, bien évidemment : This Cat Does Not

play10:22

Exist.]

play10:23

Ce type d’algorithme donc est très efficace pour produire des images d’un type donné

play10:27

et fixé à l’avance. Si l’entrainez sur des chats, il vous fera des chats. Mais vous

play10:34

voyez qu’on n’est pas encore au stade où on peut rentrer librement du texte et

play10:38

avoir une image qui mélange plusieurs concepts.

play10:40

On va y venir, mais avant ça, prenons un peu de recul et essayons de comprendre la

play10:44

différence entre ce que font les réseaux génératifs, et l’apprentissage supervisé

play10:49

qu’on a vu avant, celui qui permet par exemple de classifier des images.

play10:53

[COMPARAISON Dans l’apprentissage supervisé, on donne X en entrée, et on attend que l’algorithme

play10:58

nous prédise Y en sortie, et pour ça on lui donne plein d’exemples de X et de Y.

play11:03

Avec les réseaux génératifs, on donne plein de X en entrée, par exemple des images de

play11:08

chat, et on dit à l’algorithme « Vas-y donne m’en d’autres ».]

play11:12

[2D Essayons de se représenter la différence en imaginant qu’il n’y ait que deux dimensions.

play11:16

Par exemple si X et Y sont chacun de simples nombres réels. Dans ce cas là on peut représenter

play11:22

chaque exemple (x,y) de la base de données comme un point dans un diagramme en 2D.

play11:27

Dans l’apprentissage supervisé, on veut que l’algorithme puisse prédire Y à partir

play11:32

de X. Donc en gros on veut que notre algorithme arrive à faire une sorte de régression,

play11:36

qui lui permette de deviner à peu près la valeur de Y si on lui présente une nouvelle

play11:41

valeur de X qu’il n’a jamais vu dans la base.

play11:43

Ok maintenant comment ça se passe pour un algorithme génératif, à qui on demande

play11:48

de construire de nouveaux exemples à partir d’une liste de X. Imaginez que dans mon

play11:53

cas X soit en 2 dimensions, donc décrit par deux nombres. Deux c’est pas beaucoup, tout

play11:58

à l’heure une image on a dit que c’était 1 million valeurs, mais nous on va en regarder

play12:02

que deux. Appelons les x1 et x2.

play12:04

Donc ma base d’exemple c’est une liste de valeurs (x1,x2). Imaginez que je représente

play12:09

chaque exemple dans un diagramme et que j’obtienne ça. Ou bien ça. Manifestement il se passe

play12:17

quelque chose. Dans mon premier cas on voit que tous les exemples sont groupés dans un

play12:20

certain coin. Dans mon second cas, on voit qu’il y a comme une structure sous-jacente.

play12:25

Si on me présentait une base de données de ce genre, je serai capable de dire quelque

play12:30

chose d’intéressant sur la façon dont sont répartis les exemples, sur leur distribution.

play12:34

Ils ne sont pas quelconques, il ne sont qu’une petite partie de l’espace total des possibilités.

play12:39

Et avec les images de chat c’est pareil. Ok il y a 1 million de dimensions donc c’est

play12:45

dur à visualiser, mais les images de chat sont ne sont pas des images quelconques. Dans

play12:50

l’espace immense de toutes les images possibles et imaginables, les images de chat ne sont

play12:55

qu’une minuscule région. Et ce qu’on veut faire, c’est en savoir plus sur cette

play12:59

région.

play13:00

Car si on arrive à dire un truc intelligent sur la manière dont sont distribués les

play13:04

exemples d’une base de données, on sera capable de faire de l’échantillonnage.

play13:08

C’est à dire de produire de nouveaux points qui ont de bonnes chances d’être du même

play13:12

genre.

play13:13

Dans mes exemples simples en deux dimensions, si je considère par exemple ces points-ci.

play13:17

Ou ceux-là dans le diagramme d’à côté. Ce sont des points qui n’étaient pas dans

play13:21

les bases initiales, mais dont on a bien envie de parier qu’ils auraient pu y figurer,

play13:25

qu’ils ont certainement les mêmes caractéristiques qui nous intéressent.

play13:28

Et pareil pour mes chats, je voudrais être capable de créer une image qui soit nouvelle,

play13:35

et que j’aille la prendre dans la sous-région qui contient les images de chat.]

play13:39

Et vous voyez que cette gymnastique est différente de l’apprentissage supervisé. On ne fait

play13:43

pas de la prédiction au sens on me donne X et je prédis Y. Non, ici, on a ce qu’on

play13:48

appelle de l’apprentissage non-supervisé.

play13:49

L’apprentissage non-supervisé, c’est quand on a des données en entrée qui ne

play13:54

sont pas séparées en X et Y, ce sont juste des exemples X, et qu’on essaye de comprendre

play14:00

comment ces X sont distribués dans l’espace de toutes les possibilités. De façon à

play14:06

pouvoir, par exemple, en générer de nouveaux par échantillonnage.

play14:09

Evidemment à nouveau d’une part ça ne se passe pas dans un espace à deux dimensions,

play14:14

et d’autre part les régions qu’on cherche à identifier n’ont pas des formes simples.

play14:18

Ca se voit très bien par exemple par le fait que la moyenne de deux images de chat ne donne

play14:23

pas une bonne image de chat.

play14:25

Mais si vous arrivez à correctement caractériser la région dans laquelle se trouvent toutes

play14:29

les images de chat de votre base initiale, vous pouvez avec une certaine confiance échantillonner

play14:34

de nouvelles images en allant chercher au même endroit.

play14:37

Bien, donc générer de nouvelles images, ça n’est pas une tâche d’apprentissage

play14:41

supervisé mais c’est une tâche d’apprentissage non-supervisé. Et on l’a dit, les réseaux

play14:47

adversariaux GAN marchent bien pour ça, mais ne fonctionnent que si on donne plein d’exemples

play14:52

en entrée. Et il faut le faire pour chaque type de catégorie qu’on veut générer

play14:56

: des chats, des voitures, des appartements, etc.

play14:59

Les applications sont donc limitées, et cela explique que l’on n’ait pas vu de choses

play15:02

très spectaculaire depuis This Person Does Not Exist. Sauf depuis l’été 2022 avec

play15:08

l’apparition de DALL·E et Stable Diffusion, qui n’utilisent pas les GAN. Et donc voyons

play15:14

maintenant cette nouvelle technique qui fait fureur en ce moment : les algorithmes de diffusion.

play15:20

[jingle]

play15:21

Avant de voir comment les algorithmes de diffusion sont capables de créer des images en prenant

play15:28

un texte libre comme point de départ, voyons déjà comment ils fonctionnent sur la même

play15:33

tâche que celle des GAN : générer plus d’images d’un type donné. Le principe

play15:38

de base est assez simple, et ça semble presque miraculeux que cela fonctionne.

play15:42

[BRUIT Imaginez une image de chat. Je peux essayer de dégrader cette image en la bruitant.

play15:47

C’est facile, je génère une image qui est du pur bruit, c’est-à-dire que chaque

play15:51

pixel a une couleur totalement aléatoire. Et puis je mélange les deux images avec certaines

play15:56

proportions. Disons 95% de chat et 5% de bruit.

play16:00

J’obtiens une image de chat légèrement dégradée. Et ce que je vais faire, c’est

play16:05

d’abord une étape d’apprentissage supervisé : je vais entrainer un réseau de neurones

play16:10

à débruiter les images.

play16:12

C’est à dire que je crée une base de données avec en entrée des images bruitées et en

play16:16

sortie les images d’origine. Et je donne ça à mon réseau pour lui apprendre à enlever

play16:21

le bruit. Ici il doit enlever 5% de bruit.

play16:24

Et ce qui est intéressant, c’est que je peux faire ça avec différents niveaux de

play16:29

bruit. Par exemple je peux bruiter une image à 45% et à 50%, et entrainer mon réseau

play16:34

à retirer 5% de bruit pour passer de 50 à 45. Et pareil avec 90 et 95%.

play16:40

Donc si j’ai une base de données d’images de chat, je peux toutes les bruiter à plein

play16:45

de niveaux différent niveaux et entrainer mon algorithme avec. Et à la fin de son entrainement,

play16:50

mon algorithme sera devenu super fort à débruiter des images de chat.]

play16:54

Maintenant une fois que mon algorithme de débruitage est entrainé, imaginez que je

play16:58

lui donne une image qui soit 100% de bruit, j’ai tiré chaque pixel au hasard. Et que

play17:03

je lui dise : vas-y débruite là progressivement. Retire 5% de bruit, puis encore 5%, puis encore

play17:09

5%. Qu’est-ce qu’il va se passer ?

play17:10

[DEBRUITAGE Eh bien comme mon algorithme aura été uniquement entrainé à débruiter des

play17:15

images de chats, il va progressivement m’inventer une image de chat à partir du bruit initial.

play17:20

Et cette image ne sera aucune des images de la base initiale, ce sera une nouvelle image.

play17:26

Il va en quelque sorte « halluciner » une image de chat à partir du pur bruit qu’on

play17:31

lui donne en entrée.

play17:32

Et en faisant ça, notre algorithme fait de l’échantillonnage parmi la distribution

play17:37

de toutes les images de chat possibles et imaginables. On tire un bruit au hasard, et

play17:42

il nous fait une image de chat avec. Cet échantillonnage est donc une forme d’apprentissage non-supervisé

play17:48

de la distribution des images de chat.]

play17:51

Cette idée de génération à partir d’un débruitage progressif, c’est ça qu’on

play17:55

appelle les méthodes de diffusion. La technique a été proposée il y a quelques années

play18:00

déjà, mais elle vient de connaitre une accélération grâce à de nombreuses améliorations récentes.

play18:04

A ce stade de ma description, ce type d’approche ne fait pas mieux que les GAN. Si vous faites

play18:10

ça avec des images de voiture au lieu d’images de chat, vous allez entrainer un réseau de

play18:15

débruitage qui aura la capacité à halluciner des images de voiture. Donc on peut génèrer

play18:20

des images d’un certain type à condition d’en avoir donné suffisamment d’exemples

play18:25

en entrée, et de refaire l’entrainement.

play18:27

Mais il est possible d’étendre le concept pour le rendre plus polyvalent. Vous vous

play18:32

souvenez du problème de classification d’images : on a une grande base de données d’images,

play18:36

et chacune est associée à une classe : chat, voiture, visage, etc. Ce qu’on peut faire,

play18:42

c’est traiter tout d’un coup.

play18:43

[CONDITIONNEMENT Pour ça on va bruiter ces images et les donner à notre algorithme pour

play18:47

qu’il apprenne à les débruiter, mais en lui spécifiant à chaque fois la catégorie

play18:52

à laquelle appartient chaque image.

play18:53

L’algorithme de débruitage sera ainsi capable de s’ajuster en fonction de la catégorie.

play19:00

C’est un principe qu’on appelle le conditionnement. On va conditionner notre débruitage par la

play19:05

catégorie de l’image.

play19:07

Et si on fait ça avec une base de données suffisamment grande, une fois l’entrainement

play19:10

terminé on aura un algorithme capable d’halluciner une image en étant conditionné par une classe.

play19:17

Si on lui dit voiture il va halluciner une voiture, et chat il va halluciner un chat.]

play19:21

Alors c’est bien, mais ça n’est pas encore tout à fait ce qu’on veut. Ici on est limités

play19:25

par les catégories qui ont été choisies au départ pour classifier les images. Or

play19:29

vous voyez que dans DALLE ou Stable Diffusion, on peut entrer librement du texte, faire des

play19:34

phrases, des descriptions. Comment on procède ?

play19:36

Eh bien il va falloir faire appel à certains algorithmes de traitement du langage naturel,

play19:41

comme ceux que j’évoquais dans ma vidéo sur le sujet. Et notamment les algorithmes

play19:45

permettant de faire ce qu’on appelle de du plongement, embedding en anglais.

play19:49

[EMBEDDING L’idée du plongement, c’est de partir d’un mot ou d’un phrase, et

play19:53

de lui associer une série de nombres qui en quelque sorte représente numériquement

play19:58

son sens, sa signification. Mais plongée dans un espace mathématique abstrait. De

play20:04

façon à ce que deux phrases proches aient des plongements qui soient proches.]

play20:08

Il existe des réseaux de neurones qui peuvent réaliser ces plongements, et si on les utilise

play20:12

avec un algorithme de diffusion, on peut alors utiliser le plongement pour conditionner le

play20:18

débruitage.

play20:19

[CONDITIONNEMENT Ca marche comme tout à l’heure, mais au lieu d’être conditionné par une

play20:21

catégorie d’image, notre processus de débruitage sera conditionné par le plongement de la

play20:26

description de l’image.

play20:28

En pratique, on prend des toujours des images mais cette fois accompagnées d’une description

play20:32

libre, par exemple une légende. On calcule le plongement de la légende, et on entraine

play20:37

notre réseau à débruiter ces images, tout en étant conditionné par le plongement de

play20:41

la légende.

play20:42

Et si on fait ça avec suffisamment d’images légendées, eh bien on obtient un algorithme

play20:47

de génération d’image à partir d’une description.

play20:50

Vous tapez un texte, l’algorithme calcule son plongement. Il génère ensuite une image

play20:54

100% bruitée et ensuite va la débruiter progressivement, tout en étant conditionné

play20:58

par le plongement de la description qu’on a donné.

play21:01

Et si tout va bien l’algorithme va halluciner une image en prenant comme contexte la description

play21:07

qu’on a donné.]

play21:09

Voici dans les grandes lignes comment fonctionnent les algorithmes de diffusion comme Stable

play21:14

Diffusion ou encore DALLE. Bon il y a encore pas mal de subtilités mais je pense que la

play21:18

vidéo est déjà bien assez lourde, et je vous renvoie au billet de blog qui accompagne

play21:21

la vidéo si vous voulez plus de détails techniques.

play21:23

Avant de conclure, il y a un point que je dois quand même évoquer, ce sont les problèmes

play21:28

éthiques et juridiques posés par ces algorithmes. Il y a bien sûr la possibilité qu’ils

play21:32

offrent de créer de fausses images ayant l’air complètement plausibles, donc potentiellement

play21:36

de faire de la désinformation avec.

play21:38

Il y aussi les question de propriété intellectuelle, puisque ces algorithmes ont été entrainés

play21:44

à partir d’images trouvées sur Internet, et qui ne sont pas forcément libres de droits.

play21:48

C’est particulièrement criant pour les dessins ou l’art numérique en général,

play21:52

puisqu’on peut demander à l’algorithme d’imiter le style d’un artiste sans que

play21:56

ce dernier ait eu son mot à dire.

play21:58

Ces questions sont plus complexes qu’il n’y parait, et je n’ai pas vraiment les

play22:01

compétences artistiques ou juridiques pour les traiter correctement. D’autant que les

play22:05

choses évoluent très vite et qu’il y aura certainement des effets de jurisprudence.

play22:09

Donc gardez à l’esprit ces interrogations car on risque d’entendre parler pas mal

play22:13

prochainement.

play22:14

Voilà c’est tout pour aujourd’hui, merci d’avoir suivi cette vidéo. N’hésitez

play22:16

pas à aller voir mes vidéos connexes sur le deep learning ou le traitement du langage.

play22:21

Abonnez-vous si ça n’est pas déjà le cas et n’hésitez pas à venir vérifier

play22:24

régulièrement les nouvelles vidéos, même si Youtube ne vous les propose plus.

play22:28

Pour celles et ceux que ça intéresse, j’ai aussi créé récemment un serveur Discord

play22:31

communautaire, n’hésitez pas à le rejoindre pour venir discuter. Le lien est en description.

play22:36

Et moi je vous dit à très vite pour de nouvelles vidéos. A bientôt.

Rate This

5.0 / 5 (0 votes)

Related Tags
IA GénérativeApprentissage AutomatiqueRéseaux GANDiffusion d'ImagesDALL·EStable DiffusionTraitement du LangageÉthique IAPropriété IntellectuelleDésinformation
Do you need a summary in English?