TRAJAN-3Lab

advertisement
3
3. ЛАБОРАТОРНЫЕ РАБОТЫ № 1–3 ПО КУРСУ
«НЕЙРОСЕТИ И НЕЙРОКОМПЬЮТЕРЫ»
Цель предлагаемых лабораторных работ – усвоение знаний,
умений и навыков решения практических задач классификации
образов с помощью искусственных нейронных сетей (ИНС) и
изучение основных возможностей системы Trajan 2.1 (Registered
Shareware Version) (разработка фирмы Trajan-Software (США)).
После их выполнения обучаемый с помощью программы Trajan
2.1
сможет
решать
многие
задачи
(автоматической)
классификации и прогнозирования.
3.1. Теоретическая часть
3.1.1. Многослойный перцептрон
Среди различных структур ИНС одной из наиболее
известных является многослойная структура, в которой нейроны
располагаются слоями и нейроны каждого слоя связаны лишь с
нейронами последующих слоев. Когда в сети только один слой,
алгоритм ее обучения с учителем относительно прост, ибо
правильные выходы нейронов единственного слоя известны, и
веса связей между нейронами могут быть определены, например,
на основе алгоритмов обучения с исправлением ошибок. В
многослойных же сетях требуемые выходы нейронов скрытых
слоев, как правило, не известны. Один из перспективных
подходов к их обучению - распространение сигналов ошибки от
выходов ИНС к ее входам, в направлении, обратном прямому
распространению информации в обычном режиме ее работы. При
этом по ошибкам нейронов выходного слоя для некоторого
образа, поданного на вход нейросети, сначала определяются
ошибки нейронов предпоследнего слоя, а по ним – ошибки
нейронов
предпредпоследнего
слоя.
Данный
процесс
продолжается до первого слоя. Эта процедура, многократно
4
повторяемая со всеми образами обучающей последовательности,
получила
название алгоритма обучения
с обратным
распространением ошибки (предложен в середине 1980-х
несколькими исследователями независимо друг от друга).
В многослойных персептронах (multi-layer perceptron)
нейроны располагаются слоями. Обратные связи в них
отсутствуют и информация передается лишь от входа к выходу.
Они состоят из входного слоя, одного или более скрытых слоев
(названных так, потому что они не имеют непосредственных
связей с "внешним миром") и выходного слоя. Для обучения
многослойных персептронов часто применяется алгоритм
обучения
с
обратным
распространением
ошибки
(Backpropagation-Netze, back propagation (neural) network, multilayer perceptron with back propagation training algorithm).
Многослойные персептроны были предложены и исследованы в
1960-х годах Розенблаттом, Минским, Пейпертом и др. Они
оказались весьма эффективными для решения разнообразных
задач распознавания, управления и прогнозирования.
Тип входных сигналов для них: целые или действительные.
Тип выходных сигналов: действительные из интервала, заданного
сигмоидальной функцией активации или выхода нейронов
(функция Ферми, гиперболический тангенс и другие).
Рассмотрим векторную функцию y=f(x), которая ставит в
соответствие n-мерному входному вектору x некоторый mмерный выходной вектор y. Например, в задаче классификации x
- это вектор значений n признаков распознаваемого объекта,
вектор y, состоящий из одной единицы и остальных нулей,
является индикатором класса, к которому принадлежит образ x
(позиция единицы в записи вектора y означает номер класса).
Функция f ставит в соответствие каждому объекту тот класс, к
которому он принадлежит.
Обучение сети состоит в таком выборе весов связей между
нейронами, чтобы суммарная среднеквадратическая ошибка
нейросети для образов обучающей последовательности была
минимальной. После обучения персептрона проводится проверка
эффективности его работы. Для этого множество образов,
5
классифицированных учителем, разделяется на две части:
обучающую и контролирующую последовательности, причем
первая используется для обучения, а вторая – для определения
эффективности работы обученного персептрона. Один из таких
критериев эффективности - доля правильно классифицированных
образов тестирующей последовательности.
Алгоритм обратного распространения ошибки (Румельхарт
(Rumelhart),
Мак-Клелланд
(McClelland))
рассмотрим
применительно к сетям прямого распространения сигналов
(FeedForward-Netze или FF-сети). Основная его идея очень
проста. Средняя квадратическая ошибка ИНС естественно
зависит от весов всех связей ИНС и может быть представлена в
виде поверхности в пространстве этих весов с многими
локальными и глобальным минимумами. Цель обучения ИНС
состоит в определении таких значений весов ее связей, которые
обеспечивают в идеале глобальный минимум средней
квадратической ошибки ИНС.
3.1.2. Сети Кохонена
Сети Кохонена (Kohonen-Netze, self-organizing maps = SOM,
Kohonen maps, Kohonen feature maps) или самоорганизующиеся
карты предназначены для решения задач автоматической
классификации, когда обучающая последовательность образов
отсутствует. Соответственно не возможно и определение ошибки,
на минимизации которой основаны алгоритмы обучения
(например, алгоритм обучения с обратным распространением
ошибки - Backpropagation).
Сеть Кохонена - это двухслойная ИНС. Она содержит
входной слой (слой входных нейронов) и слой Кохонена (слой
активных нейронов). Слой Кохонена может быть: одномерным,
двухмерным, или трехмерным. В первом случае активные
нейроны расположены в цепочку, во втором они образуют
двухмерную сетку (обычно в форме квадрата или
прямоугольника), а в третьем - трехмерную конструкцию.
6
В силу отсутствия обучающей последовательности образов,
для каждого из которых известна от учителя принадлежность к
тому или иному классу, определение весов нейронов слоя
Кохонена (Referenz - Codebook Vektoren) основано на
использовании
алгоритмов
обучения
без
поощрения
(автоматической
классификации,
кластеризации
или
самообучения).
Нейроны входного слоя служат для ввода значений
признаков распознаваемых образов. Активные нейроны слоя
Кохонена предназначены для формирования областей (кластеров)
различных классов. На стадии обучения без поощрения сети
входной вектор попарно сравнивается с весовыми векторами всех
нейронов слоя Кохонена. Вводится некоторая функция близости
(например, в виде эвклидова расстояния). Активный нейрон слоя
Кохонена, для которого значение функции близости между
входным вектором, характеризующим некоторый образ, и его
весовым вектором максимально, объявляется "победителем". При
этом образ, характеризующийся этим вектором, относится к
классу, представляемому нейроном-"победителем". В результате
осуществляется
преобразование
n-мерного
входного
n
пространства R на m-мерную сетку (слой Кохонена). По
завершении процесса обучения без поощрения на стадии
реального использования сети Кохонена неизвестные входные
образы относятся к одному из выявленных кластеров (классов).
3.2. Работа с программой
Для запуска программы необходимо запустить файл
Trajan.exe. На экране в зависимости от версии Вашей программы
Trajan (русифицированная или оригинальная) появится главное
окно программы (рис.3.1). Вы можете выполнять данную работу,
как на оригинальной, так и на русифицированной версии. Весь
интерфейс программы (команды меню, названия диалоговых
окон и полей, а так же основные термины) приведен на русском
языке. В скобках указан английский эквивалент.
7
Рис. 3.1. Главное окно программы (русифицированная версия).
3.2.1. Создание сети
Новую ИНС можно сделать в окне Создание ИНС (Network
Creation)
(рис.3.2),
вызываемом
командой
меню
Файл/Создать/Сеть (File/New/Network).
Рис. 3.2. Окно создания ИНС.
Как видим, в поле Тип (Type) можно задать два типа ИНС:
1) многослойный персептрон (Multilayer Perceptron); 2) сети
Кохонена (Kohonen network).
Если Вы хотите использовать многослойный персептрон,
укажите числа слоев в нем и нейронов в каждом слое (см. ниже).
8
Затем нажмите кнопку Создать (Create).
Рис. 3.3. Структура созданной сети
Структура созданной сети отобразится в главном окне
Главное (Main), а тип сети - в Строке статуса (Status line),
находящейся прямо под панелью инструментов (рис. 3.3).
3.2.2. Ввод количества и размерности слоев
Система Trajan может поддерживать до 128 слоев, а число
нейронов ограниченно только оперативной памятью компьютера
(более 16 млн.). Однако незарегистрированная версия
Unregistered Shareware ограничена всего двадцатью нейронами.
Часто такого количества слоев и нейронов бывает достаточно.
В системе Trajan первый слой всегда Входной слой или
просто Вход (Input layer), он выполняет функцию ввода входных
данных в сеть. Последний слой всегда Выходной слой или
просто Выход Output layer (Output layer). Выходы его нейронов
- выходы всей сети. Все остальные слои - так называемые
Скрытые слои (Hidden layers). Можно указать число нейронов в
каждом слое, используя матрицу диалогового окна Создание
сети (Network Creation) в форме небольшой электронной
таблицы. Можно задать число нейронов в слое, изменив значение
ячейки первой строки (units). Слой с нулевым количеством
нейронов игнорируется. После этого нажмите мышкой (далее
9
кликните) в первой ячейке матрицы, она отобразится белым
текстом на черном фоне. Это означает, что выбрана данная
ячейка.
Введите число элементов во входном слое и нажмите
стрелку вправо управления курсором. Число вводится в первую
ячейку. При этом следующая ячейка становится выбранной. В
нее вводится число нейронов в следующем слое. Повторите
предыдущие операции для ввода числа нейронов второго,
третьего и других слоев.
В матрице есть еще и вторая строка ширина (width). Она
используется только в сети типа Сеть Кохонена (Kohonen
network). Выходной слой сети Кохонена – двухмерная решетка
(имеет два измерения). Программа определяет высоту слоя в виде
отношения общего числа нейронов выходного слоя к его ширине.
После ввода чисел нейронов для всех слоев нажмите кнопку
Создать (Create). Это приведет к формированию сети,
отображаемой графически в главном окне программы.
3.2.3. Создание обучающей последовательности
Одно из ключевых свойств ИНС - способность обучаться на
примерах для решения различных задач. В системе Trajan все
образы обучающей последовательности хранятся вместе и
образуют обучающую последовательность (Pattern Set).
Вызовите
диалоговое
окно
Создание
обучающей
последовательности (Pattern Set Creation) для многослойного
персептрона
командой
меню
File/New/Pattern
(Файл/Новый/Образец)).
В диалоговом окне (рис. 3.4) введите числа Входов (Inputs)
и Выходов (Outputs) в обучающей последовательности. Число
входов должно соответствовать числу нейронов в первом
(Входном) слое, а число выходов - числу нейронов в последнем
(Выходном) слое. Если Вы последовательно создаете сначала
структуру сети, а затем обучающую последовательность, то эти
значения устанавливаются по умолчанию. Нажмите кнопку
10
Создать (Create), после чего автоматически вызывается
диалоговое окно Редактор образов (Pattern Editor) (рис.3.5).
Рис.3.4. Диалоговое окно “Создание обучающей
последовательности”
Рис. 3.5.Диалоговое окно редактора образов
Основным в Редакторе образов (Pattern Editor) является
Матрица образов (Pattern Matrix), она содержит обучающую
последовательность. Каждый образ представлен в ней строкой. В
начале (сразу после создания) в матрице имеется лишь одна
строка, у которой все атрибуты (входы i#01...i#02 и выход o#01)
установлены в нуль (рис. 3.5). Выходы отделены от входов
жирной вертикальной чертой. Можно создавать новые образы
или редактировать уже существующие.
В случае сети Кохонена диалоговое окно редактора образов
(рис. 3.6), в котором создается обучающая последовательность ,
вызывается аналогично.
3.2.4. Редактирование набора образов
Редактор образов (Pattern Editor) имеет следующие
возможности: 1. Матрица образов (Pattern Matrix), позволяю-
11
Рис. 3.6. Диалоговое окно редактирования образов
щая изменять любой существующий образ и атрибут, добавлять и
удалять образы и атрибуты и т.д.; 2. Набор полей для подстройки
баланса Входных и Выходных атрибутов и образов обучающей
и
проверяющей
последовательностей;
3.
Возможность
автоматически изменять порядок образов в наборе.
Матрица образов (Pattern Matrix) используется для
изменения или удаления существующих образов и атрибутов, а
при необходимости и для добавления новых образов.
Возможности редактирования весьма широки. Необходимо
заметить, что большинство матриц в программе подчиняются
одним и тем же правилам редактирования. Для изменения
значения какого-либо признака (атрибута) образа сначала
необходимо выбрать соответствующую ячейку. Каждый образ в
наборе представлен строкой матрицы, а каждый атрибут
(признак) - столбцом. Входные и выходные атрибуты разделены
жирной вертикальной линией.
Для выбора ячейки: 1) кликните мышкой на ячейке или 2)
двигайтесь с помощью ключей управления курсора; 3) программа
автоматически сдвигает видимую область матрицы. Как только
Вы выбрали необходимую ячейку, просто введите новое
значение.
Добавление нового образа. Возможны два способа
добавления нового образа в последовательность: 1. Попробуйте
перейти за нижнюю границу матрицы с помощью клавиши
управления курсора стрелка вниз или нажать RETURN на
последней ячейке матрицы (последний столбец, последняя
12
строка). Создастся новый образ, содержащий все нули;
2. Расположите мышиный курсор между названиями (номерами)
двух образов слева от матрицы (курсор изменит вид на
двухстороннюю стрелку). Кликните мышкой, появится жирная
белая полоса между ними, называемая Insertion Bar (Место
вставки). Нажмите клавишу RETURN или INSERT. Создастся
новый образ, содержащий все нули.
Добавление нового атрибута (признака). Для этого
выполняются следующие операции: 1.. Подведите мышиный
курсор между названиями двух атрибутов (столбцы матрицы),
курсор изменит свой вид на горизонтальную двухстороннюю
стрелку, 2) Кликните мышкой, появится жирная белая
вертикальная полоса между ними, называемая Insertion Bar
(Место вставки), 3) Нажмите клавишу RETURN или INSERT.
Создастся новый атрибут.
Копирование и вставка. Матрица образов позволяет Вам
выделить прямоугольную область ячеек, которую затем можно
скопировать в буфер, а при необходимости и вставить данные из
кармана в любое место матрицы. Аналогично копируются и
вставляются данные и из других матриц программы.
Вырезание, Копирование и Вставка образов. Для этого
они сначала выделяются по их названиям (номерам) слева от
матрицы.
Вырезание целого образа. Чтобы вырезать целый образ из
матрицы, сначала выделите его мышкой, а затем нажмите
SHIFT+DELETE. Образ уберется из матрицы.
Вставка целого образа. Возможны два способа: 1). Путем
замены существующего образа. Если отметить образ, а затем
вставить (путем нажатия SHIFT+INSERT) на его место образ из
буфера, то существующий образ будет заменен; 2). Добавление
образов. Для этого сначала сделайте Insertion Bar (место вставки),
как описано в разделе по добавлению образов, а затем нажмите
(SHIFT+INSERT) и образы из буфера появятся на новом месте.
Замечание. Используя эти возможности редактирования,
можно изменять последовательность образов в наборе. То же
самое можно делать и с аттрибутами (столбцами)
13
Копирование набора целиком. Можно либо скопировать
все содержимое матрицы, либо записать его в отдельный
текстовый файл. Такая возможность присутствует во всех
матрицах системы.
Наименование образов. Вы можете задавать имена
отдельным образам прямо на матрице. Для задания или
изменения имени необходимо: 1. Дважды щелкните мышкой в
середине номера строки (слева от матрицы). Появится курсор
(серый вертикальный отрезок). 2. Наберите желаемое имя.
Можно использовать все клавиши редактирования (DELETE,
BACKSPACE, RIGHT ARROW и т.д.). 3. Используйте клавиши
управления курсора вверх и вниз для перемещения между
образами.
Замечание. Если не задано имя образа, то вместо имени
система автоматически задает ему порядковый номер.
Аналогично можно задавать имена атрибутам (столбцам)!
Внимание. Программа не отслеживает правильность
изменения имен атрибутов в соответствии с названиями нейронов
(в частности для сетей Кохонена), так что следите за этим
вручную.
3.2.5. Сохранение обучающей последовательности и
структуры сети
Программа
Trajan
сохраняет
обучающую
последовательность и структуру сети в двух различных файлах.
Для сохранения структуры сети выберите пункт меню
Файл/Сохранить как/Сеть (File/Save As/Network).
Появится диалоговое окно сохранения сети (рис. 3.7).
Введите имя файла сети в поле File Name (Имя) диалогового
окна. Стандартное расширение файла сети - net. После этого
нажмите OK. Для сохранения обучающей последовательности
используется команда меню Файл/Сохранить как/Образ
(File/Save
As/Pattern).
Обучающие
последовательности
записываются в файл с расширением .pat.
14
Рис. 3.7. Диалоговое окно сохранения сети
Время от времени сохраняйте свою работу командами меню
File/Save/Network и File/Save/Pattern. Программа автоматически
спросит Вас о сохранении Вашей работы, если Вы захотите
выйти из программы, не записавшись. Подобное диалоговое окно
используется и для открытия сохраненного файла сети или
образа.
3.3. Лабораторная работа N 1. Классификация образов с
помощью системы Trajan 2.1
3.3.1. Цель работы
Изучение основ моделирования ИНС с помощью системы
Trajan 2.1 и усвоение знаний, умений и навыков решения задач
классификации образов с помощью многослойного перцептрона
3.3.2. Знания, умения и навыки, формируемые работой
1. Основные принципы построения ИНС и их обучения с
помощью программного пакета Trajan 2.1; 2. Практические
15
навыки использования программы Trajan для классификации
образов.
Предпосылки: знание общих сведений о работе с ПЭВМ
IBM PC AT в операционной среде Windows 3.1
3.3.3. Алгоритмы обучения многослойного персептрона
Многослойный персептрон- в настоящее время одна из
самых популярных архитектур сетей. Сеть этого типа может
иметь до 128 слоев. Для его обучения можно использовать
алгоритмы: градиентного (наискорейшего) спуска (Conjugate
Gradient Descent), Левенборга-Марквардта (Levenburg-Marquardt),
обратного распространения ошибки (Back Propagation), быстрого
распространения (Quick Propagation) или обобщенного дельтаправила (Delta-Bar-Delta). В данной работе используется лишь
алгоритм обучения с обратным распространением ошибки.
Программа Trajan вычисляет среднюю квадратическую
ошибку распознавания и отображает ее на Графике (Graph), а
также ошибку распознавания для каждого образа и представляет
ее на гистограмме (Bar Chart). Во время обучения рекомендуется
наблюдать хотя бы за одним из этих графиков для контроля
сходимости процесса обучения.
3.3.4. Задача моделирования схемы исключающего ИЛИ
(XOR-схемы)
Таблица истинности этой схемы имеет вид:
INPUT 1
INPUT 2
TRUE ?
0
0
NO
1
0
YES
0
1
YES
1
1
NO
16
Схема исключающего-ИЛИ – один из примеров задач
классификации линейно неразделимых образов. Убедитесь в
этом, изобразив на плоскости с координатами INPUT 1 и INPUT 2
четыре возможных образа (четыре возможных состояния этой
схемы).
3.3.5. Алгоритм обучения с обратным распространением
ошибки
Создайте сеть со структурой рис. 3.3, сформируйте
обучающую последовательность и укажите названия образов и
атрибутов согласно следующей таблице:
Вход Вход XOR
1
2
Ни
одной
0
0
0
Слева
1
0
1
Справа 0
1
1
Обе
1
0
1
На рис. 3.8 показано, как должно выглядеть диалоговое окно
редактора образов после всех вышеуказанных действий.
Рис. 3.8. Редактирование образа
После создания структуры сети и ввода обучающей
последовательности следующим шагом является обучение сети.
17
Сначала вызовите диалоговое окно График ошибки обучения
(Training Error Graph) с помощью команды меню
Статистика/График обучения (Statistics/Training Graph) (рис.
3.9), а затем - диалоговое окно Обратное распространение
(Back Propagation) с помощью команды меню Обучение/
Backpropagation
(Train/Backpropagation)
(рис.3.10).
Расположите окна на дисплее так, чтобы они не перекрывали
друг друга.
После ввода Обучение (Train) диалогового окна Back
Propagation
начинается
процесс
обучения.
Средняя
квадратическая ошибка по всем выходам сети отобразится на
графике. Нажмите кнопку Обучение еще несколько раз. Каждое
нажатие продолжит процесс обучения на заданное количество
циклов (эпох) обучения. Не удивляйтесь, если по графику Вы не
заметите тенденцию снижения средней квадратической ошибки.
Вероятно потребуются тысячи циклов обучения (эпох) для
достижения требуемой эффективности функционирования
обученной сети.
Скорость и эффективность обучения сети на основе
алгоритма обратного распространения ошибки определяются
рядом параметров, большинство из которых можно изменить в
диалоговом окне Back Propagation. Значения, автоматически
установленные по умолчанию, являются оптимальными для
большинства задач, однако их всегда можно изменить. Заметим,
что для нашей задачи моделирования XOR-схемы эти значения и
не очень подходят. Ниже приведены все основные параметры с
кратким описанием и даны их рекомендуемые значения для
моделирования XOR-схемы: 1. Epochs (Периоды). Количество
циклов обучения, выполняемых после нажатия кнопки Train
(обучение). Значение по умолчанию - 100, что приемлемо для
нашей задачи. 2. Learning rate (Коэффициент коррекции или
скорость обучения). Чем выше это значение, тем быстрее идет
процесс обучения, но одновременно повышается нестабильность
(особенно при наличии шума). При значениях, близких к 1,
алгоритм может зациклиться. Для моделирования XOR-схемы
можно установить большое значение коэффициента коррекции
18
(например, 0.9). 3. Момент (Momentum). Значительно повышает
скорость обучения, если он подобран правильно; вносит
стабильность в процесс обучения (особенно, если изменения в
общей ошибке от цикла к циклу незначительные). Всегда должен
находится в пределах [0.0;1.0). (т.е. больше или равен 0.0, строго
меньше 1.0). Рекомендуется сочетать большое значение
коэффициента коррекции и малый момент и наоборот, малый
коэффициент коррекции и большой момент. Для моделирования
XOR-схемы момент можно выбрать равным 0.9. 4. Shuffle
(Перестановка образов). Когда активирован этот параметр,
порядок представления образов сети с каждым циклом
изменяется. Это добавляет некоторый шум и замедляет процесс
обучения, но гарантирует непопадание алгоритма в мертвую
точку, повышая таким образом общую эффективность алгоритма.
Если задать все параметры как указанно выше, то задача
моделирования XOR-схемы «сойдется» за несколько сотен
циклов обучения. Сравните с первой попыткой, когда
потребовалось в несколько раз больше циклов.
Замечание. Система может прогрессивно изменять
значения коэффициента коррекции (Learning rate) и/или момента
(Momentum) от цикла к циклу, начиная с начального значения
(задается в левом поле параметра) до конечного значения
(задается в правом поле параметра). Например, можно
постепенно, от цикла к циклу,
уменьшать значение
коэффициента коррекции для достижения приемлемой величины
общей ошибки с наибольшей начальной скоростью.
Несколько запусков алгоритма. Если Вы хотите сравнить
характеристики нескольких процессов обучения с различными
параметрами,
используйте
кнопку
Reinitialise
(Реинициализация) диалогового окна Back Propagation. При ее
нажатии процесс обучения инициализируется заново. Если
выбрать
Обучение
(Train)
после
Reinitialise
(Реинициализация), то на графике ошибки начнет изображаться
новая кривая. Если график засорен лишними линиями, его можно
19
очистить, нажав кнопку Clear (Очистить) на Графике обучения
(Training Graph).
Замечание. Для облегчения сравнения можно установить
изображение графиков различными цветами Для этого
необходимо для текущей линии задать имя в поле Label (Метка)
на Графике обучения (Training Graph), и линия отобразится
другим цветом.
Ошибки по отдельным образам. График обучения
Training Graph отображает среднюю квадратическую ошибку
сети. Иногда бывает полезно понаблюдать, как изменяются
величины ошибки на отдельных образах. Для это служит
гистограмма Pattern Errors (Ошибки образа), вызываемая
командой меню Statistics/Pattern Errors (Статистика/Ошибка
образа).
Гистограмма автоматически обновляется только к концу
периода обучения; но ее можно обновлять и в процессе обучения
(правда это значительно замедлит процесс). Для этого
необходимо выбрать параметр Real-time update (Оперативное
обновление) в гистограмме ошибки образа до начала обучения.
По гистограмме можно проследить уменьшение ошибки на
отдельном образе при колебаниях ошибки на других образах.
Рис. 3.9. График ошибок
20
Рис. 3.10. Диалоговое окно обучения сети
Прогон сети. После обучения сети ее можно запустить. В
программе Trajan для этого предусмотрено несколько режимов.
1) Прогон текущей обучающей последовательности целиком или
по одному образу за один шаг обучения; 2) Прогон любой другой
последовательности образов целиком или по одному образу за
один шаг. Такая последовательность образов должна иметь
необходимое количество входов и не иметь выходов (если
выходы есть, то они игнорируются); 3) Прогон образа, заданного
пользователем
и
не
принадлежащего
к
обучающей
последовательности.
Прогон текущей последовательности. Можно запустить
сеть на текущей последовательности образов, представляя сети
по
одному
образу,
или
запустить
сеть
со
всей
последовательностью. В последнем случае все характеристики
собираются по всем образам.
Прогон одного образа. Для запуска программы в режиме
прогона единственного образа необходимо вызвать диалоговое
окно Run Single Pattern командой меню Run/Single Pattern
(Выполнить/Одиночный образ) (рис.3.11). Для выбора
необходимого образа воспользуйтесь полем Pattern (Образец),
введите Run (Выполнить) для прогона текущего образа, или
измените поле Pattern (Образ) и введите RETURN.
21
Рис. 3.11. Прогнать один из…
Замечание. Самый простой способ прогона большого числа
образов по одному за один шаг обучения- ввод Run (Выполнить),
а затем кнопки Стрелочка Вверх, находяшейся справа от поля
Pattern (Образец). Входы сети отображаются в матрице на левой
половине экрана, а выход - справа. Кроме действительного
выхода (Actual) справа отображаются требуемый выход (решение
учителя)(Target) и ошибка между ними (Error). Программа
отображает также вверху окна общую ошибку на образ и
классификацию текущего образа.
Прогон всей последовательности образов. Для проверки
сети на всей последовательности образов командой Run/All
Patterns (Выполнить/Все образы) вызывается диалоговое окно
Run All Patterns (Прогон всех образов) (рис. 3.12), затем командой
Run (Выполнить) запускается вся последовательность.
Результат появится в том же окне. Полученная матрица содержит
вычисленные сетью значения (o#01), ожидаемые значения
(решения учителя) (Т. о#01) и ошибку (Е. o#01) для каждого
образа. Вверху матрицы отображается также и средняя
квадратическая (RMS) ошибка обучения.
22
Рис. 3.12. Прогнать все образы
Проверка сети на произвольном образе. Для задания
произвольного образа и прогона его через сеть необходимо
вызвать диалоговое окно Run One-off Pattern (Прогон одного из
...) командой меню Run/One off (Выполнить/Один из), а затем
ввести значения признаков в матрицу входов (Inputs Matrix) на
левой половине окна и нажать кнопку Run (Выполнить).
Результат классификации появится в выходной матрице (Outputs
Matrix) на правой стороне окна.
Пример. Измените входы для задачи моделирования XORсхемы (например, вместо 0 и 1 поставьте 0.1 и 0.9
соответственно). ИНС обычно достаточно устойчивы к таким
незначительным изменениям, поэтому хорошо справляются с
«зашумленными» данными.
Установка степени принадлежности. Для установки
желаемой
степень
принадлежности
используется
окно
Normalisation (Нормализация), вызываемое командой меню
Edit/Normalisation (Изменить/Нормализация). Поле Accept
(Принять) задает минимальное значение выхода, при котором он
идентифицируется как 1.0; поле Reject (Отклонить) максимальное значение выхода, ниже которого результат
опознается как 0.0.
Интерпретация классификации. Возможны следующие
варианты: 1. Если выход сети больше установленного порога
23
Принять, то образ классифицируется как принадлежащий классу
и имя (название) выходного нейрона отображается в поле Класс.
Если Вы следовали всем инструкциям и все сделали правильно,
то название XOR должно отобразиться в поле Classification
(Класс). 2. Если результат меньше установленного порога
Отклонить, то образ классифицируется как не принадлежащий
классу и в поле Classification (Класс) отображается слово
Negative. 3. Если результат находится между двумя указанными
порогами,
то
образ
классифицируется
как
Unknown
(Неизвестный).
Статистика классификации. Для получения общей
статистики
по
классификации
всей
обучающей
последовательности
командой
меню
Статистика/Классификация вызывается окно Сlassification
Statistics (Статистика классификации) (рис.3.13). Вся статистика
отображается в матрице.
Рис.3.13. Окно отображения общей статистики по классификации
всей обучающей последовательности
Данная матрица содержит один столбец для каждого класса.
Каждый столбец имеет две секции: общая
статистика и
распознанная статистика, разделенные жирной горизонтальной
линией.
Общая статистика: 1. Total (Всего) – число образов
данного класса в последовательности. 2. Correct (Правильных)-
24
число образов данного класса, правильно распознанных сетью.
3. Wrong (Ошибочно)- число образов данного класса, ошибочно
отнесенных к другому классу. 4. Unknown (Неизвестных)количество образов данного класса, не опознанных сетью.
Распознанная статистика- число образов каждого класса,
отнесенных к какому-либо-классу (список распознанных
образов). Неизвестные образы не учитываются.
3.3.6. Рабочее задание
1. Ознакомиться с описанием.
2. Подробно ознакомиться с разделом 3.2 описания (работа
с программой). Для этого необходимо изучить все
действия и последовательно исполнить все шаги,
описанные в разделе. В результате у Вас получится
обученная нейронная сеть, способная решать задачу
классификации (моделирование XOR-схемы).
3. По окончании изучения раздела 3.2 показать
преподавателю результаты:
 главное окно (с изображением структуры ИНС);
 окно
редактора
образов
(с
обучающей
последовательностью);
 окно нормализации (с установленной степенью
принадлежности);
 график обучения;
 окно прогона обучающей последовательности;
 общую статистику по всем образам.
4. Создать сеть и обучающую последовательность для
решения следующей задачи классификации:
 Для четных вариантов: моделирование трехвходовой
схемы ИЛИ-НЕ. Определить, принадлежит
ли трехмерный двоичный вектор классу
ИЛИ-НЕ. Какой структурой сети Вы
воспользовались? Почему?
 Для нечетных вариантов: определить, принадлежит ли
трехмерный двоичный вектор к классу
25
векторов, сумма координат которых равна 2
(1,1,0), (0,1,1) и т.д. Какой структурой сети
Вы воспользовались? Почему?
5. Обучить полученную сеть. Результаты показать
преподавателю в виде, аналогичном п. 3 задания.
Сохранить обучающую последовательность и обученную
сеть в файлы с произвольными именами.
6. Отчет должен содержать все файлы обучающих
последовательностей
и
всех
обученных
сетей,
полученные в п. 3 и п. 5 задания (эти файлы находятся в
текущем каталоге, имеют текстовый формат и
расширения .pat и .net соответственно).
3.3.7. Контрольные вопросы
1. Какие сети можно использовать в системе Trajan? Какие
задачи они решают?
2. Поясните процесс создания и обучения нейронной сети?
3. Какие параметры и как влияют на качество распознавания
сети?
3.4. Лабораторная работа № 2. Множественная
классификация образов с помощью системы Trajan 2.1
3.4.1. Цель работы. Изучение возможностей системы Trajan 2.1
по решению задач множественной классификации образов при
числе классов больше двух.
3.4.2. Знания, умения и навыки, формируемые в работе
На примере классификации цветков Ириса освоить:
 принципы представления данных и построение ИНС в
задачах множественной классификации,
 алгоритмы обучения и использования ИНС,
 приемы сбора статистики с помощью системы Trajan,
26
 возможности системы Trajan по редактированию
обучающих последовательностей,
 навыки по созданию сокращенных наборов образов и их
деления
на
обучающие
и
контролирующие
последовательности.
Предпосылки: знание общих сведений о работе с ПЭВМ
IBM PC AT в операционной среде Windows 3.1
3.4.3. Постановка задачи
В стандарт системы Trajan входит файл iris.pat,
представляющий набор цветков Ириса, классифицированных
учителем. Задача состоит в определении, к какому из
существующих трех видов (Ирис Setosa, Ирис Versicolour, Ирис
Virginica) принадлежит цветок. Из каждого вида Ириса было
взято по 50 представителей (всего 150). Для них определены
значения 4 признаков: длина и ширина лепестка, длина и ширина
пестика. Цель – обучение нейросети классификации цветков
Ириса.
Это - типичная задача распознавания образов по следующим
причинам: во-первых, один вид цветка (Setosa) является линейно
отделимым от двух других классов так, что его классификация не
представляет труда, однако два других вида очень похожи и даже
есть
несколько
исключений
принадлежности
цветка
определенному виду, что делает данную задачу трудно
разрешимой.
3.4.4. Представление более двух классов образов
В файле iris.pat учитываются 4 входных и 3 выходных
аттрибута. Каждый из выходных аттрибутов имеет название
(имя) одного из трех видов Ириса (Setosa, Versicolour, Virginica) и
каждый образ имеет на выходе всего одно значение 1.0, а
остальные значения выходов - 0.0.
27
Образы
Setosa
Versicolour
Virginica
...
1.0
0.0
0.0
...
0.0
1.0
0.0
...
0.0
0.0
1.0
Это метод кодирования называется
один-из-N. Он
используется в системе Trajan и является стандартом
представления более двух классов образов для ИНС. Он
естественно применим и в случае двух классов образов
(например, при моделировании XOR-схемы). При этом выходной
слой должен содержать два нейрона. Для полного использования
всех возможностей системы по сбору статистики в задачах
множественной классификации следует пользоваться только
таким представлением данных.
3.4.5. Работа с программой
3.4.5.1. Создание сокращенной обучающей
последовательности
Хотя учителем классифицировано 150 образов, для
обучения
ИНС
используется
сокращенная
обучающая
последовательность из 60 образов. Это позволяет ознакомиться с
некоторыми возможностями Редактора образов (Pattern Editor).
Все множество образов, классифицированных учителем,
разделим
на
два
подмножества:
1)
обучающую
последовательность, содержащую Обучающие образы (Training
patterns) для обучения сети и 2) контролирующую
последовательность,
содержащую
Проверочные
образы
(Verification patterns) для проверки эффективности обученной
сети. В программе Trajan обучающая и контролирующая
последовательности хранятся в одном файле и используют один и
тот же набор образов, классифицированных учителем. Образы из
одной последовательности можно передавать в другую.
28
Сокращенная
обучающая
последовательность
smallir.pat
создается так:
1. Откройте файл iris.pat с обучающей последовательностью
и войдите в редактор образов.
2. Вырежьте образы 51-60 из матрицы и вставьте их в
позицию 11-20. Для этого:
2.1. Потяните за край окна редактора и растяните его так,
чтобы в длину уместилось хотя бы 10 образов.
2.2. Пролистайте матрицу вниз так, чтобы образ 50 стал
первой строкой, а образы 51-60 были все видимы на
экране. Затем нажмите мышкой в середине номера 51
образа и протащите мышкой до 60-го образа.
Отпустите мышку (рис. 3.14).
Рис.3.14. Вид окна редактора образов на шаге 2.2.
2.3. Нажмите клавиши SHIFT+DELETE и вырежьте
выделенные строки.
29
2.4. Пролистайте матрицу вверх до позиций 10 и 11.
Кликните мышкой в середине между строками 10 и
11. Появится тонкая белая разделяющая линия.
2.5.
Нажмите клавиши SHIFT+INSERT и вставьте
ранее вырезанные строки.
3. Повторите шаг 2 для образов 101-110 и вставьте их между
строками 20 - 21.
А теперь последовательно вырежьте образы (шаг 2.2 - 2.3):
сначала 41-70, затем 51-80, затем 61-90. Полученная таким
образом обучающая последовательность должна содержать 60
образов по 20 на каждый вид, разделенная на две группы по 30
(каждая включает по 10 каждого вида). Принадлежность
некоторого образа к тому или иному виду можно установить по
его выходным атрибутам: каждый образ имеет одно значение 1.0
на выходе нейрона, отвечающего за конкретный класс, и 0.0 на
выходах остальных нейронах выходного слоя.
Последний шаг - разделить набор образов на две части:
Обучающую
(Training) последовательность, содержащую
обучающие
образы,
и
Проверочную
(Verification)
последовательность, содержащую проверочные образы. Для
этого необходимо в поле Verification (Проверка) следует ввести
число 30. Программа проведет жирную горизонтальную линию
между образами 30 и 31: образы над чертой - обучающие, а под
чертой – проверочные (рис. 3.15).
Обучающая последовательность сохраняется в файле
smallir.pat (File/Save As/Pattern (Файл/Сохранить как/Образ).
Внимание. Не используйте команду меню File/Save/Pattern
(Файл/Сохранить/Образ), т.к. это сотрет файл iris.pat, а на его
место запишется сокращенная обучающая последовательность!
3.4.5.2. Обучение с перекрестной проверкой
Обычно ИНС обучают на обучающей,
обученной
ИНС
проверяют
на
последовательности, не использовавшейся
Перекрестной проверки (Cross Verification)
а эффективность
контролирующей
в обучении. Без
сеть с большой
30
Рис. 3.15. Вид окна редактора образов с набором, разделенным
на обучающую и контролирующую последовательности.
матрицей весов может «переучиться» и начать запоминать не
только структуру данных, но и сами образы (и шум). В
результате сеть станет непригодной для использования на какомлибо наборе данных, кроме обучающей последовательности.
Способность сети не только запоминать классификацию
образов обучающей последовательности, но и корректно вести
себя с ранее неизвестными данными известна как обобщающая
способность сети. В системе Trajan ее можно оценить с
помощью характеристики Ошибка проверки (если она
сравнительно мала - все нормально). Сеть можно обучать
несколько раз при постоянном стремлении общей ошибки к
нулю. Ошибка же проверки сначала уменьшается вместе с общей
ошибкой, а затем начинает стремительно расти. Это - признак
“переучения” сети. Следует остановить обучение сети, пока
ошибка проверки не начала расти.
Система
автоматически
выделяет
обучающие
и
проверочные образы (как указано в предыдущем разделе). Все
обучение осуществляется на обучающих образах, все ошибки и
31
статистика собираются отдельно для обучающих и проверочных
образов.
В качестве примера создайте многослойный персептрон на 4
входа, с 6 нейронами в скрытом слое и 3 выходными нейронами
(рис. 3.16).
Рис. 3.16. Структура ИНС для задачи классификации Ириса.
Затем вызовите окно обучения на основе алгоритма с
обратным распространением ошибки (рис. 3.17), полагая, что
файл образов SMALLIR.PAT, созданный в предыдущем разделе,
уже загружен.
Рис.3.17. Диалоговое окно алгоритма обучения с обратным
распространением ошибки
Нажмите кнопку Выполнить (Run) для начала алгоритма
обучения. На графике ошибки (рис. 3.18) теперь отображаются
две линии: одна - для обучающих, а другая - для проверочных
32
образов. Сеть обучается на обучающих образах, но тут же (в том
же цикле) эффективность ее оценивается на проверочных
образах.
Рис. 3.18. График общей средней квадратической ошибки
обучения
Необходимо, чтобы обе линии убывали с небольшим
удалением друг от друга. Средняя квадратическая ошибка к
концу обучения должна лежать в пределах 0.05-0.2. Если
установить степень принадлежности 0,5 в окне Нормализация,
то все или почти все образы будут правильно классифицированы
в обоих последовательностях (рис. 3.19).
33
Рис.3.19. Диалоговое окно нормализации
Для просмотра правильности классификации образов
следует
вызвать
окно
Статистика/Классификация
(Classification Statistics) (рис. 3.20).
Данная матрица содержит один столбец для каждого класса.
Каждый столбец имеет две секции: общая
статистика и
распознанная статистика, разделенные жирной горизонтальной
линией. Общая статистика: 1) Total (Всего) – число образов
данного класса в последовательности, 2) Correct (Правильных)число образов данного класса, правильно распознанных сетью, 3)
Wrong (Ошибочно)- число образов данного класса, ошибочно
отнесенных к другому классу, 4) Unknown (Неизвестных)число образов данного класса, не опознанных сетью.
Распознанная статистика содержит числа образов каждого
34
Рис. 3.20. Статистика (результаты классификации)
класса, отнесенных к тому или иному классу (список
распознанных образов).
Неизвестные образы не учитываются. Статистики для
обучающей и проверяющей последовательностей отображаются
отдельно и разделены жирной вертикальной чертой (обучающая
слева, проверяющая справа).
3.4.5.3. Отключение перекрестной проверки
Проверка сети проверочными образами в каждом цикле
требует много времени и не всегда необходима. Для отключения
перекрестной проверки следует снять крестик с поля
Перекрестная проверка (Cross Verification) в окне обучения.
При этом система игнорирует проверочные образы, что ускоряет
процесс обучения. Однако затем можно посмотреть общую
ошибку на проверочной последовательности с помощью функции
Run
All
Patterns
(Прогон
всей
обучающей
последовательности).
3.4.6. Рабочее задание
1. Ознакомиться с описанием, в частности с разделом 3.4.5
(Работа с программой), изучить все действия и
35
2.




