Значение эпохи в тренинге нейронных сетей

в то время как я читаю, как построить ANN в pybrain, они говорят:

Обучите сеть некоторым эпохам. Обычно вы бы установили что-то вроде 5 здесь,

trainer.trainEpochs( 1 )

Я искал, что это значит, тогда я пришел к выводу, что мы используем эпоху данных для обновления весов. Если я решил обучить данные с 5 эпохами, как совет пираминов, набор данных будет разделен на 5 подмножеств, а маны будут обновляться В 5 раз больше.

Я знаком с онлайновым обучением, где обновляются матчи после каждого образца данных или вектора признаков. Мой вопрос: как быть уверенным, что 5 эпох будет достаточно, чтобы построить модель и, возможно, установить вес? Каково преимущество этого способа в онлайн-обучении? Также термин "эпоха" используется при онлайн-обучении, означает ли это один вектор функции?

Ответ 1

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

Это не имеет никакого отношения к пакетной или онлайн-тренировке как таковой. Пакет означает, что вы обновляете один раз в конце эпохи (после просмотра каждого образца, то есть обновления #epoch) и онлайн, который вы обновляете после каждого образца (#samples * #epoch updates).

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

Ответ 2

Простое определение эпохи есть,

Эпоха - это один передний проход и один обратный проход всех учебных примеров.

Примечание: эпоха и итерации - это две разные вещи.

Например, для набора из 1000 изображений и размера партии 10 каждая итерация будет обрабатывать 10 изображений для 100 таких итераций для прохождения по всему набору. Это называется одной эпохой. Обучение может продолжаться в течение 100-х эпох.

Ответ 3

извините за восстановление этой темы. им новые для нейронных сетей и им исследовать влияние "мини-пакетной" подготовки.

до сих пор, как я понимаю, эпоха (как говорит runDOSrun) - это использование всех в наборе TrainingSet (а не DataSet, потому что DataSet = TrainingSet + ValidationSet). в мини-пакетном обучении вы можете подразделять TrainingSet на маленькие наборы и обновлять веса внутри эпохи. "надеюсь", это приведет к тому, что сеть "сходится" быстрее.

некоторые определения нейронных сетей устарели и, я думаю, должны быть переопределены.