- •В. Г. Потемкин
- •Предисловие
- •Введение
- •Используемые обозначения
- •Часть 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. Применение нейронных сетей
- •9.1. Аппроксимация и фильтрация сигналов
- •9.1.1. Предсказание стационарного сигнала Постановка задачи
- •Синтез сети
- •Проверка сети
- •9.1.2. Слежение за нестационарным сигналом
- •Инициализация сети
- •Проверка сети
- •9.1.3. Моделирование стационарного фильтра
- •Постановка задачи
- •Синтез сети
- •Проверка сети
- •9.1.4. Моделирование нестационарного фильтра
- •Постановка задачи
- •Инициализация сети
- •Проверка сети
- •9.2. Распознавание образов
- •Постановка задачи
- •Нейронная сеть
- •Архитектура сети
- •Инициализация сети
- •Обучение
- •Обучение в отсутствие шума
- •Обучение в присутствии шума
- •Повторное обучение в отсутствие шума
- •Эффективность функционирования системы
- •9.3. Нейронные сети и системы управления
- •9.3.1. Регулятор с предсказанием
- •9.3.2. Регулятор narma-l2
- •9.3.3. Регулятор на основе эталонной модели
- •Часть2. Операторы, функции и команды
- •10. Вычислительная модель нейронной сети
- •10.1. Описание сети Описание архитектуры
- •Функции инициализации, адаптации и обучения
- •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
- •Предметный указатель
- •Литература Книги на английском языке:
- •Книги на русском языке:
- •Оглавление
Используемые обозначения
Обозначения скаляров, векторов и матриц:
скаляры – курсивные строчные буквы: a, b, c;
векторы– прямые строчные полужирные буквы:a, b, c;
матрицы– прямые прописные полужирные буквы:A, B, C.
Обозначения весовых матриц:
весовая матрица – W(t);
элемент матрицы – wij(t), где i – номер строки, j – номер столбца, t – время или итерация;
вектор-столбец – wj(t) (вектор, соответствующий столбцуjматрицыW);
вектор-строка – wi(t) (вектор, соответствующий строкеiматрицыW);
вектор смещений – b(t);
элемент вектора смещений – bi(t).
Обозначения для слоев нейронной сети:
верхний индекс из одного символа применяется для того, чтобы указать принадлежность некоторого элемента слою. Например, вектор входа слоя 3 обозначается как p3;
верхний индекс из двух символов применяется для того, чтобы указать источник сигнала (l) и пункт назначения (k); он используется для обозначения матриц весов входаIWk,l и матриц весов слояLWk,l. Например, матрица весов от слоя 2 к слою 4 будет обозначаться какLW42.
Пример структурной схемы нейронной сети:
На рисунке приведены обозначения, используемые при изображении структурных схем нейронных сетей.
Связь математических обозначений с обозначениями, принятыми в алгоритмах и программах ППП. При переходе от математических обозначений к кодам системы MATLAB следует руководствоваться следующими правилами:
верхние индексы соответствуют индексам массива ячеек: p1p{1};
нижние индексы соответствуют индексам массива чисел: p2 p(2),p12 p{1}(2);
индекс в круглых скобках соответствует второму индексу массива ячеек: p1(k) p{1, k}.
Часть 1. Ппп Neural Network Toolbox
1. Система matlab 6
Семейство программных продуктов MATLAB 6 поставляется на двух компакт-дисках, и в соответствии с инструкцией пользователь должен инсталлировать те программные продукты, которые необходимы для последующей работы. Требования, предъявляемые к ресурсам персонального компьютера, следующие:
рекомендуемые процессоры – Pentium,PentiumPro,PentiumII,PentiumIIIилиAMDAthlon;
операционные системы MicrosoftWindows95,Windows98,WindowsNT4.0 с пакетомServicePack5 илиWindows2000;
устройство CD-ROMдля выполнения инсталляции;
требования к оперативной памяти – минимум 64 MдляWindows95, 98,NT4.0 и 2000, крайне рекомендуется использовать 128M, поскольку потери в производительности при 64Mсоставляют около 40 %;
объем требуемого пространства памяти на диске зависит в основном от размеров используемой справочной системы, рекомендуется не менее 4 Г;
рекомендуется применять 8-битовый графический адаптер и дисплей с палитрой не менее 256 цветов.
Далее предполагается, что необходимая установка выполнена и вы готовы к сеансу работы в среде MATLAB6.
1.1. Операционная среда matlab 6
Работа с системой MATLABначинается с того, что вы запускаете систему с иконки рабочего стола системыWindows. В результате на дисплее открывается рабочий стол системы (рис. 1.1).
Он содержит элементы графического интерфейса пользователя, которые предназначены для работы с файлами, переменными и приложениями, связанными с MATLAB. На рис. 1.1 вы видите три открытых окна: командное окноCommandWindow, в котором расположена командная строка, окно (панель) запуска приложенийLaunchPadс кнопками развертки/свертки и окно предыстории вызововCommandHistory.
Кроме того, имеются клавиши для переключения окна запуска LaunchPadна окно рабочей областиWorkspaceи окна предысторииCommandHistoryна окно текущего каталогаCurrentDirectory. Здесь же показан вертикальный разделитель окон, перемещение которого управляет размещением окон в поле экрана. Отметим также информационное окно текущего каталога на инструментальной панели рабочего стола, а также кнопки вызова подсказки, закрытия и отделения командного окна от рабочего стола. Последняя кнопка позволяет перейти в режим работы предшествующих версий системыMATLAB.
Рис. 1.1
Описанный рабочий стол появляется по умолчанию при запуске системы MATLAB6. Вы можете изменить состав и размещение рабочих окон, открывая новые, закрывая имеющиеся, а также изменяя их размеры с помощью вертикальных и горизонтальных разделителей. Кроме того, можно отделять окна от рабочего стола и помещать их на рабочий стол, используя менюViewинструментальной панели.
Для настройки таких параметров рабочего стола, как тип и размер шрифта, цвета символов командной строки, следует воспользоваться опцией PreferencesменюFile(рис. 1.2).
Рис. 1.2