3.
4.
5.
6.
последовательно исполнить все шаги, описанные в разделе. В
результате получается обученная нейронная сеть для
классификации цветков Ириса.
По окончании изучения раздела 3.4.5 показать преподавателю
результаты:
главное окно (с изображением структуры нейронной сети);
окно редактора образов (с обучающей и контролирующей
последовательностями);
окно
нормализации
(с
установленной
степенью
принадлежности) и график обучения сети;
статистики
по
обучающей
и
контролирующей
последовательности.
Загрузите полный набор образов из файла iris.pat. Разделите
его на обучающую и контролирующую последовательности.
Обучите сеть и сравните результаты с п.2. Изменились ли
скорость обучения и качественные характеристики сети?
Измените число нейронов в скрытом слое. Обучите
полученную сеть. Как это повлияло на процесс обучения и
качественные характеристики сети?
Создайте сеть с двумя скрытыми слоями. Сколько должно
быть нейронов в каждом скрытом слое? Обучите сети при
различных числах скрытых слоев и нейронов в них. Сделайте
соответствующие выводы.
Отчет
должен
содержать
все
файлы
обучающих
последовательностей и всех обученных сетей, полученные в п.
2 и п. 4 задания (эти файлы находятся в текущем каталоге,
имеют текстовый формат и расширения .pat и .net
соответственно). По п.5 представить только полученные
выводы.
3.4.7. Контрольные вопросы
1. Как представляются в системе Trajan классы, когда их
больше двух?
2. Как создать сокращенную обучающую и проверочную
последовательности образов и каково их назначение?
36
3. Какие параметры влияют на процесс обучения сети?
4. Как повысить эффективность работы сети?
3.5. Лабораторная работа №3. Автоматическая
классификация (кластеризация) образов нейросетями
Кохонена с помощью системы Trajan 2.1
3.5.1. Цель работы. Изучение возможностей системы Trajan 2.1
по
автоматической
классификации
(кластеризации,
категоризации) образов.
3.5.2. Знания, умения и навыки, формируемые работой:
- принципы представления данных и построения ИНС, а также
алгоритмы обучения ИНС для автоматической классификации
(кластеризации) образов,
- способы сбора статистики с помощью системы Trajan,
- возможности системы Trajan по решению, визуалиации и
представлению задач кластеризации в доступном для анализа
виде,
- навыки по анализу и применению кластеров, получаемых в
процессе обработки образов.
Предпосылки: знание общих сведений о работе с ПЭВМ IBM PC
AT в операционной среде Windows 3.1.
3.5.3. Постановка задачи
Задача автоматической классификации (кластеризации)
образов заключается в распределении представляемых образов по
кластерам/категориям в зависимости от значений признаков
образов. В один кластер обьединяются близкие образы.
Особенность этой задачи в том, что при обучении сети априорно
неизвестно ни число классов, ни принадлежность того или иного
образа какому-либо классу (обучающая последовательность
37
отсутствует). Для ее решения успешно используются сети
Кохонена. В работе необходимо распределить предлагаемый
набор цветков ириса различных видов на несколько кластеров
(составить букеты из одинаковых цветов). Для этого
используется файл smallir.pat из работы №2: 60 образов по 20 на
каждый вид, разделенных на обучающую и контролирующую
последовательности по 30 цветков (по 10 каждого вида).
Сети Кохонена реализуют режим обучения без поощрения
(самообучения) и имеют два слоя: входной и выходной слой
(слой топологической карты). Выходной слой часто
представляется двухмерной решеткой (имеет два измерения) и
состоит из Радиальных элементов (Radial units). Система
Trajan поддерживает сети и с одномерным выходным слоем. В
сети Кохонена ошибкой считается расстояние между весовым
вектором нейрона-“победителя”и входным вектором.
3.5.4. Создание сети Кохонена
Сеть Кохонена можно создать в окне Создание ИНС
(Network Creation) (рис. 3.21), вызываемом командой меню
Файл/Создать/Сеть (File/New/Network).
Рис.3.21. Окно создания сети Кохонена
Для представления двухмерного выходного слоя в системе
Trajan задаются число нейронов в слое (Units) и ширина слоя
38
(Width): система определяет высоту слоя как отношение общего
числа нейронов выходного слоя к его ширине.
Замечание. Для любого слоя любого типа сети можно
задавать параметр width. Однако этот параметр существенен
только для сети Кохонена. В остальных сетях это лишь изменяет
отображение сети на экране.
Задайте следующие значения: первый слой - Units - 4,
Width - 1; второй слой - Units - 16, Width - 4. Нажмите кнопку
Создать/Create. Структура созданной сети Кохонена приведена
на рис. 3.22.
Рис.3.22. Структура созданной сети Кохонена
39
3.5.5. Обучение сети Кохонена
Для сетей Кохонена в системе Trajan предусмотрены:
- Окно Частоты побед (Win Frequencies) для иллюстрации, где
в сети сформировались кластеры;
- Окно Топологическая карта (Topological мар) для показа,
какой образ отнесен к какому кластеру. Это окно поможет Вам
заранее задать имена нейронам и образам.
Загрузите последовательность входных образов, откройте
меню Файл/Открыть/Образец (File/Open/Pattern) и выберите
необходимый вам файл в появившемся окне.
Окно обучения Кохонена (Kohonen Training) (рис. 3.23)
(команда меню Обучение/ Kohonen (Train/Kohonen)) включает
начальные и конечные параметры для скорости обучения
(коэффициента коррекции) и для размера области близости
(соседства). Обычно обучение сети Кохонена разбивают на две
части - фаза прикидки и фаза подстройки.
Скорость обучения (Коэффициент коррекции)/Learning
Rate в алгоритме Кохонена линейно изменяется от первого цикла
обучения до последнего. Обычно алгоритм обучения запускают в
две стадии: на первой стадии используют высокую скорость
обучения (например, от 0.9 до 0.1), большой размер окрестности
(например, от 2 до 1) и небольшое число циклов (например, 100),
а на второй - неизменные скорость обучения (например, 0.01),
небольшой размер окрестности (например, 0) и большое число
циклов (например, 10000).
Окрестность определяет число рассматриваемых соседних
нейронов вокруг нейрона-«победителя”, весовые коэффициенты
которых корректируются.
Реинициализация/Reinitialise. При работе алгоритма
Кохонена нажатие кнопки Реинициализация/Reinitialise
изменяет только выходной слой радиальных элементов.
В нашем примере вполне достаточно провести два запуска
сети по 50 циклов (эпох) в каждом. При первом запуске
уменьшите Скорость обучения/Learning Rate от начального
значения 0.5 до конечного 0.1 и оставьте постоянным размер
40
Окрестности/Neighbourhood - 1. При втором запуске установите
постоянную Скорость обучения/Learning Rate 0.1 при размере
Окрестности/Neighbourhood - 0.
Рис.3.23. Обучение сети Кохонена
Рис.3.24. Диаграмма ошибок на каждый образ
41
График ошибки обучения. Как в алгоритме обучения с
обратным распространением ошибки средняя квадратическая
ошибка сети изображается на графике ошибки (рис.3.25). Однако
в сетях Кохонена она имеет иной смысл. В алгоритме обучения с
обратным распространением ошибки ошибка определяется в
виде разности решений учителя и нейросети. На графике
отображается средняя квадратическая ошибка сети по всем
образам. В сетях Кохонена ошибка вычисляется в виде
расстояния между входным вектором и весовым вектором
нейрона-“победителя» выходного слоя. На графике показывается
средняя квадратическая ошибка сети по всем образам.
Рис.3.25. График ошибки обучения
На рис. 3.24 приведена диаграмма ошибок для отдельных
образов, а на рис. 3.25 – изменение средней квадратической
ошибки по всем образам. После обучения сети можно
проанализировать сформировавшиеся кластеры и их смысл. В
нашем случае это относительно просто, ибо число и свойства
кластеров априори известны, что не характерно для
практического использования сетей Кохонена.
42
3.5.6. Работа с сетью Кохонена
Окна Частоты побед (Win Frequencies) и Топологическая
карта (Topological Map) служат для анализа сетей Кохонена и
осуществления кластеризации. Окно Частоты побед (Win
Frequencies) (рис. 3.26) вызывается командой меню
Статистика/Частоты побед (Statistics/Win Frequencies).
Система прогоняет при этом все входные образы и подсчитывает,
сколько раз каждый нейрон топологического слоя выигрывает
(т.е. находится ближе всего к проверяемому образу). Высокое
число побед показывает центры кластеров на топологической
карте. Нейроны с нулевыми частотами побед не используются, их
наличие обычно показывает, что обучение было не очень
успешным (т.к. сеть использует не все предоставленные ей
ресурсы). Однако в данном случае из-за небольшого числа
входных образов допустимо наличие не использованных
нейронов.
Рис.3.26 . Частоты побед
43
Частоты побед (Win Frequencies) показываются отдельно
для обучающих и проверочных образов (разделены толстой
горизонтальной линией). Если расположение кластеров
значительно отличается в этих двух половинах, то это означает,
что сеть не научилась правильно обобщать данные.
Топологическая карта. Как только распределение центров
кластеров определено, можно открыть окно Topological Map
(Топологическая карта) и просмотреть сеть с целью
идентификации кластеров (рис. 3.27). Топологическая карта
(Topological Map) графически отображает выходной слой в
двухмерном пространстве. Для каждого нейрона топологического
слоя показывается его близость к текущему образу с помощью
черного квадрата (чем больше квадрат, тем ближе), и нейрон«победитель» обведен тонким прямоугольником.
Рис. 3.27. Топологическая карта
44
При проверке нескольких образов (путем нажатия стрелки
вверх справа от поля Образец (Pattern)) можно установить, что
близкие образы объединены в группы, а близкие нейроны
расположены рядом друг с другом. На этом этапе можно начать
присваивать нейронам осмысленные имена с тем, чтобы показать
их принадлежность к кластеру. В нашем примере первые десять
образов относились к виду Setosa.
Выполните (Run) для первого образа и укажите имя
нейрону-“победителю”: введите название Setosa в поле имени
элемента (Модуля) (справа от поля номера элемента) и нажмите
RETURN.
Топологическая
карта
(Topological
Map)
автоматически обновится и отобразит новое имя. Прогоните
остальные девять образов (нажимая стрелка вверх справа от
поля образца) и назовите нейроны-“победители” аналогично.
Замечание. Для исключения набора на клавиатуре одного и
того же имени скопируйте его в буфер (выделите и нажмите
CTRL+INSERT), а затем вставляйте его в нужное место путем
нажатия SHIFT+INSERT. Можно также не нажимать RETURN
после каждого имени. Когда вы нажимаете стрелку вверх,
Топологическая карта автоматически обновляется.
Дайте названия всем нейронам. Образы 11-20 относятся к
виду Versicolour, образы 21-30 к виду Virginica. Вы можете
обнаружить нейроны, выигравшие в обоих этих видах, отметьте
их как Dubious.
После проверки всех образов последовательности отметьте
оставшиеся (неизвестные) нейроны как Неиспользованные, или
запустите вновь все образы и посмотрите, какому типу образов
неиспользованные нейроны отвечают сильнее всего. Дайте им
соответствующее название. Как только все нейроны
поименованы, можно посмотреть, как сеть Кохонена
классифицировала проверочные образы.
Если Вы используете сеть Кохонена и не знаете заранее,
какие должны быть кластеры (что характерно для применения
сети Кохонена), поступите следующим образом: присвойте
45
полученным кластерам символические имена, а затем
проанализируйте входные данные и определите типы кластеров.
Для этого в системе прямо в окне топологической карты
(Topological Map) можно давать имена образам (рис.3.28).
Рис. 3.28. Топологическая карта с названиями элементов
Выполните следующие действия:
 Обучите сеть Кохонена.
 Используйте окно частоты побед (Win Frequencies) для
