Sobes.tech
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.