У меня есть модель глубокой нейронной сети, и мне нужно обучить ее на моем наборе данных, который состоит из около 100 000 примеров, мои данные проверки содержат около 1000 примеров. Поскольку для обучения каждого примера требуется время (около 0,5 с для каждого примера) и во избежание переобучения, я хотел бы применить раннюю остановку для предотвращения ненужных вычислений. Но я не уверен, как правильно тренировать мою нейронную сеть с ранней остановкой, некоторые вещи, которые я сейчас не совсем понимаю:
Какова будет хорошая частота проверки? Должен ли я проверить свою модель на данных проверки в конце каждой эпохи? (Мой размер партии 1)
Возможно ли, что первые несколько эпох могут привести к худшему результату, прежде чем он начнет сходиться к лучшему значению? В таком случае, должны ли мы обучить нашу сеть в течение нескольких эпох, прежде чем проверять раннюю остановку?
Как справиться со случаем, когда потеря проверки может идти вверх и вниз? В этом случае ранняя остановка может помешать моей модели учиться дальше, верно?
Заранее спасибо.
источник
Ответы:
Не существует золотого правила, вычисление ошибки проверки после каждой эпохи является довольно распространенным явлением. Поскольку ваш набор проверки намного меньше, чем ваш набор обучения, это не сильно замедлит обучение.
да
Вы могли бы, но тогда вопрос в том, сколько эпох вы должны пропустить. Поэтому на практике большую часть времени люди не пропускают ни одной эпохи.
Люди обычно определяют терпение, т. Е. Количество эпох, ожидающих до ранней остановки, если нет прогресса в проверочном наборе. Терпение часто устанавливается где-то между 10 и 100 (10 или 20 чаще), но оно действительно зависит от вашего набора данных и сети.
Пример с терпением = 10:
источник
patience
эпохи модели до остановки («лучшая», без дальнейших улучшений)?Недавно я натолкнулся на статью «Ранняя остановка - но когда?» Lutz Prechelt, у которого есть много замечательных примеров того, как использовать ранний останов, с ясными объяснениями того, что каждый делает и формулы для них.
Надеюсь, взглянуть на это может помочь.
источник
Чтобы добавить к другим отличные ответы, вы также можете - не останавливаться. Я обычно:
Конечно, это имеет смысл только тогда, когда вы не платите за минуту (или стоимость достаточно мала), и когда вы можете остановить обучение вручную. Плюс в том, что задним числом гораздо проще определить минимальную ошибку проверки.
источник