L2-регуляризация Л

Метод регуляризации, который добавляет к функции потерь штраф за большие веса, пропорциональный сумме их квадратов. Снижает переобучение, заставляя модель использовать признаки более равномерно.

English L2 regularization, ridge regression, weight decay, Tikhonov regularization
Синонимы L2-штраф, ridge-регуляризация, гребневая регрессия, weight decay, квадратичная регуляризация

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) не нужно регуляризовать — это ухудшает подгонку модели без пользы для обобщения.

Как улучшить

  1. Подбирайте λ по валидационной выборке. Используйте GridSearchCV или Optuna, перебирая значения по логарифмической шкале: 0.001, 0.01, 0.1, 1, 10.
  2. Нормализуйте признаки перед обучением. Это гарантирует, что штраф применяется равномерно ко всем весам.
  3. Не регуляризуйте bias. В Keras укажите use_bias=False или передавайте bias_regularizer=None.
  4. Комбинируйте с early stopping. L2 снижает переобучение, но не устраняет его полностью. Остановка по валидационной метрике даёт дополнительный эффект.
  5. Для нейросетей начинайте с λ = 1e-4 – 1e-3. Это типичный диапазон для weight decay в глубоком обучении; слишком большое значение быстро приведёт к недообучению.

Источники

Google Developers — Переобучение: регуляризация L2 (https://developers.google.com/machine-learning/crash-course/overfitting/regularization)

TensorFlow — tf.keras.regularizers.l2 (https://www.tensorflow.org/api_docs/python/tf/keras/regularizers/l2)

Scikit-learn — sklearn.linear_model.Ridge (https://scikit-learn.org/stable/modules/generated/sklearn.linear_model.Ridge.html)

ScienceDirect — Regularization Term: an overview (https://www.sciencedirect.com/topics/computer-science/regularization-term)