Отличительной особенностью MATLAB является включение в его состав различных инструментальных средств организации диалога с пользователем. Как правило, это GUI-интерфейсы. Не является исключением и пакет по нейронным сетям NNT, в состав которого входит инструментальное средство NNTool.
Этот графический интерфейс позволяет, не обращаясь к командному окну системы MATLAB, выполнять создание, обучение, моделирование, а также импорт и экспорт нейронных сетей и данных, используя только инструментальные возможности GUI-интерфейса. Конечно, такие инструменты наиболее эффективны лишь на начальной стадии работы с пакетом, поскольку имеют определенные ограничения. В частности, интерфейс NNTool допускает работу только с простейшими однослойными и двухслойными нейронными сетями, но при этом пользователь выигрывает во времени и эффективности освоения новых объектов.
Вызов GUI-интерфейса NNTool возможен либо командой nntool из командной строки, либо из окна запуска приложений Launch Pad с помощью опции NNTool из раздела Neural Network Toolbox. После вызова на экране терминала появляется окно Network/Data Manager (Управление сетью/данными) (рисунок 5.1).
Рисунок 5.1 – Окно управления сетью/данными
Окно управления сетью/данными имеет следующие кнопки:
Help – кнопка вызова окна подсказки Network/Data Manager Help (рисунок 5.2);
New Data… – кнопка вызова окна формирования данных Create New Data (рисунок 5.3);
New Network… – кнопка вызова окна создания новой нейронной сети Create New Network (рисунок 5.4);
Import… – кнопка вызова окна для импорта или загрузки данных Import or Load to Network/Data Manager (рисунок 5.5);
Export… – кнопка вызова окна для экспорта или записи данных в файл Export or Save from Network/Data Manager (рисунок 5.6).
Кнопки View, Delete становятся активными только после создания и активизации данных, относящихся к последовательностям входа, цели, выхода или ошибок сети. Кнопка View позволяет просмотреть, а кнопка Delete удалить активизированные данные.
Кнопки View, Delete, Initialize…, Simulate…, Train…, Adapt… становятся активными после создания и активизации самой нейронной сети. Они позволяют просмотреть, удалить, инициализировать, промоделировать, обучить или адаптировать нейронную сеть и будут описаны ниже.
Прежде всего рассмотрим назначение и способы работы с перечисленными выше окнами.
Окно Network / Data Manager Help показано на рисунке 5.2 и описывает правила работы с диспетчером Network/Data Manager при создании нейронной сети.
Чтобы создать нейронную сеть, необходимо выполнить следующие операции:
1. Сформировать последовательности входов и целей (кнопка New Data) либо загрузить их из рабочей области системы MATLAB или из файла (кнопка Import).
2. Создать новую нейронную сеть (кнопка New Network) либо загрузить ее из рабочей области системы MATLAB или из файла (кнопка Import).
3. Выбрать тип нейронной сети и нажать кнопку Train…, чтобы открыть окно для задания параметров процедуры обучения.
4. Открыть окно Network для просмотра, инициализации, моделирования, обучения и адаптации сети.
Окно Create New Data показано на рисунке 5.3 и включает две области редактирования текста: для записи имени вводимых данных (область Name) и ввода самих данных (область Value), а также шесть кнопок для указания типа вводимых данных.
Рисунок 5.2 – Окно подсказки Network/Data Manager Help
Рисунок 5.3 – Окно формирования данных Create New Data
Различают следующие типы данных:
Inputs (Входы) – последовательность значений входов;
Targets (Цели) – последовательность значений цели;
Input Delay States (Состояния ЛЗ входа) – начальные условия линии задержки на входе;
Layer Delay States (Состояния ЛЗ слоя) – начальные условия линии задержки в слое;
Outputs (Выходы) – последовательность значений выхода сети;
Errors (Ошибки) – разность значений целей и выходов.
Как правило, пользователь задает только последовательности входа и цели, т. е. типы данных Inputs и Targets. При этом следует помнить, что при адаптации нейронной сети данные должны быть представлены в виде массива ячеек.
Окно Create New Network показано на рисунке 5.4 и включает поля для задания параметров создаваемой сети. В зависимости от типа сети количество полей и их названия изменяются.
Network Name (Имя сети) – стандартное имя сети, присваиваемое GUI-интерфейсом NNTool; в процессе создания новых сетей порядковый номер будет изменяться автоматически;
Input ranges (Диапазоны входа) – допустимые границы входов, которые либо назначаются пользователем, либо определяются автоматически по имени входной последовательности, выбираемой из списка Get from Inp…;
Training function (Функция обучения) – список обучающих функций;
Adaption learning function (Функции настройки для режима адаптации) – список функций настроек;
Performance function (Функция качества обучения) – список функций оценки качества обучения;
Number of layers (Количество слоев) – количество слоев нейронной сети;
Properties for (Свойства) – список слоев: Layer 1 (Слой 1), Layer 2 (Слой 2);
Рисунок 5.4 – Окно создания новой нейронной сети Create New Network
Number of neurons (Количество нейронов) – количество нейронов в слое;
Transfer function (Функция активации) – функция активации слоя.
Окно Import or Load to Network / Data Manager показано на рисунке 5.5 и включает три поля.
Source (Источник) – поле для выбора источника данных. Это либо рабочая область системы MATLAB (кнопка выбора Import from MATLAB Workspace), либо файл (кнопка выбора Load from disk file).
Рисунок 5.5 – Окно для импорта или загрузки данных Import or Load to Network/Data Manager
Если выбрана первая кнопка, то в поле Select a Variable видны все переменные рабочей области и, выбрав одну из них, например Р1, можно определить ее в поле Destination (Назначение) как последовательность входа Inputs (Входы).
Если выбирается кнопка Load from disk file, то активизируется поле MAT-file Name и кнопка Browse, что позволяет начать поиск и загрузку файла из файловой системы.
Окно Export or Save from Network / Data Manager показано на рисунке 5.6 и позволяет передать данные из рабочей области GUI-интерфейса NNTool в рабочую область системы MATLAB или записать их в виде файла на диске.
В данном случае нами выбрана переменная network1, которая принадлежит к классу network object и описывает нейронную сеть. После того как эта переменная экспортирована в рабочую область, можно, например, построить модель нейронной сети в системе Simulink с помощью оператора gensim.
Диалоговая панель Network показана на рисунке 5.7.
Рисунок 5.6 – Окно для экспорта или записи данных в файл Export or Save from Network/Data Manager
Рисунок 5.7 – Диалоговая панель Network
Диалоговая панель Network открывается только в том случае, когда в окне Network/Data Manager выделена созданная сеть и становятся активными кнопки View, Initialize, Simulate, Train, Adapt.
Панель имеет шесть закладок:
View (Просмотреть) – структура сети;
Initialize (Инициализация) – задание начальных весов и смещений;
Simulate (Моделирование) – моделирование сети;
Train (Обучение) – обучение сети;
Adapt (Адаптация) – адаптация и настройка параметров сети;
Weights (Веса) – просмотр установленных весов и смещений.
Особенности работы с соответствующими окнами будут рассмотрены на приведенных ниже примерах создания конкретных нейронных сетей.
Дополнительно об особенностях работы в среде MATLAB можно посмотреть [1, 2]. Чтобы просмотреть примеры готовых нейронных сетей в MATLAB, нужно набрать команду help nndemos. Пакет поддерживает работу с определенными типами нейронных сетей (таблица 5.1).
Примечания:
1. Для сетей 2, 3, 7 в данной версии интерфейса NNTool не обеспечивается просмотр структурных схем.
2. Сети 5, 9 допускают введение линий задержек на входе.
3. Сети 3 допускают введение линий задержек в слое.
4. Сети с двумя слоями имеют последовательную структуру, когда выход первого слоя служит входом второго слоя. Исключение составляют сети 3, которые допускают наличие обратной связи в первом слое и передачу входного сигнала на входы обоих слоев.
Таблица 5.1 – Типы нейронных сетей, работу с которыми
поддерживает MATLAB
п/п | Тип сети | Название сети |
1 | Competitive | Конкурирующая сеть |
2 | Cascade-forward backprop | Каскадная сеть с прямым распространением сигнала и обратным распространением ошибки |
3 | Elman backprop | Сеть Элмана с обратным распространением ошибки |
4 | Feed-forward backprop | Сеть с прямым распространением сигнала и обратным распространением ошибки |
5 | Time delay backprop | Сеть с запаздыванием и обратным распространением ошибки |
6 | Generalized regression | Обобщенная регрессионная сеть |
7 | Hopfield | Сеть Хопфилда |
8 | Linear layer (design) | Линейный слой (создание) |
9 | Linear layer (train) | Линейный слой (обучение) |
10 | LVQ | Сеть для классификации входных векторов |
11 | Perceptron | Персептрон |
12 | Probabalistic | Вероятностная сеть |
13 | Radial basis (exact fit) | Радиальная базисная сеть с нулевой ошибкой |
14 | Radial basis (fewer neurons) | Радиальная базисная сеть с минимальным числом нейронов |
15 | Self-organizing map | Самоорганизующаяся карта Кохонена |
ПОРЯДОК ВЫПОЛНЕНИЯ РАБОТЫ
Динамические нейронные сети
Необходимо спроектировать динамическую линейную нейронную сеть для предсказания синусоидальной функции по четырем предшествующим значениям.
Архитектура сети: линейная нейронная сеть с линией задержки по входу на четыре такта, с одним входом, значения которого заключены в диапазоне [–1 1], и одним выходом.
Обучающая последовательность:
- входная последовательность
time = 0:0.1:10;
P = sin(time);
- последовательность целей
T = P;
Поскольку предполагается адаптивная настройка параметров сети, то обучающая последовательность должна быть представлена в виде массива ячеек:
P = con2seq(P);
T = P;
Целесообразно сформировать эти последовательности в рабочей области системы MATLAB, а затем импортировать их в рабочую область интерфейса NNTool.
Затем выберем сеть типа Linear layer (train) с линией задержки по входу (рисунок 5.8), инициализируем ее, установим начальные значения весов, выполним адаптацию сети, предварительно установив
Рисунок 5.8 – Выбор типа сети
имена последовательностей входа и цели, а также указав количество циклов адаптации – 250.
По окончании проектирования экспортируем нейронную сеть в рабочую область системы MATLAB.
Теперь можно построить модель нейронной сети в системе Simulink и построить ее схему (рисунок 5.9): gensim(network1)
Рисунок 5.9 – Построение схемы нейронной сети
Используя описание нейронной сети, можно просмотреть веса и смещение в рабочем окне системы MATLAB:
IW = network1.IW{1,1}
IW = 0.8135 0.4798 0.1716 –0.1143 –0.3858
b = network1.b{1}
b = 0.0024
Извлечем информацию об ошибке сети и построим соответствующий график (рисунок 5.10). Обратите внимание на специальную форму применения оператора cat, которая позволяет преобразовать массив числовых ячеек в числовой массив.
E = cat(2,network1_errors{:});
plot(time(10:101), E(10:101))
Рисунок 5.10 – График погрешности обучения
Посчитайте величины максимальной и среднеквадратичной погрешности.
Дата: 2019-02-02, просмотров: 1085.