определения кластеров на топологической карте
(Topological Map).
 Назовите кластеры символическими именами (например,
C1, C2 и т.д.).
 Прогоните образы на топологической карте (Topological
Map) и присвойте образам имена соответствующих
кластеров.
46
 Исследуйте входные данные (возможно их источник) и
определите, что представляет собой каждый кластер.
 Поменяйте символические имена на смысловые.
 Прогоните образы еще раз и дайте им новые имена в
зависимости от нейрона-“победителя”.
3.5.7. Задание
1. Ознакомьтесь с описанием работы.
2. Следуя рекомендациям пункта 3.5.4, создайте новую
сеть Кохонена.
3.
Загрузите файл smallir.pat (он был создан Вами в
работе №2). При выполнении данной работы
рекомендуется иметь листинг этого файла, файла iris.pat, а
также отчет по работе №2. Это поможет вам более
наглядно проанализировать работу сети, полученные
кластеры и проверить значения кластеров. Напомним еще
раз, при решении задачи кластеризации априорные
значения кластеров и принадлежность им элементов
обычно неизвестны.
4.
Следуя инструкциям пункта 3.5.5, обучите сеть.
Покажите преподавателю структуру сети, график ошибки
обучения, окно Частоты побед. Объясните полученные
результаты.
5.
Откройте окно Топологическая карта. Выполните
анализ кластеров, дайте имена кластерам и образам, как
описано в пункте 3.5.6. Сохраните результаты.
6.
Проведите реинициализацию сети. Обучите сеть
заново. Просмотрите полученные результаты. Изменилось
ли что-либо? Почему?
7.
Обучите сеть при других значениях скорости обучения
и размера окрестности. Проведите анализ полученных
кластеров. Как повлияло изменение этих параметров на
результаты работы?
8.
Протестируйте
на
обученной
сети
другую
последовательность образов (файл iris.pat или другая
47
сокращенная последовательность из этого файла).
Сделайте выводы.
9.
Представьте в качестве отчета листинги файлов
образов, обученных сетей, графики ошибки обучения,
результаты частот побед и топологические карты с
именами нейронов по всем проведенным экспериментам.
3.5.8. Контрольные вопросы
1. Для решения каких задач применяются самоорганизующиеся
карты Кохонена?
2. Каков смысл параметров алгоритма обучения Кохонена?
3. Что такое топологическая карта? Опишите возможности ее
использования в системе Trajan.
4. Каким образом можно оценить эффективность обучения сетей
Кохонена (SOM) средствами системы Trajan?
Заключение
В учебном пособии рассмотрены основные положения
статистической теории обучения (статистическая динамика
знаний, стандартизированный (компьютерный) контроль и
основы обучающихся обучающих и поддерживающих систем,
включая нейросетевые технологии их обучения), а также
лабораторный практикум по искусственным нейронным сетям на
основе инструментальной системы Trajan 2.1. Он включает три
лабораторные работы по обучению многослойных персептронов
и самообучению сетей Кохонена.
Остановимся на одном из направлений использования
результатов статистической теории обучения. В настоящее время
интенсивно разрабатываются и внедряются интегрированные
банки данных (Data Warehouse, Daten Lagerhaus, DatenWarenhaus, Workgroup Computing) для интеллектуальной
поддержки сотрудников предприятий при принятии решений,
системы
мониторинга
и
оперативного
управления
производственными процессами (SAP R/3, Baan IY и др.),
48
системы
информационного
обеспечения
сотрудников
предприятий и учреждений (Workflow-Management-Systeme),
системы интеграции коммерческого и информационного
менеджмента (Business- and Knowledge-Management, Geschaeftsand Wissens-Management). Анализ их составляющих приводит к
целесообразности их дополнения системами мониторинга и
управления профессиональной готовностью кадров на основе
математических моделей статистической теории обучения.
Подчеркнем значимость рассмотренной статистической
методологии.
В настоящее
время она, по-видимому,
недооценивается.
Следует ожидать, что со временем роль и
значение ее будут очевидны подобно статистическим методам
контроля и обеспечения качества и надежности продукции.
Значительные успехи России, Японии, США, стран Западной
Европы в развитии и практическом использовании этих методов
могут служить основанием для более серьезного отношения к
указанной методологии...
Россия имеет необходимые предпосылки для сохранения
ведущих позиций в реализации новой философии обеспечения
качества образования и на ее основе высоких образовательных
информационных технологий.
Сделаем небольшой экскурс в историю. Японский союз
ученых и инженеров (JUSE) пригласил в начале 50-х годов И.
Эдвардса Деминга, внесшего крупный вклад в формирование
статистического обеспечения качества продукции в виде
философии предпринимательской деятельности, для помощи в
восстановлении японской промышленности путем обучения
инженеров и менеджеров и консультаций по статистическим
методам.
Для
политиков
в
области
экономики
и
предпринимателей качество продукции им было обьявлено
стратегической целью деятельности предприятий. Философия
управления качеством стала основой построения новой
промышленности Японии. Успехи его деятельности известны
(многие считают их фантастическими!): уже в 60-е годы большая
часть рынков, где США не имели конкуренции, была завоевана
японцами. США и странам Западной Европы потребовалось
49
свыше 30 лет для ответа на “японский вызов” (концепция
всеобщего управления качеством (TQM), международный
стандарт ИСО серии 9000)... .
Литература
1. Жуков В.И. Реформы в России 1985-1995 годы.-М.:
Издательство МГСУ, 1997.-415 с.
2. Круглов В.В., Борисов В.В. Искусственные нейронные сети.
Теория и практика. М.: Горячая линия-Телеком, 2001.-382 с.
3. Пригожин И., Стенгерс И. Порядок из хаоса. Новый диалог
человека с природой.-М.: 1986, с. 372
4. Романов А.Н., Торопцов В.С., Григорович Д.Б. Технология
дистанционного обучения в системе заочного экономического
образования.-М.: ЮНИТИ-ДАНА, 2000.-303 с. ISBN 5-23800214-9
5. Свиридов А.П. Введение в статистическую теорию обучения
и контроля знаний. Часть I . Стандартизированные методы
контроля знаний. -М.: МЭИ, 1974. - 134 с.
6. Свиридов А.П. Введение в статистическую теорию обучения и
контроля знаний. Часть II . элементы статистической
динамики знаний. -М.: МЭИ, 1974. - 152 с.
7. Свиридов А.П. Обучение и самообучение обучающих и
контролирующих машин. -М.: МЭИ, 1976. - 172 с.
8. Свиридов А.П. Основы статистической теории обучения и
контроля знаний. - М.: Высшая школа, 1981. - 262 с.
9. Человеческий фактор (Handbook of Human Factors). Том 1.
Эргономика- комплексная научно-техническая дисциплина.
Под ред. Салвенди Г.-М.-М.: Мир, 1991
10. Юзвишин И.И. Информациология.-М.: Международное
изд-во “Информациология”, 1996.- 215 с.
50
11. Blank K.-H. Benutzermodellierung für adaptive interaktive
Systeme: Architektur, Methoden, Wekzeuge und Anwendungen/Sankt Augustin: Infix, 1996/-188 S.
12. Brause R. Neuronale Netze. Eine Einfuehrung in die
Neuroinformatik.-Stuttgart:B.G. Teubner Verlag, 1995
13. E. Rich. Users are Individuals: Individualizing User Models. In:
Int. J. Man-Machine Studies, Academic Press, London, 1983
14. Sayenko G.W., Sviridov A.P. Two aspects of informatization
strategy in education in XXI centuty. In: Proceedings of the 4th
International Conference “Role of Universities in the Future
Information Society-RUFIS-2000”.-Kyiv: National Technical
University of Ukraine “Kyiv Polytechnic Institute”, 2000.- S. 122132
15. A.P. Swiridow, P. Widmayer, W.-D. Oberhoff, H. Unger (Eds.)
New Media for Education and Training in Computer Science. 2.
Russian-German Symposium Moscow, Russian Federation
November, 23th-28th 1996.-Sankt Augustin:Infix, 1996
16. Swiridow A.P. Statistische Lehrtheorie und Humanisierung von
computerunterstuetzten
Lehrsystemen.
-IBM-HochschulKongress.Dresden 30.9-2.10.92. Dokumentation
17. A.
Swiridow,
I.
Schalobina.
Lernfaehige
Lehr/Unterstuetzungssysteme und Mensch-Computer-Schnittstellen. Ilmenau: 42. Internationales Wiss. Kolloquium an der TU Ilmenau,
1997, Bd.1, S.388-393
18. A. Swiridow, I. Schalobina. Kenntnis-Dynamik ueber ein
Lehrfach. -Ilmenau: 42. Internationales Wiss. Kolloquium an der
TU Ilmenau, 1997, Bd.1, S. 401-406
19. Swiridow, D. Slesarew, I. Schalobina. Simulation von
Kommunikationssystemen und –netzen als sozio-technische
Systeme. In: 43. Intern. Wiss. Koll. An der TU Ilmenau.-Ilmenau:
TU Ilmenau, Bd.1, 1998.- S. 174-180
20. A. Swiridow, D. Reschke, N. Slesarewa. Modellierung der
Kenntnis-Dynamik. In: 43. Intern. Wiss. Koll. an der TU Ilmenau.Ilmenau: TU Ilmenau, Bd.1, 1998.- S. 282-189
51
21. R. Suesse, A. Swiridow. Statistische Kenntnis-Dynamik.Ilmenau: Wissenschaftsverlag, 1998.- 256 S.
22. R. Wilensky, D.N. Chin, M. Luria, J. Martin, J. Mayfield, D.
Wu. The Berkley UNIX Consultant Project. In: Computational
Linguistics, Vol. 14, N 4, 1988, S. 35-84
23. Weidemann, B., Krapp, A., Hofer, M., Huber, G., Mandl, H.:
Pädagogische Psychologie. Ein Lehrbuch.-München, Weinheim:
Psychologie Verlags Union, Urban&Schwarzenberg, 1986.-873 S.
24. Zell A. Simulation Neuronaler Netze.-Bonn, Paris, Reading,
Mass.[u.a.]: Addison-Wesley, 1994.-612 S.
СОДЕРЖАНИЕ
Введение
52
1.Динамика знаний обучаемого или работника
1.1. Оценка параметров динамики
знанийобучаемого/сотрудника. Диалоговая система
1.2. Моделирование и прогнозирование качества подготовки по
учебным дисциплинам
1.3. Оптимизация управления качеством подготовки
обучаемых/работников на основе математических моделей (“Just
in Time”-Lernen). Диалоговая система
2. Отношения человек-человек, их рефлексия и реализация
компьютерными обучающими и поддерживающими
системами. Статические и динамические модели
2.1. Стандартизированные способы компьютерного контроля и
сертификации качества подготовки отдельных обучаемых и
коллективов. Диалоговая система
2.2. Нейросетевые методы компьютерного контроля и
сертификации качества подготовки
3. Лабораторные работы № 1–3 по курсу «Нейросети и
нейрокомпьютеры»…
3.1. Теоретическая часть…
3.1.1. Многослойный персептрон
3.1.2. Сети Кохонена
3.2. Работа с программой
3.2.1 Создание сети
3.2.2. Ввод количества и размерности слоев
3.2.3. Создание обучающей последовательности
3.2.4. Редактирование набора образов
3.2.5. Сохранение обучающей последовательности и
структуры сети
3.3. Лабораторная работа N 1. Классификация образов с
помощью системы Trajan
53
3.3.1. Цель работы
3.3.2. Формируемые знания, умения и навыки
3.3.3. Алгоритмы обучения многослойного персептрона
3.3.4. Задача моделирования схемы исключающего ИЛИ
3.3.5. Алгоритм обучения с обратным распространением
ошибки……
3.3.6. Рабочее задание
3.3.7. Контрольные вопросы……………
3.4. Лабораторная работа N 2. Множественная классификация
образов с помощью системы Trajan 2.1…
3.4.1. Цель работы…
3.4.2. Формируемые знания, умения и навыки………
3.4.3. Постановка задачи………
3.4.5. Работа с программой…
3.4.5.1. Создание сокращенной обучающей последовательности…
3.4.5.2. Обучение с перекрестной проверкой……………
3.4.5.3. Отключение перекрестной проверки……………
3.4.6. Рабочее задание…………………………
3.4.7. Контрольные вопросы………………
3.5 Лабораторная работа N 3. Автоматическая классификация
(кластеризация) образов нейросетями Кохонена с
помощью системы Trajan 2.1…………………
3.5.1. Цель работы……………………
3.5.2. Формируемые знания, умения и навыки……………………
3.5.3. Постановка задачи……………
3.5.4. Создание сети Кохонена………………………
3.5.5. Обучение сети Кохонена……………………
3.5.6. Работа с сетью Кохонена……………………
3.5.7. Задание…….………………
3.5.8. Контрольные вопросы……………………
Заключение…………………………
Литература………………………………
Download