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

Вид материалаДокументы
C358. traincgp
C361. traincgb
C363. trainscg
C365. trainbfg
Подобный материал:
1   ...   16   17   18   19   20   21   22   23   ...   33

C358. TRAINCGP


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

P = [0 1 2 3 4 5]; T = [0 0 0 1 1 1];

Поскольку соответствие между входом и целью носит явно выраженный нелинейный характер, то будем использовать нейронную сеть с нелинейными сигмоидальными функциями активации. Выберем двухслойную нейронную сеть с прямой передачей сигнала; в первом слое используем 2 нейрона с функцией активации tansig, а во втором - 1 нейрон с функцией активации logsig. Для обучения сети применим функцию traincgp.

Формирование сети:

net = newff([0 5],[2 1],{'tansig','logsig'},'traincgp');

Обучение сети:

net.trainParam.epochs = 50; net.trainParam.show = 10;

net.trainParam.goal = 0.001;

[net,TR] = train(net,P,T); grid on


TRAINCGP-srchcha, Epoch 0/50, MSE 0.394041/0.001, Gradient 0.721591/1e-006

TRAINCGP-srchcha, Epoch 4/50, MSE 0.00026955/0.001, Gradient 0.00334169/1e-006

TRAINCGP, Performance goal met.

Выполним моделирование сети:

Y = sim(net,P)


Y =

Columns 1 through 4

0.0062 0.0051 0.0374 0.9912

Columns 5 through 6

0.9938 0.9938

C361. TRAINCGB


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

P = [0 1 2 3 4 5]; T = [0 0 0 1 1 1];

Поскольку соответствие между входом и целью носит явно выраженный нелинейный характер, то будем использовать нейронную сеть с нелинейными сигмоидальными функциями активации. Выберем двухслойную нейронную сеть с прямой передачей сигнала; в первом слое используем 2 нейрона с функцией активации tansig, а во втором - 1 нейрон с функцией активации logsig. Для обучения сети применим функцию traincgb.

Формирование сети:

net = newff([0 5],[2 1],{'tansig','logsig'},'traincgb');

Обучение сети:

net.trainParam.epochs = 50; net.trainParam.show = 10;

net.trainParam.goal = 0.001;

[net,TR] = train(net,P,T); grid on


TRAINCGB-srchcha, Epoch 0/50, MSE 0.42501/0.001, Gradient 0.558356/1e-006

TRAINCGB-srchcha, Epoch 4/50, MSE 0.00025582/0.001, Gradient 0.00131645/1e-006

TRAINCGB, Performance goal met.

Выполним моделирование сети:

Y = sim(net,P)

Y =

Columns 1 through 4

0.0151 0.0150 0.0323 0.9950

Columns 5 through 6

0.9977 0.9977

C363. TRAINSCG


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

P = [0 1 2 3 4 5]; T = [0 0 0 1 1 1];

Поскольку соответствие между входом и целью носит явно выраженный нелинейный характер, то будем использовать нейронную сеть с нелинейными сигмоидальными функциями активации. Выберем двухслойную нейронную сеть с прямой передачей сигнала; в первом слое используем 2 нейрона с функцией активации tansig, а во втором - 1 нейрон с функцией активации logsig. Для обучения сети применим функцию trainscg.

Формирование сети:

net = newff([0 5],[2 1],{'tansig','logsig'},'trainscg');

Обучение сети:

net.trainParam.epochs = 50; net.trainParam.show = 10;

net.trainParam.goal = 0.001;

[net,TR] = train(net,P,T); grid on


TRAINSCG, Epoch 0/50, MSE 0.184004/0.001, Gradient 0.345587/1e-006

TRAINSCG, Epoch 10/50, MSE 0.00179225/0.001, Gradient 0.00384079/1e-006

TRAINSCG, Epoch 12/50, MSE 0.000755243/0.001, Gradient 0.00273395/1e-006

TRAINSCG, Performance goal met.

Выполним моделирование сети:

Y = sim(net,P)


Y =

Columns 1 through 4

0.0077 0.0129 0.0381 0.9526

Columns 5 through 6

0.9820 0.9830

Квазиньютоновы алгоритмы обучения

C365. TRAINBFG


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

P = [0 1 2 3 4 5]; T = [0 0 0 1 1 1];

Поскольку соответствие между входом и целью носит явно выраженный нелинейный характер, то будем использовать нейронную сеть с нелинейными сигмоидальными функциями активации. Выберем двухслойную нейронную сеть с прямой передачей сигнала; в первом слое используем 2 нейрона с функцией активации tansig, а во втором - 1 нейрон с функцией активации logsig. Для обучения сети применим функцию trainbfg.

Формирование сети:

net = newff([0 5],[2 1],{'tansig','logsig'},'trainbfg');

Обучение сети:

net.trainParam.epochs = 50; net.trainParam.show = 10;

net.trainParam.goal = 0.0001;

[net,TR] = train(net,P,T); grid on


TRAINBFG-srchbac, Epoch 0/50, MSE 0.475987/0.0001, Gradient 0.339126/1e-006

TRAINBFG-srchbac, Epoch 10/50, MSE 0.00426485/0.0001, Gradient 0.0770971/1e-006

TRAINBFG-srchbac, Epoch 13/50, MSE 5.71314e-006/0.0001, Gradient 0.000107212/1e-006

TRAINBFG, Performance goal met.

Выполним моделирование сети:

Y = sim(net,P)


Y =

Columns 1 through 4

0.0000 0.0000 0.0006 0.9944

Columns 5 through 6

0.9989 0.9990