MATLAB.Exponenta
MATLAB и Simulink на русском
Технологии разработки и отладки
		сложных технических систем
 

Математика\Neural Network Toolbox

Список функций Neural NetworkToolbox: Функции использования сети

  В оглавление \ К следующему разделу \ К предыдущему разделу

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)

Описание:

SIM моделирует нейронную сеть

[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 являются необязательными и их необходимо использовать лишь в тех случаях, когда сети содержат входы и слои с задержками.

Аргументы SIM могут быть двух форматов: массив ячеек или матрица. Формат в виде массива ячеек является наиболее легким для описания. Он наиболее удобен для описания сетей с многими входами и выходами и позволяет представлять последовательность входов:

  • P - NixTS массив ячеек, каждая ячейка P{i,ts} – матрица размером RixQ;
  • T - NtxTS массив ячеек, каждая ячейка T{i,ts} – матрица размером VixQ;
  • Pi - NixID массив ячеек, каждая ячейка Pi{i,k} – матрица размером RixQ;
  • Ai - NlxLD массив ячеек, каждая ячейка Ai{i,k} – матрица размером SixQ;
  • Y - NOxTS массив ячеек, каждая ячейка Y{i,ts} – матрица размером VixQ;
  • E - NtxTS массив ячеек, каждая ячейка E{i,ts} – матрица размером VixQ;
  • Pf - NixID массив ячеек, каждая ячейка Pf{i,k} – матрица размером RixQ;
  • Af - NlxLD массив ячеек, каждая ячейка Af{i,k} – матрица размером SixQ,

где:

  • Ni = net.numInputs
  • Nl = net.numLayers,
  • No = net.numOutputs
  • ID = net.numInputDelays
  • LD = net.numLayerDelays
  • TS = number of time steps
  • Q = batch size
  • Ri = net.inputs{i}.size
  • Si = net.layers{i}.size
  • Ui = net.outputs{i}.size

Столбцы 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). Это удобно только для сетей с одним входом и с одним выходом. Однако, он может быть использован для сетей с большим количеством входов и выходов. Каждый аргумент матрицы находится путем накопления элементов соответствующих аргументам массивов элементов в одну матрицу:

  • P – матрица (сумма Ri)xQ;
  • T – матрица (сумма Vi)xQ;
  • Pi – матрица (сумма Ri)x(ID*Q);
  • Ai – матрица (сумма Si)x(LD*Q);
  • Y – матрица (сумма Ui)xQ;
  • E - матрица (сумма Vi)xQ;
  • Pf – матрица (сумма Ri)x(ID*Q);
  • Af – матрица (сумма Si)x(LD*Q).

[Y,Pf,Af] = SIM(net,{Q TS},Pi,Ai) используется для сетей, которые не имеют входа, таких как сети Хопфилда.

Примеры:

Используем NEWP для того, чтобы создать перцептронный слой с 2-х элементным входом (диапазон входных значений [0,1;1]), и с единственным нейроном:

net = newp([0 1;0 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)

NEWLIND используется для того, чтобы создать линейный слой с 3 элементным входом и с двумя нейронами:

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)

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

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

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

Функция NEWELM использована для того, чтобы создать сеть Элмана (Elman) с 1 элементным входом, за которым следует первый слой из 3 TANSIG нейронов и второй слой из двух PURELIN нейронов. Так как сеть является сетью Элмана, она содержит линию задержки с задержкой 1 от слоя 1 к слою2:

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

Сеть Элмана моделируется для последовательности из 3 величин с использованием начальных задержек, установленных по умолчанию:

p1 = {0.2 0.7 0.1};

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

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

p2 = {0.1 0.9 0.8 0.4};

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

Алгоритм:

SIM использует следующие свойства для моделирования сети NET:

NET.numInputs, NET.numLayers

NET.outputConnect, NET.biasConnect

NET.inputConnect, NET.layerConnect

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

NET.inputWeights{i,j}.value

NET.layerWeights{i,j}.value

NET.layers{i}.value

NET.inputWeights{i,j}.delays

NET.layerWeights{i,j}.delays

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

NET.inputWeights{i,j}.weightFcn

NET.layerWeights{i,j}.weightFcn

NET.layers{i}.netInputFcn

NET.layers{i}.transferFcn

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

  В оглавление \ К следующему разделу \ К предыдущему разделу

 

Поиск по сайту:

Система Orphus

Яндекс.Метрика