28

в то время как я читаю в том, как построить ИНС в pybrain, они говорят:Значение эпохи в нейронных сетей Обучение

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

trainer.trainEpochs(1) 

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

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

ответ

65

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

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

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

+0

Итак, набор данных делится на эпохи, и каждая эпоха состоит из образцов? и каждая эпоха использовалась для построения модели? –

+1

Это не то, что я сказал. Набор данных не разделен ни на что. Скажем, набор данных имеет 10 выборок (= векторы данных). Каждый образец последовательно отображается в сети. После образца nr. 10, вы начинаете с начала с nr. 1, 2, 3 ...., 10, затем начните снова на nr. 1, 2, 3 .... каждый раз, когда вы начинаете в начале с 1-го образца, вы делаете дополнительную эпоху обучения. 3 эпохи, изображенные в виде скобок: [1,2,3,4 ... 10], [1 ... 10], [1 ... 10]. Эпоха - это один проход во всем наборе данных. – runDOSrun

+0

Есть ли одна эпоха, которая также выполняет градиентный спуск, чтобы найти минимальную ошибку? Если да, то зачем его запускать снова и снова, чтобы свести к минимуму ошибку? – mskw

1

Извините за восстановление этой резьбы. им новые для нейронных сетей и им исследование влияния «мини-партии» обучения.

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

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

+0

Я бы не сказал, что определение, которое я дал, устарело, а только стандартный случай. Ради понятности я не включал все исключения. Наиболее общим определением эпохи было бы назвать ее циклом итерации, в которой обучается набор учебных образцов. – runDOSrun

+0

true. Я имел отношение к точке обновления эпохи. но yup. вы дали хороший ответ пользователю2162652 –

12

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

Эпоха является один вперед мимо и один пас назад из все примеры обучения.

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

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