Двуслойная сеть обратного распространения Скрытый слой j xv1 wv(11) wv(12) wv(21) Вых k Yv1 -------->O--->[ ]------->[ ]----------------->[Ev1] xv2 wv(1n)X\/wv(n1) \ \kv(11) Yvn <--Ошибка 1-+ ...----->O-X->[ ]---\--->[ ]----------------->[Ev2] xvn wv(2n)X/\wv(n2) wv(22)kv(12) Yvn <Ошибка 2---+ -------->O--->[ ]------->[ ]-----------------n[Evn] wv(nn) kv(1n) Ошибка n| <-----------+ Целью обучения сети является такая подстройка весовых коэффициентов, чтобы приложение некоторого множества входов приводило к требуемому множеству выходов. Предполагается, что для каждого входного вектора существует парный ему целевой вектор, определяющий требуемый ему выход. Перед началом обучения всем весам должны быть присвоены небольшие начальные значения, которые выбираются случайным образом. Алгоритм обратного распространения ошибки (пошагово): проход вперёд [ 1) выбрать очередную обучающую пару из обучающего множества, подать входной вектор на вход сети; 2) вычислить выход сети; ] 3) вычислить разность между выходом сети и целевым выходом обучающей пары; 4) подкорректировать веса таким образом, чтобы минимизировать ошибку; 5) повторять пункты 1--4 для каждого вектора обучающего множества, пока ошибка на всём множестве не достигнет приемлемого уровня.. Вычисления выполняются послойно. Сначала вычисляются выходы нейронов слоя j, которые являются соответствующими входами следующего слоя k; выходы нейронов слоя k определяют текущий выход. Рассматриваем проход вперёд. Вычисление производится послойно. Величина s каждого нейрона первого слоя.вычисляется как взвешенная сумма входов нейронов. Затем активационная функция сжимает s=(SIGMA)v(i=1)^nxviwvi и выдаёт величину Y для каждого нейрона. Когда множество выходов слоя получено, оно является входным множеством для следующего слоя. Обратный проход. Для выходов скрытых слоёв не заданы целевые значения. Для каждого нейрона выходного слоя задано целевое значение и подстройка весовых коэффициентов осуществляется с использованием модифицированного (delta)-правила. Рассматривается процесс обучения для одного весового коэффициента от нейрона p в скрытом слое j к нейрону q в выходном слое k. Выход нейрона слоя k, вычитаясь из целевого значения, выдаёт сигнал ошибки. Этот сигнал ошибки умножается на производную сжимающей функции, вычисленную для этого нейрона слоя k, определяя таким образом величину (delta)=Y(1-Y)(Target-Y). Затем (delta) умножается на величину Y нейрона j, из которого выходит рассматриваемый вес. Это произведение, в свою очередь, умножается на коэффициент скорости обучения, который принимает обычно значения от 0.01 до 1, и результат прибавляется к весу. Такая процедура выполняется для каждого веса от нейрона скрытого слоя к нейрону в выходному слою. (DELTA)wv(pq,k)=(eta)(delta)v(q,k)Yv(p,j) wv(pq,k)(n+1)=wv(pq,k)(n)+(DELTA)wv(pq,k) , где wv(pq,k)(n) --- величина веса от нейрона p в скрытом слое к нейрону q в выходном слое (до коррекции), k --- тот слой, в котором заканчивается данный вес,.wv(pq,k)(n+1) --- величина веса после коррекции, (delta)v(q,k) --- величина (delta) для нейрона q в выходном слое k, Yv(p,j) --- величина Y для нейрона p в скрытом слое j.