Сделай Сам Свою Работу на 5

Функции моделирования сети

 

SIM Моделирование нейронной сети

Синтаксис:

[Y,Pf,Af,E,perf] = sim(net,P,Pi,Ai,T)

[Y,Pf,Af,E,perf] = sim(net,{Q TS},Pi,Ai,T)

[Y,Pf,Af,E,perf] = sim(net,Q,Pi,Ai,T)

Описание:

Функция [Y, Pf, Af E, perf] = sim(net, P, Pi, Ai, T) выполняет моделирование нейронной сети и имеет следующие входные и выходные аргументы.

Входные аргументы:

net – имя нейронной сети;

P – массив входов;

Pi – начальные условия на ЛЗ входов, по умолчанию нулевой вектор;

Ai – начальные условия на ЛЗ слоев, по умолчанию нулевой вектор;

T – вектор целей, по умолчанию нулевой вектор.

Выходные аргументы:

Y – массив выходов;

Pf – состояния на ЛЗ входов после моделирования;

Af – состояния на ЛЗ слоев после моделирования;

E – массив ошибок;

perf – значение функционала качества.

Заметим, что аргументы Pi, Ai, Pf и Af являются необязательными и применяются
в случае динамических сетей с ЛЗ.

Входные аргументы P и T могут иметь 2 формата: cell array и double array. Формат cell array наиболее прост для понимания и соответствует последовательному представлению данных.

Последовательное представление данных. Каждую строку массива ячеек можно рассматривать как временную последовательность, и тогда описание многомерной сети может быть выполнено следующим образом:

P – массив ячеек размера Ni´TS, каждый элемент которого P{i, ts} – числовой массив размера Ri´Q;

T – массив ячеек размера Nt´TS, каждый элемент которого P{i, ts} – числовой массив размера Vi´Q;

Pi –массив ячеек размера Ni´ID, каждый элемент которого Pi{i, k} – числовой массив размера Ri´Q;

Ai – массив ячеек размера Nl´LD, каждый элемент которого Ai{i, k} – числовой массив размера Si´Q;

Y – массив ячеек размера No´TS, каждый элемент которого Y{i, ts} – числовой массив размера Ui´Q;

Pf – массив ячеек размера Ni´ID, каждый элемент которого Pf{i, k} – числовой массив размера Ri´Q;

Af – массив ячеек размера Nl´LD, каждый элемент которого Af{i, k} – числовой массив размера Si´Q.

Параметры описания массивов ячеек и их связь с параметрами сети показаны в следующей таблице.

 

Параметр описания Параметр сети Назначение
Ni net.numInputs Количество векторов входа
Nl net.numLayers Количество слоев
No net.numOutputs Количество выходов
Nt net.numTargets Количество целевых выходов
ID net.numInputDelays Максимальное значение задержки на входе
TS   Число шагов по времени
Q   Количество реализаций для фиксированного момента времени
LD net.numLayerDelays Максимальные значения задержек для слоев
Ri net.inputs{i}.size Количество элементов i-го вектора входа
Si net.layers{i}.size Количество нейронов i-го слоя
Vi net.targets{i}.size Количество элементов i-го вектора цели
Ui net.outputs{i}.size Количество элементов i-го вектора выхода

 

Столбцы массивов начальных условий Pi, Pf, Ai, Af упорядочены следующим образом:

Pi{i, k} – значение начального условия для линии задержки i-го входа в момент времени ts = k – ID;

Pf{i, k} – значение начального условия для линии задержки i-го входа в момент времени ts = TS + k – ID;

Ai{i, k} – значение начального условия для линии задержки i-го слоя в момент времени ts = k – LD;

Af{i, k} – значение начального условия для линии задержки i-го слоя в момент времени ts = TS + k – LD.

Групповое представление данных можно использовать только при адаптации статических сетей (TS = 1). При этом следует помнить, что при переходе от формата последовательного представления данных cell array к формату группового представления double array массив ячеек, содержащий, например, Ni числовых массивов размера Ri´Q преобразуется
в единственный числовой массив размера ´Q.

Следующая таблица поясняет связь этих форм представления.

 

  Формат
