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

Вид материалаДокументы
С401. learnhd
С404. srchgol
С405. srchbre
С406. srchhyb
С408. srchcha
Подобный материал:
1   ...   21   22   23   24   25   26   27   28   ...   33

С401. LEARNHD


Определим сеть со случайными входом P, выходом A и весами W для слоя с 2-элементным входом и тремя нейронами; зададим также параметры скорости настройки lr и затухание dr.

p = rand(2,1); a = rand(3,1); w = rand(3,2);

lp.lr = 0.5; lp.dr = 0.05;

Вызов функции learnhd можно организовать следующим образом, поскольку не все входные аргументы требуются для вызова этой функции:

dW = learnhd(w,p,[],[],a,[],[],[],[],[],lp,[])


dW =

0.0736 0.0618

0.0317 0.0187

0.1174 0.0576

Функции одномерного поиска

С404. SRCHGOL


Заданы векторы входа p и целей t, требуется сформировать нейронную сеть, выходы которой близки к заданным целям:

p = [0 1 2 3 4 5]; t = [0 0 0 1 1 1];

Выберем архитектуру двухслойной сети с прямой передачей сигнала; зададим диапазон входов от 0 до 10, первый слой имеет 2 нейрона с функцией активации tansig, второй – 1 нейрон с функцией активации logsig. Используем функции обучения traincgf и поиска одномерного экстремума srchgol.

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

net.trainParam.searchFcn = 'srchgol';

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

net.trainParam.goal = 0.0001;

net = train(net,p,t); grid on

a = sim(net,p)

TRAINCGF-srchgol, Epoch 0/50, MSE 0.486862/0.0001, Gradient 0.0813759/1e-006

TRAINCGF-srchgol, Epoch 9/50, MSE 1.90795e-010/0.0001, Gradient 1.77906e-008/1e-006

TRAINCGF, Performance goal met.


a =

Columns 1 through 4

0.0000 0.0000 0.0000 1.0000

Columns 5 through 6

1.0000 1.0000

С405. SRCHBRE


Заданы векторы входа p и целей t, требуется сформировать нейронную сеть, выходы которой близки к заданным целям:

p = [0 1 2 3 4 5]; t = [0 0 0 1 1 1];

Выберем архитектуру двухслойной сети с прямой передачей сигнала; зададим диапазон входов от 0 до 10, первый слой имеет 2 нейрона с функцией активации tansig, второй – 1 нейрон с функцией активации logsig. Используем функции обучения traincgf и поиска одномерного экстремума srchbre.

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

net.trainParam.searchFcn = 'srchbre';

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

net.trainParam.goal = 0.0001;

net = train(net,p,t); grid on

a = sim(net,p)


TRAINCGF-srchbre, Epoch 0/50, MSE 0.464364/0.0001, Gradient 0.0566042/1e-006

TRAINCGF-srchbre, Epoch 10/50, MSE 0.000607763/0.0001, Gradient 0.00140522/1e-006

TRAINCGF-srchbre, Epoch 15/50, MSE 7.54063e-005/0.0001, Gradient 0.000251973/1e-006

TRAINCGF, Performance goal met.


a =

Columns 1 through 4

0.0023 0.0027 0.0156 0.9861

Columns 5 through 6

0.9986 0.9989

С406. SRCHHYB


Заданы векторы входа p и целей t, требуется сформировать нейронную сеть, выходы которой близки к заданным целям:

p = [0 1 2 3 4 5]; t = [0 0 0 1 1 1];

Выберем архитектуру двухслойной сети с прямой передачей сигнала; зададим диапазон входов от 0 до 10, первый слой имеет 2 нейрона с функцией активации tansig, второй – 1 нейрон с функцией активации logsig. Используем функции обучения traincgf и поиска одномерного экстремума srchhyb.

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

net.trainParam.searchFcn = 'srchhyb';

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

net.trainParam.goal = 0.0001;

net = train(net,p,t); grid on

a = sim(net,p)


TRAINCGF-srchhyb, Epoch 0/50, MSE 0.297493/0.0001, Gradient 0.211072/1e-006

TRAINCGF-srchhyb, Epoch 7/50, MSE 6.47144e-016/0.0001, Gradient 3.86955e-014/1e-006

TRAINCGF, Performance goal met.


a =

Columns 1 through 4

0.0000 0.0000 0.0000 1.0000

Columns 5 through 6

1.0000 1.0000

С408. SRCHCHA


Заданы векторы входа p и целей t, требуется сформировать нейронную сеть, выходы которой близки к заданным целям:

p = [0 1 2 3 4 5]; t = [0 0 0 1 1 1];

Выберем архитектуру двухслойной сети с прямой передачей сигнала; зададим диапазон входов от 0 до 10, первый слой имеет 2 нейрона с функцией активации tansig, второй – 1 нейрон с функцией активации logsig. Используем функции обучения traincgf и поиска одномерного экстремума srchcha.

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

net.trainParam.searchFcn = 'srchcha';

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

net.trainParam.goal = 0.0001;

net = train(net,p,t); grid on

a = sim(net,p)


TRAINCGF-srchcha, Epoch 0/50, MSE 0.466016/0.0001, Gradient 0.054143/1e-006

TRAINCGF-srchcha, Epoch 9/50, MSE 8.2629e-005/0.0001, Gradient 0.000961218/1e-006

TRAINCGF, Performance goal met.


a =

Columns 1 through 4

0.0084 0.0090 0.0185 0.9996

Columns 5 through 6

1.0000 1.0000