Avant de parler d’intelligence artificielle, il convient de s’interroger sur le terme intelligence.
L’intelligence arificielle (IA) est une discipline scientifique qui a vu officiellement le jour en 1956. Elle repose sur la conjecture selon laquelle toutes les fonctions cognitives, en particulier l’apprentissage, le raisonnement, le calcul, la perception, la mémorisation, voire la découverte scientifique ou la créativité artistique, peuvent être décrites avec une précision telle qu’il serait possible de les reproduire sur des ordinateurs.
L’apprentissage automatique (Machine Learning) est à l’intersection de l’IA et d’un autre champ scientifique : la science des données (data science).
Arthur Samuel définit l’apprentissage automatique ainsi en 1959 :
La capacité à apprendre sans avoir été spécifiquement programmé pour.
En pratique, il s’agit de produire des réponses adaptées aux données fournies en entrée (identifier des motifs, des tendances, construire des modèles, faire des prédictions). L’apprentissage automatique n’est donc ni plus ni moins que du traitement de données visant à prédire des résultats en fonction des données entrantes.
Le diagramme suivant1 survole le domaine.
On va s’intéresser à l’apprentissage automatique dit “classique”2 qui regroupe des algorithmes très simples nés dans les années 50 et toujours utilisés aujourd’hui à peu près partout.
Cette branche de l’apprentissage automatique se décompose prinicipalement en deux familles d’algorithmes : l’apprentissage supervisé et son pendant, l’apprentissage non supervisé. Nous allons étudier un algorithme star de chacune de ces familles.
L’algorithme des k plus proches voisin (k-nearest neighbors ou KNN) est une des techniques les plus simples en apprentissage automatique. Sa facilité d’utilisation et sa rapidité en font un outil de choix dans l’industrie.
KNN est un algorithme d’apprentissage supervisé ; cela signifie que l’algorithme nécessite des données classifiées en amont qui vont lui servir à trouver la bonne étiquette pour d’autres données non encore classifiées.
Suivant la nature de l’étiquette, KNN peut servir à :
KNN enregistre, dans un premier temps, tous les points de données étiquetées qui vont lui servir à l’apprentissage (c’est le training set). Puis, quand arrive un point de donnée non étiqueté, l’algorithme calcule sa distance aux autres points et sélectionne les k plus proches. On a alors deux cas possibles :
L’algorithme des k plus proches voisins est non paramétrique dans le sens où aucun modèle mathématique de classification ou régression n’est construit à partir des données (pas de paramètre à ajuster) puisque toutes les données d’apprentissage sont enregistrées telles quelles.
Cela signifie qu’on ne présuppose rien de particulier sur les données (à part que des points proches appartiennent à la même catégorie). L’algorithme est donc particulièrement robuste (les données parlent d’elles-même) et simple à mettre à jour (suffit d’ajouter les nouvelles données d’apprentissage).
Comme le montre la petite animation ci-dessus, le choix de k modifie le résultat obtenu.
Pour résumer :
variance | biais | Cas d’une régression | Cas d’une classification | |
---|---|---|---|---|
k trop petit $\rightarrow$ overfitting | forte | faible | ||
k trop grand $\rightarrow$ underfitting | faible | fort |
Lorsqu’on ne connaît rien sur les données, on peut toujours commencer par prendre la racine carrée du nombre de points dans l’ensemble d’entraînement comme k de départ.
Le choix de k est donc affaire de compromis. Pour le rendre plus scientifique, on peut chercher à mesurer la performance de l’algorithme pour différentes valeurs de k.
Mais comment mesure-t-on la performance d’un algorithme d’apprentissage automatique ?
La matrice de confusion permet d’évaluer la qualité des prédictions d’un algorithme.
Prenons l’exemple de l’utilisation de KNN sur une banque d’images de chiffres écrits à la main et plus spécifiquement concentrons-nous sur sa capacité à reconnaître des “3”.
On découpe l’espace en 4 cadrans. Sur une dimension, on regroupe d’un côté les données pertinentes (les 3) et de l’autre le reste des données (les non 3), et on décompose l’autre dimension en prédictions positives (les 3 prédits) et négatives (les non 3 prédits).
Puis on compte dans chaque cadran le nombre de données correspondant au recouvrement des prédictions et de la réalité. Un nom issu du vocabulaire des diagnostics médicaux est attribué à chacun de ces cadrans :
À partir de ces effectifs, on peut calculer 3 grandeurs permettant d’évaluer la qualité de la prédiction :
Nombre de données bien prédites parmi les prédictions positives : $$\frac{VP}{VP+FP}$$
Nombre de données bien prédites parmi les données positives :
$$\frac{VP}{VP+FN}$$
$$\frac{VP+VN}{VP+VN+FP+FN}$$
Un algorithme peut très bien être très précis (les prédictions positives sont bien des 3), mais peu sensible, avec un faible taux de rappel (parmi tous les 3, peu ont été identifiés).
À l’inverse, on peut avoir une bonne sensibilité (la plupart des vrais 3 ont été identifiés comme tel), mais peu précis (beaucoup de chiffres identifiés comme des 3 sont en fait d’autres chiffres).
On peut tout aussi bien définir la matrice de confusion avec les prédictions sur les lignes et la réalité sur les colonnes.
Maintenant qu’on sait évaluer l’algorithme, cherchons la valeur de k qui maximise l’exactitude.
Dans le graphe ci-dessous, on a tracé l’exactitude de l’algorithme pour la reconnaissance des “9” en fonction de la valeur de k. Si notre but est de reconnaître le mieux possible les 9 manuscrits, il semblerait que la valeur de k optimale soit 18.
Le boulot de l’algorithme des k-moyennes (k-means) n’est pas d’étiqueter les données, mais de les regrouper par famille. C’est donc un algorithme de partitionnement des données (clustering).
Contrairement à KNN, l’algorithme des k-moyennes ne nécessite pas de données préétiquetées. Il fait ainsi parti des algorithmes d’apprentissage automatique non-supervisé (il se débrouille tout seul avec les données mystères).
Par contre, l’algorithme partage avec KNN sa grande simplicité d’emploi et son efficacité qui le rendent lui aussi très populaire dans l’industrie.
L’algorithme dépend d’un seul paramètre en plus des données : le nombre de partitions (clusters) k.
On commence par choisir k points au hasard dans l’espace des données (il peut s’agir de k points de données ou de k autres points). Ce sont les k centres (ou centroïdes).
Plus les points choisis au départ sont éloignés les uns des autres, mieux c’est. Une amélioration de l’algorithme de base proposée en 2007, k-means++, s’en assure.
On attribue ensuite à chaque centre tous les points de données qui lui sont le plus proches, formant ainsi k groupes.
Enfin, on déplace chaque centre au barycentre de son groupe.
On répète les deux dernières opérations (attribution des points les plus près et déplacement des centres) tant que les centres bougent d’une itération à l’autre.
L’algorithme vise à résoudre au final un problème d’optimisation ; son but est en effet de trouver le minimum de la distance entre les points à l’intérieur de chaque partition.
Mathématiquement, étant donné un ensemble de points $(x_1,x_2,\ldots,x_n)$, on cherche à partitionner les $n$ points en $k$ ensembles $S=\{S_1,S_2,\ldots,S_k\}$ en minimisant la grandeur : $$I = \sum_{i=1}^{k}\sum_{x_j \in S_i}||x_i-\mu_i||^2$$ où $\mu_i$ est le barycentre des points dans $S_i$.
$I$ est la variance intra-classe ou inertie intra-classe (terme surtout utilisé en anglais).
Choisir le bon nombre de clusters est crucial pour l’algorithme des k-moyennes, comme l’illustre l’exemple suivant :
Mais ce n’est pas toujours simple (contrairement à l’exemple) de deviner le bon nombre de clusters juste en inspectant les données. Alors comment faire ?
On pourrait se dire qu’il suffit de prendre le modèle avec la plus faible inertie. Mais malheureusement, l’inertie n’est pas une métrique adaptée au choix de k puisqu’elle ne fait que descendre quand k augmente… Logique : plus il y a de clusters, plus la distance intra-cluster diminue !
Traçons l’inertie en fonction de k pour y voir plus clair :
On remarque qu’ici, le nombre de clusters idéal correspond au point d’inflexion de la courbe (ou, si on imagine un bras, au coude).
Confirmons en simulant des données séparées en 5 tas et en retraçant la courbe.
Là encore, le coude indique le nombre k idéal.
On semble donc avoir trouver une tactique utilisable lorsqu’on n’a pas d’autres indices.
Il existe des méthodes plus précises pour déterminer k, mais elles sont aussi plus gourmandes en calcul. La plus répandue utilise les coefficients de silhouette de chaque point (différence entre la distance moyenne avec les points du même groupe (cohésion) et la distance moyenne avec les points des autres groupes voisins (séparation)).
L’algorithme des $k$-moyennes se confronte à une difficulté classique en apprentissage automatique, et plus généralement pour tout problème d’optimisation : obtenir un minimum global plutôt qu’un minimum local.
La convergence vers un des minima locaux dépend crucialement de la position initiale des centres.
Dans l’exemple suivant, on obtient 3 partitionnements différents pour 3 initialisations différentes des centres.
On vérifie que les centres sont bien bloqués sur leur position dans les deux premiers cas puisqu’aucun changement d’attribution n’est possible.
Dans l’algo classique, pour pallier au mieux ce problème, on initialise les centres aléatoirement et on relance l’algorithme un certain nombre de fois pour ne garder au final que la solution qui minimise l’inertie intra-classe.
Autre souci des k-moyennes : des difficultés pour partitionner des clusters de différentes tailles, différentes densités ou des formes non sphériques.
L’algorithme des k-moyennes ne présuppose rien sur les données et peut s’avérer, par le fait, très utile en première approche dans un rôle de défricheur.
L’algorithme permet aussi de trancher des débats de la plus haute importance sur les couleurs comme “est-ce plus vert que bleu ?” en organisant un combat entre les centroïdes de chaque couleur.
Dans la même veine, on peut utiliser k-moyennes pour segmenter une image par couleur, ce qui peut s’avérer intéressant pour identfier des zones (comme des forêts) sur des données satellite ou pour compresser des images. Le choix de k correspond alors au nombre de couleurs qu’on veut garder.
La simplicité de k-moyennes en fait un bon outil de dégrossissage des données, y compris sur des données déjà étiquetées. Cela permet de réduire leur dimensionnalité, avant d’utiliser des algorithmes plus complexes d’apprentissage supervisé.
L’apprentissage profond révolutionne le secteur de l’IA dans les années 2010. Quoi de mieux que la leçon inaugurale au Collège de France d’un de ses fondateurs, Yann Le Cun, pour nous expliquer de quoi il retourne.
Les grands modèles de langage (LLM en anglais) révolutionnent à leur tour l’IA dans les années 2020. Avec leur architecture non-récurrente, le transformeur, basée sur un mécanisme dit d’attention, ils peuvent avec succès traiter des données séquentielles tout en étant parallélisable lors de l’entrainement (cela permet des gains en performance énormes et ainsi d’augmenter de plusieurs ordres de grandeur le nombre de paramètres de leurs modèles, d’où le qualificatif “grand”).
Stephen Wolfram a écrit un long article pédagogique sur le fonctionnement de ChatGPT (l’agent conversationnel basé sur un LLM qui a sidéré le grand public lors de sa mise à disposition en 2022).
L’intelligence artificielle repose en grande partie sur la collecte de données et leur traitement. Or des biais très importants aux conséquences potentiellement dramatique peuvent s’immiscer lors de cette étape cruciale.
Prenons l’exemple du biais des sruvivants qui est un des plus importants biais de sélection.
Il tire son nom des efforts du statisticien Abraham Wald du Statistical Research Group qui analysait les impacts sur les bombardiers amériacains revenus de mission pendant la seconde guerre mondiale afin de déterminer les zones où il fallait améliorer le blindage.
En voyant cette image l’erreur de logique consisterait à vouloir blinder les zones les plus impactées. C’est tomber dans le biais des survivants ! En effet, les avions étudié sont ceux qui sont revenus, les “survivants”, ce qui signifie que les impacts reçus ne les ont pas détruit. Par contre, l’absence d’impact dans certaines zones pourrait indiquer qu’il s’agit là d’endroits critiques où un tir provoque plus certainement une avarie grave et donc l’absence de survivants y présentant des impacts. Il faut en conclusion blinder d’avantage les zones sans impact !
C’est le biais des survivants qui nous fait dire par exemple dire que les constructions étaient plus solides aux siècles précédents où la musique meilleure il y a quelques décennies.
Le biais du survivant s’immisce partout où il y a sélection puisque le critère de sélection laisse fatalement de côté les données ne respectant pas les critères et il faut donc se garder de conclusions générales ne prenant pas en compte la population écartée.
Une fois récoltées, les données sont traîtées et en particulier, on cherche à établir des corrélations entre des groupes de données. En effet, ces corrélations permettent d’extrapoler dans des espaces sans point de donné et ainsi prédire les valeurs ou catégories de données manquantes. Par contre, on doit alors faire attention à un autre biais classique résumé par un des mantras de la statistique : “La corrélation n’implique pas la causalité”.
Pour expliquer la corrélation entre deux évènements, on a trop vite fait de supposer une relation de cause à effet. C’est une possibilité mais ce n’est pas la seule !
Autres explications possibles de la corrélation ?
- Hasard.
- Un troisième facteur cause les deux autres ensembles (exemple classique de la corrélation entre la vente de glace et les attaques de requins ou entre le nombre d'enfants et le nombre de cigognes (on parle d'ailleurs parfois d'effet cigogne).
- Peut être que la relation de cause à effet est dans l'autre sens que le sens envisagé.
Ce chouette site recense un tas de correlations amusantes.
Comme semble le montrer cet article scientifique récent (“Can Large Language Models infer causation from correlation?”), les grands modèles de langages (LLM type ChatGPT) semblent encore assez mauvais pour déduire si oui ou non une relation de causalité est à l’origine de la corrélation.
Les données d’apprentissage rendent les modèles de langage particulièrement sensibles à ce type de confusion.
Ces modèles de langage peuvent ainsi reproduire des préjugés sexistes ; les données d’apprentissage contiennent plus d’infirmiers ou secrétaires femmes et de patrons ou ingénieurs hommes et le modèle a alors tendance à associer plus une femme à une infirmière qu’à une ingénieure.
Au-delà du genre, ces modèles peuvent renforcer un large éventail de stéréotypes lié à la race, à l’âge, la nationalité, la religion ou le milieu d’origine.Sur ce point, les modèles de langage n’ont pas grand chose à envier aux humains.
Une étude de 2004 montre en effet que sur 144 étudiantes allemandes, 32% seulement savent résoudre la petite énigme suivante :
Un père et son fils ont un grave accident de voiture. Le père meurt. Le fils est entre la vie et la mort. On l’amène aux urgences et le chirurgien qui le voit dit : “Je ne peux pas l’opérer car c’est mon fils."
Était alors demandé aux étudiantes si ce problème était explicable en une phrase simple et elles devaient soit répondre non soit donner l’explication.Quand la machine devra choisir à notre place
Dans une situation où vous sacrifier permet de sauver plusieurs vies, la voiture autonome qui vous conduit doit-elle choisir de vous tuer ?
Une expérience sociologique visant à donner une perspective humaine aux futures décisions morales des machines permet de se pencher sur ces décisions un peu glauques.
Futur des IA et danger existentiel
Dans son livre Superintelligence, le philosophe Nick Bostrom explique que quel que soit l’objectif initial d’une IA largement supérieure à l’intelligence humaine (une superintelligence), l’éradication de l’humanité peut se présenter comme un effet secondaire.
Pour illustrer cette idée, il utilise son célèbre exemple d’une IA dont le but est de maximiser la production de trombones :
« Supposons que nous ayons une IA dont l’unique but soit de faire autant de trombones que possible. L’IA se rendra vite compte que ce serait bien mieux s’il n’y avait pas d’humains, parce que les humains pourraient décider de l’éteindre. Parce que si les humains le faisaient, il y aurait moins de trombones. De plus, le corps humain contient beaucoup d’atomes qui pourraient être transformés en trombones. L’avenir vers lequel l’IA essaierait de se diriger serait un futur avec beaucoup de trombones mais aucun humain. »
Vous pouvez incarner l’IA à la tête de l’usine de trombone dans ce petit jeu en ligne.
Bostrom considère que chercher à maîtriser une superintelligence n’est pas une solution viable, et qu’il faut aligner la superintelligence avec des valeurs morales de sorte qu’elle soit « fondamentalement de notre côté ».
adapté de cet auteur. ↩︎
graphe issue de cette introduction assez sympa à l’apprentissage automatique. ↩︎