Регуляризация — это совокупность методов, которые добавляют к функции потерь модели штраф за её сложность. Цель — не дать модели «зазубрить» обучающие данные и заставить её искать более общие закономерности. Без регуляризации нейросеть с миллионами параметров легко достигает нулевой ошибки на тренировочной выборке, но проваливается на новых данных.
Простыми словами: вместо того чтобы идеально подгонять ответы под каждый пример, модель получает «налог» за слишком большие веса. Чем проще модель, тем меньше штраф. Это вынуждает её игнорировать шум и фокусироваться на устойчивых сигналах.
Как это работает
В классическом машинном обучении функция потерь L измеряет, насколько прогнозы модели отличаются от правильных ответов. Регуляризация добавляет к ней второе слагаемое — штраф R(w), который зависит от весов w:
Ltotal = Ldata + λ · R(w)
Коэффициент λ (лямбда, или alpha) управляет силой регуляризации. Чем он больше, тем сильнее модель штрафуется за большие веса и тем проще становится её решение. Если λ = 0, регуляризация отключена. Если λ слишком велика, модель может стать слишком простой и недообучиться.
В нейронных сетях регуляризация работает на уровне слоёв. Например, в Keras или PyTorch можно передать регуляризатор в слой: Dense(512, kernel_regularizer=regularizers.l2(0.001)). Штраф применяется к матрице весов, но не к смещениям (bias), потому что смещения почти не влияют на переобучение.
Зачем это нужно
Главная проблема сложных моделей — переобучение (overfitting). Модель запоминает обучающие примеры вместе с их случайным шумом и теряет способность обобщать. Регуляризация — один из самых надёжных способов борьбы с этим.
Практическая ценность:
- Модель лучше работает на новых, невиданных данных — это главная метрика в продакшене.
- L1-регуляризация обнуляет часть весов, делая модель разреженной и более интерпретируемой.
- L2-регуляризация снижает разброс весов, делая обучение стабильнее.
- Dropout и early stopping — родственные техники, которые решают ту же задачу другими способами.
Примеры
- Логистическая регрессия для прогноза оттока клиентов. Без регуляризации модель может присвоить огромный вес одному редкому признаку (например, «клиент звонил в поддержку ровно 3 раза»). С L2-регуляризацией вес остаётся умеренным, и модель не разваливается на новых клиентах.
- Нейросеть для классификации изображений. Свёрточная сеть с 10 млн параметров на выборке из 50 000 картинок мгновенно переобучается. Добавление L2-штрафа к свёрточным слоям и Dropout после полносвязных слоёв снижает разрыв между точностью на train и validation.
- Lasso-регрессия для отбора признаков. В задаче с 500 признаками L1-регуляризация зануляет веса ненужных переменных. Остаётся 20 значимых, модель упрощается, а бизнес понимает, какие факторы реально влияют на целевую метрику.
- Weight decay в AdamW. Оптимизатор AdamW применяет L2-регуляризацию отдельно от адаптивного шага, что даёт более предсказуемый эффект, чем классический Adam с L2-штрафом внутри градиента.
Формула или метрика
Для L2-регуляризации штраф равен сумме квадратов весов:
R(w) = Σ wi2
Для L1-регуляризации — сумме модулей:
R(w) = Σ |wi|
Итоговая функция потерь: L = Ldata + λ · R(w). Чем выше λ, тем сильнее веса стягиваются к нулю. В библиотеках λ часто называют alpha или weight_decay.
Типичные ошибки
- Регуляризовать bias. Смещения не создают переобучения, и их штраф только мешает модели сдвигать порог активации. Регуляризацию применяют только к матрицам весов.
- Слишком большая λ. Если штраф перевешивает данные, модель становится слишком простой: все веса близки к нулю, и она предсказывает почти константу. Это недообучение.
- Использовать L1 без масштабирования признаков. L1 чувствителен к масштабу: признак с большим диапазоном получит несправедливо большой штраф. Перед L1-регуляризацией признаки нужно стандартизировать.
- Забыть про Dropout на этапе инференса. Dropout отключает нейроны только во время обучения. Если оставить его включённым при предсказании, результаты будут случайными и заниженными.
Как улучшить
- Начните с L2-регуляризации: она проще в настройке и редко вредит. Типичные значения λ — от 1e-5 до 1e-2.
- Подбирайте λ по validation-метрике, а не по train-loss. Увеличение λ почти всегда ухудшает train-loss, но может улучшить validation.
- Комбинируйте техники: L2 + Dropout + early stopping часто дают лучший результат, чем каждая по отдельности.
- Для разреженных моделей используйте L1 или Elastic Net (L1 + L2). Elastic Net сохраняет стабильность L2 и отбор признаков L1.
- Следите за масштабом признаков: стандартизация (StandardScaler) перед регуляризацией — почти обязательный шаг.