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

Вид материалаДокументы
С348. traingdm
С351. traingdx
C353. trainrp
C356. traincgf
Подобный материал:
1   ...   15   16   17   18   19   20   21   22   ...   33

С348. TRAINGDM


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

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

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

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

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

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

net.trainParam.epochs = 500; net.trainParam.goal = 0.01;

net.trainParam.lr = 0.1;

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


TRAINGDM, Epoch 0/500, MSE 0.394818/0.01, Gradient 0.718973/1e-010

TRAINGDM, Epoch 25/500, MSE 0.0108355/0.01, Gradient 0.024793/1e-010

TRAINGDM, Epoch 50/500, MSE 0.0103841/0.01, Gradient 0.0266315/1e-010

TRAINGDM, Epoch 59/500, MSE 0.00994986/0.01, Gradient 0.0249995/1e-010

TRAINGDM, Performance goal met.

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

Y = sim(net,P)

Y =

Columns 1 through 4

0.0741 0.0436 0.1312 0.8831

Columns 5 through 6

0.8964 0.8965

С351. TRAINGDX


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

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

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

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

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

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

net.trainParam.epochs = 500; net.trainParam.goal = 0.01;

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


TRAINGDX, Epoch 0/500, MSE 0.416432/0.01, Gradient 0.61579/1e-006

TRAINGDX, Epoch 25/500, MSE 0.30052/0.01, Gradient 0.457879/1e-006

TRAINGDX, Epoch 50/500, MSE 0.125779/0.01, Gradient 0.353204/1e-006

TRAINGDX, Epoch 75/500, MSE 0.0136136/0.01, Gradient 0.0293882/1e-006

TRAINGDX, Epoch 90/500, MSE 0.00995653/0.01, Gradient 0.0227043/1e-006

TRAINGDX, Performance goal met.

Выведем график изменения параметра скорости настройки в процессе обучения:

figure(2), clf, plot(TR.lr, 'LineWidth',2), grid on

title('Параметр скорости настройки')

xlabel('Число циклов')

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

Y = sim(net,P)


Y =

Columns 1 through 4

0.0796 0.0404 0.1178 0.8777

Columns 5 through 6

0.8928 0.8929

C353. TRAINRP


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

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

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

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

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

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

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

net.trainParam.goal = 0.01;

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


TRAINRP, Epoch 0/50, MSE 0.46999/0.01, Gradient 0.140837/1e-006

TRAINRP, Epoch 9/50, MSE 0.00869996/0.01, Gradient 0.0321288/1e-006

TRAINRP, Performance goal met.

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

Y = sim(net,P)


Y =

Columns 1 through 4

0.0365 0.0340 0.0686 0.8333

Columns 5 through 6

0.9065 0.9079

Алгоритмы метода сопряженных градиентов

C356. TRAINCGF


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

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

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

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

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

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

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

net.trainParam.goal = 0.001;

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


TRAINCGF-srchcha, Epoch 0/50, MSE 0.165524/0.001, Gradient 0.293981/1e-006

TRAINCGF-srchcha, Epoch 6/50, MSE 0.000964101/0.001, Gradient 0.00271925/1e-006

TRAINCGF, Performance goal met.

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

Y = sim(net,P)


Y =

Columns 1 through 4

0.0077 0.0121 0.0524 0.9579

Columns 5 through 6

0.9760 0.9780