Лабораторная работа 6. Ознакомление с работой пакета по искусственным нейронным сетям

реклама
МЕЖДУНАРОДНЫЙ БАНКОВСКИЙ ИНСТИТУТ
INTERNATIONAL BANKING INSTITUTE
Лабораторная работа 6.
Ознакомление с работой пакета
по искусственным нейронным сетям
(Statistica Neural Networks - SNN)
Цель работы: оценка возможностей использования искусственных нейронных
сетей (ИНС) в задачах управления качеством. ИНС предназначены для решения задач
классификации и регрессии. В данной работе знакомство с ИНС демонстрируется на
примере задач классификации.
1. В состав пакета SNN входит файл данных Iris.sta, относящийся к классической задаче
классификации ирисов. Рассматриваются три сорта цветов ириса: Setosa, Versicolor, Virginica.
Всего имеется по 50 экземпляров каждого вида, и каждый из них характеризуется четырьмя
величинами: длиной и шириной чашелистика, длиной и шириной лепестка.
Цель работы заключается в том, чтобы обученная ИНС предсказывала тип нового,
предъявленного сети цветка по набору измерений из четырех признаков.
Открыть файл Iris.sta через опцию File - Open (Файл – Открыть). На экране появится
таблица данных, состоящая из 150 строк и 5 столбцов. В случае, если числа первого столбца
указаны серым цветом («не учитываемые»), то при помощи правой клавиши мыши выделить
этот столбец и отмаркировать его как Входной - Input. Таким образом, файл содержит 4
входных переменных, подтверждением чему служит цифра «4» в поле «Variables», и одну
выходную номинальную переменную, имеющую три значения: Setosa, Versicolor, Virginica,
которая определяет тип цветка. На рис. 1 показана часть таблицы исходных данных.
Кроме того, разделим выборку данных из 150 цветков на два множества: обучающее,
состоящее из 80 цветков (показаны в таблице черным цветом), и контрольное из 70
экземпляров (показаны красным цветом). По первому множеству сеть будет обучаться, второе будет использоваться при контрольных проверках. Эти цифры приведены в окнах в верхней
части таблицы. Как видно из таблицы, эти два множества перемешаны случайным образом. При
необходимости данные могут еще раз перемешаны путем выбора опции Edit - Cases – Shuffle All» (Редактор – Строки - Перемешать - Все).
Рис. 1. Таблица исходных данных
В общем случае в программе SNN все наблюдения из файла данных делятся на 4 множества:
кроме обучающего и контрольного, еще имеются тестовое и неучитываемое. Тестовое служит
для окончательной оценки работы сети после завершения серии экспериментов. Неучитываемое
1
МЕЖДУНАРОДНЫЙ БАНКОВСКИЙ ИНСТИТУТ
INTERNATIONAL BANKING INSTITUTE
множество не используется вовсе: оно может потребоваться, если часть данных испорчена,
ненадежна или их слишком много.
Тип переменной обозначается цветом, которым высвечивается ее имя в заголовке столбца
таблицы:
o
o
o
o
Входная - черный;
Выходная - синий;
Входная / выходная - зеленый;
Неучитываемая - серый.
2. Перед конструированием сети уточним цель задачи классификации. В этой задаче
необходимо определить, к какому из нескольких заданных классов принадлежит входной набор.
Примерами могут служить предоставление кредита (относится ли данное лицо к группе высокого
или низкого риска), контроль качества продукции (годная, брак), распознавание подписи
(подлинная, поддельная). Во всех этих случаях на выходе требуется всего одна номинальная
переменная.
Создадим сеть в виде многослойного персептрона (Multilayer Perceptron). Принцип работы
этого типа сети состоит в следующем: каждый элемент сети (отдельный искусственный нейрон)
строит взвешенную сумму своих входов, пропускает эту величину активации через
передаточную функцию и, таким образом, получается выходное значение этого элемента.
Нейроны организованы в послойную топологию с прямой передачей сигнала. Такую сеть легко
можно интерпретировать как модель вход – выход, в которой веса являются параметрами
модели.
Через меню File – New - Network (Файл – Новый – Сеть) вызовем диалоговое окно Create
Network (Создать сеть). Далее необходимо выбрать тип сети из выпадающего списка Type (Тип).
По умолчанию всегда предлагается нужный нам тип сети Multilayer Perceptron (рис. 2).
Рис. 2. Диалоговое окно создания сети
После этого нажмем кнопку Advise (Совет). Программа SNN примет параметры по умолчанию
для пре/постпроцессирования и конфигурации сети, исходя из типа переменных, составляющих
исходные данные. Препроцессирование заключается в преобразовании исходных данных к
2
МЕЖДУНАРОДНЫЙ БАНКОВСКИЙ ИНСТИТУТ
INTERNATIONAL BANKING INSTITUTE
виду, удобному для обработки сетью. Сюда относится преобразование номинальных
переменных к числовому виду для последующего ввода в сеть, линейное масштабирование и
нормировка числовых переменных. Постпроцессирование также включает масштабирование,
нормировку и интерпретацию выходов сети в виде номинальных переменных.
Диалоговое окно Create Network (Создать сеть) содержит две таблицы: левая предназначена
для пре/постпроцессирования , а правая - для задания параметров сети. После нажатия кнопки
Advise (Совет) можно быть уверенным в том, что пре/постпроцессирование произведено в
полном соответствии с типом данных, а число слоев в сети и элементов в каждом слое выбрано
разумным образом. Обычно от пользователя требуется только:
o Изменить
(если
требуется)
преобразующую
функцию
для
пре
/
постпроцессирования. Здесь вполне подойдет функция Minimax (Минимакс).
o Задать число слоев и скрытых элементов в сети. В пакете SNN на экран также
выдается число элементов во входном и выходном слоях, однако два последних
параметра полностью определяются числом входных и выходных переменных,
поэтому их нельзя менять (высвечиваются серым цветом).
Примем число слоев персептрона, равным 3, а количество элементов в скрытом слое - 6.
После этого нажмем кнопку Create (Создать), и на экране появится созданная нами сеть (рис.
3).
Рис. 3. Сеть в виде трехслойного персептрона
Входной слой сети содержит 4 элемента, так как каждый цветок характеризуется четырьмя
признаками; выходной слой сети имеет 3 элемента, объединенных в один (скобкой), поскольку
от сети требуется расклассифицировать предъявляемый цветок (даже не участвовавший в
обучении) к одному из трех типов ирисов.
3. Следующим шагом после создания сети является ее обучение. В пакете SNN
реализованы основные алгоритмы обучения многослойных персептронов: методы обратного
распространения ошибки (ОРО), сопряженных градиентов и Левенберга – Маркара. Здесь
применим метод ОРО, суть которого состоит в следующем:
o Алгоритм ОРО последовательно обучает сеть на данных из обучающего
множества. На каждой итерации (эпохе) все наблюдения из обучающего
множества по очереди подаются на вход сети. Сеть обрабатывает их и выдает
выходные значения.
o Полученные значения выхода сравниваются с целевыми выходными значениями,
которые также содержатся в наборе исходных данных, и ошибка, т. е. разность
между требуемым и реальным выходами используется для корректировки весов
для снижения этой ошибки.
o Алгоритм ОРО должен находить компромисс между различными наблюдениями и
изменять веса таким образом, чтобы уменьшить суммарную ошибку на всем
обучающем множестве.
В пакете SNN отслеживается общая ошибка сети на графике, поэтому в процессе обучения
параллельно с обучением нужно наблюдать за изменением ошибки.
3
МЕЖДУНАРОДНЫЙ БАНКОВСКИЙ ИНСТИТУТ
INTERNATIONAL BANKING INSTITUTE
Через пункт меню Statistics – Training Graph … (Статистики – График обучения) открыть окно
Training Error Graph (График ошибки обучения). Этого же можно достичь, нажав специальную
кнопку (восьмую справа в верхнем ряду). На рис. 4 показано это окно.
Рис. 4. Окно для построения графика ошибки обучения
Далее через пункт меню Train - Multilayer Perceptron – Back Propagation (Обучение –
Многослойный персептрон – Обратное распространение) открыть диалоговое окно Back
Propagation (Обратное распространение), которое представлено на рис. 5.
Рис. 5. Диалоговое окно обратного распространения
Передвинуть последние два окна так, чтобы они не пересекались и были удобно
расположены. Нажать кнопку Train (Обучить) в диалоговом окне Back Propagation (Обратное
распространение). При этом будет запущен алгоритм обучения, а на графике появится кривая
зависимости ошибки от числа эпох.
Кратко опишем наиболее важные параметры диалогового окна Back Propagation (Обратное
распространение):
o Epochs (Эпохи). Задает число эпох обучения, которые проходятся при одном
нажатии кнопки Train (Обучить). На каждой эпохе через сеть пропускается все
обучающее множество, и на основании этих данных производится коррекция
весов сети.
o Learning Rate (Скорость обучения). При увеличении скорости обучения алгоритм
работает быстрее, но в некоторых случаях это может привести к неустойчивости.
o Momentum (Инерция). Этот параметр ускоряет обучение в ситуациях, когда
ошибка мало меняется, а также придает алгоритму дополнительную
устойчивость. Значение этого параметра должно лежать в диапазоне (0-1).
o Shuffle Cases (Перемешивать наблюдения). При выборе этой опции порядок, в
котором наблюдения подаются на вход сети, меняется в каждой новой эпохе. Это
4
МЕЖДУНАРОДНЫЙ БАНКОВСКИЙ ИНСТИТУТ
INTERNATIONAL BANKING INSTITUTE
добавляет в обучение некоторый шум, так что ошибка может испытывать
небольшие колебания.
o Cross Verification (Кросс- проверка). При отмеченной позиции качество
выдаваемого сетью результата проверяется на каждой эпохе по контрольному
множеству (если такое задано). При выключенной опции контрольные
наблюдения игнорируются, даже если в файле данных они присутствуют.
4. Укажем условия остановки алгоритма при обучении сети. Самое простое из таких
условий заключается в том, что обучение должно прекращаться по истечении заданного числа
эпох (т. е. полных прогонов всего множества обучающих наблюдений). Именно такое условие
остановки используется чаще всего.
Через меню Train - Auxiliary - Stopping Conditions (Обучение - Дополнительные – Условия
остановки) вызывается диалоговое окно условий остановки, показанное на рис. 6. По
умолчанию таким условием является число эпох, которое также задано в диалоговых окнах всех
обучающих алгоритмов.
Рис. 6. Окно условий остановки
5. После того, как сеть обучена, ее можно запустить на исполнение, т. е. на решение
задачи классификации. В данном пакете это можно сделать несколькими вариантами:
o На текущем наборе данных - целиком на всем наборе или на отдельных
наблюдениях.
o На другом наборе данных - целиком на всем наборе или на отдельных
наблюдениях. Такой набор данных уже может не содержать выходных значений
и быть предназначен исключительно для тестирования.
o На одном конкретном наблюдении, для которого значения введены
пользователем.
При запуске сети на текущем наборе данных возможно обрабатывать отдельные наблюдения
или все множество целиком.
Для обработки отдельных наблюдений необходимо через меню Run – Single Case (Запуск –
Одно наблюдение) перейти к диалоговому окну Run Single Case (Прогнать одно наблюдение). В
поле Case No (Номер наблюдения) задается номер наблюдения, подлежащего обработке. Для
обработки текущего наблюдения нажать кнопку запуска. Значения входных переменных
отображаются в таблице, расположенной в верхней части окна; выходные значения - в таблице
в нижней части (рис. 7).
5
МЕЖДУНАРОДНЫЙ БАНКОВСКИЙ ИНСТИТУТ
INTERNATIONAL BANKING INSTITUTE
Рис. 7. Диалоговое окно одного наблюдения
Для тестирования сети на всем наборе данных служит окно Run Data Set (Прогнать набор
данных), доступ к которому осуществляется через меню Run – Data Set (Запуск - Набор
данных). В таблице окна содержатся следующие данные: фактические выходы сети, целевые
выходные значения, ошибка, суммарная ошибка (рис. 8).
Рис. 8. Тестирование сети на всем наборе данных
6
МЕЖДУНАРОДНЫЙ БАНКОВСКИЙ ИНСТИТУТ
INTERNATIONAL BANKING INSTITUTE
Тестирование заданных пользователем наблюдений осуществляется из окна Run One-off
Case (Прогнать отдельное наблюдение), доступ к которому осуществляется через меню Run –
One-off (Запуск – Отдельное). Входные значения вводятся в таблицу входных значений,
расположенную в верхней части окна; результаты - в таблицу выходных значений в нижней
части окна (рис. 9).
Рис. 9. Тестирование новых наблюдений
6. Оценим статистики классификации. При прогоне всего набора данных программа
подсчитывает следующие статистики, характеризующие качество классификации сети:
 Число
