Шаг 144.
Глубокое обучение на Python.
Основы машинного обучения. Улучшение общности. Ранняя остановка

    На этом шаге мы поговорим о том, когда нужно прервать процесс обучения.

    В глубоком обучении принято использовать модели с чрезмерным количеством параметров: они имеют гораздо больше степеней свободы, чем необходимо для аппроксимации скрытого многообразия данных. Это не является проблемой, потому что модели глубокого обучения никогда не обучаются до предела. Обучение до предела означало бы полное отсутствие способности к обобщению. Вы всегда будете останавливать обучение задолго до достижения минимально возможного уровня потерь на обучающих данных.

    Поиск в процессе обучения точки, в которой достигается наибольший уровень общности, - точной границы между недообучением и переобучением - является одним из наиболее эффективных способов улучшить общность.

    В примерах из предыдущих шагов мы обучали наши модели дольше, чем необходимо, чтобы определить номер эпохи, после которой модель показывает наименьшие потери на проверочных данных, а затем повторно обучали новую модель в течение именно этого количества эпох. Это стандартный подход, но он требует избыточной работы, которая иногда может обходиться дорого. Естественно, можно просто сохранять модель в конце каждой эпохи и, определив лучшую из них, взять соответствующую. В Keras для этого обычно используется обратный вызов EarlyStopping, в котором можно прервать обучение, как только показатели качества на проверочных данных перестанут улучшаться, запомнив при этом лучшее состояние модели. Мы обязательно покажем, как применять обратные вызовы.

    На следующем шаге мы рассмотрим регуляризацию модели.




Предыдущий шаг Содержание Следующий шаг