Aller au contenu
Radio & HyperRévisions · BUT GEII
Cours 5 - L'IA, de l'algorithme à l'objet : comprendre pour garder la main

Comment une machine apprend : des données au modèle

Chapitre 2Durée ≈ 40 minNiveau : BUT 3 GEIIPrérequis : chapitre 1 ; moyenne et droite y = ax + b
Objectifs du chapitre
  • Prédire avec une régression linéaire, par la solution analytique et par la descente de gradient
  • Expliquer le rôle et les pièges de la labellisation des données
  • Expliquer à quoi sert l'analyse en composantes principales
  • Décrire un neurone artificiel et un réseau de neurones, et reconnaître le surapprentissage

1. Prédire avec une droite : la régression linéaire

Vous l'avez déjà fait sans le savoir : tracer « la droite qui passe au mieux » dans un nuage de points mesurés en TP. C'est le plus simple des algorithmes d'apprentissage, et il contient déjà toute l'idée : trouver les paramètres qui réduisent l'erreur sur les exemples.

Exemple : on étalonne un capteur de température. On a mesuré sa tension de sortie y pour plusieurs températures x, et l'on veut un modèle pour prédire y pour n'importe quelle température :

y^=ax+b

Les deux paramètres a et b sont choisis pour rendre minimale l'erreur quadratique moyenne entre les prédictions y^i et les mesures yi. Il existe deux façons de les trouver.

La solution analytique (moindres carrés)

a=∑i(xi−x¯)(yi−y¯)∑i(xi−x¯)2b=y¯−ax¯

Un calcul direct, exact, en une fois. Possible ici parce que le modèle est simple.

L'apprentissage itératif (descente de gradient)

On part de paramètres quelconques, on calcule l'erreur, puis on corrige un peu a et b dans le sens qui la fait baisser ; on recommence des centaines de fois. C'est plus lent, mais cela marche pour n'importe quel modèle, même avec des milliards de paramètres où aucune formule n'existe. C'est ainsi que s'entraînent les réseaux de neurones.

la descente de gradient en action

Exemple chiffré

Quatre mesures : (0;1), (1;3), (2;4), (3;6). Calculez a et b, puis prédisez y pour x=5.

Voir la correction x¯=1,5y¯=3,5 ∑(xi−x¯)(yi−y¯)=3,75+0,25+0,25+3,75=8∑(xi−x¯)2=2,25+0,25+0,25+2,25=5 a=85=1,6b=3,5−1,6×1,5=1,1y^(5)=1,6×5+1,1=9,1

Attention : x=5 est en dehors des mesures (de 0 à 3). On extrapole : rien ne garantit que la relation reste linéaire si loin. Un modèle n'est fiable que dans le domaine de ses données d'entraînement.

y^(3)=1,6×3+1,1=5,9 La mesure valait 6 : le modèle ne passe pas exactement par chaque point, il réduit l'erreur globale.

Avec le modèle y^=1,6x+1,1, quelle valeur prédit-on pour x=3 ?

2. Étiqueter les données : la labellisation

Pour apprendre à classer (« vibration normale » ou « anormale », « mot de réveil » ou « autre son »), un modèle a besoin d'exemples étiquetés : pour chaque exemple, un humain a indiqué la bonne réponse. C'est l'apprentissage supervisé, et ce travail d'étiquetage s'appelle la labellisation. Il est long, coûteux, souvent sous-traité… et décisif : le modèle apprend exactement ce qu'on lui montre, erreurs comprises.

étiqueter, puis apprendre

Chaque point est une mesure de vibration d'une machine (amplitude, fréquence dominante). Cliquez sur un point pour changer son étiquette, ou faussez une partie des étiquettes au hasard.

