Panorama de l’Intelligence Artificielle (II) – l’apprentissage profond

Situation

Beaucoup des succès initiaux de l’IA, rendus possibles par l’IA symbolique, se sont déroulés dans des environnements idéalisés ne nécessitant pas une grande expérience du monde ni de capacité d’apprentissage. Et pourtant, les raisonnements de notre vie quotidienne font appel à une quantité prodigieuse d’informations sur le monde. Cette connaissance est en grande partie intuitive et subjective, donc difficile à formaliser.

Ces difficultés suggèrent une approche alternative : tenter d’extraire la structure d’un problème à partir d’exemples, et laisser la machine apprendre son propre modèle. C’est l’idée de l’apprentissage machine, décrite dans l’article précédent.

Mais en réalité, les approches d’apprentissage machine « simples » ne font que déplacer le problème, parce qu’elles sont uniquement capables de recevoir un nombre limité de données en entrée, qui doivent être soigneusement choisies par le programmeur pour permettre le bon apprentissage de l’algorithme. Cette dépendantce à la représentation des données fournies est un sérieux point faible car il est souvent difficile à satisfaire, notamment pour les problèmes perceptuels, parmi les plus intéressants en pratique: si vous voulez construire un détecteur de chat dans une image en fonction des pixels de l’image, il va être très difficile de définir à la main une représentation intermédiaire qui facilitera l’apprentissage du programme en aval: il y a beaucoup trop de combinaisons de facteurs à prendre en compte : orientation, distance du chat, éclairage, environnement…

L’ apprentissage profond résout ce problème par la force : on va « empiler » de multiples couches algorithmiques qui vont elles-mêmes apprendre ensemble à générer ces représentations intermédiaires. On peut donc fournir directement les données perceptuelles en entrée et il n’y a plus besoin de contruire de représentation intermédiaire puisqu’elle est générée automatiquement dans les premières couches du réseau. Le champ d’application perceptuel s’ouvre, au prix de modèles comprenant un nombre énorme de paramètres et entraînés sur un très grand volume de données d’apprentissage.

Les réseaux neuronaux artificiels

Le but de l’Intelligence Artificielle étant d’émuler l’intelligence humaine, pourquoi ne pas s’inspirer de la structure du cerveau humain pour construire une machine intelligente ? C’est l’idée des réseaux neuronaux artificiels, qui sont au coeur de l’apprentissage profond.

Les neurones naturels constituent l’unité de base du cerveau humain. Notre cerveau en contient environ 100 milliards. Si chaque neurone se comporte de manière relativement prévisible, ils sont fortement connectés entre eux et la mise en réseau de ces neurones relativement simples permet au cerveau de réaliser des calculs extrêmement complexes avec une grande efficacité. Les détails du fonctionnement du cerveau (et d’ailleurs des neurones) font sont l’objet de recherches intenses et ne sont pas entièrement compris, mais on sait que les neurones ont tendance à s’organiser en couches consécutives dans le cortex cérébral.

En deux mots, un neurone naturel reçoit une série de signaux électriques provenant d’autres neurones via ses dendrites. Sur base de ces entrées, le neurone va émettre un signal de sortie sur son axone, une sorte de long câble électrique qui va à son tour se connecter aux dendrites d’autres neurones. C’est ainsi que le réseau se constitue.

Les neurones artificiels sont une représentation idéalisée du fonctionnement d’un neurone naturel; en substance, ils ne sont rien d’autre qu’une fonction mathématique qui prend en variables d’entrée la sortie d’autres neurones artificiels, leur applique une fonction mathématique pour obtenir une seule valeur de sortie qui est à son tour transmise à l’entrée d’autres neurones artificiels. Bref, un neurone artificiel n’est rien de plus qu’une fonction à plusieurs variables.

Ces neurones artificiels sont alors « connectés » les uns aux autres et empilés en couches successives pour construire un réseau de neurones artificiels, comme illustré sur la figure 2, qui montre un réseau à deux couches. Les paramètres d’apprentissage du réseau sont les poids wi et b de chaque neurone. Ceux-ci seront progressivement modifiés lors de l’apprentissage jusqu’à ce que la performance du modèle soit considérée comme satisfaisante.

