L1-регуляризация — это метод обучения моделей машинного обучения, при котором к стандартной функции потерь добавляется штраф, равный сумме абсолютных значений всех весов модели. Такой штраф называется L1-нормой вектора весов и обозначается как ‖w‖₁. В отличие от L2-регуляризации, которая стремится равномерно уменьшить все веса, L1-штраф способен обнулять отдельные параметры полностью. Это свойство делает L1-регуляризацию одновременно и способом борьбы с переобучением, и инструментом автоматического отбора признаков. Наиболее известная реализация L1-регуляризации в статистике — метод LASSO (Least Absolute Shrinkage and Selection Operator), предложенный Робертом Тибширани в 1996 году.
Как это работает
Механика L1-регуляризации основана на добавлении к целевой функции штрафного слагаемого. Если исходная задача — минимизировать функцию потерь L(w), то с L1-регуляризацией она превращается в минимизацию L(w) + λ·‖w‖₁, где λ — гиперпараметр, управляющий силой штрафа. Градиент L1-штрафа по каждому весу равен λ·sign(wᵢ), то есть постоянной величине, не зависящей от значения веса. Это принципиально отличает L1 от L2, где градиент штрафа пропорционален самому весу.
Из-за постоянного градиента L1-штраф «сдвигает» каждый вес к нулю с одинаковой силой. Когда вклад признака в уменьшение основной функции потерь оказывается меньше этого сдвига, оптимальное значение веса становится равным точно нулю. В результате модель «выбрасывает» неинформативные признаки, сохраняя только те, которые действительно влияют на прогноз. Чем больше λ, тем больше весов обнуляется. При достаточно большом λ модель может оставить лишь один-два значимых признака.
Зачем это нужно
L1-регуляризация решает две практические задачи одновременно. Первая — борьба с переобучением: ограничение весов не даёт модели «подгоняться» под шум в обучающих данных. Вторая — отбор признаков: если у вас сотни или тысячи входных переменных, L1-штраф автоматически покажет, какие из них действительно важны, а какие можно исключить.
Это особенно ценно в задачах с высокой размерностью и малым числом наблюдений, где число признаков превышает число примеров. Классические примеры: анализ генетических данных, текстовая классификация, обработка разреженных признаков в рекомендательных системах. В нейросетях L1-регуляризация применяется к весам слоёв и помогает получать более компактные модели, которые легче интерпретировать и быстрее работают при выводе.
Примеры
- Линейная регрессия с LASSO. Задача: предсказать цену квартиры по 50 признакам (площадь, этаж, расстояние до метро, год постройки и т.д.). Обычная линейная регрессия даст ненулевые коэффициенты для всех 50 признаков, включая случайный шум. С L1-регуляризацией при λ = 0.1 модель обнулит, скажем, 35 коэффициентов и оставит только 15 действительно значимых. Это упрощает модель и снижает риск переобучения.
- Классификация текстов. В задаче определения спама по email используется bag-of-words с 20 000 признаков (слов). L1-регуляризация обнуляет веса для большинства слов, оставляя только те, которые реально отличают спам от нормальных писем: «выигрыш», «бесплатно», «срочно».
- Нейросеть для табличных данных. При обучении полносвязной сети на датасете с 500 признаками и 1000 примерами L1-регуляризация на весах первого слоя может обнулить целые группы весов, соответствующие неинформативным признакам. Это эквивалентно отбору признаков «на лету» во время обучения.
Формула или метрика
Функция потерь с L1-регуляризацией:
J(w) = L(w) + λ · Σᵢ |wᵢ|
где:
- L(w) — исходная функция потерь (например, MSE или кросс-энтропия);
- λ (лямбда) — гиперпараметр, задающий силу регуляризации (λ ≥ 0);
- Σᵢ |wᵢ| — L1-норма вектора весов, сумма абсолютных значений всех параметров.
Ключевое свойство: при увеличении λ больше весов становятся равными точно нулю. L1-норма — выпуклая функция, что гарантирует единственность решения задачи минимизации и эффективность численных методов.
Типичные ошибки
- Слишком большое λ. При чрезмерной силе штрафа модель обнулит почти все веса и превратится в константный предиктор. Признак: loss на обучении и валидации одинаково высокий, модель ничего не предсказывает.
- Отсутствие стандартизации признаков. L1-штраф чувствителен к масштабу. Если один признак измеряется в тысячах, а другой — в долях, штраф будет несправедливо «давить» на веса признаков с малым масштабом. Перед обучением признаки нужно нормализовать.
- Ожидание разреженности от L2. L2-регуляризация (Ridge) уменьшает веса, но почти никогда не обнуляет их точно. Если нужна разреженность — используйте L1 или Elastic Net.
- Игнорирование коррелированных признаков. При наличии сильно коррелированных признаков L1-регуляризация выберет один из них случайным образом и обнулит остальные. Это может затруднить интерпретацию. Elastic Net (комбинация L1 и L2) решает эту проблему.
Как улучшить
- Подбирайте λ по кросс-валидации. Используйте grid search или случайный поиск по логарифмической шкале (например, от 1e-5 до 1e-1). Оптимальное λ — то, при котором метрика на валидации максимальна.
- Стандартизируйте признаки. Приведите все входные переменные к нулевому среднему и единичной дисперсии перед обучением. Это делает штраф справедливым для всех весов.
- Попробуйте Elastic Net. Если признаки коррелированы, комбинация L1 и L2 (Elastic Net) даёт более стабильный отбор, чем чистый L1. Параметр l1_ratio управляет балансом между L1 и L2.
- Применяйте L1 выборочно. В нейросетях можно штрафовать только веса определённых слоёв (например, первого слоя, который работает с признаками), а не всю модель целиком.
- Проверяйте итоговую разреженность. После обучения посчитайте долю весов, равных нулю. Если их меньше 20–30%, возможно, λ слишком мало или признаки не стандартизированы.