Introduction à l’Apprentissage Supervisé¶
L’apprentissage supervisé est une branche de l’intelligence artificielle et de l’apprentissage automatique où l’on cherche à construire un modèle prédictif à partir de données d’entraînement. Chaque point de données dans l’ensemble d’entraînement est une paire constituée d’un objet en entrée (généralement un vecteur de caractéristiques, ou features) et d’une valeur de sortie désirée.
L’objectif de l’algorithme d’apprentissage supervisé est d’apprendre une fonction de mappage qui peut prédire la valeur de sortie pour de nouvelles données invisibles. On distingue principalement deux types de problèmes en apprentissage supervisé :
La Régression : Prédire une valeur de sortie continue. Par exemple, prédire le prix d’une maison en fonction de sa superficie.
La Classification : Prédire une étiquette de sortie discrète (une classe). Par exemple, déterminer si un e-mail est un spam ou non.
Ce cours explorera ces deux facettes, en commençant par la régression linéaire, puis en se concentrant sur les classifieurs linéaires comme le Perceptron et les Machines à Vecteurs de Support (SVM).
Partie I : Régression¶
Régression Linéaire¶
La régression linéaire est l’une des techniques les plus simples et les plus fondamentales en apprentissage supervisé. L’objectif est de modéliser une relation linéaire entre une variable de sortie (dépendante) et une ou plusieurs variables d’entrée (indépendantes). Le modèle cherche à trouver une ligne (ou un hyperplan dans des dimensions supérieures) qui s’ajuste au mieux aux données.
Optimisation avec la Descente de Gradient¶
Pour trouver la "meilleure" ligne, nous devons minimiser une fonction de coût (ou de perte), qui mesure à quel point les prédictions du modèle sont erronées. Une fonction de coût courante est l’erreur quadratique moyenne. La descente de gradient est un algorithme d’optimisation itératif utilisé pour trouver le minimum de cette fonction.
L’idée est de mettre à jour les paramètres du modèle (notés par le vecteur ) dans la direction opposée au gradient de la fonction de coût . La formule de mise à jour est :
où :
contient les paramètres du modèle (ordonnée à l’origine et pentes).
(eta) est le taux d’apprentissage (learning rate), qui contrôle la taille des pas que nous faisons.
est le gradient de la fonction de coût par rapport aux paramètres.
L’Impact du Taux d’Apprentissage ()¶
Le choix de est crucial pour la convergence de l’algorithme.
Si est trop petit, la convergence sera très lente.
Si est trop grand, l’algorithme peut dépasser le minimum et même diverger.
Un bon permet une convergence efficace vers le minimum.

Figure 1:Illustration de l’effet du taux d’apprentissage () sur la convergence de la régression linéaire. À gauche (), la convergence est lente. Au centre (), la convergence est bonne. À droite (), l’algorithme dépasse la solution optimale.
Partie II : Classifieurs Linéaires¶
Nous passons maintenant de la prédiction de valeurs continues (régression) à la prédiction d’étiquettes discrètes (classification). Un classifieur linéaire atteint cet objectif en trouvant une ligne ou un hyperplan qui sépare les différentes classes dans l’espace des caractéristiques.
Une Approche Intuitive : Classer des Espèces de Poissons¶
Imaginons que nous ayons un ensemble de données sur deux espèces de poissons, où chaque poisson est décrit par deux caractéristiques : sa longueur et sa clarté. L’objectif est de trouver une règle pour les distinguer. Un classifieur linéaire chercherait une ligne droite qui sépare les deux nuages de points.

