Middle — Senior
Prečo L1 regularizácia nastaví niektoré váhy na nulu, zatiaľ čo L2 nie?
sobes.tech AI
Odpoveď od AI
L1-regularizácia (Lasso) pridáva k funkcii straty súčet absolútnych hodnôt váh (||w||₁), čo vedie k tvorbe ostrých bodov na optimalizačnej ploche. To podporuje, že optimálne riešenie má presne nulové hodnoty pre niektoré váhy, teda ich nulovanie, čím zabezpečuje riedkosť modelu.
L2-regularizácia (Ridge) pridáva súčet štvorcov váh (||w||₂²), čím vytvára hladkú parabolickú plochu bez ostrých uhlov. V dôsledku toho sa váhy znižujú, ale zriedka sa stanú presne nulovými, pretože optimalizácia smeruje k malým, ale nenulovým hodnotám.
Príklad:
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('L1 váhy:', lasso.coef_)
ridge = Ridge(alpha=0.1)
ridge.fit(X, y)
print('L2 váhy:', ridge.coef_)
Tu L1 môže nastaviť niektoré váhy na nulu, zatiaľ čo L2 ich iba znižuje.