- •Методические указания по лабораторным работам
- •Каскадная сеть прямой передачи cf в рабочем пространстве matlab.
- •Линейный слой lind в рабочем пространстве matlab.
- •Динамическая нейронная сеть
- •Задание.
- •Линейные сети
- •Задание.
- •Персептроны в рабочем пространстве matlab
- •Сети прямой передачи в рабочем пространстве matlab
- •Лабораторная работа 7 Сети Хопфилда
- •Лабораторная работа 8 Радиальные нейронные сети
- •Лабораторная работа 9 Самоорганизующиеся карты Кохонена
- •Список используемой литературы:
Динамическая нейронная сеть
Сеть прямой передачи с запаздыванием
Для создания динамической нейронной сети применяется функция NEWFFTD. Функция newfftd предназначена для создания многослойных нейронных сетей прямой передачи сигнала с линиями задержки и заданными функциями обучения и настройки, использующими метод обратного распространения ошибки.
Синтаксис:
net = newfftd(PR, ID, [S1 S2 ….. Sn], {TF1 TF2 ….. TFn}, btf, blf, pf)
Входные аргументы:
PR – массив размера Rх2 минимальных и максимальных значений R векторов входа;
ID – вектор параметров линии задержки на входе сети;
Si – количество нейронов в слое i;
TFi – функция активации слоя I, по умолчанию tansig;
btf – обучающая функция, реализующая метод обратного распространения, по умолчанию trainlm;
blf – функция настройки, реализующая метод обратного распространения, по умолчанию learngdm;
pf – критерий качества обучения, по умолчанию mse.
Выходные аргументы:
net – объект класса network object динамической многослойной нейронной сети.
Пример:
Зададим последовательность входа и целей:
P = {1 0 0 1 1 0 1 0 0 0 0 1 1 0 0 1};
T = {1 -1 0 1 0 -1 1 -1 0 0 0 1 0 -1 0 1};
Создадим нейронную сеть:
net = newfftd([0 10], [0 1], [5 1], {‘tansig’ ‘purelin’})
Архитектура нейронной сети: двухслойная сеть с прямой передачей сигнала и линией задержки [0 1]; первый слой – 5 нейронов с функцией активации tansig; второй слой – 1 нейрон с функцией активации purelin; диапазон изменения входа [0 10].
Обучим сеть в течении 50 циклов и промоделируем, используя в качестве теста обучающую последовательность входа:
net.trainParam.epochs = 50;
net = train(net, P, T);
Y = sim(net, P);
Y = [1] [-1] [0] [1] [0] [-1] [1] [-1] [0] [0] [0] [1] [0] [-1] [0] [1]
Выход сети точно совпадает с целевой последовательностью.
Свойства сети:
Функциями активации могут быть любые дифференцируемые функции, например: tansig, logsig или purelin.
Обучающими функциями могут быть любые функции, реализующие метод обратного распространения: trainlm, trainbfg, trianrp, traingd и др.
Функция trainlm является обучающей функцией по умолчанию, поскольку обеспечивает максимальное быстродействие, но требует значительных ресурсов памяти. Если ресурсы памяти недостаточны, воспользуйтесь следующими методами:
Установите значение свойства net.trainParam.mem_reduc равным 2 или более, что снизит требования к памяти, но замедлит обучение;
Воспользуйтесь обучающей функцией trainbfg , которая работает медленнее, но требует меньше памяти, чем Ь-функция trainlm;
Перейдите к обучающей функции trainrp, которая работает медленнее, но требует меньшей памяти, чем М-функция trainbfg.
Функциями настройки могут быть функции, реализующие метод обратного распространения: learngd, learngdm.
Критерием качества обучения может выступать любая дифференцируемая функция: mse, msereg.
Алгоритм:
Многослойная динамическая сеть прямой передачи включает Ni слоёв с функциями взвешивания dotprod, функциями накопления netsum и заданными пользователем функциями активации.
Первый слой характеризуется матрицей весов входа, другие слои – матрицами весов входа предшествующего слоя; все слои имеют смещения. Выход последнего слоя является выходом сети. Веса и смещения каждого слоя инициализируются с помощью М-функций initnw.
Режим адаптации реализуется М-функцией adaptwb. Для режима обучения выбирается обучающая функция, использующая метод обратного распространения ошибки.
Оценка качества обучения основана на функциях оценки качества, выбираемых из списка {mae | mse | msereg | sse}.