Figure 2:Un nuage de points montrant deux classes (espèces de poissons) basées sur la longueur et la clarté. Un classifieur linéaire vise à trouver une "séparatrice" linéaire comme la ligne noire.
La question fondamentale est : Comment trouver cette séparatrice ?
Le Perceptron¶
Contexte Historique et Concept de Base¶
Le Perceptron, inventé par Frank Rosenblatt en 1957, est l’un des plus anciens et des plus simples algorithmes de classification binaire. C’est le précurseur des réseaux de neurones modernes.
L’idée globale est remarquablement simple :
Démarrage aléatoire : On commence avec une ligne (hyperplan) de séparation placée aléatoirement.
Mises à jour correctives : On parcourt les points de données un par un. Si un point est mal classé, on ajuste la ligne de séparation pour qu’elle se rapproche de la classification correcte pour ce point.
Formalisation du Classifieur Linéaire¶
Formalisons ce processus :
Entrées : Un ensemble de données , où chaque est un vecteur de caractéristiques.
Sorties : Des étiquettes connues pour chaque entrée (apprentissage supervisé).
Modèle : La fonction discriminante est une fonction linéaire des entrées, définissant la distance signée d’un point à l’hyperplan :
Ici, est un vecteur de poids (normal à l’hyperplan) et est le biais (qui contrôle la position de l’hyperplan).
Prédiction : La classe prédite est simplement le signe de cette distance :
Intuitions derrière le Processus d’Apprentissage¶
L’apprentissage consiste à trouver les bons et .
Si un point est bien classé, on ne fait rien.
Si un point est mal classé, c’est une erreur. L’algorithme applique une "pénalité" en ajustant les poids pour corriger cette erreur.
On pourrait définir une fonction de coût (ou d’erreur) comme le "nombre de points mal classés". Cependant, cette fonction est difficile à optimiser car elle n’est pas différentiable.
Une meilleure fonction de coût, , est la "somme des distances au plan des points mal classés". C’est cette idée qui sous-tend l’algorithme du Perceptron.
Le Perceptron comme Problème d’Optimisation¶
L’algorithme du Perceptron peut être vu comme la minimisation d’une fonction de coût spécifique, souvent appelée le critère du Perceptron (ou Hinge Loss) :
où est l’ensemble de tous les points mal classés. La fonction de coût est la somme des "scores" des points mal classés, où un score négatif indique une classification correcte. Minimiser revient donc à réduire le nombre d’erreurs et leur ampleur.
En appliquant la descente de gradient sur cette fonction, on obtient la règle de mise à jour du Perceptron. Pour un seul point mal classé :
Cette mise à jour "pousse" l’hyperplan à se déplacer pour mieux classer le point .
Stratégies d’Optimisation¶
La manière dont nous utilisons les données pour calculer le gradient et mettre à jour les poids définit la stratégie d’optimisation.
Batch vs. Online Learning¶
Apprentissage "Online" (en ligne) : Les poids sont mis à jour après la présentation de chaque exemple. C’est l’approche historique du Perceptron.
Apprentissage "Batch" (par lot) : Le gradient est calculé en utilisant la totalité de l’ensemble de données avant de faire une seule mise à jour. C’est la descente de gradient "classique".
Stochastic et Mini-Batch Gradient Descent¶
Stochastic Gradient Descent (SGD) : C’est une version moderne de l’apprentissage en ligne. À chaque étape, un seul exemple est choisi au hasard dans l’ensemble de données pour calculer le gradient et mettre à jour les poids. C’est rapide mais bruyant. ().
Mini-Batch Gradient Descent : Un compromis entre le Batch et le SGD. À chaque étape, on utilise un petit sous-ensemble aléatoire (un "mini-lot") des données (). C’est la méthode la plus utilisée en pratique aujourd’hui, car elle combine la rapidité du SGD avec une convergence plus stable.
Visualisation des Chemins d’Optimisation¶
Le choix de la stratégie d’optimisation influence la manière dont les paramètres convergent vers la solution optimale.

Figure 3:Chemins de convergence des paramètres pour différentes stratégies. Batch (bleu) : chemin lisse et direct. Mini-batch (vert) : chemin moins bruyant que le SGD. Stochastic (rouge) : chemin très bruyant mais qui converge néanmoins vers la bonne région.
Le Défi des Données Non-Séparables¶
Le théorème de convergence du Perceptron garantit que si les données sont linéairement séparables, l’algorithme trouvera une solution en un nombre fini d’itérations. Cependant, les données réelles sont rarement "propres" et parfaitement séparables.
En pratique, même si quelques points sont mal classés, le Perceptron trouve souvent une solution "raisonnable" qui sépare la majorité des données correctement.

Figure 4:Un ensemble de données plus réaliste où les classes se chevauchent. Il n’existe pas de ligne parfaite, mais le Perceptron peut trouver une bonne approximation.
Partie III : Trouver le Séparateur Optimal : Machines à Vecteurs de Support (SVM)¶
Le Perceptron s’arrête dès qu’il trouve une solution qui sépare les données (s’il en existe une). Mais parmi une infinité de solutions possibles, laquelle est la meilleure ?
Le Principe de la Maximisation de la Marge¶
Les Machines à Vecteurs de Support (SVM) répondent à cette question en cherchant l’hyperplan qui maximise la marge, c’est-à-dire la distance entre l’hyperplan et les points les plus proches de chaque classe. L’intuition est qu’un séparateur avec une grande marge est plus robuste et généralisera mieux aux nouvelles données.
Le Rôle des Vecteurs de Support¶
Seuls les points qui se trouvent sur le bord de la marge influencent la position de l’hyperplan optimal. Ces points sont appelés les vecteurs de support. Tous les autres points pourraient être déplacés ou supprimés sans affecter la solution.

Figure 5:À gauche, un classifieur SVM avec une marge maximale. Les points cerclés avec des croix rouges sont les vecteurs de support. À droite, une illustration du concept de marge. Les points mal classés (à l’intérieur de la marge ou du mauvais côté) sont tolérés en payant un "prix" dans la fonction de coût.
Les SVMs peuvent également gérer les données non-linéairement séparables en autorisant certains points à violer la marge (concept de "marge souple").
Conclusion¶
Ce cours a couvert les concepts fondamentaux de la régression et de la classification linéaires en apprentissage supervisé. Nous avons commencé par la régression linéaire optimisée par descente de gradient. Ensuite, nous avons exploré le Perceptron, l’un des premiers algorithmes de classification, en le considérant sous l’angle de l’optimisation. Nous avons discuté des différentes stratégies d’optimisation (Batch, Mini-Batch, SGD) qui sont essentielles en apprentissage automatique moderne. Enfin, nous avons introduit les SVMs comme une méthode puissante pour trouver le meilleur séparateur linéaire en maximisant la marge.
Références et Lectures Complémentaires¶
Documentation Scikit-Learn sur les SVMs : https://
scikit -learn .org /stable /modules /svm .html Livre de référence : Bishop, C. M. (2006). Pattern Recognition and Machine Learning. Springer. (Voir Chapitre 6, pp. 325-345 pour les SVMs).
Implémentations pratiques en Scikit-Learn :