Переобучение – это ситуация, когда модель слишком точно запоминает обучающие данные, включая их шум и случайные особенности. При этом модель плохо обобщает закономерности, что приводит к высокой ошибке на новых данных.
Как правило, переобучение возникает, когда
- модель слишком сложна для набора данных,
- модель имеет слишком много параметров
- модель (нейросеть) имеет слишком много нейронов
- модель (нейросеть) имеет слишком много слоев
Признаки переобучения
Модель показывает высокие (даже 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).
Выбор более простой модели (например, случайный лес делают с меньшим количеством деревьев, а сами деревья уменьшают по глубине). В случае нейросетей, снижают число слоев и количество нейронов в слоях.
Добавление шума в данные
На практике в данные или веса модели добавляют шум. Это помогает модели лучше отличать шум от закономерностей.