Early stopping
Главная беда машинного обучения — переобучение: модель идеально запоминает обучающую выборку, но теряет способность обобщать. Без ранней остановки нейросеть превращается в «зубрилу», который на новых данных отвечает хуже троечника. Этот приём — простой способ защитить модель от переобучения, без сложных ухищрений.
Механизм прост: после каждой эпохи замеряем ошибку на отдельном проверочном наборе, который модель не видела. Пока ошибка падает — тренируемся. Когда она перестала падать или начала расти — это сигнал, что модель запоминает шум. Откатываемся к состоянию с минимальной ошибкой и останавливаемся. Аналогия: человек учится угадывать породы собак по фото. Сначала прогресс, потом ошибки уменьшаются, а при долгой тренировке он начинает запоминать случайные детали («забор на фоне») и перестаёт узнавать собаку на новых снимках.
Классический пример — MNIST, распознавание рукописных цифр. После десятков итераций точность на проверке растёт, но если гнать все сто эпох, она сначала достигает пика (98,5%), а затем падает, хотя на обучающих данных растёт к 100%. Ранняя остановка фиксирует момент пика и сохраняет модель с этой точностью, экономя часы вычислений.
Итог: ранняя остановка — это практический принцип «лучшее — враг хорошего». Она не добавляет данных и не усложняет архитектуру, но даёт выигрыш в качестве и скорости. Особенно полезна, когда данных мало, а модель большая.
Поделиться