Notebook "нейронные сети" Глава 2

Вид материалаДокументы
C253. newlind
Многослойные сети. С255. NEWFF
C258. newfftd
C260. newcf
Подобный материал:
1   ...   6   7   8   9   10   11   12   13   ...   33

C253. NEWLIND


Требуется сформировать линейный слой, который обеспечивает для заданного входа P выход, близкий к цели T, если заданы следующие обучающие последовательности

P = 0:3; T = [0.0 2.0 4.1 5.9];

Анализ данных подсказывает, что требуется найти аппроксимирующую кривую, которая близка к зависимости t = 2p. Применение линейного слоя LIND в данном случае вполне оправдано.

net = newlind(P,T); gensim(net) % Рис.11.11

Значения весов и смещений равны

net.IW{1}, net.b{1}

ans =

1.9800

ans =

0.0300

Выполним моделирование сформированного линейного слоя

Y = sim(net,P)

Y =

0.0300 2.0100 3.9900 5.9700

Многослойные сети.

С255. NEWFF


Создать нейронную сеть, чтобы обеспечить следующее отображение последовательности входа P в последовательность целей T:

P = [0 1 2 3 4 5 6 7 8 9 10]; T = [0 1 2 3 4 3 2 1 2 3 4];

Архитектура нейронной сети: двухслойная сеть с прямой передачей сигнала; первый слой - 5 нейронов с функцией активации tansig; второй слой - 1 нейрон с функцией активации purelin; диапазон изменения входа [0 10].

net = newff([0 10],[5 1],{'tansig' 'purelin'});

gensim(net)

Выполним моделирование сети и построим графики сигналов выхода и цели:

Y = sim(net,P); figure(1), clf

plot(P, T, P, Y, 'o'), grid on %Рис.11.13

Обучим сеть в течение 50 циклов:

net.trainParam.epochs = 50;

net = train(net,P,T);

TRAINLM, Epoch 0/50, MSE 0.0154002/0, Gradient 0.190957/1e-010

TRAINLM, Epoch 25/50, MSE 0.0153319/0, Gradient 0.0398632/1e-010

TRAINLM, Epoch 50/50, MSE 0.0153054/0, Gradient 0.017265/1e-010

TRAINLM, Maximum epoch reached, performance goal was not met.

Выполним моделирование сформированной двухслойной сети, используя обучающую последовательность входа

Y = sim(net,P);

figure(2), clf, plot(P,T,P,Y,'o'), grid on % Рис.11.15

C258. NEWFFTD


Создать нейронную сеть, чтобы обеспечить следующее отображение последовательности входа P в последовательность целей T:

P = {1 0 0 1 1 0 1 0 0 0 0 1 1 0 0 1};

T = {1 -1 0 1 0 -1 1 -1 0 0 0 1 0 -1 0 1};

Архитектура нейронной сети: двухслойная сеть с прямой передачей сигнала и линией задержки [0 1]; первый слой - 5 нейронов с функцией активации tansig; второй слой - 1 нейрон с функцией активации purelin; диапазон изменения входа [0 10].

net = newfftd([0 1],[0 1],[5 1],{'tansig' 'purelin'});

gensim(net)

Обучим сеть в течение 50 циклов и промоделируем, используя в качестве теста обучающую последовательность входа:

net.trainParam.epochs = 50;

net = train(net,P,T); Y = sim(net,P)

TRAINLM, Epoch 0/50, MSE 3.10515/0, Gradient 40.7492/1e-010

TRAINLM, Epoch 4/50, MSE 5.31364e-031/0, Gradient 1.09916e-014/1e-010

TRAINLM, Minimum gradient reached, performance goal was not met.


Y =

Columns 1 through 3

[1] [-1.0000] [-3.8858e-016]

Columns 4 through 6

[1] [1.9429e-015] [-1.0000]

Columns 7 through 9

[1] [-1.0000] [-3.8858e-016]

Columns 10 through 11

[-3.8858e-016] [-3.8858e-016]

Columns 12 through 14

[1] [1.9429e-015] [-1.0000]

Columns 15 through 16

[-3.8858e-016] [1]

C260. NEWCF


Создать каскадную нейронную сеть, чтобы обеспечить следующее отображение последовательности входа P в последовательность целей T:

P = [0 1 2 3 4 5 6 7 8 9 10]; T = [0 1 2 3 4 3 2 1 2 3 4];

Архитектура нейронной сети: каскадная двухслойная сеть с прямой передачей сигнала; первый слой - 5 нейронов с функцией активации tansig; второй слой - 1 нейрон с функцией активации purelin; диапазон изменения входа [0 10].

net = newcf([0 10],[5 1],{'tansig' 'purelin'});

gensim(net)

Обучим сеть в течение 50 циклов:

net.trainParam.epochs = 50; net = train(net,P,T);


TRAINLM, Epoch 0/50, MSE 3.01162/0, Gradient 96.4205/1e-010

TRAINLM, Epoch 19/50, MSE 1.63682e-024/0, Gradient 1.1003e-012/1e-010

TRAINLM, Minimum gradient reached, performance goal was not met.

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

Y = sim(net,P);

figure(1), clf, plot(P,T,P,Y,'or'), grid on

Радиальные базисные сети