Содержание обучения технологии нейронных сетей
Рис. 2
Однослойные сети имеют один слой вычисляющих нейронов, обозначаемых квадратами. Слой нейронов, обозначенных кругами, служит лишь для распределения входных сигналов и поэтому не учитывается при подсчете слоев нейронной сети. Нейронная сеть имеет m входов и n выходов.
Значения входов X можно обозначить одномерным массивом X, а значения выходов одномерным массивом Y.
Каждый элемент из множества входов X соединен отдельным весом с каждым искусственным нейроном. А каждый искусственный нейрон дает взвешенную сумму входов.
Будем считать веса элементами двумерного массива W размерностью m*n. Например, W[3, 2] – это вес, связывающий третий вход со вторым нейроном.
Значения выходов для нейронной сети определяются по формулам:
Y[1] = f (X[1] * W[1, 1] + X[2] * W[2, 1] + … + X[m] * W[m, 1]);
Y[2] = f (X[1] * W[1, 2] + X[2] * W[2, 2] + … + X[m] * W[m, 2]);
…
Y[n] = f (X[1] * W[1, n] + X[2] * W[2, n] + … + X[m] * W[m, n]).
f – это активационная функция.
Пример. Рассчитать значения выходов для данной нейронной сети
Рис 3.
при входных значениях X[1]=6.3, X[2]=-3, X[3]=5.
Активационную функцию принять пороговой, где значение порога равно 10.
Значения весов:
W[1,1]=0.5; W[1,2]=7;
W[2,1]=-7; W[2,2]=4.5;
W[3,1]=15; W[3,2]=-10;
Решение:
Y[1]= f (6.3*0.5 + (-3)*(-7)+5*15)= f (3.15+21+75) = f (99.15) = 1;
Y[2]= f (6.3*7+(-3)*4.5+5*(-10))= f (44.1-13.5-50) = f (-19.4) = 0;
Т.е. значения выходов данной сети Y[1] и Y[2] равны 1 и 0 соответственно.
Задание на дом. Рассчитать значения выходов для данной сети при входных значениях X[1]=2; X[2]=1; X[3]=-1.
Однослойные персептроны обладают малыми вычислительными возможностями, что ограничивает их использование. Более крупные и сложные нейронные сети обладают, как правило, и большими вычислительными способностями.
Многослойные сети (персептроны) – сети, в которых каждый нейрон слоя связан с каждым нейроном следующего слоя. Многослойные сети рассмотрим на примере двухслойной сети.
Рис. 4
Элементы первого входного слоя не обрабатывают, а только принимают информацию и распространяют ее далее по сети. Значения входов, количество которых равно m обозначим одномерным массивом X. Далее входная информация поступает на внутренний слой. Веса всех нейронов этого слоя формируют двумерный массив W размерностью m*n. Значения выходов внутреннего слоя формируют одномерный массив Z с количеством элементов равным n. Из внутреннего слоя информация поступает на выходной слой. Веса всех нейронов выходного слоя формируют двумерный массив K размерностью n*p. Значения выходов внешнего слоя формируют массив Y с количеством элементов равным p.
Данная сеть имеет m входов и p выходов. Данная сеть является двухслойная, потому что только два слоя нейронов обрабатывают информацию.
Значения выходов нейронов скрытого слоя определяются по формулам
Z[1] = f (X[1] * W[1, 1] + X[2] * W[2, 1] + … + X[m] * W[m, 1]);
Z[2] = f (X[1] * W[1, 2] + X[2] * W[2, 2] + … + X[m] * W[m, 2]);
…
Z[n] = f (X[1] * W[1, n] + X[2] * W[2, n] + … + X[m] * W[m, n]).
Значения выходов нейронов выходного слоя определяются по формулам
Y[1] = f (Z[1] * K[1, 1] + Z[2] * K[2, 1] + … + Z[n] * K[n, 1]);
Y[2] = f (Z[1] * K[1, 2] + Z[2] * K[2, 2] + … + Z[n] * K[n, 2]);
…
Y[n] = f (Z[1] * K[1, p] + Z[2] * K[2, p] + … + Z[n] * K[n, p]).
Пример. Рассчитать значения выходов для данной нейронной сети
Рис 5.
при входных значениях X[1]=2, X[2]=-5.
Активационную функцию принять пороговой, где значение порога равно 0.
Значения весов для массива W:
W[1,1]=0.5; W[1,2]=-0.2; W[1,3]=0;
W[2,1]=-1; W[2,2]=1.8; W[2,3]=0.3;
для массива K:
K[1,1]=2; K[1,2]=0;
K[2,1]=0.4; K[2,2]=-1;
K[3,1]=-2; K[3,2]=4.2.
Решение
Вначале вычислим значения выходов нейронов скрытого слоя:
Z[1] = f (2 * 0.5 + (-5) * (-1)) = f (1+5) = f (6) = 1;
Z[2]= f (2 * (-0.2) + (-5) * 1.8) = f (-0.4 + (-9)) = f (-9.4) = 0;
Z[3]= f (2 * 0 + (-5) * 0.3) = f (0 +(-1.5)) = f (-1.5) = 0;
Далее вычислим значения выходов нейронов выходного слоя:
Y[1] = f (1 * 2 + 0 * 0.4 + 0 * (-2)) = f (2+0+0) = f(2) = 1;