Какие еще методы борьбы с переобучением кроме дропаута существуют
Что проверяют
Знаете ли вы весь набор инструментов регуляризации и понимаете ли, какой подходит какой модели. Следом часто просят показать, как это включается в коде, и спрашивают, чем weight decay в AdamW отличается от L2 в обычном Adam.
Как отвечать
Начните с диагностики: переобучение видно по растущему разрыву между ошибкой на обучении и на валидации. Дальше методы по группам:
- штраф на веса: L2 тянет веса к нулю, L1 обнуляет часть и заодно отбирает признаки. В
AdamL2 через функцию потерь делится на адаптивный шаг и работает не так, как задумано, поэтому берутtorch.optim.AdamW(params, weight_decay=0.01)с раздельным затуханием весов; - ранняя остановка: следим за
val_lossи останавливаемся, когда он не улучшаетсяpatienceэпох, возвращая лучшие веса. В Keras этоEarlyStopping(monitor="val_loss", patience=5, restore_best_weights=True); - данные и аугментация: для картинок повороты, кропы, шум, для текста обратный перевод, для таблиц осторожнее;
- смешивание и сглаживание: mixup и cutmix смешивают примеры,
nn.CrossEntropyLoss(label_smoothing=0.1)отучает модель от стопроцентной уверенности; - меньше ёмкость: меньше слоёв и нейронов, у деревьев
max_depthиmin_samples_leaf, у бустинга ещёsubsample,colsample_bytreeи маленькийlearning_rate; - ансамбли: бэггинг и Random Forest снижают дисперсию, усреднение нескольких сетей тоже;
- нормализация: BatchNorm регуляризует побочно, основная задача у него другая.
Хороший ответ заканчивается порядком действий: проверить утечку и разбиение, добавить данных или аугментацию, включить регуляризацию и раннюю остановку, и только потом урезать модель.
Где спотыкаются
Называют кросс-валидацию методом борьбы с переобучением. Она честнее оценивает качество и помогает подобрать гиперпараметры, но сама модель от неё не становится менее переобученной.
Записывают в регуляризацию бустинг. Он в первую очередь снижает смещение и без ограничений глубины и шага сам легко переобучается.
Аугментируют валидационную выборку или делают раннюю остановку по тестовой. После этого тест перестаёт быть независимой оценкой.