Les IA (intelligence artificielle) sont de plus en plus prĂ©sentes dans notre vie quotidienne et ce Youtube vidĂ©o explique comment elles peuvent ĂȘtre utilisĂ©es pour crĂ©er des images. Il montre comment les algorithmes sont capables dâutiliser des donnĂ©es pour gĂ©nĂ©rer des images originales et crĂ©atives. Cette vidĂ©o est un excellent moyen d’en apprendre plus sur l’intelligence artificielle et sur la façon dont elle peut ĂȘtre utilisĂ©e pour crĂ©er des images.
Cette vidĂ©o explique comment les intelligences artificielles peuvent gĂ©nĂ©rer des images Ă partir d’une description. Les algorithmes utilisĂ©s pour cela sont appelĂ©s des IA gĂ©nĂ©ratives et reposent sur l’apprentissage supervisĂ©. Les IA gĂ©nĂ©ratives fonctionnent en prenant en entrĂ©e une sĂ©rie de nombres et en produisant une image en sortie. Cependant, cette mĂ©thode ne fonctionne pas bien car elle ne peut pas prendre en compte la part d’alĂ©atoire et de synthĂšse d’information nĂ©cessaire Ă la production d’images. En 2014, une Ă©quipe de l’UniversitĂ© de MontrĂ©al a proposĂ© une mĂ©thode plus efficace pour gĂ©nĂ©rer des images Ă partir d’une description.
Source : UCaNlbnghtwlsGF-KzAFThqA | Date : 2023-01-13 17:00:34 | Durée : 00:22:52
âĄïž AccĂ©der Ă CHAT GPT en cliquant dessus
Voici la transcription de cette vidéo :
Depuis maintenant plusieurs mois, vous nâavez certainement pas Ă©chappĂ© Ă la dĂ©ferlante des images qui sont gĂ©nĂ©rĂ©es par des intelligences artificielles, des IA. Quâil sâagisse de DALL·E, de Midjourney ou encore de Stable Diffusion, il existe maintenant plusieurs programmes extrĂȘmement efficaces, capables de crĂ©er de toute piĂšce une image Ă partir dâune description.
Et ce que font ces IA, ça nâest pas du Google Image. Elles ne vont pas chercher une image existante, mais elles produisent des images nouvelles, qui nâexistent pas, et quâelle crĂ©ent Ă la demande. Il peut sâagit de photographies, de peinture ou dâart numĂ©rique,
Et on peut mĂȘme parfois spĂ©cifier le type dâobjectif photo ou le style du peintre que lâon souhaite retrouver. On appelle ces types dâalgorithmes des IA gĂ©nĂ©ratives, car elles sont capables de crĂ©er du contenu Ă la demande, en intĂ©grant Ă la conception une part dâalĂ©atoire,
De façon Ă pouvoir obtenir plein de variations Ă partir de la mĂȘme demande. Si vous avez essayĂ© ces IA gĂ©nĂ©ratives, vous avez peut-ĂȘtre Ă©tĂ© comme moi Ă©bahis par leurs capacitĂ©s Ă faire quelque chose qui semblait impossible il y a seulement quelques
AnnĂ©es. Ca parait presque magique tellement ça fonctionne bien. Mais au fait, comment ça fonctionne vraiment ? Eh bien câest ce quâon va voir ensemble aujourdâhui ! [jingle] Commençons par quelques remarques de base sur la terminologie. Ce quâon appelle lâintelligence
Artificielle, câest un domaine aux contours un peu flous. On peut dire que son objectif est de rĂ©aliser Ă lâaide de machines, des tĂąches traditionnellement rĂ©alisĂ©es par des humains, et dont on estime quâelle requiĂšrent de lâintelligence. Sans trop prĂ©ciser le sens quâon donne Ă ce terme.
[DIAGRAMME Au sein de lâIA, il y a un champ de recherche assez bien identifiĂ© quâon appelle le machine learning, ou apprentissage automatique. LâidĂ©e est de sâattaquer notamment Ă des questions dâIA, en mettant au point des algorithmes capables dâapprendre. Et qui rĂ©alisent leur apprentissage Ă partir de donnĂ©es auxquelles ils ont accĂšs.
Et dans le machine learning, il y a le deep learning. Et ça, câest lâidĂ©e dâutiliser une classe assez spĂ©cifique dâalgorithmes que sont les rĂ©seaux de neurones profonds, et qui ont connu un Ă©norme succĂšs depuis une dizaine dâannĂ©es.] Aujourdâhui quand on utilise le terme IA, il sâagit presque systĂ©matiquement de deep
Learning, tant cette approche est efficace. Je ne vais pas Ă©voquer ici les principes de base du deep learning, jâavais fait toute une vidĂ©o sur le sujet il y a quelques temps, je vous invite Ă aller la voir si ça vous intĂ©resse.
Quand on parle dâalgorithmes capables dâapprendre, cela fonctionne souvent selon le mĂȘme principe. Imaginez quâon veuille crĂ©er un algorithme qui soit capable de reconnaitre ce quâil y a sur une image. [ALGO On veut un programme Ă qui on donne une image en entrĂ©e, et qui produise un mot
En sortie. Et on veut que cet algorithme rĂ©ponde « Chat » sur cette image, sur celle-ci « Voiture », etc. Pour rĂ©aliser cela, on va utiliser ce quâon appelle de lâapprentissage supervisĂ©. Au dĂ©part notre algorithme va ĂȘtre ignorant, et rĂ©pondre nâimporte quoi quand on lui
PrĂ©sente une image. Et puis on va lui fournir une grande base de donnĂ©es dâexemples. Câest-Ă -dire des milliers dâimages de chats, de voiture, de tasses, avec Ă chaque fois la rĂ©ponse quâon attendrait de lui.] En utilisant ces exemples, lâalgorithme va peu Ă peu ajuster ses paramĂštres pour
SâamĂ©liorer, il va apprendre. JusquâĂ ĂȘtre capable de rĂ©aliser lui-mĂȘme le travail de façon suffisamment correcte. On dit alors que lâalgorithme aura Ă©tĂ© entrainĂ©, et on pourra commencer Ă lâutiliser. Cette façon de faire, câest donc lâapprentissage supervisĂ©. De façon plus gĂ©nĂ©rale si on
Veut quâun algorithme prenne en entrĂ©e X et rĂ©ponde Y, on lui donne une base de donnĂ©es dâexemples (x,y), et on lâentraine en espĂšrant quâil va finir par savoir faire le lien. Câest ce quâon appelle parfois une tĂąche de prĂ©diction, puisquâon donne X en entrĂ©e
Et on demande Ă lâalgorithme de prĂ©dire Y. Dans mon premier exemple X ce sont des images et Y ce sont des mots. On classifie les images avec des mots. Mais le principe fonctionne avec plein dâautres concepts. Par exemple X ce peut-ĂȘtre toutes les caractĂ©ristiques dâune transaction bancaire, et Y est une
Classification pour estimer si la transaction est frauduleuse ou pas. Ou bien X câest le texte dâun e-mail et Y câest une classification entre Spam/Non-spam. Beaucoup des applications actuelles concrĂštes du machine learning reposent sur ce principe dâapprentissage supervisĂ©, qui permet de rĂ©aliser des tĂąches de prĂ©diction.
Ca semble un peu magique prĂ©sentĂ© comme ça, de penser quâun algorithme peut reconnaitre des images et associer les bons mots, mais il faut bien voir que tout ce que fait lâalgorithme, câest de manipuler des nombres. Tout se fait via des opĂ©rations mathĂ©matiques.
[CHIFFRES Par exemple sur la classification des images, voici comment on fait en pratique. On dĂ©finit dâabord un nombre fini de catĂ©gories : « Chat », « Voiture », « Tasse », etc. Et on leur attribue des numĂ©ros : 1,2,3 etc. On peut faire disons 1000 catĂ©gories,
Et Ă chaque image de notre base de donnĂ©es on va associer une de ces 1000 catĂ©gories. Et pour lâimage elle-mĂȘme, on va aussi la reprĂ©senter comme une sĂ©rie de nombres. Une image 600×600, ce sont 360 000 pixels, chacun de ces pixels va ĂȘtre codĂ© en rouge/vert/bleu
Donc il faut 3 nombres par pixel. Au total je peux dĂ©crire complĂštement mon image en un peu plus dâun million de nombres. Donc ce que je cherche Ă faire, câest un algorithme qui prenne en entrĂ©e une sĂ©rie dâun million de nombres qui reprĂ©sentent lâimage, et qui me crache en sortie un nombre
Entre 1 et 1000 reprĂ©sentant la catĂ©gorie quâil pense ĂȘtre la bonne.] On nâa pas besoin dâexpliquer Ă lâalgorithme ce quâest une image, un chat ou une voiture; lui, il manipule juste des nombres. Et il va sâen faire une idĂ©e tout seul en essayant
De mettre en relation les valeurs des pixels des images et les 1000 catĂ©gories quâon aura prĂ©dĂ©finies. Ces algorithmes de classification dâimages fonctionnent maintenant extrĂȘmement bien, avec des performances proches de celles des humains. Alors intuitivement, on se dit que ça, ça nâa pas lâair trĂšs trĂšs Ă©loignĂ© de ce quâon voudrait faire pour gĂ©nĂ©rer
Des images. [REVERSE Pour classifier des images existantes, en entrĂ©e X on a des images, et en sortie Y un mot qui les dĂ©crit, et une base de donnĂ©es pour rĂ©aliser lâentrainement. On nâa quâĂ entrainer un algorithme du mĂȘme genre sur la mĂȘme base de donnĂ©es, mais Ă lâenvers.
On lui donne un mot en entrĂ©e, et on attend quâil produise une image en sortie. Facile, non ?] Eh bien non, ça ne marche pas comme ça. Il y a plusieurs raisons Ă cela. Dans une tĂąche de prĂ©diction, comme la classification des images, on donne en entrĂ©e beaucoup dâinformations,
Des centaines de milliers de pixels, et en sortie on rĂ©cupĂšre quelque chose de trĂšs limitĂ©, juste un numĂ©ro de catĂ©gorie par exemple. Lâalgorithme de classification rĂ©alise en quelque sorte de la synthĂšse dâinformation. Ici câest lâinverse quâon veut, on donne trĂšs peu de choses en entrĂ©e, disons juste
Un mot. Et on sâattend en sortie Ă rĂ©cupĂ©rer une image entiĂšre, qui contient donc beaucoup plus dâinformation que ce quâon a mis au dĂ©part. Ca ne peut pas marcher avec un simple apprentissage supervisĂ©. En fait si, on peut essayer. Mais ce quâil risque de se passer câest que notre algorithme,
Une fois entrainĂ©, chaque fois quâon lui demande une image de chat il va nous ressortir exactement lâimage de chat quâil avait dans sa base de donnĂ©es. Ou bien une sorte de moyenne de toutes les images de chat quâon lui a fournies. Et câest pas ça quâon veut.
Lâautre aspect important, câest quâon veut que notre algorithme de gĂ©nĂ©ration dâimage ait une part dâalĂ©atoire. Si je lui demande 50 fois un chat, je veux quâil me produise 50 images diffĂ©rentes, pas 50 fois le mĂȘme chat. GĂ©nĂ©rer ça nâest pas la mĂȘme chose que prĂ©dire. Donc vous voyez que pour crĂ©er
Des images Ă partir dâun texte, prendre une approche traditionnelle de prĂ©diction par apprentissage supervisĂ©, eh bien ça ne va pas marcher. Il faut faire autrement. Alors voyons comment. [jingle] En 2014, une premiĂšre façon de faire assez efficace a Ă©tĂ© proposĂ©e par une Ă©quipe
De lâUniversitĂ© de MontrĂ©al : les rĂ©seaux adversariaux gĂ©nĂ©ratifs, ou GAN en anglais. Alors quâest-ce que ça veut dire ce truc. Pour voir ça, prenons un problĂšme plus simple que celui que jâai Ă©voquĂ©. Imaginons pour commencer que je veuille uniquement crĂ©er des images de chat.
[GAN Je dispose dâune grande base de donnĂ©es dâimages de chat, je veux juste ĂȘtre capable dâen crĂ©er plein dâautres, de nouvelles, qui nâexistent pas initialement dans la base, et qui ressemblent bien Ă des chats. Pour cela, je vais entrainer non pas un, mais deux rĂ©seaux de neurones.
Le premier, on va lâappeler le faussaire. Il aura pour rĂŽle de gĂ©nĂ©rer alĂ©atoirement des images Ă partir dâune sĂ©rie de paramĂštres. Et le deuxiĂšme, on va lâappeler lâexpert, et sa tĂąche va ĂȘtre simple : si on lui prĂ©sente une image, il va devoir apprendre Ă reconnaitre
Si lâimage est une vraie image de chat, qui provient de la base, ou bien une image inventĂ©e. Rappelez-vous le principe de lâapprentissage, au dĂ©but ces algorithmes sont mauvais. Le faussaire, quand on lui demande de produire une image de chat, il va produire des images
De ce genre, du bruit complet. Et lâexpert, quand on lui prĂ©sente deux images en lui demandant quelle est la « vraie », au dĂ©but il va rĂ©pondre au pif. Et puis Ă force dâessais et dâerreurs, ces rĂ©seaux vont progresser car Ă chaque
Fois on leur donne le rĂ©sultat. On indique au faussaire sâil a rĂ©ussi Ă berner lâexpert. Et lâexpert lui sait sâil a correctement discriminĂ© les images quâon lui prĂ©sente. Au dĂ©part, lâexpert va assez vite apprendre Ă reconnaitre les vrais chats des fausses
Images, qui sont initialement assez pourries. Et puis peu Ă peu le faussaire va progresser et faire des images qui seront de mieux en mieux, et ça va forcer lâexpert Ă amĂ©liorer son niveau.] Et en laissant les deux sâentrainer ensemble suffisamment longtemps, on finira si tout
Va bien par avoir un faussaire capable de produire des images trĂšs semblables aux vraies, et un expert qui aura bien du mal Ă faire la diffĂ©rence. Ce principe dâentrainement, on lâappelle « adversarial », puisque les deux rĂ©seaux de neurones sâaffrontent et progressent de concert. Câest comme si vous demandiez Ă deux joueurs de foot de
Sâentrainer ensemble : lâun fait le tireur de pĂ©nalty et lâautre le gardien, avec lâidĂ©e quâils vont conjointement progresser. Ces rĂ©seaux adversariaux gĂ©nĂ©ratifs, ou GAN, existent maintenant depuis plusieurs annĂ©es, et vous les avez certainement vus Ă lâoeuvre si vous connaissez le site This Person Does Not Exist.
[THIS PERSON Sur ce site, on a des rĂ©seaux ont Ă©tĂ© entrainĂ© Ă partir de photos de visages, et qui sont donc excellent Ă inventer de nouveaux visages de toute piĂšce. Il y a parfois des dĂ©fauts mineurs mais dans lâensemble câest assez bluffant.
Dans le mĂȘme genre, vous avez aussi pour les voitures This Car Does Not Exist, pour les maisons This House Does Not Exist, et ah oui, bien Ă©videmment : This Cat Does Not Exist.] Ce type dâalgorithme donc est trĂšs efficace pour produire des images dâun type donnĂ©
Et fixĂ© Ă lâavance. Si lâentrainez sur des chats, il vous fera des chats. Mais vous voyez quâon nâest pas encore au stade oĂč on peut rentrer librement du texte et avoir une image qui mĂ©lange plusieurs concepts. On va y venir, mais avant ça, prenons un peu de recul et essayons de comprendre la
DiffĂ©rence entre ce que font les rĂ©seaux gĂ©nĂ©ratifs, et lâapprentissage supervisĂ© quâon a vu avant, celui qui permet par exemple de classifier des images. [COMPARAISON Dans lâapprentissage supervisĂ©, on donne X en entrĂ©e, et on attend que lâalgorithme
Nous prĂ©dise Y en sortie, et pour ça on lui donne plein dâexemples de X et de Y. Avec les rĂ©seaux gĂ©nĂ©ratifs, on donne plein de X en entrĂ©e, par exemple des images de chat, et on dit Ă lâalgorithme « Vas-y donne mâen dâautres ».]
[2D Essayons de se reprĂ©senter la diffĂ©rence en imaginant quâil nây ait que deux dimensions. Par exemple si X et Y sont chacun de simples nombres rĂ©els. Dans ce cas lĂ on peut reprĂ©senter chaque exemple (x,y) de la base de donnĂ©es comme un point dans un diagramme en 2D.
Dans lâapprentissage supervisĂ©, on veut que lâalgorithme puisse prĂ©dire Y Ă partir de X. Donc en gros on veut que notre algorithme arrive Ă faire une sorte de rĂ©gression, qui lui permette de deviner Ă peu prĂšs la valeur de Y si on lui prĂ©sente une nouvelle
Valeur de X quâil nâa jamais vu dans la base. Ok maintenant comment ça se passe pour un algorithme gĂ©nĂ©ratif, Ă qui on demande de construire de nouveaux exemples Ă partir dâune liste de X. Imaginez que dans mon cas X soit en 2 dimensions, donc dĂ©crit par deux nombres. Deux câest pas beaucoup, tout
Ă lâheure une image on a dit que câĂ©tait 1 million valeurs, mais nous on va en regarder que deux. Appelons les x1 et x2. Donc ma base dâexemple câest une liste de valeurs (x1,x2). Imaginez que je reprĂ©sente chaque exemple dans un diagramme et que jâobtienne ça. Ou bien ça. Manifestement il se passe
Quelque chose. Dans mon premier cas on voit que tous les exemples sont groupĂ©s dans un certain coin. Dans mon second cas, on voit quâil y a comme une structure sous-jacente. Si on me prĂ©sentait une base de donnĂ©es de ce genre, je serai capable de dire quelque
Chose dâintĂ©ressant sur la façon dont sont rĂ©partis les exemples, sur leur distribution. Ils ne sont pas quelconques, il ne sont quâune petite partie de lâespace total des possibilitĂ©s. Et avec les images de chat câest pareil. Ok il y a 1 million de dimensions donc câest
Dur Ă visualiser, mais les images de chat sont ne sont pas des images quelconques. Dans lâespace immense de toutes les images possibles et imaginables, les images de chat ne sont quâune minuscule rĂ©gion. Et ce quâon veut faire, câest en savoir plus sur cette rĂ©gion.
Car si on arrive Ă dire un truc intelligent sur la maniĂšre dont sont distribuĂ©s les exemples dâune base de donnĂ©es, on sera capable de faire de lâĂ©chantillonnage. Câest Ă dire de produire de nouveaux points qui ont de bonnes chances dâĂȘtre du mĂȘme genre.
Dans mes exemples simples en deux dimensions, si je considĂšre par exemple ces points-ci. Ou ceux-lĂ dans le diagramme dâĂ cĂŽtĂ©. Ce sont des points qui nâĂ©taient pas dans les bases initiales, mais dont on a bien envie de parier quâils auraient pu y figurer, quâils ont certainement les mĂȘmes caractĂ©ristiques qui nous intĂ©ressent.
Et pareil pour mes chats, je voudrais ĂȘtre capable de crĂ©er une image qui soit nouvelle, et que jâaille la prendre dans la sous-rĂ©gion qui contient les images de chat.] Et vous voyez que cette gymnastique est diffĂ©rente de lâapprentissage supervisĂ©. On ne fait
Pas de la prĂ©diction au sens on me donne X et je prĂ©dis Y. Non, ici, on a ce quâon appelle de lâapprentissage non-supervisĂ©. Lâapprentissage non-supervisĂ©, câest quand on a des donnĂ©es en entrĂ©e qui ne sont pas sĂ©parĂ©es en X et Y, ce sont juste des exemples X, et quâon essaye de comprendre
Comment ces X sont distribuĂ©s dans lâespace de toutes les possibilitĂ©s. De façon Ă pouvoir, par exemple, en gĂ©nĂ©rer de nouveaux par Ă©chantillonnage. Evidemment Ă nouveau dâune part ça ne se passe pas dans un espace Ă deux dimensions, et dâautre part les rĂ©gions quâon cherche Ă identifier nâont pas des formes simples.
Ca se voit trÚs bien par exemple par le fait que la moyenne de deux images de chat ne donne pas une bonne image de chat. Mais si vous arrivez à correctement caractériser la région dans laquelle se trouvent toutes les images de chat de votre base initiale, vous pouvez avec une certaine confiance échantillonner
De nouvelles images en allant chercher au mĂȘme endroit. Bien, donc gĂ©nĂ©rer de nouvelles images, ça nâest pas une tĂąche dâapprentissage supervisĂ© mais câest une tĂąche dâapprentissage non-supervisĂ©. Et on lâa dit, les rĂ©seaux adversariaux GAN marchent bien pour ça, mais ne fonctionnent que si on donne plein dâexemples
En entrĂ©e. Et il faut le faire pour chaque type de catĂ©gorie quâon veut gĂ©nĂ©rer : des chats, des voitures, des appartements, etc. Les applications sont donc limitĂ©es, et cela explique que lâon nâait pas vu de choses trĂšs spectaculaire depuis This Person Does Not Exist. Sauf depuis lâĂ©tĂ© 2022 avec
Lâapparition de DALL·E et Stable Diffusion, qui nâutilisent pas les GAN. Et donc voyons maintenant cette nouvelle technique qui fait fureur en ce moment : les algorithmes de diffusion. [jingle] Avant de voir comment les algorithmes de diffusion sont capables de crĂ©er des images en prenant
Un texte libre comme point de dĂ©part, voyons dĂ©jĂ comment ils fonctionnent sur la mĂȘme tĂąche que celle des GAN : gĂ©nĂ©rer plus dâimages dâun type donnĂ©. Le principe de base est assez simple, et ça semble presque miraculeux que cela fonctionne.
[BRUIT Imaginez une image de chat. Je peux essayer de dĂ©grader cette image en la bruitant. Câest facile, je gĂ©nĂšre une image qui est du pur bruit, câest-Ă -dire que chaque pixel a une couleur totalement alĂ©atoire. Et puis je mĂ©lange les deux images avec certaines proportions. Disons 95% de chat et 5% de bruit.
Jâobtiens une image de chat lĂ©gĂšrement dĂ©gradĂ©e. Et ce que je vais faire, câest dâabord une Ă©tape dâapprentissage supervisĂ© : je vais entrainer un rĂ©seau de neurones Ă dĂ©bruiter les images. Câest Ă dire que je crĂ©e une base de donnĂ©es avec en entrĂ©e des images bruitĂ©es et en
Sortie les images dâorigine. Et je donne ça Ă mon rĂ©seau pour lui apprendre Ă enlever le bruit. Ici il doit enlever 5% de bruit. Et ce qui est intĂ©ressant, câest que je peux faire ça avec diffĂ©rents niveaux de
Bruit. Par exemple je peux bruiter une image Ă 45% et Ă 50%, et entrainer mon rĂ©seau Ă retirer 5% de bruit pour passer de 50 Ă 45. Et pareil avec 90 et 95%. Donc si jâai une base de donnĂ©es dâimages de chat, je peux toutes les bruiter Ă plein
De niveaux différent niveaux et entrainer mon algorithme avec. Et à la fin de son entrainement, mon algorithme sera devenu super fort à débruiter des images de chat.] Maintenant une fois que mon algorithme de débruitage est entrainé, imaginez que je
Lui donne une image qui soit 100% de bruit, jâai tirĂ© chaque pixel au hasard. Et que je lui dise : vas-y dĂ©bruite lĂ progressivement. Retire 5% de bruit, puis encore 5%, puis encore 5%. Quâest-ce quâil va se passer ? [DEBRUITAGE Eh bien comme mon algorithme aura Ă©tĂ© uniquement entrainĂ© Ă dĂ©bruiter des
Images de chats, il va progressivement mâinventer une image de chat Ă partir du bruit initial. Et cette image ne sera aucune des images de la base initiale, ce sera une nouvelle image. Il va en quelque sorte « halluciner » une image de chat Ă partir du pur bruit quâon lui donne en entrĂ©e.
Et en faisant ça, notre algorithme fait de lâĂ©chantillonnage parmi la distribution de toutes les images de chat possibles et imaginables. On tire un bruit au hasard, et il nous fait une image de chat avec. Cet Ă©chantillonnage est donc une forme dâapprentissage non-supervisĂ© de la distribution des images de chat.]
Cette idĂ©e de gĂ©nĂ©ration Ă partir dâun dĂ©bruitage progressif, câest ça quâon appelle les mĂ©thodes de diffusion. La technique a Ă©tĂ© proposĂ©e il y a quelques annĂ©es dĂ©jĂ , mais elle vient de connaitre une accĂ©lĂ©ration grĂące Ă de nombreuses amĂ©liorations rĂ©centes.
A ce stade de ma description, ce type dâapproche ne fait pas mieux que les GAN. Si vous faites ça avec des images de voiture au lieu dâimages de chat, vous allez entrainer un rĂ©seau de dĂ©bruitage qui aura la capacitĂ© Ă halluciner des images de voiture. Donc on peut gĂ©nĂšrer
Des images dâun certain type Ă condition dâen avoir donnĂ© suffisamment dâexemples en entrĂ©e, et de refaire lâentrainement. Mais il est possible dâĂ©tendre le concept pour le rendre plus polyvalent. Vous vous souvenez du problĂšme de classification dâimages : on a une grande base de donnĂ©es dâimages,
Et chacune est associĂ©e Ă une classe : chat, voiture, visage, etc. Ce quâon peut faire, câest traiter tout dâun coup. [CONDITIONNEMENT Pour ça on va bruiter ces images et les donner Ă notre algorithme pour quâil apprenne Ă les dĂ©bruiter, mais en lui spĂ©cifiant Ă chaque fois la catĂ©gorie Ă laquelle appartient chaque image.
Lâalgorithme de dĂ©bruitage sera ainsi capable de sâajuster en fonction de la catĂ©gorie. Câest un principe quâon appelle le conditionnement. On va conditionner notre dĂ©bruitage par la catĂ©gorie de lâimage. Et si on fait ça avec une base de donnĂ©es suffisamment grande, une fois lâentrainement
TerminĂ© on aura un algorithme capable dâhalluciner une image en Ă©tant conditionnĂ© par une classe. Si on lui dit voiture il va halluciner une voiture, et chat il va halluciner un chat.] Alors câest bien, mais ça nâest pas encore tout Ă fait ce quâon veut. Ici on est limitĂ©s
Par les catégories qui ont été choisies au départ pour classifier les images. Or vous voyez que dans DALLE ou Stable Diffusion, on peut entrer librement du texte, faire des phrases, des descriptions. Comment on procÚde ? Eh bien il va falloir faire appel à certains algorithmes de traitement du langage naturel,
Comme ceux que jâĂ©voquais dans ma vidĂ©o sur le sujet. Et notamment les algorithmes permettant de faire ce quâon appelle de du plongement, embedding en anglais. [EMBEDDING LâidĂ©e du plongement, câest de partir dâun mot ou dâun phrase, et de lui associer une sĂ©rie de nombres qui en quelque sorte reprĂ©sente numĂ©riquement
Son sens, sa signification. Mais plongée dans un espace mathématique abstrait. De façon à ce que deux phrases proches aient des plongements qui soient proches.] Il existe des réseaux de neurones qui peuvent réaliser ces plongements, et si on les utilise avec un algorithme de diffusion, on peut alors utiliser le plongement pour conditionner le
DĂ©bruitage. [CONDITIONNEMENT Ca marche comme tout Ă lâheure, mais au lieu dâĂȘtre conditionnĂ© par une catĂ©gorie dâimage, notre processus de dĂ©bruitage sera conditionnĂ© par le plongement de la description de lâimage. En pratique, on prend des toujours des images mais cette fois accompagnĂ©es dâune description
Libre, par exemple une lĂ©gende. On calcule le plongement de la lĂ©gende, et on entraine notre rĂ©seau Ă dĂ©bruiter ces images, tout en Ă©tant conditionnĂ© par le plongement de la lĂ©gende. Et si on fait ça avec suffisamment dâimages lĂ©gendĂ©es, eh bien on obtient un algorithme de gĂ©nĂ©ration dâimage Ă partir dâune description.
Vous tapez un texte, lâalgorithme calcule son plongement. Il gĂ©nĂšre ensuite une image 100% bruitĂ©e et ensuite va la dĂ©bruiter progressivement, tout en Ă©tant conditionnĂ© par le plongement de la description quâon a donnĂ©. Et si tout va bien lâalgorithme va halluciner une image en prenant comme contexte la description quâon a donnĂ©.]
Voici dans les grandes lignes comment fonctionnent les algorithmes de diffusion comme Stable Diffusion ou encore DALLE. Bon il y a encore pas mal de subtilités mais je pense que la vidéo est déjà bien assez lourde, et je vous renvoie au billet de blog qui accompagne
La vidĂ©o si vous voulez plus de dĂ©tails techniques. Avant de conclure, il y a un point que je dois quand mĂȘme Ă©voquer, ce sont les problĂšmes Ă©thiques et juridiques posĂ©s par ces algorithmes. Il y a bien sĂ»r la possibilitĂ© quâils offrent de crĂ©er de fausses images ayant lâair complĂštement plausibles, donc potentiellement
De faire de la dĂ©sinformation avec. Il y aussi les question de propriĂ©tĂ© intellectuelle, puisque ces algorithmes ont Ă©tĂ© entrainĂ©s Ă partir dâimages trouvĂ©es sur Internet, et qui ne sont pas forcĂ©ment libres de droits. Câest particuliĂšrement criant pour les dessins ou lâart numĂ©rique en gĂ©nĂ©ral,
Puisquâon peut demander Ă lâalgorithme dâimiter le style dâun artiste sans que ce dernier ait eu son mot Ă dire. Ces questions sont plus complexes quâil nây parait, et je nâai pas vraiment les compĂ©tences artistiques ou juridiques pour les traiter correctement. Dâautant que les
Choses Ă©voluent trĂšs vite et quâil y aura certainement des effets de jurisprudence. Donc gardez Ă lâesprit ces interrogations car on risque dâentendre parler pas mal prochainement. VoilĂ câest tout pour aujourdâhui, merci dâavoir suivi cette vidĂ©o. NâhĂ©sitez pas Ă aller voir mes vidĂ©os connexes sur le deep learning ou le traitement du langage.
Abonnez-vous si ça nâest pas dĂ©jĂ le cas et nâhĂ©sitez pas Ă venir vĂ©rifier rĂ©guliĂšrement les nouvelles vidĂ©os, mĂȘme si Youtube ne vous les propose plus. Pour celles et ceux que ça intĂ©resse, jâai aussi créé rĂ©cemment un serveur Discord communautaire, nâhĂ©sitez pas Ă le rejoindre pour venir discuter. Le lien est en description.
Et moi je vous dit à trÚs vite pour de nouvelles vidéos. A bientÎt.




