- •Учебное пособие
- •Часть 1. Изучение свойств формального нейрона; создание, инициализация и моделирование сети; использование инструментальных возможностей gui-интерфейса для нейронных сетей и данных.
- •Содержание
- •Лабораторная работа №1 «Определение свойств формального нейрона»
- •Лабораторная работа №2 «Создание, инициализация и моделирование сети. Статический и динамические сети в системе Simulink»
- •Введение
- •1. Функциональные особенности искусственных нейронных сетей (инс)
- •2. Определение инс и их классификация
- •Виды функций активации нейронов
- •Экспериментальная часть
- •Варианты заданий
- •Контрольные вопросы
- •Создание, инициализация и моделирование сети. Статический и динамические сети в системе Simulink
- •Теоретическая часть
- •Экспериментальная часть
- •Контрольные вопросы
- •1. Вычислительные аспекты matlab
- •2. Вычислительная модель нейронной сети
- •3. Применение системы Simulink
- •Теоретическая часть
- •Экспериментальная часть
- •Простейшие однослойные и двухслойные нейронные сети
- •Контрольные вопросы
- •Формирование архитектуры сети
- •Методические указания по выполнению лабораторных работ по дисциплине «математическое моделирование в технике»
- •107023, Г. Москва, б. Семеновская ул., 38
Теоретическая часть
GUI-интерфейс для ППП NNT
Этот графический интерфейс позволяет, не обращаясь к командному окну системы MATLAB, выполнять создание, обучение, моделирование, а также импорт и экспорт нейронных сетей и данных, используя только инструментальные возможности GUI-интерфейса. Конечно, такие инструменты наиболее эффективны лишь на начальной стадии работы с пакетом, поскольку имеют определенные ограничения. В частности, интерфейс NNTool допускает работу только с простейшими однослойными и двухслойными нейронными сетями, но при этом пользователь выигрывает во времени и эффективности освоения новых объектов.
Вызов GUI-интерфейса NNTool возможен либо командой nntool из командной строки, либо из окна запуска приложений Launch Pad с помощью опции NNTool из раздела Neural Network Toolbox. После вызова на экране терминала появляется окно Network/Data Manager (Управление сетью/данными), как показано на рис. 3.1.
Рис. 3.1 Окно управления сетью/данными
Help - кнопка вызова окна подсказки Network/Data Manager Help;
New Data... - кнопка вызова окна формирования данных Create New Data;
New Network... - кнопка вызова окна создания новой нейронной сети Create New Network;
Import...- кнопка вызова окна для импорта или загрузки данных Import or Load to Network/Data Manager;
Export... - кнопка вызова окна для экспорта или записи данных в файл Export or Save from Network/Data Manager.
Кнопки View, Delete становятся активными только после создания и активизации данных, относящихся к последовательностям входа, цели, выхода или ошибок сети. Кнопка View позволяет просмотреть, а кнопка Delete удалить активизированные данные.
Кнопки View, Delete, Initialize..., Simulate..Train..., Adapt... становятся активными после создания и активизации самой нейронной сети. Они позволяют просмотреть, удалить, инициализировать, промоделировать, обучить или адаптировать нейронную сеть.
Экспериментальная часть
Работа выполняется студентом в соответствии с вариантом задания 1.
Чтобы создать нейронную сеть, необходимо выполнить следующие операции:
-
Сформировать последовательности входов и целей (кнопка New Data) см. Приложение 3.1, либо загрузить их из рабочей области системы MATLAB или из файла (кнопка Import).
-
Создать новую нейронную сеть (кнопка New Network), либо загрузить ее из рабочей области системы MATLAB или из файла (кнопка Import).
-
Выбрать тип нейронной сети и нажать кнопку Train..., чтобы открыть окно для задания параметров процедуры обучения.
-
Открыть окно Network для просмотра, инициализации, моделирования, обучения и адаптации сети.
Задание 2.
Выполнить следующий пример: создать нейронную сеть с прямой передачей сигнала.
Создать и обучить нейронную сеть для выполнения операции у = х12 + х2, если заданы последовательности входа Р = [1 0.5 0 1; -2 0 0.5 1] и цели Т = [-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 (Вернуть веса).
Применяя эти закладки, можно установить имена последовательностей входа и цели, а также параметров процедуры обучения.
Теперь можно приступить к обучению сети (кнопка Train Network).
Качество обучения сети с прямой передачей сигнала на выбранной обучающей последовательности поясняется на рис. 1.24. Практически нулевая точность достигается за 13 циклов обучения.
Соответствующие веса и смещения можно увидеть, если выбрать закладку Weights.
Для удобства работы можно экспортировать созданную нейронную сеть в рабочую область системы MATLAB и получить информацию о весах и смещениях непосредственно в рабочем окне системы:
networkl.IW{1, 1}, network1.b{1}
ans = -1.9390 -2.2747
ans = 1.1389
networkl.LW{2, 1}, networkl.b{2}
ans = -1.5040
ans = 0.5024
Результаты обучения можно просмотреть в окне Network/Data Manager, выбрав кнопку Manager. Появляется окно; теперь, активизируя имена последовательностей выхода или ошибок network l_outputs и network l_errors, можно просмотреть результаты, используя кнопку View. Получаем выходные данные, практически равные целям, и ошибки порядка 10 -14.
Задание 3
Классификация входных векторов.
Создать нейронную сеть в виде персептрона, который разделяет векторы входа на два класса. Обозначим эти классы как 0 и 1. Обучающую последовательность сформируем в виде двух массивов ячеек: массивов входов P = {[2; 2] [1; 2] [-2; 2] [-1;1] [1; -2]} и массива целей Т = {0 0 1 1 1}, который задает принадлежность каждого вектора входа к определенному классу. Выполнить эту операцию в рабочей области системы MATLAB, а затем импортировать их в рабочую область интерфейса NNTool.
Зададим персептрон с одним нейроном, функцией активации HARDLIM и правилом настройки LEARNP. Для этого из списка нейронных сетей выбрать тип сети Perceptron и задать требуемые параметры. Чтобы увидеть структурную схему сети, необходимо воспользоваться кнопкой View.
Далее необходимо выполнить инициализацию сети, используя закладку Initialize, а затем адаптацию и настройку параметров сети, используя закладку Adapt окна Network. Для этого необходимо указать имена входа и цели, а также задать количество циклов адаптации (в данном случаи достаточно трех циклов) и нажать кнопку Adapt Network.
В результате настройки будут установлены следующие значения весов и смещений, которое можно увидеть, выбрав закладку Weights. Для данной сети вектор весов равен IW {1, 1} = [-3 -2], а смещение b{1} = 1. Таким образом, линия переключения, разделяющая плоскость на две области, описывается следующим образом:
L: – 3p1 – 2p2 +1 = 0.
Перейдя в окно Network/Data Manager, можно просмотреть значения сигналов на выходе и ошибку сети. Нетрудно убедиться, что на обучающей последовательности сеть обучена точно классифицировать входные векторы.
Data: network1_outputs |
Data: network1_errors |
Value {[0]… [0]… [1]… [1]… [1]}… |
Value {[0]… [0]… [0]… [0]… [0]}… |
Отчёт по работе должен содержать:
-
Ответы на контрольные вопросы;
-
Таблицы с вариантом задания;
-
Описание последовательности выполнения задания;
-
Для задания 3 показать как сеть обучена точно классифицировать входные векторы.
-
Выводы по работе.
Варианты для задания 1