Qu’est ce que l’intelligence artificielle ?

François Schwarzentruber

Lien vers la présentation

Il n’y a pas consensus sur la définition, mais en voici une : l’intelligence artificielle (IA) est le domaine de recherche qui apporte des solutions informatiques pour des tâches qui sont a priori effectuées jusque là par des humains.

Une première façon de résoudre des problèmes est de concevoir directement des algorithmes. Un exemple clef est l’algorithme A* qui permet de calculer un itinéaire le plus court pour aller d’un point A à un point B dans une carte. La carte est représentée symboliquement dans la mémoire d’un ordinateur : lieu 1, lieu 2, lieu 3, route de lieu 1 vers lieu 3, etc. C’est l’archétype des problèmes de recherche de solution et il représente un problème du sous-domaine de l’IA qui s’appelle la planification automatique. De manière générale, on peut aussi exprimer des contraintes (comme dans le jeu de Sudoku par exemple) dans un langage logique ; puis un algorithme résout le problème. C’est le sous-domaine du raisonnement automatique. Dès lors qu’un problème est suffisamment formalisé avec des symboles (par exemple, on a une carte représentée symboliquement dans la mémoire d’un ordinateur pour calculer un itinéraire), on peut appliquer ces approches. On parle d’IA symbolique.

Mais comment reconnaître un chat dans une image, c’est-à-dire dans une grille de pixels ? Les symboles à disposition sont les couleurs de chaque pixel composant l’image. Il est fastidieux de construire un algorithme qui prédit si une image contient un chat !

La solution est l’apprentissage, qui repose sur l’utilisation (généralement massive) de données. Au lieu de convevoir un algorithme à la main, on considère un algorithme avec des paramètres – appelé modèle – (comme des boutons sur un appareil), et l’apprentissage consiste à sélectionner les valeurs des paramètres (tourner les boutons) pour que la réponse de l’algorithme colle assez bien aux données. Typiquement, on aura des images qui contiennent des chats, et d’autres qui n’en contiennent pas.

Un exemple illustratif : prédire la hauteur d’un arbre à partir du rayon du tronc. On cherche un algorithme de la forme hauteur := parametre × rayon. Si les données sont (rayon=1cm,hauteur=2cm), (rayon=2cm,hauteur=3.99cm) et (rayon=10cm,hauteur=20.001cm), apprendre à prédire la hauteur consiste à prendre la valeur 2 pour le paramètre. Ainsi, on déduit la hauteur en multipliant le rayon par 2. Multiplier par un paramètre, additionner, et soustraire ne suffit pas pour reconnaître des chats !

Voici comment faire. Un neurone prend des nombres en entrée, disons x, y, z, réalise un calcul comme 2 × x + 3 × y − z + 1. Si le nombre obtenu est positif, le résultat du neurone est ce nombre. Sinon, si le nombre est négatif, le résultat est 0. Un réseau de neurones est alors une collection de neurones. Chaque neurone prend en entrée par exemple les valeurs des pixels, ou alors des résultats de neurones précédents. Il existe différents types de réseaux selon les applications : pour les images, les *réseaux convolutionnels** fonctionnent bien.

Maintenant comment un ordinateur parle ? Ce n’est pas en analysant syntaxiquement la phrase (“sujet verbe complément”), ce n’est pas prenant des phrases existantes et en les modifiant ou en complétant des trous. Non, on utilise bien un réseau de neurones. Les modèles de langue devinent le mot suivant à partir d’un début de texte. Par exemple, on devine que souris est le mot suivant de le chat mange la. Plus précisément, le modèle produit un “dé pipé” dont les faces sont les mots possibles, et qui donnent une probabilité plus grande aux mots les plus probables. l’apprentissage a lieu depuis un énorme corpus de textes issus d’Internet (Wikipedia, etc.).

Le réseau de neurones sous-jacent a une structure bien particulière qui permet de faire attention au contexte. Dans je pars en train, train est un moyen de transport alors que dans je suis en train de manger, train fait parti d’une locution verbale. Ce mécanisme d’attention n’est pas pré-programmé, mais appris. C’est fascinant : chaque mot est représenté par un vecteur (on parle de plongement sémantique). Chaque vecteur, c’est-à-dire une suite de nombres, représente le “sens” incompréhensible par un humain, et calculée de manière statistique à partir des données d’entrainement. Le mécanisme d’attention, lui, fonctionne comme suit. Chaque mot pose une question (query), propose une réponse (key), et une valeur (value). On calcule le nouveau plongement qui prend compte du contexte en faisant la moyenne des valeurs, pondérées par les similarités entre questions et réponses (appelées attentions).

L’IA générative qui permet de générer du texte (pour parler), ou même des images posent des enjeux scientifiques, politiques, économiques, psychologiques et philosophiques. Le développement logiciel est bouleversé par la génération automatique de code informatique, les mathématiques par la génération automatique de démonstrations, etc. Ces changements bouleversent le monde de l’emploi et le monde en général. Comment ne pas être dépendant aux technologies et rester souverain de nos données, nos pensées ? Faut-il participer à cette course effrénée ? Comment concilier consommation de resources de l’IA, lutte contre le échauffement climatique et préservation de la bio-diversité ? Comment éviter l’isolement social ? Sommes-nous plus heureux ?