Представление исходных данных. Визуализация многомерных данных в среде Statistica (Лабораторная работа № 1), страница 20

Создадим сеть  в  виде  многослойного  персептрона  (MultilayerPerceptron). Принцип  работы    этого  типа  сети  состоит  в  следующем:  каждый  элемент сети  (отдельный  искусственный  нейрон)  строит  взвешенную сумму  своих  входов,  пропускает  эту  величину активации  через  передаточную функцию  и,  таким  образом,  получается  выходное значение  этого  элемента.  Нейроны  организованы  в  послойную  топологию  с  прямой  передачей  сигнала.  Такую  сеть  легко  можно интерпретировать  как  модель  вход – выход,  в  которой  веса   являются параметрами  модели.

Через  меню  FileNewNetwork(Файл – Новый – Сеть)  вызовем  диалоговое  окно  CreateNetwork(Создать  сеть).   Далее  необходимо  выбрать  тип  сети  из  выпадающего  списка  Type(Тип).По  умолчанию  всегда  предлагается  нужный  нам  тип  сети  MultilayerPerceptron(рис.6).

Рисунок 6  -  Диалоговое  окно  создания  сети

После  этого  нажмем  кнопку  Advise  (Совет).  Программа  SNN  примет  параметры  по  умолчанию  для  пре / постпроцессирования  и  конфигурации  сети,  исходя  из  типа  переменных,  составляющих  исходные  данные.  Препроцессирование  заключается  в  преобразовании  исходных  данных  к  виду, удобному  для  обработки  сетью.  Сюда  относится  преобразование  номинальных  переменных  к  числовому  виду  для  последующего ввода  в  сеть,  линейное масштабирование  и  нормировка  числовых  переменных. Постпроцессирование  также  включает  масштабирование,  нормировку  и  интерпретацию  выходов  сети  в  виде  номинальных  переменных.

Диалоговое  окно    CreateNetwork(Создать  сеть)содержит  две  таблицы:  левая  предназначена  для   пре / постпроцессирования ,  а  правая  -  для  задания  параметров  сети.  После  нажатия  кнопки  Advise(Совет)можно быть  уверенным  в  том,  что  пре / постпроцессирование  произведено  в  полном  соответствии  с  типом  данных,  а  число  слоев в  сети   и  элементов  в  каждом слое  выбрано  разумным  образом.  Обычно  от  пользователя  требуется  только:

·  Изменить  (если    требуется)  преобразующую  функцию  для    пре / постпроцессирования.  Здесь  вполне  подойдет  функция  Minimax(Минимакс).

·  Задать  число  слоев  и скрытых  элементов  в  сети.  В  пакете  SNN  на экран  также  выдается  число  элементов  во  входном  и  выходном  слоях,  однако  два  последних  параметра  полностью  определяются  числом входных  и  выходных  переменных,  поэтому их  нельзя менять  (высвечиваются  серым  цветом).

  Примем  число слоев  персептрона,  равным  3,  а количество  элементов  в  скрытом  слое  - 6.  После  этого  нажмем  кнопку  Create(Создать),и  на  экране  появится  созданная  нами  сеть  (рис.7).

Рисунок  7  -    Сеть  в  виде  трехслойного  персептрона

 Входной  слой  сети  содержит 4  элемента,  так  как каждый  цветок  характеризуется  четырьмя  признаками;  выходной  слой  сети  имеет  3  элемента,  объединенных  в  один  (скобкой),  поскольку  от  сети  требуется  расклассифицировать   предъявляемый  цветок  (даже  не  участвовавший  в  обучении)  к  одному  из  трех  типов    ирисов. 

3. Следующим  шагом  после  создания  сети  является  ее  обучение.  В  пакете  SNN  реализованы   основные  алгоритмы  обучения  многослойных  персептронов:  методы  обратного  распространения  ошибки  (ОРО),  сопряженных  градиентов  и  Левенберга – Маркара.  Здесь  применим  метод  ОРО,  суть  которого  состоит  в  следующем:

·  Алгоритм  ОРО  последовательно   обучает  сеть  на  данных  из    обучающего  множества.   На  каждой  итерации  (эпохе)  все  наблюдения  из  обучающего  множества  по  очереди  подаются на  вход  сети.  Сеть  обрабатывает  их  и  выдает  выходные  значения.

· Полученные  значения  выхода  сравниваются  с  целевыми  выходными   значениями,  которые  также  содержатся  в  наборе  исходных  данных,  и ошибка,  т.е.  разность  между  требуемым  и  реальным  выходами  используется для  корректировки  весов  для  снижения  этой ошибки.

· Алгоритм  ОРО  должен  находить  компромисс  между  различными  наблюдениями  и  изменять  веса  таким  образом,  чтобы  уменьшить  суммарную ошибку  на  всем  обучающем  множестве.