Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Laboratornye_IIS2007.doc
Скачиваний:
58
Добавлен:
10.11.2018
Размер:
281.6 Кб
Скачать

Динамическая нейронная сеть

Сеть прямой передачи с запаздыванием

Для создания динамической нейронной сети применяется функция 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}.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]