- •В. Г. Потемкин
- •Предисловие
- •Введение
- •Используемые обозначения
- •Часть 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
Окно рабочей области
Окно рабочей области Workspace показано на рис. 1.8 и содержит список переменных (именованные массивы), накопленных в памяти в процессе работы, расширение списка переменных при обращении к функциям, выполнении М-файлов и загрузке сохраненных переменных.
Рис. 1.8
На рис. 1.8 показан список переменных, охватывающий все типы данных: это массивы действительных и комплексных (complex) чисел удвоенной точности double array, разновидности этих массивов, описываемые глобальной переменной global и переменными логического типа logical. Кроме того, список содержит массив строк char array, массив разреженной матрицы sparse array, массив записей struct array, массив ячеек cell array, а также специальные типы целочисленных массивов uint8 и uint32 и объект типа inline object. Для каждой переменной указывается размер массива Size, объем памяти Bytes и тип массива Class.
Окно рабочей области, как и все окна рабочего стола системы MATLAB 6, сопровождается контекстным меню, которое включает следующие опции: Open Selection… (Открыть выделенное…), Graph Selection (Построить график), Select All (Выделить все), Import Data (Импорт данных), Save Selection As… (Сохранить выделенное как…), Save Workspace As… (Сохранить рабочую область как…), Delete Selection (Удалить выделенное), Delete Workspace (Удалить рабочую область).
На рис. 1.9 показана глубина вложенности опции Graph Selection, что позволяет в режиме контекста строить любые типы графиков. Это определяет совершенно новый стиль работы в среде системы MATLAB 6, когда многие предварительные действия вообще не требуют обращения к командной строке и могут быть реализованы с использованием только правой кнопки мыши.
Рис. 1.9
После завершения сеанса работы данные в рабочей области не сохраняются, и пользователь должен предусмотреть их сохранение в виде файла данных. Это реализуется либо с помощью опции контекстного меню Save Workspace As…, либо с помощью этой же опции из меню File, либо с использованием команды save. Любая из этих операций приводит к созданию специального двоичного файла с расширением .mat. Чтобы прочитать МАТ-файл и разместить его в рабочей области, следует воспользоваться опцией Import Data… или использовать команду load.
Окно рабочей области помимо перечисленных функций выполняет функции обозревателя (средства просмотра) данных. Достаточно выполнить двойной щелчок по левой клавише мыши, чтобы вызвать редактор данных Array Editor.
На рис. 1.10 показан редактор данных, который позволяет в интерактивном режиме просматривать и корректировать одномерные и двумерные числовые массивы, массивы строк и массивы строковых ячеек.
Рис. 1.10
Справочная подсистема
В состав системы MATLAB 6 входит чрезвычайно мощная подсистема справки Help. Объем документации, к которой организуется доступ, составляет более 250 М и поставляется на отдельном компакт-диске. Обеспечивается доступ не только к встроенной системе Help, но и к документам в формате HTML, а также к полнотекстовым документам в формате PDF.
Рис. 1.11
Экран справочной системы делится на 2 области: область навигатора Help Navigator, где пользователь может указать интересующую его тему, термин или функцию, относящиеся к продуктам семейства MATLAB, и область для просмотра найденной информации. Остановимся подробнее на описании этих областей.
Навигатор справочной системы позволяет установить в поле Product Filter меру использования источников информации: в полном (All) или ограниченном объеме (Selected). С помощью кнопки Contents tab вывести заголовки и оглавления документов; с помощью кнопки Index tab вывести на экран индексный указатель, а с помощью кнопки Search tab обратиться к поисковой системе. Наконец, кнопка Favorites tab позволяет просмотреть и изменить список справочных документов, определенных в качестве первоочередных для просмотра.
Как только требуемая информация найдена, она выводится в окно просмотра. При этом обеспечивается возможность перехода к другим страницам, используя стрелки в верхней и нижней частях страницы или клавиши "вперед" и "назад" инструментальной панели этого окна. Здесь же вы можете увидеть кнопку вывода на печать содержимого страницы, а также окно для поиска Find in page, окно с названием документа-источника, а также кнопку создания закладки Add to Favorites.
Рис. 1.12
И вновь, как это свойственно среде MATLAB 6, пользователь имеет доступ к контекстному меню со следующими опциями: Evaluate Selection (Вычислить выделенное), Open Selection (Открыть выделенное), Help on Selection (Справка о выделенном), Back (Назад), Forward (Вперед), Reload (Перезагрузить раздел), Copy (Копировать).
1.2. GUI-интерфейс для ППП NNT
Отличительной особенностью 12-го выпуска программных продуктов фирмы MathWorks является включение в их состав различных инструментальных средств организации диалога с пользователем. Как правило, это GUI-интерфейсы. Не является исключением и пакет по нейронным сетям ППП NNT, в состав которого входит инструментальное средство NNTool. Этот графический интерфейс позволяет, не обращаясь к командному окну системы MATLAB, выполнять создание, обучение, моделирование, а также импорт и экспорт нейронных сетей и данных, используя только инструментальные возможности GUI-интерфейса. Конечно, такие инструменты наиболее эффективны лишь на начальной стадии работы с пакетом, поскольку имеют определенные ограничения. В частности, интерфейс NNTool допускает работу только с простейшими однослойными и двухслойными нейронными сетями, но при этом пользователь выигрывает во времени и эффективности освоения новых объектов.
Вызов GUI-интерфейса NNTool возможен либо командой nntool из командной строки, либо из окна запуска приложений Launch Pad с помощью опции NNTool из раздела Neural Network Toolbox. После вызова на экране терминала появляется окно Network/Data Manager (Управление сетью/данными) (рис. 1.13)
Рис. 1.13
Здесь:
Help – кнопка вызова окна подсказки Network/Data Manager Help (рис. 1.14);
New Data… – кнопка вызова окна формирования данных Create New Data (рис. 1.15);
New Network… – кнопка вызова окна создания новой нейронной сети Create New Network (рис. 1.16);
Import…– кнопка вызова окна для импорта или загрузки данных Import or Load to Network/Data Manager (рис. 1.17);
Export… – кнопка вызова окна для экспорта или записи данных в файл Export or Save from Network/Data Manager (рис. 1.18).
Кнопки View, Delete становятся активными только после создания и активизации данных, относящихся к последовательностям входа, цели, выхода или ошибок сети. Кнопка View позволяет просмотреть, а кнопка Delete удалить активизированные данные.
Кнопки View, Delete, Initialize…, Simulate…, Train…, Adapt… становятся активными после создания и активизации самой нейронной сети. Они позволяют просмотреть, удалить, инициализировать, промоделировать, обучить или адаптировать нейронную сеть и будут описаны ниже.
Прежде всего рассмотрим назначение и способы работы с перечисленными выше окнами.
Окно Network/Data Manager Help. Это окно подсказки показано на рис. 1.14 и описывает правила работы с диспетчером Network/Data Manager при создании нейронной сети.
Рис. 1.14
Чтобы создать нейронную сеть, необходимо выполнить следующие операции:
Сформировать последовательности входов и целей (кнопка New Data), либо загрузить их из рабочей области системы MATLAB или из файла (кнопка Import).
Создать новую нейронную сеть (кнопка New Network), либо загрузить ее из рабочей области системы MATLAB или из файла (кнопка Import).
Выбрать тип нейронной сети и нажать кнопку Train…, чтобы открыть окно для задания параметров процедуры обучения.
Открыть окно Network для просмотра, инициализации, моделирования, обучения и адаптации сети.
Окно Create New Data. Это окно показано на рис. 1.15 и включает 2 области редактирования текста для записи имени вводимых данных (область Name) и ввода самих данных (область Value), а также 6 кнопок для указания типа вводимых данных.
Рис. 1.15
Различают следующие типы данных:
Inputs (Входы) – последовательность значений входов;
Targets (Цели) – последовательность значений цели;
Input Delay States (Состояния ЛЗ входа) – начальные условия линии задержки на входе;
Layer Delay States (Состояния ЛЗ слоя) – начальные условия линии задержки в слое;
Outputs (Выходы) – последовательность значений выхода сети;
Errors (Ошибки) – разность значений целей и выходов.
Как правило, пользователь задает только последовательности входа и цели, т. е. типы данных Inputs и Targets. При этом следует помнить, что при адаптации нейронной сети данные должны быть представлены в виде массива ячеек.
Окно Create New Network. Это окно показано на рис. 1.16 и включает поля для задания параметров создаваемой сети. В зависимости от типа сети количество полей и их названия изменяются.
Рис. 1.16
Обратимся к описанию полей.
Network Name (Имя сети) – стандартное имя сети, присваиваемое GUI-интерфейсом NNTool; в процессе создания новых сетей порядковый номер будет изменяться автоматически.
Network Type (Тип сети) – список сетей, доступных для работы с интерфейсом NNTool. Для удобства этот список повторен в нижеследующей таблице. Интерфейс NNTool позволяет создавать нейронные сети только с одним или двумя слоями.
№ п/п |
Тип сети |
Название сети |
Число слоев |
Обучаемые параметры |
1 |
Competitive |
Конкурирующая сеть |
1 |
IW{1, 1}, b{1} |
2 |
Cascade-forward backprop |
Каскадная сеть с прямым распространением сигнала и обратным распространением ошибки |
2 |
IW{1, 1}, b{1}, LW{2, 1}, IW{2, 1}, b{2} |
3 |
Elman backprop |
Сеть Элмана с обратным распространением ошибки |
2 |
IW{1, 1}, b{1}, LW{2, 1}, b{2}, LW{1, 1} |
4 |
Feed-forward backprop |
Сеть с прямым распространением сигнала и обратным распространением ошибки |
2 |
IW{1, 1}, b{1}, LW{2, 1}, b{2} |
5 |
Time delay backprop |
Сеть с запаздыванием и обратным распространением ошибки |
2 |
IW{1, 1}, b{1}, LW{2, 1}, b{2} |
6 |
Generalized regression |
Обобщенная регрессионная сеть |
2 |
IW{1, 1}, b{1}, LW{2, 1} |
7 |
Hopfield |
Сеть Хопфилда |
1 |
LW{1, 1}, b{1} |
8 |
Linear layer (design) |
Линейный слой (создание) |
1 |
IW{1, 1}, b{1} |
9 |
Linear layer (train) |
Линейный слой (обучение) |
1 |
IW{1, 1}, b{1} |
10 |
LVQ |
Сеть для классификации входных векторов |
2 |
IW{1, 1}, LW{2, 1} |
11 |
Perceptron |
Персептрон |
1 |
IW{1, 1}, b{1} |
12 |
Probabalistic |
Вероятностная сеть |
2 |
IW{1, 1}, b{1}, LW{2, 1} |
13 |
Radial basis (exact fit) |
Радиальная базисная сеть с нулевой ошибкой |
2 |
IW{1, 1}, b{1}, LW{2, 1} |
14 |
Radial basis (fewer neurons) |
Радиальная базисная сеть с минимальным числом нейронов |
2 |
IW{1, 1}, b{1}, LW{2, 1}, b{2} |
15 |
Self-organizing map |
Самоорганизующаяся карта Кохонена |
1 |
IW{1, 1} |
Примечания:
Для сетей 2, 3, 7 в данной версии интерфейса NNTool не обеспечивается просмотр структурных схем.
Сети 5, 9 допускают введение линий задержек на входе.
Сети 3 допускают введение линий задержек в слое.
Сети с двумя слоями имеют последовательную структуру, когда выход первого слоя служит входом второго слоя. Исключение составляют сети 3, которые допускают наличие обратной связи в первом слое и передачу входного сигнала на входы обоих слоев.
Продолжим описание полей.
Input ranges (Диапазоны входа) – допустимые границы входов, которые либо назначаются пользователем, либо определяются автоматически по имени входной последовательности, выбираемой из списка Get from Inp… .
Training function (Функция обучения) – список обучающих функций.
Adaption learning function (Функции настройки для режима адаптации) – список функций настроек.
Performance function (Функция качества обучения) – список функций оценки качества обучения.
Number of layers (Количество слоев) – количество слоев нейронной сети.
Properties for (Свойства) – список слоев: Layer 1 (Слой 1), Layer 2 (Слой 2).
Number of neurons (Количество нейронов) – количество нейронов в слое.
Transfer function (Функция активации) – функция активации слоя.
Окно Import or Load to Network/Data Manager. Это окно показано на рис. 1.17 и включает 3 поля.
Рис. 1.17
Source (Источник) – поле для выбора источника данных. Это либо рабочая область системы MATLAB (кнопка выбора Import from MATLAB Workspace), либо файл (кнопка выбора Load from disk file).
Если выбрана первая кнопка, то в поле Select a Variable вы можете видеть все переменные рабочей области и, выбрав одну из них, например Р1, можете определить ее в поле Destination (Назначение) как последовательность входа Inputs (Входы).
Если выбирается кнопка Load from disk file, то активизируется поле MAT-file Name и кнопка Browse, что позволяет начать поиск и загрузку файла из файловой системы.
Окно Export or Save from Network/Data Manager. Это окно показано на рис. 1.18 и позволяет передать данные из рабочей области GUI-интерфейса NNTool в рабочую область системы MATLAB или записать их в виде файла на диске.
Рис. 1.18
В данном случае нами выбрана переменная network1, которая принадлежит к классу network object и описывает нейронную сеть. После того как эта переменная экспортирована в рабочую область, можно, например, построить модель нейронной сети в системе Simulink с помощью оператора gensim.
Диалоговая панель Network показана на рис. 1.19.
Рис. 1.19
Она открывается только в том случае, когда в окне Network/Data Manager выделена созданная сеть и становятся активными кнопки View, Initialize, Simulate, Train, Adapt.
Панель имеет 6 закладок:
View (Просмотреть) – структура сети;
Initialize (Инициализация) – задание начальных весов и смещений;
Simulate (Моделирование) – моделирование сети;
Train (Обучение) – обучение сети;
Adapt (Адаптация) – адаптация и настройка параметров сети;
Weights (Веса) – просмотр установленных весов и смещений.
Особенности работы с соответствующими окнами будут рассмотрены на приведенных ниже примерах создания конкретных нейронных сетей.
Пример. Нейронная сеть с прямой передачей сигнала.
Создать и обучить нейронную сеть выполнению операции y = x12 + x2, если заданы последовательности входа P = [1 0.5 0 1; –2 0 0.5 1] и цели T = [–1 0.25 0.5 2].
Сформируем последовательности входов и целей в рабочей области GUI-интерфейса NNTool, используя окно Create New Data.
Выберем нейронную сеть типа feed-forward backprop с прямой передачей сигнала и с обратным распространением ошибки. Схема этой сети показана на рис. 1.19.
Выполним инициализацию сети, для чего выберем закладку Initialize, откроется диалоговая панель, показанная на рис. 1.20. Диапазоны значений исходных данных выберем по входам из ниспадающего меню Get from input. Для ввода установленных диапазонов и инициализации весов надо воспользоваться кнопками Set Ranges (Установить диапазоны) и Initialize Weights (Инициализировать веса). Если требуется вернуться к прежним диапазонам, то следует выбрать кнопки Revert Ranges (Вернуть диапазоны) и Revert Weights (Вернуть веса).
Рис. 1.20
Затем выполняется обучение сети, для чего выбирается закладка Train и открывается диалоговая панель, показанная на рис. 1.21.
Рис. 1.21
Панель имеет три закладки:
Training Info (Информация об обучающих последовательностях) (рис. 1.21);
Training Parametrs (Параметры обучения) (рис. 1.22);
Optional Info (Дополнительная информация) (рис. 1.23).
Рис. 1.22
Последняя закладка применяется, когда в процессе обучения используются контрольные и тестовые последовательности.
Рис. 1.23
Применяя эти закладки, можно установить имена последовательностей входа и цели, а также параметров процедуры обучения.
Теперь можно приступить к обучению сети (кнопка Train Network).
Рис. 1.24
Качество обучения сети с прямой передачей сигнала на выбранной обучающей последовательности поясняется на рис. 1.24. Практически нулевая точность достигается за 13 циклов обучения.
Соответствующие веса и смещения можно увидеть, если выбрать закладку Weights (рис. 1.25).
Рис. 1.25
Для удобства работы можно экспортировать созданную нейронную сеть в рабочую область системы MATLAB и получить информацию о весах и смещениях непосредственно в рабочем окне системы:
network1.IW{1, 1}, network1.b{1}
ans = –1.9390 –2.2747
ans = 1.1389
network1.LW{2, 1}, network1.b{2}
ans = –1.5040
ans = 0.5024
Результаты обучения можно просмотреть в окне Network/Data Manager, выбрав кнопку Manager (рис. 1.25). Появляется окно (рис. 1.26); теперь, активизируя имена последовательностей выхода или ошибок network1_outputs и network1_errors, можно просмотреть результаты, используя кнопку View. Получаем выходные данные, практически равные целям, и ошибки порядка 10-14.
Рис. 1.26
Пример. Классификация входных векторов.
Создать нейронную сеть в виде персептрона, который разделяет векторы входа на два класса. Обозначим эти классы как 0 и 1. Обучающую последовательность сформируем в виде двух массивов ячеек: массива входов Р = {[2; 2] [1; 2] [–2; 2] [–1; 1] [1; –2]} и массива целей Т = {0 0 1 1 1}, который задает принадлежность каждого вектора входа к определенному классу. Выполним эту операцию в рабочей области системы MATLAB, а затем импортируем их в рабочую область интерфейса NNTool.
Зададим персептрон с одним нейроном, функцией активации HARDLIM и правилом настройки LEARNP. Для этого из списка нейронных сетей выберем тип сети Perceptron (рис. 1.27) и зададим требуемые параметры.
Рис. 1.27
Чтобы увидеть структурную схему сети, воспользуемся кнопкой View (рис. 1.28).
Рис. 1.28
Теперь выполним инициализацию сети, используя закладку Initialize, а затем адаптацию и настройку параметров сети, используя закладку Adapt окна Network. Для этого следует указать имена входа и цели, а также задать количество циклов адаптации (в данном случае достаточно трех циклов) и нажать кнопку Adapt Network.
В результате настройки будут установлены следующие значения весов и смещений, которые можно увидеть, выбрав закладку Weights. Для данной сети вектор весов равен IW{1, 1} = [–3 –2], а смещение b{1} = 1. Таким образом, линия переключения, разделяющая плоскость на 2 области, описывается следующим образом:
L: –3p1 – 2p2 + 1 = 0.
Перейдя в окно Network/Data Manager, можно просмотреть значения сигналов на выходе и ошибку сети (рис. 1.29, а и б соответственно). Нетрудно убедиться, что на обучающей последовательности сеть обучена точно классифицировать входные векторы.
а |
б |
Рис. 1.29
Пример динамической линейной сети:
Спроектировать динамическую линейную нейронную сеть для предсказания синусоидальной функции по четырем предшествующим значениям.
Архитектура сети: линейная нейронная сеть с линией задержки по входу на 4 такта, с одним входом, значения которого заключены в диапазоне [–1 1], и одним выходом.
Обучающая последовательность:
входная последовательность
time = 0:0.1:10;
P = sin(time);
последовательность целей
T = P;
Поскольку предполагается адаптивная настройка параметров сети, то обучающая последовательность должна быть представлена в виде массива ячеек
P = con2seq(P);
T = P;
Целесообразно сформировать эти последовательности в рабочей области системы MATLAB, а затем импортировать их в рабочую область интерфейса NNTool.
Затем выберем сеть типа Linear layer (train) с линией задержки по входу (рис. 1.30), инициализируем ее, установим начальные значения весов, выполним адаптацию сети, предварительно установив имена последовательностей входа и цели, а также указав количество циклов адаптации – 250.
Рис. 1.30
По окончании проектирования экспортируем нейронную сеть в рабочую область системы MATLAB.
Теперь можно построить модель нейронной сети в системе Simulink и построить ее схему (рис. 1.31):
gensim(network1)
Рис. 1.31
Эта схема в отличие от иллюстративных схем на рис. 1.19 и 1.29 является в полной мере функциональной схемой и может быть применена для моделирования нейронной сети.
Используя описание нейронной сети, можно просмотреть веса и смещение в рабочем окне системы MATLAB:
IW = network1.IW{1,1}
IW = 0.8135 0.4798 0.1716 –0.1143 –0.3858
b = network1.b{1}
b = 0.0024
Извлечем информацию об ошибке сети и построим соответствующий график (рис. 1.32). Обратите внимание на специальную форму применения оператора cat, которая позволяет преобразовать массив числовых ячеек в числовой массив.
E = cat(2,network1_errors{:});
plot(time(10:101), E(10:101))
Рис. 1.32
Из анализа рисунка следует, что погрешность обучения не превышает 0.01.
Знакомство с возможностями графического интерфейса NNTool позволяет сделать вывод, что это средство может быть весьма полезным на начальной стадии изучения и сравнительного анализа нейронных сетей.