Modèle : les 5 plus proches voisins (chaque zone prend l'étiquette majoritaire des 5 exemples les plus proches). Précision mesurée sur 300 mesures de test, correctement étiquetées. Données synthétiques.

Les deux IA et leurs données. Pour le mot de réveil des écouteurs, il faut des milliers d'enregistrements de voix variées (âges, accents, bruits de fond), chacun étiqueté « mot de réveil » ou « autre ». Pour un grand modèle de langage, les textes du web font l'essentiel du travail, mais des milliers de personnes notent ensuite ses réponses pour lui apprendre à répondre utilement : c'est aussi de la labellisation. Dans les deux cas, la qualité du modèle ne dépasse pas celle de ses données.

Un tiers des enregistrements d'entraînement d'un détecteur de mot de réveil sont mal étiquetés. Que va-t-il se passer ?

  1. Le modèle apprendra en partie des règles fausses et se trompera plus souvent
  2. Le modèle corrigera lui-même les étiquettes fausses
  3. Rien : un modèle ignore les erreurs d'étiquetage

3. Garder l'essentiel : l'analyse en composantes principales

Un capteur produit souvent beaucoup de grandeurs, et elles sont redondantes : les trois axes d'un accéléromètre, des dizaines de raies d'un spectre… L'analyse en composantes principales (ACP) cherche les directions où les données varient le plus, et permet de ne garder que celles-là. Moins de données à traiter, souvent sans presque rien perdre : précieux dans un microcontrôleur (chapitre 3).

projeter sur un seul axe

Cherchez l'angle qui conserve le plus d'information : c'est la première composante principale. L'ACP la calcule directement, sans tâtonner, à partir de la matrice de covariance des données : c'est encore une solution analytique.

À quoi sert l'analyse en composantes principales ?

  1. À étiqueter automatiquement les données
  2. À réduire le nombre de grandeurs en gardant les directions où les données varient le plus
  3. À augmenter la précision des capteurs

4. Les réseaux de neurones

Un neurone artificiel est un calcul très simple : une somme pondérée de ses entrées, suivie d'une fonction d'activation qui décide « à quel point » il s'active :

y=f(w1x1+w2x2+…+wnxn+b)

Les poids wi et le biais b sont ses paramètres, exactement comme a et b de la régression. Seul, un neurone ne sépare les données que par une droite. En empilant des couches de neurones, le réseau peut dessiner des frontières de toutes formes. L'entraînement ajuste tous les poids par descente de gradient, comme à la section 1.

Deux règles d'or :

  • on sépare les données : une partie sert à l'entraînement, une autre, jamais vue, sert au test. Seule la note de test dit si le modèle a vraiment appris ;
  • attention au surapprentissage : avec trop peu de données et beaucoup de paramètres, le réseau apprend les exemples par cœur, bruit compris, et échoue sur des données nouvelles. Comme un étudiant qui apprend les corrigés sans comprendre.

entraîner un petit réseau de neurones

Réseau à 2 entrées, une couche cachée (tangente hyperbolique) et une sortie ; 600 itérations de descente de gradient, réellement calculées dans votre navigateur. Données synthétiques : la classe orange est au centre. Précision de test sur 300 points jamais vus.

Essayez : avec 1 neurone, la frontière reste droite et le réseau échoue. Avec 3 ou 4 neurones, il entoure le centre. Avec très peu d'exemples, la précision d'entraînement reste haute mais celle de test chute : c'est le surapprentissage.

Combien de paramètres ? Le réseau du simulateur en compte au plus 33. Un détecteur de mot de réveil embarqué en compte typiquement quelques dizaines de milliers ; un grand modèle de langage, des milliards. Même calcul, neurone après neurone : seule l'échelle change… et avec elle, la mémoire, l'énergie et les risques.

Un réseau atteint 100 % de précision sur ses exemples d'entraînement, mais 70 % sur des données de test. Que se passe-t-il ?

  1. Le réseau est parfait
  2. Les données de test sont fausses
  3. Le réseau a surappris : il a mémorisé ses exemples au lieu de généraliser
  • Apprendre, c'est ajuster des paramètres pour réduire l'erreur sur des exemples.
  • Régression linéaire : solution analytique (moindres carrés) ou itérative (descente de gradient) ; fiable seulement dans le domaine des données.
  • Apprentissage supervisé : il faut des données étiquetées ; la qualité de la labellisation fixe celle du modèle.
  • ACP : garder les directions de plus grande variance pour réduire les données.
  • Réseau de neurones : des sommes pondérées et des activations, en couches ; entraînement par descente de gradient ; données de test séparées ; attention au surapprentissage.

Avant la suite, vérifiez que vous savez :

  • Régression linéaire par les moindres carrés, descente de gradient, k plus proches voisins, analyse en composantes principales et perceptron multicouche : méthodes classiques ; les simulateurs les calculent réellement dans le navigateur, sur des données synthétiques.