Middle — Senior
Zašto L1 regularizacija postavlja neke težine na nulu, dok L2 to ne čini?
sobes.tech АИ
Одговор од АИ
L1 regularizacija (Lasso) dodaje funkciji gubitka zbir apsolutnih vrijednosti težina (||w||₁), što dovodi do pojave kutnih točaka na površini optimizacije. To potiče da rješenje bude točno nula za neke težine, odnosno da ih postavi na nulu, osiguravajući rijetkost modela.
L2 regularizacija (Ridge) dodaje zbroj kvadrata težina (||w||₂²), stvarajući glatku paraboličnu površinu bez kutova. Kao rezultat, težine se smanjuju, ali rijetko postaju točno nula, jer optimizacija teži prema malim, ali nenultim vrijednostima.
Primjer:
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 težine:', lasso.coef_)
ridge = Ridge(alpha=0.1)
ridge.fit(X, y)
print('L2 težine:', ridge.coef_)
Ovdje, L1 može postaviti neke težine na nulu, dok ih L2 samo smanjuje.