Sobes.tech
Middle — Senior

Perché la regolarizzazione L1 azzera alcuni pesi, mentre la L2 no?

sobes.tech AI

Risposta dell'AI

La regolarizzazione L1 (Lasso) aggiunge alla funzione di perdita la somma dei valori assoluti dei pesi (||w||₁), il che porta alla presenza di punti angolari sulla superficie di ottimizzazione. Questo favorisce che la soluzione ottimale abbia valori esattamente nulli per alcuni pesi, ovvero li azzera, garantendo la sparsità del modello.

La regolarizzazione L2 (Ridge) aggiunge la somma dei quadrati dei pesi (||w||₂²), creando una superficie parabola liscia senza angoli. Di conseguenza, i pesi diminuiscono, ma raramente diventano esattamente nulli, poiché l'ottimizzazione mira a valori piccoli ma non nulli.

Esempio:

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('Pesi L1:', lasso.coef_)

ridge = Ridge(alpha=0.1)
ridge.fit(X, y)
print('Pesi L2:', ridge.coef_)

Qui, L1 può azzerare alcuni pesi, mentre L2 li riduce solo.