Sobes.tech
Middle — Senior

Miks L1 regulatsioon paneb mõned kaalud nulli, samas kui L2 mitte?

sobes.tech AI

Vastus AI-lt

L1 regulaarimine (Lasso) lisab kaotusefunktsioonile kaalude absoluutväärtuste summa (||w||₁), mis viib optimeerimispinnal nurkade punktideni. See soodustab, et optimaalse lahenduse mõned kaalud oleksid täpselt nullid, st need nullitakse, tagades mudeli harulduse.

L2 regulaarimine (Ridge) lisab kaalude ruutude summa (||w||₂²), luues sile paraboolse pinna ilma nurkadeta. Selle tulemusena väheneb kaalude suurus, kuid nad harva muutuvad täpselt nulliks, kuna optimeerimine püüab väikeste, kuid mitte nullväärtuste poole.

Näide:

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

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

Siin L1 võib mõned kaalud nullida, samas kui L2 neid ainult vähendab.