Аргумент Cell array Double array
  Size(P) Size(P{I,1}) Size(P)
  P   Ni´1   Ri´Q
  T   Nt´1   Vi´Q
  Pi   Ni´ID   Ri´Q
  Ai   Nl´LD   Si´Q
  Y   No´1   Ui´Q
  Pf   Ni´ID   Ri´Q
  Af   Nl´LD   Si´Q

 

Функция [Y, Pf, Af, E, perf] = sim(net, {Q TS}, Pi, Ai, T) применяется для моделирования динамических сетей без входов при последовательном представлении данных.

Функция [Y, Pf, Af, E, perf] = sim(net, Q, Pi, Ai, T) применяется для моделирования динамических сетей без входов при групповом представлении данных.

Пример:

Создадим нейронную сеть персептрона с одним слоем и двухэлементным входом
с диапазоном значений [0 1] и одним нейроном:

net = newp([0 1;0 1],1);

Теперь можно промоделировать персептрон, подавая различные последовательности векторов входа: 1 вектор с двумя элементами, группа из двух векторов с тремя элементами, после­дова­тельность из трех векторов, что соответствует различным формам представления данных:

p1 = [.2; .9]; a1 = sim(net,p1)

p2 = [.2 .5 .1 ;.9 .3 .7]; a2 = sim(net,p2)

p3 = {[.2; .9] [.5; .3] [.1; .7]}; a3 = sim(net,p3)

a1 = 1

a2 = 1 1 1

a3 = [1] [1] [1]

В данном случае в качестве результата выводятся только выходы нейрона.

Создадим динамическую однослойную линейную сеть с двумя нейронами, трехэлементным входом с диапазоном значений [0 2] и ЛЗ на входе [0 1]:

net = newlin([0 2;0 2;0 2],2,[0 1]);

Линейный слой моделируется с последовательностью из двух векторов входа для заданных по умолчанию начальных условия на ЛЗ:

p1 = {[2; 0.5; 1] [1; 1.2; 0.1]};

[y1,pf] = sim(net,p1)

y1 = [2´1 double] [2´1 double]

pf = [3´1 double]

Затем этот слой моделируется еще для трех векторов, используя состояния на элементах задержки как новые начальные условия:

p2 = {[0.5; 0.6; 1.8] [1.3; 1.6; 1.1] [0.2; 0.1; 0]};

[y2,pf] = sim(net,p2,pf)

y2 = [2´1 double] [2´1 double] [2´1 double]

pf = [3´1 double]

Создадим двухслойную сеть Элмана с одноэлементным входом с диапазоном значений
[0 1], имеющую 3 нейрона с функцией активации tansig в слое 1 и 2 нейрона с функцией активации purelin в слое 2. Сеть Элмана имеет ЛЗ [0 1] при переходе от слоя 1 к слою 2:

net = newelm([0 1],[3 2],{'tansig','purelin'});

Сеть моделируется для трехэлементного вектора входа, используя заданные по умолчанию начальные условия на ЛЗ:

p1 = {0.2 0.7 0.1};

[y1,pf,af,e,perf] = sim(net,p1)

y1 = [2´1 double] [2´1 double] [2´1 double]

pf = Empty cell array: 1–by–0

af =

[3´1 double]

[2´1 double]

e = [2´1 double] [2´1 double] [2´1 double]

perf = 0.8153

[e{:}]

ans =

0.4779 –0.5393 1.0238

–1.0069 –1.3680 –0.6627

Выполним еще 1 шаг моделирования, но теперь для четырехэлементного вектора
входа, используя состояния на элементах задержки как новые начальные условия:

p2 = {0.1 0.9 0.8 0.4};

[y1,pf,af,e,perf] = sim(net,p2,pf,af)

y2 = [2´1 double] [2´1 double] [2´1 double] [2´1 double]

pf = Empty cell array: 1–by–0

af =

[3´1 double]

[2´1 double]

e = [2´1 double] [2´1 double] [2´1 double] [2´1 double]

perf = 0.8560

[e{:}]

ans =

–0.3919 –0.3637 –0.2766 0.2490

–1.2888 –1.3479 –1.3269 –1.0886

Cправкa:

help network/sim

Сопутствующие функции: INIT, ADAPT, TRAIN.



©2015- 2017 stydopedia.ru Все материалы защищены законодательством РФ.