Sobes.tech
Middle — Senior

Waarom zet L1-regulatie sommige gewichten op nul, terwijl L2 dat niet doet?

sobes.tech AI

Antwoord van AI

L1-regularisatie (Lasso) voegt aan de verliesfunctie de som van de absolute waarden van de gewichten (||w||₁) toe, wat leidt tot hoekpunten op het optimalisatieoppervlak. Dit bevordert dat de optimale oplossing precies nulwaarden heeft voor sommige gewichten, oftewel ze op nul zet, wat sparsiteit in het model bevordert.

L2-regularisatie (Ridge) voegt de som van de kwadraten van de gewichten (||w||₂²) toe, wat een glad paraboolvormig oppervlak zonder hoeken creëert. Hierdoor worden de gewichten kleiner, maar worden ze zelden precies nul, omdat de optimalisatie streeft naar kleine maar niet-nul waarden.

Voorbeeld:

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

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

Hier kan L1 sommige gewichten op nul zetten, terwijl L2 ze alleen vermindert.