Ответ вслух Middle Регуляризация обновлено

Нейросеть переобучилась

Вопрос

Сеть показывает 99% на трейне и 80% на валидации. Что будете делать, по порядку?

Попробуйте сами

Ответьте вслух за 2 минуты, как на собесе. Потом сверьтесь с тезисами: что прозвучало, а что нет.

Показать ответ и разбор

Коротко

Сначала убеждаюсь, что разрыв реальный: валидация из того же распределения, без пересечений с трейном, метрика считается в model.eval(). Потом иду от самого сильного средства: данные.

Что должно прозвучать в ответе

  • Проверить валидацию: утечки, распределение, режим eval

  • Данные: больше данных, аугментации, чистка меток

  • Регуляризация: weight decay, dropout, label smoothing, mixup

  • Early stopping и меньшая или предобученная модель

  • Отслеживать эффект каждого изменения отдельно

Что могут спросить следом

  • Что делать, если данных взять неоткуда?
  • Когда переобучение не страшно?

Разбор

Сначала убеждаюсь, что разрыв реальный: валидация из того же распределения, без пересечений с трейном, метрика считается в model.eval(). Потом иду от самого сильного средства: данные. Если можно собрать больше или почистить метки, это лучше всего. Если нет, аугментации, сохраняющие метку. Дальше регуляризация: weight decay в AdamW, dropout в полносвязных частях, label smoothing, mixup или CutMix для картинок. Early stopping по валидации с сохранением лучшего чекпоинта. Если данных мало в принципе, беру предобученную модель и дообучаю, а не учу с нуля, или уменьшаю размер модели. Каждое изменение проверяю по отдельности и смотрю на кривые обеих выборок, а не только на финальное число.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.

Термины по теме