Нейронные сети и нейроконтроллеры. Бураков М.В. - 59 стр.

UptoLike

Составители: 

59
Так как e
2
> e
2
min
, итерации должны быть продолжены.
Рассмотрим реализацию этого простого примера в MatLab:
>> p=[–1 1; 1 1; –1 –1];
>> t=[–1 1];
>> net=newlin([–1 1; –1 1; –1 1],1);
>> net.trainParam.goal=0.1;
>> [net,tr]=train(net,p,t);
TRAINB, Epoch 0/100, MSE 1/0.
TRAINB, Epoch 25/100, MSE 0.36417/0.
TRAINB, Epoch 50/100, MSE 0.13262/0.
TRAINB, Epoch 75/100, MSE 0.048296/0.
TRAINB, Epoch 100/100, MSE 0.0175879/0.
TRAINB, Maximum epoch reached.
Работа закончена по достижении заданного числа эпох (100),
хотя требуемое качество обучения еще не достигнуто.
Заметим, что для линейной нейронной сети справедливы те же
ограничения, что и для персептрона, т. е. обучающие данные долж-
ны быть линейно разделимы.
При обучении ИНС с помощью процедуры train можно указы-
вать точность (ошибку) обучения и число эпох обучения. Например,
>> p = [2 1 –2 –1;2 –2 2 1]; t = [0 1 0 1];
>> net = newlin( [–2 2; –2 2],1);
>> net.trainParam.goal= 0.1;
>> net.trainParam.epochs = 60;
>> net = train(net,p,t);
На рис. 2.16 показано, как меняется среднеквадратическая
ошибка в процессе обучения, приближаясь к заданному порогу.
Многослойные линейные сети не имеют смысла, так как подоб-
ная сеть всегда преобразуется в однослойную. Для доказательства
этого тезиса рассмотрим пример линейной нейронной сети, приве-
денный на рис. 2.17.
Можно записать
y
1
= x
1
w
11
+ x
2
w
21
+ b
1
,
y
2
= x
1
w
12
+ x
2
w
22
+ b
2
,
z = y
1
v
1
+ y
2
v
2
+ b
3
= (x
1
w
11
+ x
2
w
21
+ b
1
) v
1
+
+ (x
1
w
12
+ x
2
w
22
+ b
2
) v
2
+ b
3
= x
1
(w
11
v
1
+ w
12
v
2
) +
+ x
2
(w
21
v
1
+ w
22
v
2
) + b
1
v
1
+ b
2
v
2
+ b
3
= x
1
q
11
+ x
2
q
21
+ b,
где q
11
= w
11
v
1
+ w
12
v
2
; q
21
= w
21
v
1
+ w
22
v
2
; b = b
1
v
1
+ b
2
v
2
+ b
3
.