ML Vault
All notes

Регуляризация

Причина: уменьшить эффект от скорелированных фич
Устраняем переобучение, (почему переобучается: могут быть скорелированые признаки)
Регуляризация — это метод учета некоторых априорных знаний при решении задачи, по факту, это внесение ограничений на решение.

Регуляризация в машинном обучении — это набор методов, используемых для предотвращения переобучения модели и улучшения её способности обобщать на новых данных. Основная идея регуляризации — добавление штрафа (или ограничения) на сложность модели в процессе обучения, чтобы она не становилась слишком подстроенной под обучающие данные.

Зачем нужна регуляризация?

  1. Борьба с переобучением (overfitting):
  • Переобученная модель хорошо запоминает обучающие данные, но плохо работает на новых, т.к. она слишком “адаптировалась” к шуму и частным особенностям обучающего набора.
  • Регуляризация снижает сложность модели, ограничивая её способность подстраиваться под случайный шум в данных.
  1. Улучшение обобщающей способности:
    Регуляризация помогает модели находить более простые, универсальные зависимости, которые лучше описывают данные, даже если они немного шумные или неполные.
  2. Устойчивость к шуму:
    Регуляризация предотвращает ситуацию, когда модель подстраивается под случайные ошибки или выбросы в данных.
  3. Интерпретируемость модели:
    Регуляризация помогает уменьшить количество “неважных” признаков, делая модель более понятной.

Как работает регуляризация?
Регуляризация добавляет к целевой функции обучения модели дополнительный член (регуляризатор), который штрафует за сложность модели. В зависимости от типа регуляризации, штраф может быть связан с:

  • величиной весов (коэффициентов) модели,
  • структурой модели,
  • её сложностью.

Виды регуляризации:

  • L2 регуляризация
  • L1 регуляризация
    1. L2-регуляризация (Ridge Regression):
  • Штраф пропорционален сумме квадратов весов:
    $$\text{Регуляризатор} = |\omega|2^2 = \sum{i} \omega_i^2.$$
  • Примерная интерпретация: стараемся сделать все веса модели маленькими, распределяя их “равномерно”. Это уменьшает чувствительность модели к конкретным признакам.
  • Влияет на норму весов, но не на их зануление (в отличие от L1).
  • Часто используется в линейной регрессии и логистической регрессии.
    2. L1-регуляризация (Lasso Regression):
  • Штраф пропорционален сумме абсолютных значений весов:
    $$\text{Регуляризатор} = |\omega|1 = \sum{i} |\omega_i|$$
  • Примерная интерпретация: способствует занулению ненужных весов, делая модель разреженной (использующей только важные признаки).
  • Полезно для отбора признаков (feature selection), т.к. некоторые веса становятся точно равными нулю.
    3. Elastic Net:
  • Комбинация L1 и L2 регуляризаций:
    $$\text{Регуляризатор} = \alpha |\omega|_1 + (1 - \alpha) |\omega|_2^2$$
  • Подходит для данных, где есть сильная корреляция между признаками (Lasso может нестабильно работать в таких случаях).
    4. Dropout (для нейронных сетей):
  • В процессе обучения случайно “выключаются” нейроны (устанавливаются равными нулю) с определённой вероятностью.
  • Это заставляет сеть не полагаться на конкретные нейроны и делает её более устойчивой к шуму.

Пример интуитивного понимания L1 и L2
Представьте задачу выбора модели:

  • L2-регуляризация (Ridge): заставляет модель “распределять усилия” равномерно, сглаживая веса. Она делает модель более устойчивой к мелким флуктуациям данных.
  • L1-регуляризация (Lasso): отсекает ненужные признаки, зануляя их веса. Это делает модель проще и помогает выбрать только наиболее значимые признаки.

Как выбрать правильный вид регуляризации?

  • Если нужно уменьшить переобучение и нет цели отобрать признаки — используйте L2-регуляризацию.
  • Если нужно одновременно уменьшить переобучение и выбрать важные признаки — попробуйте L1-регуляризацию или Elastic Net.
  • Для нейронных сетей: Dropout + L2-регуляризация.

Вывод
Регуляризация — это ключевой инструмент для создания моделей, которые:

  1. Работают хорошо на тестовых данных.
  2. Устойчивы к шуму.
  3. Не переусложнены, что делает их проще и эффективнее.

можно ли сказать, что регуляризация повышает устойчивость к выбросам и скорелированным признакам?

Да, можно, но с некоторыми уточнениями: регуляризация повышает устойчивость к выбросам и скорелированным признакам, в зависимости от типа регуляризации.
1. Устойчивость к выбросам:

  • L2-регуляризация (Ridge):
    Она помогает уменьшить влияние выбросов, но не полностью устраняет проблему. Вес признаков, сильно влияющих на ошибку (например, из-за выбросов), сглаживается, так как штраф за большие веса ограничивает их рост. Однако выбросы могут всё ещё оказывать заметное влияние.
  • L1-регуляризация (Lasso):
    Может помочь, если выбросы связаны с признаками, которые модель считает незначимыми. В этом случае L1 может занулить веса таких признаков, эффективно исключая их из модели. Но если выбросы влияют на признаки, которые всё же полезны, их влияние может остаться.
  • Важное замечание: Для более надёжного подавления влияния выбросов обычно применяют устойчивые функции потерь, такие как Huber Loss или Quantile Loss. Они лучше справляются с выбросами, чем только регуляризация.

2. Устойчивость к скоррелированным признакам:

  • L2-регуляризация (Ridge):
    Хорошо справляется с высоко скоррелированными признаками, распределяя веса между ними. Например, если два признака сильно коррелируют, L2-регуляризация уменьшит их веса, сохраняя примерно равные значения. Это снижает риск, что модель будет отдавать предпочтение одному из признаков.
  • L1-регуляризация (Lasso):
    Менее устойчива к коррелированным признакам. В таких случаях L1-регуляризация склонна выбирать один из коррелированных признаков и занулять веса остальных, что может привести к потере важной информации. Это связано с тем, что она минимизирует сумму модулей весов, а не распределяет их.
  • Elastic Net:
    Это комбинация L1 и L2, и она лучше работает с коррелированными признаками. Elastic Net распределяет веса между коррелированными признаками, как Ridge, но при этом сохраняет возможность занулять менее важные признаки, как Lasso.

Подытожим:

  1. Выбросы: Регуляризация (особенно L1) может уменьшить их влияние, но для полной устойчивости лучше комбинировать её с устойчивыми функциями потерь.
  2. Скоррелированные признаки: L2 и Elastic Net справляются лучше, чем L1. Elastic Net предпочтителен, если требуется как отбор признаков, так и работа с корреляцией.

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

L1 регуляризация
L2 регуляризация