- •Фгбоу впо “Воронежский государственный технический университет”
- •Нейронные сети методические указания
- •Составитель канд. Техн. Наук в.А. Медведев
- •Цель работы
- •2.1. Структура и математическая модель искусственного нейрона
- •2.2. Функции активации нейронов
- •2.3. Персептроны
- •2.4. Сеть Хопфилда
- •2.5. Сеть Хэмминга
- •4. Рабочее задание
- •5. Контрольные вопросы
- •1. Цель работы
- •2. Теоретические сведения
- •2.1. Функции пакета Neural Networks Toolbox
- •2.2. Функции активации в пакете Matlab
- •2.3. Функции обучения нейронных сетей
- •2.4. Функции создания нейронных сетей
- •2.5. Функции использования нейронных сетей
- •2.6. Создание однонаправленной сети
- •4. Рабочее задание
- •5. Контрольные вопросы
- •Библиографический список
- •Содержание
- •394026 Воронеж, Московский просп., 14
2.4. Функции создания нейронных сетей
• network – функция создания нейронной сети пользователя. Запись:
net = network
net = network(numInputs, numLayers, biasConnect, inputConnect, 1ayerConnect, outputConnect, targetConnect)
Описание. Функция возвращает созданную нейронную сеть с именем net и со следующими характеристиками (в скобках даны значения по умолчанию):
numInputs – количество входов (0);
numLayers – количество слоев (0);
biasConnect – булевский вектор с числом элементов, равным количеству слоев (нули);
inputConnect – булевская матрица с числом строк, равным количеству слоев, и числом столбцов, равным количеству входов (нули);
layerConnect – булевская матрица с числом строк и столбцов, равным количеству слоев (нули);
outputConnect – булевский вектор-строка с числом элементов, равным количеству слоев (нули);
targetConnect – вектор-строка такая же, как предыдущая (нули).
• net = newc(PR,S,KLR,CLR) – функция создания слоя Кохонена. Функция использует следующие аргументы:
PR – матрица размера R2 минимальных и максимальных значений для R входных элементов;
S – число нейронов;
KLR – коэффициент обучения Кохонена (по умолчанию 0,01);
CLR – коэффициент «справедливости» (по умолчанию 0,001).
Функция возвращает слой Кохонена с заданным именем.
• net = newcf(PR,[S1 S2…SN1],{TF1 TF2...TFN1},BTF, BLF,PF) – функция создания разновидности многослойной НС с обратным распространением ошибки – так называемой каскадной НС. Такая сеть содержит N1 скрытых слоев, использует входные функции типа dotprod и netsum, инициализация сети осуществляется функцией initnw. Аргументы функции:
PR – матрица размера R2 минимальных и максимальных значений R входных элементов;
Si – размер i-го скрытого слоя, для N1 слоев;
TFi – функция активации нейронов i-го слоя, по умолчанию 'tansig';
BTF – функция обучения сети, по умолчанию 'trainlm';
BLF – функция настройки весов и смещений, по умолчанию 'learngdm';
PF – функция ошибки, по умолчанию 'mse'.
• net = newhop(T) – функция создания сети Хопфилда. Использует только один аргумент:
Т – матрица размера RQ, состоящая из Q целевых векторов (значения элементов должны быть +1 или –1).
• net = newp(PR,S,TF,LF) – функция создания персептрона. Аргументы:
PR – матрица размера R2 минимальных и максимальных значений для R входных элементов,
S – число нейронов;
TF – функция активации, по умолчанию 'hardlim';
LF – функция обучения, по умолчанию 'lеаrnр'.
2.5. Функции использования нейронных сетей
• [Y,Pf,Af] = sim(net,P,Pi,Ai) – функция, моделирующая работу нейронной сети. Аргументы:
net – имя сети, Р – ее входы;
Pi – массив начальных условий входных задержек (по умолчанию они нулевые);
Ai – массив начальных условий задержек слоя нейронов (по умолчанию они нулевые).
Функция возвращает значения выходов Y и массивы конечных условий задержек Pf, Af. Аргументы Pi, Ai, Pf, Af используются только в случаях, когда сеть имеет задержки по входам или по слоям нейронов. Структура данных аргументов:
Р – массив размером NiTS, каждый элемент которого P{i, ts) является матрицей размером RiQ;
Pi – массив размером NiID, каждый элемент которого Pi{i,k) (i-й вход в момент ts=k–ID) является матрицей размером RiQ (no умолчанию – ноль);
Ai – массив размером NlLD, каждый элемент которого Ai{i,k) (выход i-го слоя в момент ts=k–LD) является матрицей размером SiQ (по умолчанию – ноль);
Y – массив размером NoTS, каждый элемент которого Y{i,ts) является матрицей размером UiQ;
Pf – массив размером NiID, каждый элемент которого Pf{i,k} (i-й вход в момент ts=TS+k–ID) является матрицей размером RiQ;
Af – массив размером NlLD, каждый элемент которого Af{i,k} (выход i-гo слоя в момент ts=TS+k–LD) является матрицей размером SiQ.
При этом:
Ni = net.numInputs – количество входов сети;
Nl = net.numLayers – количество ее слоев;
No = net.numOutputs – количество выходов сети;
ID = net.numInputDelays – входные задержки;
LD = net.numLayerDelays – задержки слоя;
TS – число временных интервалов;
Q – размер набора подаваемых векторов;
Ri = net.inputs {i}.size – размер i-го вектора входа;
Si = net.layers {i}.size – размер i-го слоя;
Ui = net.outputs {i}.size – размер i-го вектора выхода.
• net = init(net) – функция инициализирует нейронную сеть с именем net, устанавливая веса и смещения сети в соответствии с установками net.initFcn и net.initParam.
• [net,tr] = train(net,P,T,Pi,Ai) – функция осуществляет обучение НС в соответствии с установками net.trainFcn и net.trainParam. Здесь tr – информация о выполнении процесса обучения (количество циклов и соответствующая ошибка обучения).
• disp(net) – функция возвращает развернутую информацию о структуре и свойствах НС.