Il manque une dernière pièce au puzzle : il nous faut encore un algorithme d’apprentissage qui va faire évoluer les paramètres du réseau (les wi et b) pendant la phase d’entraînement. Cet algorithme, appelé « rétropropagation » est la sauce secrète qui permet aux réseaux de neurones artificiels de se transformer de joyeux enchevêtrement inutile de fonctions vers une machine puissante d’interprétation perceptuelle.

L’ expérience permet de définir l’architecture appropriée du réseau neuronal en fonction du problème à traiter, tant en termes de couches et de connectivité (tous les neurones ne sont en général pas connectés entre eux), que du volume d’exemples pertinents à fournir lors de la phase d’entraînement.

Ces réseaux peuvent inclure un nombre arbitraire de couches neuronales qui vont rendre possible la génération de représentations de plus en plus abstraites du domaine d’entrée, et donc traiter des problèmes de plus en plus complexes.

C’est cette capacité de l’apprentissage profond à traiter des problèmes d’une grande complexité qui a entraîné sa dominance de plus en plus forte sur les autres approches au cours de la dernière décennie. Les deux domaines où l’apprentissage profond règne aujourd’hui sans partage sont le traitement de la vision et du langage. Deux domaines aux applications extrêmement utiles et répandues…

Applications

L’ apprentissage profond regroupe deux grandes familles d’applications : les applications discriminatives et les applications génératives.

Les applications discriminatives sont celles qui ont pour but la classification ou la prédiction. Ce sont des modèles qui cherchent à apprendre la relation existant entre les données d’entrée et de sortie. Il s’agit de l’approche « traditionnelle » décrite plus haut et qui s’inscrit dans la continuité des principes de l’apprentissage machine.

Les exemples d’applications discriminatives sont nombreux et nous en côtoyons certains quotidiennement :

  • moteurs de recommendation sur un site de commerce électronique,
  • détection de spam dans les emails,
  • détection de transaction frauduleuse sur les cartes bancaires,
  • reconnaissance d’objets dans une image (et par extension conduite autonome),
  • classification de textes par catégories,
  • prédiction de la consommation électrique,
  • analyse de sentiment d’un commentaire (par ex. positif/négatif)

Les applications génératives sont plus récentes. Elles vont générer de nouvelles données similaires à celles fournies en entrée. Ces modèles cherchent à apprendre la structure sous-jacente dans des jeux de données et à générer des données complémentaires de manière autonome.

Les applications génératives se découpent à leur tour en deux grandes sous-familles : celles qui travaillent sur du texte et celles qui travaillent sur des images, même si certaines applications combinent les deux.

Les modèles de langage comme GPT, ChatGPT, PALM etc.. appartiennent à la sous-famille des applications génératives textuelles: nous avons l’impression qu’elles agissent interactivement, mais en réalité ils cherchent à prédire le texte le plus probable (tenant compte de leur modèle) pour prolonger la séquence de texte entamée par notre question. Et leur modèle ayant été entraîné pour inclure des séquences de dialogues, le modèle fournira naturellement une réponse -en principe plausible- quand une question lui est posée parce que cela lui semble une prolongation satifaisante au texte de la question.

Les modèles génératifs d’image comme Stable Diffusion agissent de manière analogue sur des images. Ils peuvent générer de nouvelles images à partir d’images existantes, compléter une image incomplète ou bien générer des images à partir de descriptions textuelles fournies par l’utilisateur (text-to-image). Inversément, ces modèles peuvent donner une description textuelle d’une image (image-to-text).

La puissance de ces modèles permet de les étendre efficacement à de nouveaux champs d’applications. Les derniers progrès en la matière sont le text-to-code (génération automatique de programmes informatiques), le text-to-task (le système exécute une tâche sur base d’une demande textuelle, par ex. déplacer un fichier), le text-to-3D (génération d’un modèle 3D à partir d’une description textuelle) et même le text-to-video !

Il est difficile de prédire où cela s’arrêtera car les progrès sont extrêmement rapides. Tellement rapides qu’ils suscitent l’inquiétude : ces systèmes peuvent impacter l’emploi ou être exploités à des fins malveillantes. Plus de mille chercheurs ont publié en mars 2023 une lettre demandant un moratoire d’au moins six mois sur les recherches allant au-delà de GPT4, le temps de faire le point sur les risques. Actuellement, les recherches continuent…

Je terminerai par le clip qui suit, intitulé « Amsterdam Trip », entièrement généré par Stable Diffision. Hallucinant.

Laisser un commentaire

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur la façon dont les données de vos commentaires sont traitées.