Middle — Senior
Dlaczego regularizacja L1 zeruje niektóre wagi, a L2 nie?
sobes.tech AI
Odpowiedź od AI
Regularyzacja L1 (Lasso) dodaje do funkcji straty sumę wartości bezwzględnych wag (||w||₁), co prowadzi do pojawienia się punktów kątowych na powierzchni optymalizacji. Sprzyja to temu, że rozwiązanie optymalne często ma dokładnie zerowe wartości dla niektórych wag, czyli je zeruje, zapewniając rzadkość modelu.
Regularyzacja L2 (Ridge) dodaje sumę kwadratów wag (||w||₂²), tworząc gładką powierzchnię paraboliczną bez kątów. W rezultacie wagi maleją, ale rzadko stają się dokładnie zerowe, ponieważ optymalizacja dąży do małych, ale niezerowych wartości.
Przykład:
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('Wagi L1:', lasso.coef_)
ridge = Ridge(alpha=0.1)
ridge.fit(X, y)
print('Wagi L2:', ridge.coef_)
Tutaj L1 może wyzerować niektóre wagi, a L2 tylko je zmniejsza.