наблюдений,
расклассифицированных
правильно,
неправильно
и
не
расклассифицированных.
 Для каждого класса - число наблюдений, принадлежащих на самом деле к нему, но при
классификации отнесенных к другому классу.
Диалоговое окно итоговых статистик, приведенное на рис. 10, открывается через меню
Statistics - Classification (Статистики – Классификация).
Рис. 10. Окно статистик классификации
В состав пакета входит Intelligent Problem Solver (Интеллектуальный решатель задачи),
который вызывается третьей кнопкой слева и проводит пользователя через все этапы
построения сети:




Выбрать обычную или расширенную версию (обычную).
Определить тип решаемой задачи (стандартная или временной ряд) (стандартная).
Выбрать зависимую выходную переменную (цветок).
Выбрать независимые входные переменные (признаки цветка).
7
МЕЖДУНАРОДНЫЙ БАНКОВСКИЙ ИНСТИТУТ
INTERNATIONAL BANKING INSTITUTE


Определить продолжительность процедуры поиска (средняя, 2 минуты).
Установить количество сохраняемых сетей (10, остальные опции
умолчанию).
 Выбрать формы представления результатов (указать все).
оставить
по
Спустя 2 минуты появятся итоговые результаты, которые надо сравнить с результатами,
полученными ранее.
8
Скачать