- •В. Г. Потемкин
- •Предисловие
- •Введение
- •Используемые обозначения
- •Часть 1. Ппп Neural Network Toolbox
- •1. Система matlab 6
- •1.1. Операционная среда matlab 6
- •Командное окно
- •Окно предыстории
- •Окно запуска
- •Окно текущего каталога
- •Окно рабочей области
- •Справочная подсистема
- •1.3. Демонстрационные примеры ппп nnt
- •2. Модель нейрона и архитектура сети
- •2.1. Модель нейрона
- •2.1.1. Простой нейрон
- •2.1.2. Функция активации
- •2.1.3. Нейрон с векторным входом
- •2.2. Архитектура нейронных сетей
- •2.2.1. Однослойные сети
- •2.2.2. Многослойные сети
- •2.2.3. Сети с прямой передачей сигнала
- •2.3. Создание, инициализация и моделирование сети Формирование архитектуры сети
- •Инициализация сети
- •Моделирование сети
- •3. Обучение нейронных сетей
- •3.1. Процедуры адаптации и обучения
- •Явление переобучения
- •Свойство обобщения
- •3.1.1. Способы адаптации и обучения
- •Адаптация нейронных сетей
- •Xlabel(''), ylabel('Выходы a(I)'),grid
- •Xlabel(''), ylabel('Веса входов w(I)'),grid
- •Xlabel(' Циклы'), ylabel('Ошибка'),grid
- •Xlabel(''), ylabel('Выходы a(I)'),grid
- •Xlabel(''), ylabel('Веса входов w(I)'),grid
- •Xlabel('Циклы'), ylabel('Ошибка'),grid
- •Xlabel(''), ylabel('Выходы a(I)'),grid
- •Xlabel(''), ylabel('Веса входов w(I)'),grid
- •Xlabel('Циклы'), ylabel('Ошибка'),grid
- •Обучение нейронных сетей
- •3.2. Методы обучения
- •3.2.1. Обучение однослойной сети
- •3.2.2. Обучение многослойной сети
- •Метод обратного распространения ошибки
- •Характеристика методов обучения
- •3.3. Алгоритмы обучения
- •3.3.1. Градиентные алгоритмы обучения Алгоритм gd
- •Алгоритм gdm
- •Алгоритм gda
- •Алгоритм Rprop
- •3.3.2. Алгоритмы метода сопряженных градиентов
- •Алгоритм cgf
- •Алгоритм cgp
- •Алгоритм cgb
- •Алгоритм scg
- •3.3.3. Квазиньютоновы алгоритмы Алгоритм bfgs
- •Алгоритм oss
- •Алгоритм lm
- •3.3.4. Алгоритмы одномерного поиска
- •Алгоритм gol
- •Алгоритм bre
- •Алгоритм hyb
- •Алгоритм cha
- •Алгоритм bac
- •3.3.5. Расширение возможностей процедур обучения
- •Переобучение
- •Метод регуляризации
- •Формирование представительной выборки
- •Предварительная обработка и восстановление данных
- •Пример процедуры обучения
- •4. Персептроны
- •4.1. Архитектура персептрона
- •4.2. Модель персептрона
- •Моделирование персептрона
- •Инициализация параметров
- •4.3. Процедуры настройки параметров
- •Правила настройки
- •Процедура адаптации
- •5. Линейные сети
- •5.1. Архитектура линейной сети
- •5.2. Создание модели линейной сети
- •5.3. Обучение линейной сети
- •Процедура настройки
- •Процедура обучения
- •5.4. Применение линейных сетей Задача классификации векторов
- •Фильтрация сигнала
- •Предсказание сигнала
- •Подавление шумов
- •Многомерные цифровые фильтры
- •6. Радиальные базисные сети
- •Модель нейрона и архитектура сети
- •Создание сети
- •Радиальная базисная сеть с нулевой ошибкой
- •Итерационная процедура формирования сети
- •Примеры радиальных базисных сетей
- •6.1. Сети grnn
- •Архитектура сети
- •Синтез сети
- •6.2. Сети pnn
- •Архитектура сети
- •Синтез сети
- •7. Сети кластеризации и классификации данных
- •7.1. Самоорганизующиеся нейронные сети
- •7.1.1. Слой Кохонена
- •Архитектура сети
- •Создание сети
- •Правило обучения слоя Кохонена
- •Правило настройки смещений
- •Обучение сети
- •7.1.2. Карта Кохонена
- •Топология карты
- •Функции для расчета расстояний
- •Архитектура сети
- •Создание сети
- •Обучение сети
- •Одномерная карта Кохонена
- •Двумерная карта Кохонена
- •Архитектура сети
- •Создание сети
- •Обучение сети Правила настройки параметров
- •Процедура обучения
- •8. Рекуррентные сети
- •8.1. Сети Элмана
- •Архитектура
- •Создание сети
- •Обучение сети
- •Проверка сети
- •8.2. Сети Хопфилда
- •Архитектура сети
- •Синтез сети
- •Синтез сети
- •Проверка сети
- •9.1.2. Слежение за нестационарным сигналом
- •Инициализация сети
- •Проверка сети
- •9.1.3. Моделирование стационарного фильтра
- •Постановка задачи
- •Синтез сети
- •Проверка сети
- •9.1.4. Моделирование нестационарного фильтра
- •Постановка задачи
- •Инициализация сети
- •Проверка сети
- •9.2. Распознавание образов
- •Постановка задачи
- •Нейронная сеть
- •Архитектура сети
- •Инициализация сети
- •Обучение
- •Обучение в отсутствие шума
- •Обучение в присутствии шума
- •Повторное обучение в отсутствие шума
- •Эффективность функционирования системы
- •9.3. Нейронные сети и системы управления
- •9.3.1. Регулятор с предсказанием
- •9.3.2. Регулятор narma-l2
- •9.3.3. Регулятор на основе эталонной модели
- •Функции инициализации, адаптации и обучения
- •10.2. Описание элементов сети
- •Описание входов
- •Описание слоев
- •Описание выходов
- •Описание целей
- •Описание смещений
- •Описание весов входа
- •Описание весов слоя
- •Матрицы весов и векторы смещений
- •Информационные поля
- •11. Формирование моделей нейронных сетей
- •11.1. Модели сетей
- •11.1.1. Однослойные сети Персептрон
- •Линейные сети
- •11.1.2. Многослойные сети
- •Радиальные базисные сети
- •Самоорганизующиеся сети
- •Сети – классификаторы входных векторов
- •Рекуррентные сети
- •11.2. Функции активации
- •Персептрон
- •Линейные сети
- •Радиальные базисные сети
- •Самоорганизующиеся сети
- •Рекуррентные сети
- •11.3. Синаптические функции
- •Функции взвешивания и расстояний
- •Функции накопления
- •11.4. Функции инициализации
- •11.5. Функции адаптации и обучения Функции адаптации
- •Функции обучения
- •Градиентные алгоритмы обучения
- •Алгоритмы метода сопряженных градиентов
- •Квазиньютоновы алгоритмы обучения
- •11.5.1. Функции оценки качества обучения
- •11.6. Функции настройки параметров
- •11.6.1. Функции одномерного поиска
- •11.7. Масштабирование и восстановление данных
- •11.8. Вспомогательные функции
- •Утилиты вычислений
- •Операции с массивами данных
- •Графические утилиты
- •Информация о сети и ее топологии
- •11.9. Моделирование нейронных сетей и система Simulink Функции моделирования сети
- •11.9.1. Применение системы Simulink
- •Библиотеки блоков для моделирования нейронных сетей
- •Построение моделей нейронных сетей
- •Индексный указатель Команды, функции и операторы ппп Neural Network Toolbox
- •Предметный указатель
- •Литература Книги на английском языке:
- •Книги на русском языке:
- •Оглавление
- •1. Система matlab 6 9
- •2. Модель нейрона и архитектура сети 33
- •3. Обучение нейронных сетей 47
- •10. Вычислительная модель нейронной сети 228
- •11. Формирование моделей нейронных сетей 245
11. Формирование моделей нейронных сетей
11.1. Модели сетей
netWORK |
Создание шаблона нейронной сети |
Блок SIMULINK:
Синтаксис:
net = network
net = network(numInputs, numLayers, biasConnect, inputConnect, layerConnect, outputConnect, targetConnect)
Описание:
Функция network – это конструктор класса объектов network object, используемых в ППП NNT.
Функция net = network создает шаблон нейронной сети net, значения полей которого обнулены.
Функция net = network(numInputs, numLayers, biasConnect, inputConnect, layerConnect, outputConnect, targetConnect) применяется как конструктор класса для написания моделей нейронных сетей.
Выходной аргумент net – имя нейронной сети.
Пример:
Создадим шаблон нейронной сети с двумя входами (numInputs = 2), тремя слоями (numLayers = 3) и следующими матрицами связности:
BiasConnect = [1; 0; 0] размера numLayers1;
inputConnect = [1 1; 0 0; 0 0] размера numLayersnumInputs;
layerConnect = [0 0 0; 1 0 0; 0 1 0] размера numLayersnumLayers;
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
Если раскрыть блок Neural Network, то можно выявить структуру сети, обусловленную матрицами связности 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.

а
в