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