Abonnez vous a Chat GPT
Comments
Détails et précisions dans le billet de blog qui accompagne la vidéo : https://scienceetonnante.com/2023/01/13/stable-diffusion/ On y parle d'espace latent, d'auto-encodeurs variationnels, de U-Net, des différents samplers, et de l'utilisation pour faire de l'inpainting.
Je me mets à l'unisson de la plupart des commentaires pour souligner la qualité du travail. Petit point terminologique cependant : quand on dit « l'algorithme apprend » ou « une IA fait cela », on donne l'impression qu'il y a un agent qui prend des décisions ; or, il n'y a rien de tout cela (un réseau de neurones c'est essentiellement du calcul matriciel et la maniÚre dont les paramÚtres s'adaptent est codée explicitement). La vidéo de David fait moins cet abus de langage que la plupart des autres cas mais y cÚde parfois. De maniÚre générale, les mots « algorithmes » et « IA » sont un peu galvaudés.
Ah oui et sinon, je pense qu'il est aussi important de se demander s'il est raisonnable d'utiliser autant de moyens et de jus de cerveau pour faire ça.
Tout semble dĂ©pendant de la qualitĂ© des donnĂ©es dâentrĂ©e ( les images rĂ©fĂ©rentes ) et câest lĂ que les problĂšmes sont ?
Parles ton de lâĂ©thique qui dĂ©coule du fait que notre façon de faire fonctionner les IA passe par l'hallucination ?
J'imagine que les images avec les descriptions peuvent provenir des attributs alt pour les personnes non voyantes. Je sais qu'il y a aussi les descriptions automatiques, je ne sais pas comment elles sont gĂ©nĂ©rĂ©es en gĂ©nĂ©ral… Super intĂ©ressant, merci
Oh c'est génial, c'est fluide c'est clair c'est bien réalisé c'est génial
TrÚs bien expliqué, comme toujours. Merci!
Trop bien, limpide et bien documentĂ©, comme dâhab đ Merci pour tout
GrĂące Ă vous je me suis intĂ©ressĂ© Ă l'IA. Nos profs devraient vous suivre et arrĂȘtĂ© de nous raconter l'histoire des machines et passer Ă la pratique
Super bien expliqué merci!
Une question me turlupine : est-ce que les algo de diffusion sont dĂ©terministes ? Auquel cas il existerait un nombre fini d'images pouvant ĂȘtre gĂ©nĂ©rĂ©es par un rĂ©seau de neurones donnĂ© ? đ€ Genre width * height * 256 * 3 ?
Je trouve ça dangereux, tu prends comme exemple: "Un petit chat gris et blanc tout mignon dans un environnement bucolique". Mais une autre personne peux demander: "Un enfant de moins de 10 ans nu dans un environnement glauque" et je reste soft mais vous avez compris l'idée, on peux créer de la pédopornographie d'enfants qui n'existent pas. Et alors plein de questions d'ordre morales se posent: Est ce légal? L'enfant n'existe pas dc ne souffre d'aucuns traumatisme. J'ai pris le pire comme exemple mais on peut imaginer d'autres dérives.
4:55 666 pour Chat, hasard ? Toujours Top les vidéos merci !
Je ne suis pas scientifique, et pourtant j'ai tout compris, enfin presque tout ;-)) Bravo pour ton sens pédagogique.
La patate
Merci pour toutes tes explications de ces systĂšmes. J'ai vu aussi qu'il existait une IA qui crĂ©e de la musique….. mĂȘme principe que pour les images?? Bonne continuation!!
Bonjour, merci pour vos vidĂ©os toujours plus passionnantes ! Serait-il envisageable que vous en rĂ©alisiez une sur le concept d'Ă©mergence ou est ce peut ĂȘtre trop abstrait ? Merci par avance
Encore une n-iĂšme vidĂ©o de grande qualitĂ©… Alain Aspect a attendu 40 ans pour avoir le prix nobel, l'histoire nous dira si vous allez devoir attendre 40 ans pour avoir le Prix UNESCO Kalinga de vulgarisation scientifique …
Bonjour, toujours un travail de grande qualitĂ©… saluĂ© dans le journal Sud Ouest semaine derniĂšre par notre prix de Nobel de chimie : respect. đ
passionant
MĂȘme aprĂšs lâexplication, je trouve ça quand mĂȘme extraordinaire ces AI.
Chat = 666 ? Je me doutais bien que tu étais un reptilien ! Et zoo-sataniste en plus.
Ce principe de création d'images est vraiment génial. C'est pas des antis-sciences qui trouveraient ça.
Chat = 666 haha c'est pas faux
Toujours aussi intéressant et instructif. Merci beaucoup pour votre travail et son partage.
Super bien expliqué, excellent, et merci de parler des problÚmes éthiques, l'enthousiasme portée par les utilisateurs a malheureusement survolé ces considérations super importantes pour les, heu, vrais artistes.
Il me semble que tu oublies les taches humaines qui permettent d'apprendre aux algorithmes à se corriger, des milliers d'humains, payés quelques centimes qui passent leur journée (en Indes entre autre) à corriger les erreurs des algorithmes. Mechanical turk de Amazon par exemple permet d'engager des centaines de personnes pour des sommes modestes à faire ces taches ingrates et répétitives. On pense souvent que c'est "magique" mais comme d'hab, les plus pauvres travaillent dans l'ombre pour entrainer des IA qui piqueront les boulots qualifiés. On a vendu les IA en disant qu'elles remplaceraient les taches ingrates des gens, qui pourraient se spécialiser, mais c'est le contraire qui se passe, les taches ingrates sont destinés aux humains, et les taches spécialisés faites par des algorithmes.
Peux-tu faire une vidéo sur le modÚle de Jean Pierre petit ?
Ăa serait super intĂ©ressant d'avoir ton avis dessus
Question naive, le nombre de dimension il se compte plus en centaine de milliards que millions non? Je n'arrive pas Ă m'imaginer
Toujours aussi passionnant et pertinent, merci bien.
Juste une question / remarque sur un truc qui m'a gĂȘnĂ© dans tes exemples : Ă chaque fois, par ex 21:09 tu donnes en exemple une sĂ©rie d'images avec du bruitage et, de gauche Ă droite on a le sentiment d'une progression. Or, dans la 1e image Ă gauche Ă 90% de bruit, on voit que l'image finale est dĂ©jĂ contenue, ce qui me pose problĂšme car c'est le contraire de ce que tu expliques. J'imagine que pour la facilitĂ© du montage de la vidĂ©o, tu as pris une image Ă laquelle tu as progressivement appliquĂ© un bruitage (de droite Ă gauche, donc) mais juste pour ĂȘtre sĂ»r : les images de gauches Ă droite ne devraient-elles pas prĂ©senter bien plus de diffĂ©rences entre elles ?
Bravo pour la vidĂ©o ! Excellente explication đ
Encore une fois, David a tuĂ© le game avec la meilleure vidĂ©o de vulgarisation sur ce sujet, avec le bon Ă©quilibre technique/comprĂ©hension (et pourtant, j'en ai regardĂ© un sacrĂ© paquet đ ). Un grand respect pour ce talent !
parfait, merci beaucoup.
Merci. Remarquablement bien expliqué (j'en avais bien besoin) ! Et ce qui est mind-blowing c'est la quantité d'images qu'il a fallu absorber pour l'entraßnement. J'ai également beaucoup apprécié la parenthÚse finale sur les aspects juridiques et le droit à l'image.
Bonjour, excellent travail.
Juste pour corriger. Le terme adverserial en français câest antagoniste. On parle de rĂ©seaux antagonistes gĂ©nĂ©ratifs
Merci
vous avez su expliquer de façon trÚs claire le thÚme. Bravo.
Par contre je viens de faire quelques essais sur DALL-E et Stable diffusion et je trouve les images plutot ratĂ©e. je m'attendais Ă mieux. Je ne pense pas que le travail des illustrateurs/illustratrices puisse ĂȘtre remplacĂ© par des machines (en tout cas pas encore vu le niveau de ces IA).
Excellente vidéo, merci j'ai beaucoup appris
Enfin une explication claire , ca fait plusieurs semaines que je naviguais entre migraines, fantasmes informatiques, terreurs nocturnes et scĂ©narii de science fiction !!! ouf! je peux retourner sereinement sur midjourney!!! merci!!! c'est vraiment d utilitĂ© publique cette vidĂ©o ! super boulot !âââââ
Le nombre pour le chat, c'est une vieille rancune ??
Si tâest capable de debruiter des raw mieux que dxo tu va devenir millionnaire
Si tu tâennuiesâŠ.
Merci pour la vidéo! La miniature est-elle bien une référence au tableau "Le Désespéré" de Gustave Courbet?
Mais du coup petite question Ă 17:32, si on lui fourni exactement la mĂȘme image brouillĂ©, avec exactement les memes pixels aux mĂȘmes endroit. Est ce que lâIA sera capable de crĂ©er 2 images diffĂ©rentes ou bien il reproduira la mĂȘme image ?
TrÚs bonne vidéo, trÚs intéressant
pourquoi est-ce que vous n'aimez pas les chats? đ