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