Apprentissage automatique et données
Ton application de streaming te propose une série « faite pour toi », ton téléphone reconnaît ton visage, un logiciel aide un médecin à repérer une maladie. Dans tous ces cas, un programme n'a pas été écrit règle par règle : il a appris à partir de milliers d'exemples. Comment mesure-t-on s'il apprend bien ? Et peut-on lui faire entièrement confiance ? Réponse dans cette page.
Apprendre à partir de données
En apprentissage automatique (machine learning), on ne programme pas la solution : on fournit au programme des données et il en déduit lui-même une règle. Un modèle possède des paramètres, et l'entraînement consiste à les ajuster pour que les prédictions collent aux exemples.
Pour savoir si le modèle a vraiment appris, on découpe le jeu de données en deux ensembles.
Pourquoi cette séparation ? Un modèle peut « apprendre par cœur » ses exemples, comme un élève qui mémorise les corrigés d'un DS. Il serait parfait sur ces exemples et mauvais sur de nouveaux cas. Seules des données neuves mesurent sa capacité à généraliser.
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.
Évaluer un classifieur
Un classifieur range chaque donnée dans une classe. Le plus simple : le taux de réussite (ou exactitude) et le taux d'erreur.
$$\text{taux de réussite} = \frac{\text{nombre de prédictions correctes}}{\text{nombre total de cas}}, \qquad \text{taux d'erreur} = 1 - \text{taux de réussite}.$$Quand il s'agit de détecter une maladie, une seule valeur ne suffit pas : on distingue quatre cas dans un tableau de confusion.
| Test positif | Test négatif | |
|---|---|---|
| Malade | vrais positifs (VP) | faux négatifs (FN) |
| Sain | faux positifs (FP) | vrais négatifs (VN) |
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.
Séparer deux classes par une droite
Le cas le plus simple de classification : les données sont des points du plan et le modèle est une droite $y = mx + p$. Un point $M(x_M ; y_M)$ est :
-
au-dessus de la droite si $y_M > m x_M + p$ ;
-
en dessous si $yM < m x_M + p$.
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 ?
Tests, probabilités et faux positifs
Un test peut être très performant et pourtant donner un résultat positif trompeur, quand la maladie est rare. On le voit avec un arbre pondéré et la probabilité conditionnelle.
Pour construire l'arbre pondéré : on trace d'abord deux branches pour $M$ et $\bar M$, avec les probabilités $P(M)$ et $P(\bar M)=1-P(M)$. De chacune part ensuite deux branches, $T$ et $\bar T$, pondérées par les probabilités conditionnelles : $P_M(T)$ (sensibilité) et $P_M(\bar T)=1-P_M(T)$ ; $P_{\bar M}(T)=1-\text{spécificité}$ et $P_{\bar M}(\bar T)=\text{spécificité}$. La somme des poids des branches issues d'un même nœud vaut $1$. La probabilité d'un chemin est le produit de ses poids, et $P(T)$ est la somme des chemins qui aboutissent à $T$.
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 = minimiser une erreur
Entraîner un modèle, c'est choisir ses paramètres pour minimiser une fonction d'erreur $E$. Une méthode classique est la descente de gradient : on part d'une valeur $w_0$ et on se déplace dans le sens où $E$ diminue.
$$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$, $E$ croît : on diminue $w$. Si $E'(wk)<0$, $E$ décroît : on augmente $w$. 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.
Biais, vie privée et énergie
Un modèle ne vaut que ce que valent ses données.
Biais algorithmique. Si les données reflètent une inégalité passée (par exemple un recrutement surtout masculin), le modèle la reproduit, voire l'amplifie. Pour comparer deux groupes, on calcule leurs taux de sélection puis leur rapport. Pistes pour limiter le biais : rééquilibrer ou diversifier les données, retirer ou contrôler les variables sensibles, auditer les résultats par groupe, garder une décision humaine. Aucune n'est parfaite : d'autres variables peuvent encore refléter indirectement la variable retirée.
Vie privée. Les services personnalisés utilisent des données comme l'historique de visionnage, la localisation ou les achats. Elles peuvent révéler des goûts, des opinions ou des habitudes. En Europe, le RGPD encadre leur collecte et leur usage, et la CNIL veille à son application.
Énergie. Entraîner un grand modèle demande beaucoup d'électricité, donc des émissions qui dépendent du mix électrique : $\text{émissions} = \text{énergie (kWh)} \times \text{facteur d'émission (g CO}_2\text{e/kWh)}$.
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 modèle « apprend » en ajustant ses paramètres sur un jeu d'entraînement, on juge sa qualité sur un jeu de test avec des indicateurs adaptés, et on garde un regard critique sur ses biais, ses données et son coût énergétique.
L'essentiel
-
Un modèle s'ajuste sur un jeu d'entraînement et s'évalue sur un jeu de test indépendant.
-
Taux de réussite $=\dfrac{VP+VN}{\text{total}}$ ; sensibilité $=\dfrac{VP}{VP+FN}$ ; spécificité $=\dfrac{VN}{VN+FP}$.
-
Quand la maladie est rare, un test performant donne beaucoup de faux positifs : utiliser l'arbre pondéré et $P_T(M)$.
-
Descente de gradient : $w_{k+1}=w_k-\eta E'(w_k)$ ; la convergence dépend de $\eta$.
-
Les données peuvent introduire un biais ; l'entraînement a un coût énergétique : émissions $=$ énergie $\times$ facteur d'émission.