Régression linéaire
Commençons par deux points et une droite. La pente incline la droite ; l’ordonnée à l’origine la déplace verticalement. Ajuster le modèle consiste à modifier ces deux nombres pour réduire les erreurs de prédiction. Essayez avant de passer aux matrices.
Ajuster une droite à deux points
Les points verts sont les observations ; la droite bleue est votre prédiction. Réduisez les erreurs en pointillés avec les curseurs, puis essayez un pas de gradient. La MSE est la moyenne des erreurs au carré : plus elle est petite, mieux la droite s’ajuste à ces points.
ObservationsPrédiction
MSE 5.0000
ŷ = 0.000x + (0.000)∇L [b, w] = [-4.000, -3.000]
Essayez : repartez de zéro, faites un pas à 0.1, puis recommencez avec 1. Un grand pas peut augmenter l’erreur. Pouvez-vous ajuster la droite vous-même ?
Les paramètres restent entre −3 et 4. Un pas hors de cet intervalle est désactivé : réduisez le taux ou recommencez. La droite est coupée aux limites verticales du graphique. La lecture s’arrête après 60 pas, près de zéro ou si le panneau est masqué. Le mode à mouvements réduits conserve les pas manuels.Voir le code · NumPy / JAX
L’interaction utilise JavaScript. Ces exemples Python reprennent les mêmes données et équations avec les valeurs initiales, pas celles des curseurs. JAX calcule le gradient de la perte avec jax.grad. Guide de différentiation JAX
Dans un nouveau projet local, enregistrez l’exemple dans demo.py. Installation CPU : uv init ai-lab → cd ai-lab → uv add numpy jax → uv run demo.py
- NumPy
- JAX
import numpy as np
x = np.array([0., 1.])
y = np.array([1., 3.])
p = np.array([0., 0.]) # [b, w]
def loss(p):
return np.mean((p[1] * x + p[0] - y) ** 2)
def gradient(p):
error = p[1] * x + p[0] - y
return np.array([2 * error.mean(), 2 * (error * x).mean()])
p = p - 0.1 * gradient(p)
print(p, loss(p)) # [0.4, 0.3], 2.825
import jax
import jax.numpy as jnp
x = jnp.array([0., 1.])
y = jnp.array([1., 3.])
p = jnp.array([0., 0.]) # [b, w]
def loss(p):
return jnp.mean((p[1] * x + p[0] - y) ** 2)
gradient = jax.grad(loss)
p = p - 0.1 * gradient(p)
print(p, loss(p)) # approximately [0.4, 0.3], 2.825
La régression linéaire prédit une cible numérique comme fonction affine des variables :
Pour observations, les lignes sont rassemblées dans une matrice de conception . Si l’ordonnée à l’origine est représentée par une colonne supplémentaire de 1, le modèle devient
Le mot « linéaire » se rapporte aux paramètres. Les variables peuvent inclure des transformations telles que des interactions ou des termes polynomiaux, tandis que le modèle reste linéaire en .
Objectif d’erreur quadratique
Les moindres carrés ordinaires minimisent la somme des carrés des résidus, ou de manière équivalente l’erreur quadratique moyenne :
Lorsqu’il n’existe pas de solution unique fondée sur une inverse, la pseudo-inverse de Moore–Penrose fournit une solution aux moindres carrés :
L’optimisation par gradient est utile lorsque le jeu de données est volumineux, que le modèle s’inscrit dans un système différentiable plus vaste ou que la régularisation modifie l’objectif.
Du résidu à la mise à jour
Avec variables et une constante, est de forme et possède composantes. La dérivée de la MSE ci-dessus donne
Le taux d’apprentissage règle l’amplitude du pas. Pour , partons de . Les erreurs « prédiction moins cible » valent et le gradient, dans l’ordre , vaut . Avec , les paramètres deviennent et la MSE passe de à . L’ajustement exact est . L’inférence évalue seulement , sans cible ni mise à jour des poids.
Annuler le gradient donne les équations normales . Le rang colonne plein assure l’unicité ; sinon, la pseudo-inverse choisit le minimiseur de norme euclidienne minimale. En calcul numérique, préférer QR ou SVD à l’inversion explicite de , dont le conditionnement en norme 2 est le carré de celui de à rang colonne plein.
La dérivation par vraisemblance du manuel suppose des résidus gaussiens indépendants de même variance : la log-vraisemblance négative correspond alors à la MSE, à une échelle et une constante près. Minimiser la MSE n’exige pas de bruit gaussien. Avec une moyenne conditionnelle correctement spécifiée, et un rang colonne plein, les moindres carrés sont conditionnellement sans biais ; les erreurs-types homoscédastiques usuelles supposent en plus une variance constante.
Limites de l’interprétation
- Un coefficient dépend des variables incluses dans le modèle et de leur échelle.
- Une bonne prédiction n’établit pas de relation causale.
- L’inférence statistique exige d’autres hypothèses que la seule minimisation de l’erreur quadratique ; prédiction et inférence sont des objectifs distincts.
- La colinéarité peut rendre les coefficients instables même si les prédictions restent satisfaisantes.
- L’extrapolation hors de la plage observée des variables dépend fortement de la forme fonctionnelle choisie.
- Les graphiques des résidus et l’erreur hors échantillon révèlent des défaillances invisibles dans la perte d’entraînement.
La régression linéaire est utile à la fois comme modèle et comme référence. Une méthode plus complexe doit justifier son intérêt face à cette solution plus simple.
Pour un ajustement complet, les hypothèses d’incertitude et la régularisation, consultez les moindres carrés ordinaires. Cette note utilise la demi-MSE : son gradient de perte est la moitié de celui présenté ici. Comparez donc aussi les conventions d’échelle du taux d’apprentissage et des pénalités.
Poursuivez avec la régression softmax pour la classification en classes mutuellement exclusives. La principale référence externe est Dive into Deep Learning: Linear Neural Networks for Regression.