Apprentissage automatique et données
Ton application de streaming te propose une série « qui devrait te plaire ». Un dépistage affiche « positif » alors que la personne n'est pas malade. Un logiciel de tri de CV écarte des candidates. Dans chaque cas, un programme a « appris » à partir de données. Comment apprend-il ? Peut-on lui faire confiance, et à quel prix ?
Apprendre à partir de données
Un programme classique suit des règles écrites par un humain. En apprentissage automatique (machine learning), on fait l'inverse : on fournit au programme beaucoup d'exemples, et il en déduit lui-même une règle.
Dans l'apprentissage supervisé, chaque exemple est accompagné de la bonne réponse (l'étiquette) : une photo et le mot « chat » ou « chien », par exemple. Le programme ajuste ses paramètres pour que ses réponses se rapprochent des étiquettes. Cette phase s'appelle l'entraînement.
Pour savoir si le modèle a vraiment appris, on le teste sur des exemples qu'il n'a jamais vus. On sépare donc les données en deux ensembles.
Pourquoi cette séparation ? Un modèle peut « apprendre par cœur » ses exemples sans comprendre la règle générale. Si on le testait sur les mêmes images, il aurait une note flatteuse mais trompeuse. C'est comme un élève qui connaît par cœur les corrigés d'un DS : le même DS ne prouve rien.
Les données sont le carburant de l'IA. Un service en ligne collecte des informations sur toi (vidéos regardées, durée de visionnage, recherches, localisation…) pour entraîner ses modèles. Ces données personnelles posent la question de la vie privée : qui les stocke, pendant combien de temps, pour quels usages ? En France, la CNIL veille au respect de ces règles.
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.
Mesurer les performances d'un modèle
Taux de réussite et taux d'erreur
Sur un ensemble de test, on compare la réponse du modèle à la bonne réponse.
$$\text{taux de réussite} = \frac{\text{nombre de réponses correctes}}{\text{nombre total d'exemples}} \qquad \text{taux d'erreur} = 1 - \text{taux de réussite}$$Par exemple, $450$ réponses correctes sur $500$ images donnent $\dfrac{450}{500} = 0{,}90$, soit $90\ \%$ de réussite et $10\ \%$ d'erreur.
Un seul chiffre ne suffit pas
Pour un test de dépistage, il y a deux façons de se tromper, qui n'ont pas la même gravité. On range les résultats dans une matrice de confusion (tableau de contingence).
Pourquoi deux indicateurs ? Un test qui répond toujours « positif » détecte tous les malades (sensibilité de $100\ \%$) mais ne vaut rien : sa spécificité est nulle. Il faut regarder les deux.
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.
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.
Un test performant, beaucoup de faux positifs
Une sensibilité et une spécificité élevées suffisent-elles pour que « test positif » veuille dire « probablement malade » ? Pas forcément, tout dépend de la fréquence de la maladie. On le montre avec un arbre pondéré et les probabilités conditionnelles.
L'explication : les personnes saines sont très nombreuses ($98\ \%$). Même avec un faible taux de faux positifs ($5\ \%$), elles fournissent plus de tests positifs ($0{,}049$) que les malades ($0{,}018$).
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.
Apprendre, c'est minimiser une erreur
Séparer deux classes par une droite
Le modèle le plus simple pour classer des points est une droite. Le modèle apprend les coefficients de la droite $y = mx + p$ ; ensuite, un point $M(x_M ; y_M)$ est classé selon sa position :
-
classe 1 si $y_M > m\,x_M + p$ (le point est au-dessus de la droite) ;
-
classe 2 si $yM < m\,x_M + p$ (au-dessous).
On compare donc l'ordonnée du point à celle du point de la droite de même abscisse. Déplace les curseurs pour voir comment la droite sépare le plan.
Comment le modèle trouve-t-il ses paramètres ?
On définit une fonction d'erreur $E(w)$ qui mesure l'écart entre les réponses du modèle et les étiquettes pour une valeur $w$ du paramètre. Apprendre revient à trouver $w$ qui rend $E(w)$ minimale.
La descente de gradient procède pas à pas. On part de $w_0$, puis on corrige :
$$w_{k+1} = w_k - \eta\,E'(w_k)$$où $\eta > 0$ est le taux d'apprentissage. Pourquoi cette formule ? Si $E'(w_k) > 0$, la fonction est croissante : pour diminuer l'erreur, on recule, donc on retranche. Si $E'(wk) < 0$, on avance. On descend toujours la pente.
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 ?
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.
Les limites de l'IA : biais et énergie
Des biais hérités des données
Un modèle reproduit les régularités de ses données d'entraînement, y compris les injustices. Si l'on entraîne un outil de recrutement sur les embauches passées d'une entreprise qui recrutait surtout des hommes, il « apprend » que le profil masculin est le bon : c'est un biais algorithmique.
Pour le mesurer, on compare le taux de sélection de chaque groupe :
$$\text{taux de sélection} = \frac{\text{nombre de personnes retenues dans le groupe}}{\text{effectif du groupe}}$$Puis on calcule le rapport des deux taux. Un rapport proche de $1$ traduit un traitement équilibré ; plus il s'en éloigne, plus le biais est important.
Pour limiter ces biais : rééquilibrer ou diversifier les données d'entraînement, retirer les variables sensibles, contrôler régulièrement les résultats par groupe, garder un humain dans la décision. Aucune mesure n'est parfaite : retirer le genre du dossier ne suffit pas si d'autres informations (loisirs, établissement, interruptions de carrière) y sont corrélées.
Un coût énergétique
Entraîner un grand modèle demande des milliers de processeurs pendant des semaines. L'énergie consommée se convertit en émissions de gaz à effet de serre grâce au facteur d'émission du mix électrique : les émissions valent $E \times f$, avec $E$ en $\text{kWh}$ et $f$ en $\text{g CO}_2\text{e}\cdot\text{kWh}^{-1}$.
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 : un programme « apprend » en ajustant des paramètres pour minimiser une erreur sur des données d'entraînement ; on juge ses recommandations ou son dépistage sur des données de test, avec plusieurs indicateurs ; et on garde un regard critique sur les données (vie privée, biais) et sur le coût énergétique.
L'essentiel
-
L'apprentissage supervisé ajuste les paramètres d'un modèle sur un ensemble d'entraînement ; on mesure ses performances sur un ensemble de test jamais vu.
-
Taux de réussite $= \dfrac{\text{réponses correctes}}{\text{total}}$ ; sensibilité $= \dfrac{VP}{VP+FN}$ ; spécificité $= \dfrac{VN}{VN+FP}$.
-
Quand la maladie est rare, un test performant peut donner beaucoup de faux positifs : on calcule $P_T(M)$ avec un arbre pondéré et la définition d'une probabilité conditionnelle.
-
Apprendre revient à minimiser une erreur $E(w)$ : descente de gradient $w_{k+1} = w_k - \eta\,E'(w_k)$.
-
Un modèle hérite des biais de ses données ; on les repère en comparant les taux de sélection ou d'erreur par groupe.
-
Émissions $= E\ (\text{kWh}) \times$ facteur d'émission ; le mix électrique fait fortement varier le résultat.