Количество эпох, которые будут использоваться в последовательной модели Keras - PullRequest
1 голос
/ 27 июня 2019

Я строю последовательную модель Keras для классификации двоичных изображений. Теперь, когда я использую от 70 до 80 эпох, я начинаю получать хорошую точность проверки (81%). Но мне сказали, что это очень большое число, которое будет использоваться для эпох, которые повлияют на производительность сети.

Мой вопрос: есть ли ограниченное количество эпох, которые я не должен превышать, обратите внимание, что у меня 2000 тренировочных образов и 800 проверочных образов.

Ответы [ 3 ]

0 голосов
/ 27 июня 2019

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

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

i) Сокращение размера партии

ii) Увеличение данных (только если ваши данные не различаются)

iii) Нормализация партии

iv) Снижение сложности в архитектуре (в основном сверточных слоев)

v) Введение выпадающего слоя (только если вы используете какой-либо плотный слой)

vi) Снижение скорости обучения.

vii) Трансферное обучение

Соотношение размеров партии к эпохе весьма важно.Также это зависит от ваших данных и варьируется от приложения к приложению.В этом случае вам нужно немного поиграть со своими данными, чтобы узнать точную цифру.Обычно размер пакета из 32 изображений среднего размера требует 10 эпох для хорошего выделения признаков из сверточных слоев.Опять же, это относительно

0 голосов
/ 27 июня 2019

Есть функция раннего останова, которую Keras предоставляет, которую вы просто определяете.

EarlyStopping(patience=self.patience, verbose=self.verbose, monitor=self.monitor)

Предположим, что параметр epochs равен 80, как вы сказали ранее.Когда вы используете функцию EarlyStopping, количество эпох становится максимальным числом эпох.

Вы можете определить функцию EarlyStopping для мониторинга потери проверки, например, когда когда-либо эта потеря больше не улучшится, у нее будет несколько последних шансов (число, которое вы указали в параметре терпения), иесли после этих последних шансов контролируемое значение не улучшится, процесс обучения остановится.

Лучшей практикой, на мой взгляд, является использование как EarlyStopping, так и ModelCheckpoint, еще одной функции обратного вызова, предоставляемой в API Keras, которая просто сохраняет вашу последнюю лучшую модель (вы сами решаете, что лучше всего, лучшая потеря или другое).значение, с которым вы проверяете свои результаты).

Это решение Keras для проблемы, с которой вы пытаетесь разобраться.Кроме того, есть много онлайн-материалов, которые вы можете прочитать о том, как бороться с переобложением.

0 голосов
/ 27 июня 2019

Yaa!Это решение вашей проблемы.Выберите эпохи, например, 1k, 2k, просто используйте раннюю остановку в вашей нейронной сети.

Ранняя остановка: Keras поддерживает раннюю остановку обучения посредством обратного вызова, называемого Ранняя остановка.

Этот обратный вызов позволяет вам указать показатель производительности для мониторинга, триггера, и после запуска он остановит процесс обучения.Например, вы применяете триггер, который останавливает тренировку, если точность не увеличивается в предыдущие 5 эпох.Таким образом, keras будет видеть предыдущие 5 эпох через обратные вызовы и прекратит обучение, если ваша точность не увеличится

Ссылка для ранней остановки:

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...