Sobes.tech
Middle — Senior

Pourquoi la régularisation L1 met-elle certains poids à zéro, alors que la L2 ne le fait pas?

sobes.tech IA

Réponse de l'IA

La régularisation L1 (Lasso) ajoute à la fonction de perte la somme des valeurs absolues des poids (||w||₁), ce qui conduit à l'apparition de points angulaires sur la surface d'optimisation. Cela favorise que la solution optimale ait des valeurs exactement nulles pour certains poids, c'est-à-dire qu'elle les annule, assurant une parcimonie du modèle.

La régularisation L2 (Ridge) ajoute la somme des carrés des poids (||w||₂²), créant une surface parabolique lisse sans angles. En conséquence, les poids diminuent, mais deviennent rarement exactement nuls, car l'optimisation vise des valeurs faibles mais non nulles.

Exemple:

import numpy as np
from sklearn.linear_model import Lasso, Ridge

X = np.array([[1, 2], [3, 4], [5, 6]])
y = np.array([1, 2, 3])

lasso = Lasso(alpha=0.1)
lasso.fit(X, y)
print('Poids L1:', lasso.coef_)

ridge = Ridge(alpha=0.1)
ridge.fit(X, y)
print('Poids L2:', ridge.coef_)

Ici, L1 peut mettre certains poids à zéro, tandis que L2 ne fait que les réduire.