Apprentissage automatique et données
Lucas dépose une photo de vacances dans la Vanoise sur son téléphone. Aussitôt, l'application la classe dans l'album « Montagne ». Personne n'a écrit de règle du type « si l'image est bleue en haut et blanche en bas… ». Comment la machine a-t-elle appris à reconnaître une montagne ? Et peut-on lui faire confiance quand elle se trompe ?
Apprendre à partir de données
En apprentissage automatique (machine learning), on ne programme pas la règle : on fournit des exemples, et l'algorithme règle lui-même ses paramètres pour que ses réponses soient les plus justes possible sur ces exemples. Cette phase s'appelle l'entraînement.
Mais réussir sur les exemples déjà vus ne prouve rien : un élève qui connaît par cœur les corrigés réussit le DS qui reprend les mêmes exercices, pas forcément un nouveau sujet. On coupe donc les données en deux :
-
le jeu d'entraînement (souvent 70 % à 80 % des données), qui sert à régler les paramètres ;
-
le jeu de test, mis de côté, qui sert uniquement à évaluer l'algorithme sur des données qu'il n'a jamais vues.
Les données sont le carburant de l'apprentissage : un service de recommandation de vidéos utilise par exemple l'historique de visionnage, la durée de visionnage, l'heure de connexion ou les « j'aime ». Ces données personnelles posent un problème de vie privée : elles permettent de déduire des goûts, des habitudes, parfois des opinions ou l'état de santé, et peuvent être réutilisées ou piratées.
Un algorithme de classification doit détecter des images de chats. Sur $200$ images de test, il en classe correctement $184$. a) Calculer le taux de réussite. b)…
Un algorithme de classification doit détecter des images de chats. Sur $200$ images de test, il en classe correctement $184$.
- a) Calculer le taux de réussite.
- b) Calculer le taux d'erreur.
Pour entraîner un modèle, on dispose de $12\,000$ images. On en garde $80\ \%$ pour l'entraînement et $20\ \%$ pour le test. a) Calculer le nombre d'images de chaque…
Pour entraîner un modèle, on dispose de $12\,000$ images. On en garde $80\ \%$ pour l'entraînement et $20\ \%$ pour le test.
- a) Calculer le nombre d'images de chaque ensemble.
- b) Expliquer pourquoi les images de test ne doivent pas servir à l'entraînement.
Un programme d'intelligence artificielle recommande des vidéos à partir de l'historique de visionnage. a) Citer deux données utilisées par un tel programme. b) Citer un…
Un programme d'intelligence artificielle recommande des vidéos à partir de l'historique de visionnage.
- a) Citer deux données utilisées par un tel programme.
- b) Citer un risque pour la vie privée.
Au-delà du taux de réussite : la matrice de confusion
Un seul pourcentage peut tromper. Prenons un test médical par IA : une maladie touche $1\ \%$ des patients. Un « test » qui répond toujours « sain » a $99\ \%$ de réussite… et ne détecte aucun malade ! Il faut distinguer les deux types d'erreur.
On range les résultats dans un tableau, la matrice de confusion :
Pourquoi deux indicateurs ? Parce que les deux erreurs n'ont pas les mêmes conséquences : un faux négatif laisse un malade sans soin, un faux positif provoque une inquiétude et des examens inutiles. Une bonne sensibilité répond à la première question, une bonne spécificité à la seconde.
Un test médical par IA détecte une maladie. Sur $1\,000$ patients, $100$ sont malades. Le test en détecte $90$ (vrais positifs) et signale à tort $45$ patients sains…
Un test médical par IA détecte une maladie. Sur $1\,000$ patients, $100$ sont malades. Le test en détecte $90$ (vrais positifs) et signale à tort $45$ patients sains (faux positifs).
- a) Compléter le tableau : vrais positifs, faux négatifs, faux positifs, vrais négatifs.
- b) Calculer la sensibilité $\dfrac{VP}{VP+FN}$.
- c) Calculer la spécificité $\dfrac{VN}{VN+FP}$.
- d) Calculer le taux de réussite global.
Quand le test est positif : probabilités conditionnelles
La sensibilité répond à « si je suis malade, quelle est la probabilité que le test soit positif ? ». Mais le patient se pose la question inverse : « mon test est positif, quelle est la probabilité que je sois malade ? » Ce n'est pas la même probabilité : $P_M(T)\ne P_T(M)$.
On la calcule avec un arbre pondéré et la formule des probabilités totales. Notons $M$ « la personne est malade » et $T$ « le test est positif ».
Le résultat surprend : avec un bon test, moins d'un test positif sur trois correspond à un vrai malade. Pourquoi ? Parce que la maladie est rare : les $9\,800$ personnes saines, même avec seulement $5\ \%$ d'erreur, produisent plus de faux positifs ($490$) que les $200$ malades ne produisent de vrais positifs ($180$). La performance d'un test ne suffit pas : il faut aussi tenir compte de la prévalence de la maladie.
Une maladie touche $1\ \%$ de la population. Un test par IA a une sensibilité de $95\ \%$ et une spécificité de $90\ \%$. a) Construire l'arbre pondéré de probabilités.…
Une maladie touche $1\ \%$ de la population. Un test par IA a une sensibilité de $95\ \%$ et une spécificité de $90\ \%$.
- a) Construire l'arbre pondéré de probabilités.
- b) Calculer la probabilité qu'un test soit positif.
- c) Calculer la probabilité qu'une personne soit malade sachant que son test est positif.
- d) Commenter le résultat et expliquer pourquoi un test performant peut donner beaucoup de faux positifs.
Séparer deux classes par une droite
Le modèle le plus simple pour classer des points du plan est une droite d'équation $y = ax + b$. Un point $M(x_M ; y_M)$ est classé selon sa position :
-
au-dessus de la droite si $y_M > a\,x_M + b$ ;
-
en dessous si $yM < a\,x_M + b$ ;
-
sur la droite si l'égalité est vraie (la règle de classement doit alors fixer une convention).
Pourquoi ça marche ? Pour une même abscisse $x_M$, le point de la droite a pour ordonnée $a\,x_M + b$ : il suffit de comparer l'ordonnée du point à celle de la droite.
Un point est mal classé quand la classe prédite par la droite diffère de sa vraie classe. Apprendre, ici, c'est trouver les valeurs de $a$ et $b$ qui font le moins d'erreurs sur le jeu d'entraînement.
Un algorithme apprend à séparer deux classes de points par une droite d'équation $y=2x+1$. Les points $A(1\,;4)$, $B(2\,;3)$ et $C(0\,;-1)$ sont à classer : classe 1 si…
Un algorithme apprend à séparer deux classes de points par une droite d'équation $y=2x+1$. Les points $A(1\,;4)$, $B(2\,;3)$ et $C(0\,;-1)$ sont à classer : classe 1 si le point est au-dessus de la droite, classe 2 sinon.
- a) Classer chacun des points.
- b) Un point $D(3\,;7)$ est-il bien classé s'il appartient à la classe 2 ?
Apprendre = minimiser une erreur : la descente de gradient
Comment l'algorithme choisit-il ses paramètres ? Il mesure une erreur $E(w)$ qui dépend d'un paramètre $w$, et cherche la valeur de $w$ qui la rend minimale. Comme quand tu descends une vallée dans le brouillard : tu regardes la pente sous tes pieds et tu avances vers le bas.
Cette « pente » est la dérivée $E'(w)$. La descente de gradient construit une suite :
$$w_{k+1} = w_k - \eta\,E'(w_k)$$où $\eta > 0$ est le taux d'apprentissage (la taille du pas). Si $E'(w_k) > 0$, l'erreur augmente avec $w$ : on diminue $w$. Si $E'(wk) < 0$, on l'augmente. Dans les deux cas, on se rapproche du minimum.
Un algorithme d'apprentissage ajuste un paramètre $w$ pour minimiser l'erreur $E(w)=(w-3)^2+2$. On utilise la descente de gradient : $w_{k+1}=w_k-\eta\,E'(w_k)$ avec…
Un algorithme d'apprentissage ajuste un paramètre $w$ pour minimiser l'erreur $E(w)=(w-3)^2+2$. On utilise la descente de gradient : $w_{k+1}=w_k-\eta\,E'(w_k)$ avec $\eta=0{,}25$ et $w_0=0$.
- a) Calculer $E'(w)$.
- b) Calculer $w_1$, $w_2$, $w_3$.
- c) Montrer que $w_{k+1}-3=\dfrac12(w_k-3)$ et en déduire $w_k$ en fonction de $k$.
- d) Étudier la limite de $(w_k)$ et conclure.
Coût énergétique et biais algorithmiques
L'empreinte carbone de l'apprentissage
Entraîner un grand modèle demande des milliers de processeurs qui tournent pendant des semaines : l'énergie consommée se mesure en MWh. Pour en déduire les émissions, on utilise le facteur d'émission du mix électrique (en $\text{g CO}_2\text{e}$ par kWh) :
$$\text{émissions} = \text{énergie (kWh)} \times \text{facteur d'émission}$$Les biais
Un algorithme reproduit ce qu'il trouve dans ses données. Si elles reflètent des inégalités passées, il les reproduit, voire les amplifie : c'est un biais algorithmique. On le repère en comparant le taux de sélection de chaque groupe, c'est-à-dire la proportion de personnes retenues dans ce groupe.
Exemple : sur $500$ hommes et $500$ femmes candidats, un algorithme retient $100$ hommes et $50$ femmes. Taux de sélection : $\dfrac{100}{500} = 20\ \%$ pour les hommes, $\dfrac{50}{500} = 10\ \%$ pour les femmes. Le rapport $\dfrac{10}{20} = 0{,}5$ : à profil comparable, une femme a deux fois moins de chances d'être retenue.
Pour limiter un biais, on peut rééquilibrer les données d'entraînement, retirer les variables sensibles, auditer régulièrement les résultats ou garder une décision humaine. Chaque mesure a ses limites : d'autres variables (le prénom, le parcours) peuvent encore révéler le genre, et rééquilibrer ne corrige pas un critère de départ discutable.
Un entraînement d'un grand modèle de langage consomme $1\,300\ \text{MWh}$. Le mix électrique français émet environ $60\ \text{g}$ de CO$2$ par $\text{kWh}$. a) Calculer…
Un entraînement d'un grand modèle de langage consomme $1\,300\ \text{MWh}$. Le mix électrique français émet environ $60\ \text{g}$ de CO$_2$ par $\text{kWh}$.
- a) Calculer l'énergie en $\text{kWh}$.
- b) Calculer les émissions en tonnes de CO$_2$ avec le mix français.
- c) Calculer les émissions avec un mix à $700\ \text{g}$ de CO$_2$ par $\text{kWh}$ et comparer.
Un algorithme de recrutement est entraîné sur des données historiques d'une entreprise où $80\ \%$ des candidats retenus étaient des hommes. Sur $1\,000$ candidatures de…
Un algorithme de recrutement est entraîné sur des données historiques d'une entreprise où $80\ \%$ des candidats retenus étaient des hommes. Sur $1\,000$ candidatures de test (500 hommes et 500 femmes), il retient $120$ hommes et $60$ femmes.
- a) Calculer le taux de sélection pour chaque groupe.
- b) Calculer le rapport entre les deux taux.
- c) Expliquer l'origine de ce biais algorithmique.
- d) Proposer deux mesures pour limiter ce biais et discuter leurs limites.
Retour au début : l'application de Lucas a appris à reconnaître les montagnes à partir de milliers d'images étiquetées, puis a été évaluée sur des images de test ; son taux de réussite, sa sensibilité et sa spécificité disent à quel point on peut s'y fier, et ses données personnelles, son coût énergétique et ses biais restent à surveiller.
L'essentiel
-
Un algorithme apprend en réglant des paramètres sur un jeu d'entraînement ; on l'évalue sur un jeu de test indépendant.
-
Taux de réussite $= \dfrac{R}{N}$ ; taux d'erreur $= 1 - $ taux de réussite.
-
Matrice de confusion : sensibilité $=\dfrac{VP}{VP+FN}$, spécificité $=\dfrac{VN}{VN+FP}$. Pour un test sur une maladie rare, $P_T(M)$ (arbre pondéré, probabilités totales) peut rester faible malgré un bon test.
-
Un classifieur linéaire classe un point selon sa position par rapport à la droite $y = ax + b$.
-
Descente de gradient : $w_{k+1} = w_k - \eta\,E'(w_k)$ ; sur une parabole, c'est une suite arithmético-géométrique qui converge vers le minimum si $\eta$ est bien choisi.
-
Émissions $=$ énergie (kWh) $\times$ facteur d'émission ; les données peuvent porter un biais que l'algorithme reproduit.