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

Вид материалаДокументы
C414. poststd
C415. postreg
C417. tramnmx
C417. trastd
Подобный материал:
1   ...   23   24   25   26   27   28   29   30   ...   33

C414. POSTSTD


В этом примере сначала с помощью функции prestd выполняется масштабирование обучающей последовательности к нормальному закону распределения с параметрами [0 1], затем создается и обучается нейронная сеть прямой передачи, выполняется ее моделирование и восстановление выхода с помощью функции poststd.

p = [-0.92 0.73 -0.47 0.74 0.29; -0.08 0.86 -0.67 -0.52 0.93];

t = [-0.08 3.40 -0.82 0.69 3.10];

[pn,meanp,stdp,tn,meant,stdt] = prestd(p,t);

net = newff(minmax(pn),[5 1],{'tansig' 'purelin'},'trainlm');

net = train(net,pn,tn); grid on

an = sim(net,pn)


TRAINLM, Epoch 0/100, MSE 2.34864/0, Gradient 9.59914/1e-010

TRAINLM, Epoch 4/100, MSE 1.24883e-022/0, Gradient 4.57729e-011/1e-010

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


an =

Columns 1 through 4

-0.7049 1.1285 -1.0947 -0.2992

Column 5

0.9704

a = poststd(an,meant,stdt)


a =

Columns 1 through 4

-0.0800 3.4000 -0.8200 0.6900

Column 5

3.1000

C415. POSTREG


В данном примере с помощью функции prestd нормализуется множество обучающих данных, на нормализованных данных вычисляются главные составляющие преобразования, создается и обучается сеть, используя pca данные, сеть моделируется. Затем выход сети с помощью функции poststd денормализуется и вычисляется линейная регрессия между выходом (ненормализованным) сети и целями, чтобы проверить качество обучения сети.

P = [-0.92 0.73 -0.47 0.74 0.29; -0.08 0.86 -0.67 -0.52 0.93];

T = [-0.08 3.40 -0.82 0.69 3.10];

[pn,meanp,stdp,tn,meant,stdt] = prestd(P,T);

[ptrans,transMat] = prepca(pn,0.02);

net = newff(minmax(ptrans),[5 1],{'tansig' 'purelin'},'trainlm');

net = train(net,ptrans,tn); grid on

an = sim(net,ptrans)


TRAINLM, Epoch 0/100, MSE 1.06854/0, Gradient 6.56843/1e-010

TRAINLM, Epoch 4/100, MSE 7.84424e-030/0, Gradient 3.04851e-015/1e-010

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


an =

Columns 1 through 4

-0.7049 1.1285 -1.0947 -0.2992

Column 5

0.9704

a = poststd(an,meant,stdt)


a =

Columns 1 through 4

-0.0800 3.4000 -0.8200 0.6900

Column 5

3.1000


figure(1), clf

[m,b,r] = postreg(a,t), grid on % Рис.11.61


m =

1.0000

b =

5.0387e-016

r =

1

C417. TRAMNMX


Следующие операторы масштабируют обучающую последовательность к диапазону [-1 1], формируют и обучают нейронную сеть прямой передачи

p = [-10 -7.5 -5 -2.5 0 2.5 5 7.5 10];

t = [0 7.07 -10 -7.07 0 7.07 10 7.07 0];

[pn,minp,maxp,tn,mint,maxt] = premnmx(p,t);

net = newff(minmax(pn),[5 1],{'tansig' 'purelin'},'trainlm');

net = train(net,pn,tn); grid on


TRAINLM, Epoch 0/100, MSE 0.685331/0, Gradient 10.0713/1e-010

TRAINLM, Epoch 10/100, MSE 6.32948e-022/0, Gradient 4.72377e-011/1e-010

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

Если в дальнейшем к обученной сети будут приложены новые входы, то они должны быть масштабированы с помощью функции tramnmx. Выход сети должен быть восстановлен с помощью функции postmnmx.

p2 = [4 -7]; pn = tramnmx(p2,minp,maxp);

an = sim(net,pn)


an =

0.9440 0.0067

a = postmnmx(an,mint,maxt)


a =

9.4399 0.0671

C417. TRASTD


Следующие операторы масштабируют обучающую последовательность к нормальному закону распределения с параметрами [0 1], формируют и обучают нейронную сеть прямой передачи

p = [-0.92 0.73 -0.47 0.74 0.29; -0.08 0.86 -0.67 -0.52 0.93];

t = [-0.08 3.4 -0.82 0.69 3.1];

[pn,meanp,stdp,tn,meant,stdt] = prestd(p,t);

net = newff(minmax(pn),[5 1],{'tansig' 'purelin'},'trainlm');

net = train(net,pn,tn); grid on


TRAINLM, Epoch 0/100, MSE 4.09289/0, Gradient 14.841/1e-010

TRAINLM, Epoch 5/100, MSE 5.42342e-032/0, Gradient 1.24667e-015/1e-010

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


Если в дальнейшем к обученной сети будут приложены новые входы, то они должны быть масштабированы с помощью функции trastd. Выход сети должен быть восстановлен с помощью функции poststd.

p2 = [1.5 -0.8; 0.05 -0.3];

pn = trastd(p2,meanp,stdp);

an = sim(net,pn)


an =

1.1259 -0.9903

a = poststd(an,meant,stdt)


a =

3.3951 -0.6218