Middle — Senior
De ce regularizarea L1 face ca unele greutăți să devină zero, în timp ce L2 nu?
sobes.tech AI
Răspuns de la AI
Regularizarea L1 (Lasso) adaugă funcției de pierdere suma valorilor absolute ale greutăților (||w||₁), ceea ce duce la apariția punctelor ascuțite pe suprafața de optimizare. Acest lucru favorizează ca soluția optimă să aibă valori exact zero pentru anumite greutăți, adică să le anuleze, asigurând sparsitatea modelului.
Regularizarea L2 (Ridge) adaugă suma pătratelor greutăților (||w||₂²), creând o suprafață parabolică netedă, fără colțuri. Ca rezultat, greutățile scad, dar rareori devin exact zero, deoarece optimizarea tinde spre valori mici, dar nenule.
Exemplu:
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('Greutăți L1:', lasso.coef_)
ridge = Ridge(alpha=0.1)
ridge.fit(X, y)
print('Greutăți L2:', ridge.coef_)
Aici, L1 poate seta unele greutăți la zero, în timp ce L2 le reduce doar.