Вопрос

Недавно я изучал сеть обратного распространения и выполнил несколько ручных упражнений. После этого я придумал вопрос (возможно, не имеет смысла): есть ли что -то важное в следующих двух различных методах замены: 1. Покварная обучение: веса сразу обновляются после того, как все дельта Wij будут известны, и прежде чем представить Следующий учебный вектор. 2. Обучение партии: Delta WIJ вычисляются и хранятся для каждого образца -обучающего вектора. Тем не менее, Delta Wij не сразу же используются для обновления весов. Обновление веса выполняется в конце эпохи тренировок.

Я гуглил некоторое время, но не нашел никаких результатов.

Это было полезно?

Решение

Так что вы имеете в виду два режима для выполнения градиентного изучения происхождения. В режиме пакетного режима изменения в матрице веса накапливаются в течение всей презентации обучающего набора данных (одна «эпоха»); Онлайн -обучение обновляет вес после презентации каждого вектора, включающего набор обучения.

Я считаю, что согласие является то, что онлайн -обучение превосходит, потому что он сходится намного быстрее (большинство исследований сообщают о не очевидных различиях в точности). (См. EG, Рэндалл Уилсон и Тони Мартинес, Общая неэффективность партийного обучения для обучения градиентному спусканию, В Нейронные сети (2003).

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

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

Партийное обучение, как правило, является «по умолчанию» (чаще всего используется в учебниках ML и т. Д.), И нет ничего плохого в том, чтобы использовать его, если он сходится в ваши приемлемые временные рамки. Опять же, разница в производительности (разрешение или точность классификации) невелика или незначительна.

Другие советы

Да, есть разница между этими двумя методами. Дельты, которые вычисляются, являются функцией входного вектора и веса сети. Если вы измените вес, дельты, которые вычисляются из следующего входного вектора, будут отличаться от того, что если вы не изменили веса.

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top