logo
СППР_Часть1

3) Создание новой нейронной сети и ее обучение

Следующий оператор создает сеть с прямой передачей сигнала

net=newff(PR,[S1 S2...SNl],{TF1 TF2...TFNl},BTF,BLF,PF)

PR – матрица R x 2 – min и max значений для R входных элементов;

Si – количество нейронов на i-ом слое;

TFi – функции активации для i-го слоя, default = 'tansig' ;

BTF – функция обучения, default = 'traingdx';

BLF – функция для весов, default = 'learngdm';

PF – целевая функция, default = 'mse'.

Пример:

P = [0 1 2 3 4 5 6 7 8 9 10]; % Входные сигналы

T = [0 1 2 3 4 3 2 1 2 3 4]; % Выходные сигналы

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

net.trainParam.show=50; % показывать ошибку обучения через каждые 50 эпох

net.trainParam.epochs=300; % max кол-во эпох - 300

net.trainParam.goal=1e-5; % сеть обучается, пока ошибка не станет <=1e-5

[net,tr]=train(net,P,T); % обучение сети

t1=sim(net,P); %вычислить выходные сигналы по входящим

Эта сеть использует один вектор входа с одним элементом, имеющим допустимые границы значений [0 10];

- имеет 2 слоя с 5 нейронами в первом слое и 1 нейроном во втором слое;

- используемые функции активации: tansig - в первом слое, purelin – во втором слое;