Алгоритм обратного распространения ошибки.

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

Геометрическая интерпретация алгоритма обратного распространения ошибки.

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

1. выбор начального приближения для синоптических весов.

2. выбор величины шага.

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