Sobes.tech
Middle — Senior

Proč regularizace L1 nastaví některé váhy na nulu, zatímco L2 ne?

sobes.tech AI

Odpověď od AI

L1-regulace (Lasso) přidává do ztrátové funkce součet absolutních hodnot vah (||w||₁), což vede k ostrým bodům na optimalizačním povrchu. To podporuje, že optimální řešení má přesně nulové hodnoty u některých vah, tedy je nuluje, čímž zajišťuje sparsitu modelu.

L2-regulace (Ridge) přidává součet čtverců vah (||w||₂²), čímž vytváří hladký parabolický povrch bez ostrých úhlů. V důsledku toho se váhy snižují, ale zřídka se stanou přesně nulovými, protože optimalizace směřuje k malým, ale nenulovým hodnotám.

Pří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_)

Zde L1 může některé váhy nastavit na nulu, zatímco L2 je pouze zmenšuje.