Перекрестная проверка нейронной сети: как лечить количество эпох? - PullRequest
0 голосов
/ 29 апреля 2020

Я внедряю нейронную сеть Pytorch (регрессия) и хочу определить наилучшую топологию сети, оптимизатор и др. c .. Я использую перекрестную проверку, потому что у меня есть x баз данных измерений, и я хочу оценить, могу ли я обучить нейронную сеть с подмножеством баз данных x и применить нейронную сеть к невидимым базам данных. Поэтому я также представляю тестовую базу данных, которую я не использую на этапе идентификации гиперпараметра. Я запутался в том, как относиться к числу эпох в перекрестной проверке, например, у меня есть число эпох = 100. Есть два варианта:

  1. Количество эпох является гиперпараметром для мелодия. В каждую эпоху определяется средняя ошибка на всех итерациях перекрестной проверки. После обучения моделей со всеми топологиями сети, оптимизаторы и т. Д. c. модель с наименьшей средней ошибкой определяется и имеет такие параметры, как: топология сети: 1 -оптимизатор: SGD количество эпох: 54 Чтобы рассчитать производительность на тестовом наборе, модель обучается именно с этими параметрами (количество эпох = 54) для данных обучения и проверки. Затем он применяется и оценивается на тестовом наборе.

  2. Количество эпох НЕ является гиперпараметром для настройки. Модели обучены всем топологиям сети, оптимизаторам и т. Д. c. Для каждой модели используется количество эпох, где ошибка наименьшая. Модели сравниваются, и лучшая модель может быть определена с такими параметрами, как: топология сети: 1 -оптимизатор: SGD Для расчета производительности по данным испытаний используется «простое» разделение обучения и проверки (например, 80-20). Модель обучается с указанными выше параметрами и 100 эпохами на данных обучения и проверки. Наконец, модель с числом эпох, дающих наименьшую ошибку проверки, оценивается по данным испытаний.

Какой вариант является правильным или лучшим?

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