Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Медведев В.С., Потемкин В.Г. Нейронные сети. MATLAB 6.doc
Скачиваний:
865
Добавлен:
07.03.2016
Размер:
15.55 Mб
Скачать

11. Формирование моделей нейронных сетей

11.1. Модели сетей

netWORK

Создание шаблона нейронной сети

Блок SIMULINK:

Синтаксис:

net = network

net = network(numInputs, numLayers, biasConnect, inputConnect, layerConnect, outputConnect, targetConnect)

Описание:

Функция network– это конструктор класса объектов networkobject, используемых в ППП NNT.

Функция net = network создает шаблон нейронной сети net, значения полей которого обнулены.

Функция net = network(numInputs, numLayers, biasConnect, inputConnect, layerConnect, outputConnect, targetConnect)применяется как конструктор класса для написания моделей нейронных сетей.

Выходной аргумент net– имя нейронной сети.

Пример:

Создадим шаблон нейронной сети с двумя входами (numInputs = 2), тремя слоями (numLayers = 3) и следующими матрицами связности:

BiasConnect = [1; 0; 0] размера numLayers1;

inputConnect = [1 1; 0 0; 0 0] размера numLayersnumInputs;

layerConnect = [0 0 0; 1 0 0; 0 1 0] размера numLayersnumLayers;

outputConnect = [0 0 1] размера 1 numLayers;

targetConnect = [0 0 1] размера 1numLayers.

net = network(2, 3, [1; 0; 0], [1 1; 0 0; 0 0], [0 0 0; 1 0 0; 0 1 0], ...

[0 0 1], [0 0 1]);

gensim(net) % Рис.11.1

Получим структуру, представленную на рис. 11.1.

Рис. 11.1

Если раскрыть блок NeuralNetwork, то можно выявить структуру сети, обусловленную матрицами связностиinputConnectиlayerConnect(рис. 11.2).

Рис. 11.2

Из анализа рис. 11.2 следует, что оба входа p{1} иp{2} действуют только на слой 1, а слои 1, 2 и 3 соединены последовательно. Выходом слоя 1 является описательa{1}; выходом слоя 2 – описательa{2}; выходом слоя 3 – описательa{3}; выход сети – описательy{1} – совпадает с выходом слоя 3.

Раскроем слои 1, 2 и 3 (рис. 11.3, ав).

а

б

в

Рис. 11.3

На рис. 11.3, апоказана схема слоя 1 со следующими обозначениями:

p{1} – описатель входа 1 на слое 1;

p{2} – описатель входа 2 на слое 1;

Delays 1 – линия задержки для входа 1;

Delays 2 – линия задержки для входа 2;

IW{1,1} – описатель матрицы весов для входа 1 на слое 1;

IW{1,2} – описатель матрицы весов для входа 2 на слое 1;

b{1} – описатель вектора смещений на слое 1;

netsum– функция накопления для слоя 1;

purelin– функция активации для слоя 1;

a{1} – описатель выхода на слое 1.

На рис. 11.3, бпоказана схема слоя 2 со следующими обозначениями:

a{1} – описатель входа на слое 2;

Delays 1 – линия задержки;

LW{2,1} – описатель матрицы весов связей слоев 1 и 2;

netsum– функция накопления для слоя 2;

purelin– функция активации для слоя 2;

a{2} – описатель выхода на слое 2.

На рис. 11.3, впоказана схема слоя 3 со следующими обозначениями:

a{2} – описатель входа на слое 3;

Delays 1 – линия задержки;

LW{3,2} – описатель матрицы весов связей слоев 2 и 3;

netsum– функция накопления для слоя 3;

purelin– функция активации для слоя 3;

a{3} – описатель выхода на слое 3.

Введем линии задержки для входов 1 и 2, а также для слоя 3 (рис. 11.4):

net.inputWeights{1,1}.delays = [0 1];

net.inputWeights{1,2}.delays = [1 2];

net.layerWeights{3,2}.delays = [0 1 2];

Слой 1

Слой 2

Слой 3

Рис. 11.4

На рис.11.4 показаны развернутые блоки задержек для всех слоев сети. На схемах выходы этих блоков обозначаются следующим образом:

pd{1,1} – входная последовательность [p1(t),p1(t–1)] для входа 1 на слое 1;

pd{1,2} – входная последовательность [p2(t–1),p2(t–2)] для входа 2 на слое 1;

pd{2,1} – последовательность сигналов, поступающая со слоя 1 на слой 2;

pd{3,2} – последовательность сигналов, поступающая со слоя 2 на слой 3.

Рассмотрим описатель матрицы весов на примере весов входа для слоя 1 (рис. 11.5).

Рис. 11.5

Эта схема использует следующие обозначения:

pd{1,1} – вектор входной последовательности;

IW{1,1}(1,:) – строка матрицы весов;

dotprod1 – скалярное произведениеz=w*p;

iz{1,1} – массив взвешенных входов.

Установим параметры нейронной сети и векторов входа:

net.inputs{1}.range = [0 1];

net.inputs{2}.range = [0 1];

net.b{1}=–1/4;

net.IW{1,1} = [ 0.5 0.5 ]; net.IW{1,2} = [ 0.5 0.25];

net.LW{2,1} = [ 0.5 ];

net.LW{3,2} = [ 0.5 0.25 1];

P = [0.5 1; 1 0.5];

После этого модель нейронной сети может быть промоделирована либо используя переопределяемый метод network\sim, либо с помощью системыSIMULINK.

Построенная модель будет использована при описании методов simиgensim.

Справка:

help network/network

Сопутствующие функции: GENSIM.