Sobes.tech
Middle — Senior

Warum setzt die L1-Regularisierung einige Gewichte auf Null, während die L2-Regularisierung dies nicht tut?

sobes.tech KI

Antwort von AI

L1-Regularisierung (Lasso) fügt der Verlustfunktion die Summe der absoluten Werte der Gewichte (||w||₁) hinzu, was zu Ecken in der Optimierungsoberfläche führt. Dies begünstigt, dass die optimale Lösung genau null Werte für einige Gewichte hat, also diese auf null setzt und somit das Modell sparsamer macht.

L2-Regularisierung (Ridge) fügt die Summe der Quadrate der Gewichte (||w||₂²) hinzu, was eine glatte parabolische Oberfläche ohne Ecken erzeugt. Infolgedessen werden die Gewichte kleiner, werden aber selten genau null, da die Optimierung auf kleine, aber nicht null Werte abzielt.

Beispiel:

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-Gewichte:', lasso.coef_)

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

Hier kann L1 einige Gewichte auf null setzen, während L2 sie nur verringert.