Регуляризация L1 (L1 Regularization)
Метод регуляризации в машинном обучении, направленный на предотвращение переобучения модели путём добавления к функции потерь штрафа, пропорционального сумме абсолютных значений весов модели.
Основная часть
Суть регуляризации L1 заключается в том, что при оптимизации модели наряду с минимизацией ошибки на обучающих данных алгоритм «штрафует» за большие значения весов — но не квадраты весов (как в L2‑регуляризации), а их абсолютные величины. Это приводит к тому, что часть весов в процессе обучения обнуляется — модель становится разреженной.
Аналогия
Представьте, что вы собираете чемодан в путешествие и стараетесь взять только самое необходимое. Регуляризация L1 работает примерно так же: она «выбрасывает» из модели несущественные признаки (обнуляет соответствующие веса), оставляя только те, что действительно важны для предсказаний. В результате модель становится проще и лучше обобщает на новых данных.
Исторический контекст
Идея регуляризации восходит к классическим методам борьбы с переобучением, но L1‑регуляризация приобрела особую популярность благодаря работе Роберта Тибширани, который в 1996 году предложил метод LASSO (Least Absolute Shrinkage and Selection Operator). LASSO использует именно L1‑штраф и позволяет не только снижать переобучение, но и выполнять отбор признаков — автоматически «выключая» ненужные.
Отличия от смежных понятий
Главное отличие L1 от L2‑регуляризации (ридж‑регуляризации) — в характере штрафа:
- L1 использует сумму абсолютных значений весов (‖w‖₁), что ведёт к разреженности модели;
- L2 использует сумму квадратов весов (‖w‖₂²), что «сжимает» веса, но редко обнуляет их.
Из‑за этого L1‑регуляризация лучше подходит для задач, где важно отобрать наиболее значимые признаки, а L2 — для случаев, когда нужно просто сгладить веса и избежать слишком больших значений.
Примеры использования
- LASSO‑регрессия — классический пример применения L1‑регуляризации в линейной регрессии;
- Логистическая регрессия с L1‑штрафом — используется в задачах классификации для отбора признаков;
- Нейронные сети — L1‑регуляризация может применяться к весам слоёв, чтобы сделать сеть более разреженной и интерпретируемой;
- Задачи обработки текста (например, классификация документов) — L1 помогает выделить ключевые слова/признаки, отбрасывая шум.
Популярные реализации
- в библиотеке scikit‑learn (Python) — класс
Lassoдля линейной регрессии и параметрpenalty='l1'в логистической регрессии; - в TensorFlow/Keras — можно задать L1‑регуляризацию через параметр
kernel_regularizerв слоях (например,tf.keras.regularizers.l1); - в PyTorch — реализуется вручную через добавление L1‑штрафа к функции потерь.
