Словарь Задача коммивояжёра Сеть Каскадной Корреляции

Обратное распространение ошибки

Андрей Орлов  2010-11-23 07:47

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

Словарь

Основная форма:Метод обратного распространения ошибки
Предметная область::
NeuralNetwork
Синонимы:
Обратное распространение ошибки, backprop, back propagation
Метод обратного распространения ошибки на вики
Обратное распространение ошибки

Обратное распространение ошибки

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

Описание алгоритма

Обратное распространение ошибки применяется к многослойным сетям, нейроны которых имеют нелинейность с непрерывной производной, например такую:

frm_sigmoid.png/smartimagecontainer/article/get

Нелинейность такого вида удобна простотой расчета производной:

frm_sigmoid_der.png/smartimagecontainer/article/get

Для обучения сети используется P пар векторов сигналов: входной вектор I и вектор, который должен быть получен на выходе сети D. Сеть, в простом случае, состоит из N слоев, причем каждый нейрон последующего слоя связан со всеми нейронами предыдущего слоя связями, с весами w [n] .

При прямом распространении, для каждого слоя рассчитывается (и запоминается) суммарный сигнал на выходе слоя (S [n] ) и сигнал на выходе нейрона. Так, сигнал на входе i-го нейрона n-го слоя:

frm_summator.png/smartimagecontainer/article/get

Здесь w (i,j) - веса связей n-го слоя. Сигнал на выходе нейрона рассчитывается применением к суммарному сигналу нелинейности нейрона:

frm_nonlinear.png/smartimagecontainer/article/get

Сигнал выходного слоя x [N] считается выходным сигналом сети O.

По выходному сигналу сети O и сигналу D, который должен получится на выходе сети для данного входа, рассчитываться ошибка сети. Обычно используется средний квадрат отклонения по всем векторам обучающей выборки:

frm_sqerr.png/smartimagecontainer/article/get

Для обучения сети используется градиент функции ошибки по весам сети. Алгоритм обратного распространения предполагает расчет градиента функции ошибки "обратным распространением сигнала" ошибки. Тогда частная производная ошибки по весам связей рассчитывается по формуле:

frm_grad.png/smartimagecontainer/article/get

Здесь δ - невязка сети, которая для выходного слоя рассчитывается по функции ошибки:

frm_delta_out.png/smartimagecontainer/article/get

А для скрытых слоев - по невязке предыдущего слоя:

frm_delta_hidden.png/smartimagecontainer/article/get

Для случая сигмоидной нелинейности и среднего квадрата отклонения как функции ошибки:

frm_delta_out_sq.png/smartimagecontainer/article/get
frm_delta_hidden_sig.png/smartimagecontainer/article/get

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

frm_hillclimbing.png/smartimagecontainer/article/get

Такой метод обучения называется "оптимизация методом градиентного спуска" и, в случае нейросетей, часто считается частью метода обратного распространения ошибки.

Методы обучения

Другие известные методы, основанные на обратном распространении ошибки:

quickprop
Аппроксимация сечения поверхности ошибки вдоль градиента параболой, и выбор шага таким образом, чтобы достичь минимума за один шаг, метод позволяет ускорить сходимость за счет оптимального выбора шага;
вероятностный backprop
Шаг оптимизации выбирается случайным образом из облака, рассеяного вдоль вектора градиента. По мере обучения дисперсия рассеивания искусственно снижается, метод позволяет избежать ловушки локального минимума и найти более оптимальное решение за меньшее время;

Топология сетей

Метод обратного распространения ошибки может применяться для обучения не только сетей с простейшей многослойной топологией, но и для сетей с черезслойными и обратными связями. Сети с обратными связями, т.н. рекуррентные сети, обладают внутренним состоянием и их отклик зависит не только от входного вектора, но и от предыдущих входных векторов. Такие сети используются в обработке сигналов и предсказании временных последовательностей. Расширение обратного распространение ошибки для рекуррентных сетей называется "обратное распространение ошибки сквозь время" (back propagation through time).

Эпицентр Zope3 Учат тут DreamBot Репозиторий Статистика Редакторам
Официальный сайт Zope3 Московская группа изучения реактивного движения The Dream Bot Site