1. Prédire avec une droite : la régression linéaire
Exemple : on étalonne un capteur de température. On a mesuré sa tension de sortie pour plusieurs températures , et l'on veut un modèle pour prédire pour n'importe quelle température :
Les deux paramètres et sont choisis pour rendre minimale l'erreur quadratique moyenne entre les prédictions et les mesures . Il existe deux façons de les trouver.
La solution analytique (moindres carrés)
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 et 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 : , , , . Calculez et , puis prédisez pour .
Voir la correction
Attention : 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.
Avec le modèle , quelle valeur prédit-on pour ?
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.
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 ?
- Le modèle apprendra en partie des règles fausses et se trompera plus souvent
- Le modèle corrigera lui-même les étiquettes fausses
- 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 ?
- À étiqueter automatiquement les données
- À réduire le nombre de grandeurs en gardant les directions où les données varient le plus
- À 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 :
Les poids et le biais sont ses paramètres, exactement comme et 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.
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 ?
- Le réseau est parfait
- Les données de test sont fausses
- 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.