L2-регуляризация — это метод борьбы с переобучением в машинном обучении, при котором к функции потерь добавляется штраф за большие значения весов модели. Штраф равен сумме квадратов всех весов, умноженной на коэффициент регуляризации λ (лямбда). Чем больше веса, тем сильнее штраф, поэтому модель вынуждена искать решение с меньшими коэффициентами, что делает её более обобщающей.
Как это работает
В процессе обучения модель минимизирует не только ошибку на тренировочных данных, но и сложность самой модели. L2-регуляризация формально записывается как:
Loss_total = Loss_original + λ * Σ w_i²
где w_i — веса модели, λ — гиперпараметр, управляющий силой штрафа. При градиентном спуске этот штраф добавляет к градиенту слагаемое 2λw, что заставляет веса экспоненциально уменьшаться на каждом шаге. Этот эффект называют weight decay — «затухание весов».
В отличие от L1-регуляризации, которая может обнулять отдельные веса и выполнять отбор признаков, L2 только уменьшает их, но никогда не делает строго нулевыми. Все признаки продолжают вносить вклад в предсказание, но их влияние становится более сбалансированным.
Зачем это нужно
Основная цель — снизить переобучение. Когда модель имеет слишком много параметров и мало данных, она запоминает шум вместо закономерностей. L2-штраф ограничивает «свободу» весов, заставляя модель выбирать более простые решения.
В линейных моделях L2-регуляризация также решает проблему мультиколлинеарности — ситуации, когда признаки сильно коррелируют между собой. Штраф стабилизирует оценки коэффициентов, делая их менее чувствительными к случайным колебаниям в данных.
В нейросетях weight decay применяется ко всем весовым матрицам слоёв. Это стандартная практика при обучении глубоких моделей, часто в комбинации с dropout и early stopping.
Примеры
- Ridge-регрессия для предсказания цен на недвижимость: при наличии десятков коррелирующих признаков (площадь, число комнат, расстояние до центра) L2-регуляризация уменьшает коэффициенты, предотвращая их «раздувание» и улучшая обобщение на новых объектах.
- Обучение свёрточной нейросети для классификации изображений: без weight decay модель может достичь 99% точности на train, но 60% на test. Добавление L2-штрафа с λ = 1e-4 часто поднимает тестовую точность до 75–80% за счёт снижения переобучения.
- Логистическая регрессия в кредитном скоринге: L2-регуляризация делает модель устойчивой к выбросам и уменьшает дисперсию предсказаний.
Формула или метрика
L2-штраф: Σ w_i² (сумма квадратов весов).
Итоговая функция потерь: J(w) = Loss(w) + λ * Σ w_i².
Градиент штрафа по весу w_i: 2λw_i.
Типичные ошибки
- Слишком большой λ. Модель становится недообученной: веса почти нулевые, предсказания не зависят от признаков. Симптом — низкая точность и на train, и на test.
- Слишком маленький λ. Регуляризация почти не влияет, переобучение сохраняется.
- Применение L2 без нормализации признаков. Если признаки в разных масштабах, штраф будет несправедливо давить на веса, связанные с малыми по модулю признаками. Стандартизация (StandardScaler) обязательна.
- Штрафование bias-членов. Смещение (bias) не нужно регуляризовать — это ухудшает подгонку модели без пользы для обобщения.
Как улучшить
- Подбирайте λ по валидационной выборке. Используйте GridSearchCV или Optuna, перебирая значения по логарифмической шкале: 0.001, 0.01, 0.1, 1, 10.
- Нормализуйте признаки перед обучением. Это гарантирует, что штраф применяется равномерно ко всем весам.
- Не регуляризуйте bias. В Keras укажите
use_bias=Falseили передавайтеbias_regularizer=None. - Комбинируйте с early stopping. L2 снижает переобучение, но не устраняет его полностью. Остановка по валидационной метрике даёт дополнительный эффект.
- Для нейросетей начинайте с λ = 1e-4 – 1e-3. Это типичный диапазон для weight decay в глубоком обучении; слишком большое значение быстро приведёт к недообучению.