DL ML

Переобучение и методы борьбы с ним

Переобучение – это ситуация, когда модель слишком точно запоминает обучающие данные, включая их шум и случайные особенности. При этом модель плохо обобщает закономерности, что приводит к высокой ошибке на новых данных.

Как правило, переобучение возникает, когда

  • модель слишком сложна для набора данных,
  • модель имеет слишком много параметров
  • модель (нейросеть) имеет слишком много нейронов
  • модель (нейросеть) имеет слишком много слоев

Признаки переобучения

Модель показывает высокие (даже 100%) метрики качества на обучающих данных и низкие на тестовых. Причем, эта разница может нарастать от итерации к итерации (от эпохи к эпохе).

Как выявить переобучение?

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

Методы борьбы с переобучением

L1 и L2 регуляризация способствуют уменьшению слишком больших весов в моделях регрессии и классификации.

L1-регуляризация (Lasso)

К формуле нахождения ошибки добавляется lambda * sum(abs(Wj)) – где lambda – небольшое число от 0 до 1.
К функционалу нахождения ошибки добавляется сумма МОДУЛЕЙ всех весов с умножением на lambda.
Этот метод регуляризации может занулять незначимые признаки.

L2-регуляризация (Ridge)

К формуле нахождения ошибки добавляется lambda * sum(Wj ** 2) – где lambda – небольшое число от 0 до 1.
К функционалу нахождения ошибки добавляется сумма КВАДРАТОВ всех весов с умножением на lambda.
Этот метод регуляризации выставляет очень низкий вес признакам со слишком большим значением.

Dropout

Dropout – это отключение случайного набора нейронов в конкретном слое нейросети. Таким образом некоторые нейроны исключаются из процесса обучения модели. Этот метод близок по сути к L1 регуляризации, при котором некоторые веса модели обращаются в 0.

Batch Normalization

Batch Normalization – нормализует активации в слоях нейросети, что снижает переобучение. Подробнее о методе.

Использование большего количества данных

Если набор данных невозможно увеличить обычным путем добора и дополнения, используются методы аугментации и feature engineering.

Ранняя остановка (Early Stopping)

Обучение модели останавливают на этапе, когда еще не наблюдается переобучение, а метрики качества близки к необходимым для данной задачи.

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

Уменьшение сложности модели

Снижение числа параметров модели путем отбора признаков (Feature Selection).

Выбор более простой модели (например, случайный лес делают с меньшим количеством деревьев, а сами деревья уменьшают по глубине). В случае нейросетей, снижают число слоев и количество нейронов в слоях.

Добавление шума в данные

На практике в данные или веса модели добавляют шум. Это помогает модели лучше отличать шум от закономерностей.

Вставить формулу как
Блок
Строка
Дополнительные настройки
Цвет формулы
Цвет текста
#333333
Используйте LaTeX для набора формулы
Предпросмотр
\({}\)
Формула не набрана
Вставить