Sobes.tech
Middle — Senior
60

Почему L1-регуляризация зануляет часть весов, а L2 — нет?

Ответ от нейросети

sobes.tech AI

L1-регуляризация (Lasso) добавляет к функции потерь сумму абсолютных значений весов (||w||₁), что приводит к появлению угловых точек в оптимизационной поверхности. Это способствует тому, что оптимальное решение часто имеет ровно нулевые значения для некоторых весов, то есть зануляет часть из них, обеспечивая разреженность модели.

L2-регуляризация (Ridge) добавляет сумму квадратов весов (||w||₂²), что создает гладкую параболическую поверхность без углов. В результате веса уменьшаются, но редко становятся точно нулём, так как оптимизация стремится к малым, но ненулевым значениям.

Пример:

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

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

Здесь L1 может занулить некоторые веса, а L2 — только уменьшить их.