Искусственные нейронные сети
Понятие искусственных нейронных сетей. Модель и архитектура технического нейрона. Обучение нейронных сетей. Основные функциональные возможности программ моделирования нейронных сетей. Однослойный и многослойный персептроны. Принцип работы сети Кохонена.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | дипломная работа |
Язык | русский |
Дата добавления | 19.11.2015 |
Размер файла | 4,1 M |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Как только выбрали необходимую ячейку - просто введите новое значение.
Добавление нового образца
Есть два способа добавить новый образец в последовательность:
Попробуйте перейти за нижнюю границу матрицы с помощью клавиши управления курсора стрелка вниз или нажать RETURN на последней ячейке матрицы (последний столбец, последняя строка). Создастся новый образец, содержащий все нули;
Расположите мышиный курсор между названиями (номерами) двух образцов слева от матрицы (курсор изменит вид на двухстороннюю стрелку). Кликните мышкой; появится жирная белая полоса между ними, называющаяся Insertion Bar (Место вставки). Нажмите клавишу RETURN или INSERT. Создастся новый образец, содержащий все нули.
Добавление нового атрибута (признака)
Для того чтобы добавить новый атрибут, выполните следующие шаги:
Подведите мышиный курсор между названиями двух атрибутов (столбцы матрицы), курсор изменит свой вид на горизонтальную двухстороннюю стрелку.
Кликните мышкой; появится жирная белая вертикальная полоса между ними, называющаяся Insertion Bar (Место вставки)
Нажмите клавишу RETURN или INSERT. Создастся новый атрибут.
Копирование и вставка
Матрица образцов позволяет Вам выделить прямоугольную область ячеек, которую затем можно скопировать в буфер; а так же по необходимости вставить данные из кармана в любое место матрицы.
Таким же образом можно копировать и вставлять данные в и из других матриц программы.
Вырезание, Копирование и Вставка образцов
Вы можете Вырезать, Копировать и Вставлять целиком всю матрицу образцов, создавать новые образцы из копий старых и т.д.
Чтобы вырезать, копировать и вставлять образцы, их необходимо сначала выделить. Для этого воспользуйтесь названиями (номерами) образцов слева от матрицы.
Вырезание целого образца
Чтобы вырезать целый образец из матрицы, сначала выделите его мышкой, а затем нажмите SHIFT+DELETE. Образец уберется из матрицы.
Вставка целого образца
Можно вставить образец двумя способами:
Заменив существующий образец. Если отметить образец, а затем вставить (путем нажатия SHIFT+INSERT) на его место образец из буфера, то существующий образец будет заменен.
Добавление образцов. Чтобы вставить образцы как новые, сначала сделайте Insertion Bar (место вставки), как описано в разделе по добавлению образцов, а затем нажмите (SHIFT+INSERT) и образцы из буфера появятся на новом месте.
Используя эти возможности редактирования, можно менять последовательность образцов в наборе.
То же самое можно делать и с атрибутами (столбцами)
Копирование набора целиком
Можно либо скопировать все содержимое матрицы в, либо записать в отдельный текстовый файл.
Такая возможность присутствует во всех матрицах программы.
Наименование образцов
Вы можете задавать имена отдельным образцам прямо на матрице
Для задания или изменения имени необходимо:
Дважды щелкните мышкой на середине номера строки (слева от матрицы).
Появится курсор (серый вертикальный отрезок).
Наберите желаемое имя;
Можете использовать все клавиши редактирования (DELETE, BACKSPACE, RIGHT ARROW и т.д.).
Используете клавиши управления курсора вверх и вниз для перемещения между образцами.
Если не задано имя образцу, то система автоматически задает ему вместо имени порядковый номер.
Точно также можно задавать имена атрибутам (столбцам).
Программа не отслеживает правильность изменения имен атрибутов в соответствии с названиями элементов (в частности для сетей Кохонена), так что за этим надо следить вручную.
7.2 Обучение сети
После создания структуры сети и ввода обучающей последовательности следующим шагом является обучение сети.
7.2.1 Типы сетей
Trajan Shareware предоставляет возможность работать с двумя типами сетей: многослойный персептрон и сети Кохонена.
Многослойный персептрон
На сегодняшний день эта архитектура сети является одной из самых популярных.
Многослойный персептрон использует линейную PSP функцию (т.е. вычисляет взвешенную сумму входов), и нелинейную логическую функцию активации (S-образную).
Сеть этого типа может иметь до 128 слоев; однако, трех или четырех слоев достаточно практически для любой задачи.
Многослойный персептрон можно обучать алгоритмами: Градиентного спуска (Conjugate Gradient Descent), Левенборга-Маркарди (Levenburg-Marquardt), Обратного распространения ошибки (Back Propagation), Быстрого распространения (Quick Propagation) или Обобщенного дельта-правила (Delta-Bar-Delta).
В данной лабораторной работе мы будем использовать только алгоритм обратного распространения ошибки.
Многослойный персептрон довольно компактная нейронная сеть и ее легко применять для различных задач; однако, процесс обучения этой сети может затянутся, к тому же привести к бестолковой экстраполяции на значительно новых данных.
Сети Кохонена
Сети Кохонена реализуют режим обучения «без учителя» или режим самообучения: они учатся распознавать кластеры в наборе образцов, принадлежность которых классам (кластерам) не известна. Сеть Кохонена пытается расположить в выходном слое похожие кластеры близко друг к другу, формируя таким образом, Топологическую карту (Topological мар).
Сеть Кохонена всегда имеет две слоя: входной слой и слой топологической карты, т.е. выходной слой. Выходной слой сети Кохонена лежит в двумерном пространстве (имеет два измерения). Выходной слой сети состоит из Радиальных элементов (Radial units).
В последнем слое используется функция квадратного корня в качестве функции активации, так что выходное значение представляет собой расстояние между входным образцом и взвешенным вектором выхода.
Вообще то, сеть Кохонена обычно имеет двухмерный выходной слой, однако Trajan также поддерживает сети с одномерным выходным слоем.
Необходимо отметить, что обычно образцы последовательности для сети Кохонена имеют только входные значения. Сети Кохонена не используют выходные значения образцов для обучения, и просто их игнорируют, если таковые существуют.
7.2.2 Создание обучающей и проверочной последовательностей образов
Для повышения качества обучения сети необходимо разделить множество образов для обучения сети на два подмножества:
1) обучающую последовательность, содержащую Обучающие образы (Training patterns), для обучения сети и,
2) контролирующую последовательность, содержащую Проверочные образы (Verification patterns), для проверки качественных характеристик функционирования обученной сети. Эта последовательность также используется в процессе обучения.
В программе Trajan обучающая и контролирующая последовательности хранятся в одном файле, и используют один и то же набор образов, классифицированных учителем. Образы из одной последовательности можно передавать в другую. Таким образом, существует всего один набор образов, который можно произвольно разделить на обучающую и контролирующую последовательности. Иногда, в тексте, весь набор образов, классифицированный учителем, будет называться обучающей последовательностью.
Для этого необходимо в поле Verification (Проверка) ввести число проверочных образов. Программа проведет жирную горизонтальную линию между образами показывая, что образы над чертой являются обучающими, а под чертой - проверочными (Рис. 6).
Рис. 6. Вид окна редактора образов с набором, разделенным на обучающую и контролирующую последовательности.
7.2.3 Создание сокращенной обучающей последовательности
Иногда обучающая последовательность для решения, например задачи классификации, включает в себя большое количество образов. Если запустить алгоритм обучения на таком количестве образов, то процесс обучения пойдет достаточно медленно. В некоторых случаях можно ограничиться сокращенной обучающей последовательностью.
Для создания сокращенной обучающей последовательности, необходимо следовать нижеприведенным инструкциям:
Открыть файл с обучающей последовательностью и войти в редактор образов;
Вырезать часть образов каждого классов из матрицы
Полученная таким образом обучающая последовательность должна содержать образы каждого класса, желательно в равном количестве.
Какому виду принадлежит некоторый образ (при использовании кодирования один из N), можно установить, посмотрев на его выходные атрибуты: каждый образ имеет одно значение 1.0 на выходе элемента отвечающего за конкретный класс, и 0.0 на остальных элементах выходного слоя.
7.2.4 Визуализация процесса обучения
При обучении сети система Trajan вычисляет общую квадратичную ошибку распознавания и отображает ее на Графике (Graph), а так же ошибку распознавания на каждом образце и отображает ее на Гистограмме (Bar Chart). Во время обучения рекомендуется наблюдать хотя бы за одним их этих графиков, чтобы контролировать сходимость процесса обучения.
График ошибки обучения
Вызвать диалоговое окно График ошибки обучения (Training Error Graph) можно с помощью команды меню Статистика/График обучения (Statistics/Training Graph) (рис. 7).
На графике отображается средняя квадратичная ошибка обучения сети. Однако в случае обучения сетей разных архитектур она имеет совершенно разный смысл.
При работе алгоритма обратного распространения ошибка определятся через расстояние между реальным и желаемым значением выходного вектора. На графике отображается полная выходная ошибка по всем образцам.
Алгоритм сетей Кохонена определяет ошибку как расстояние между входным вектором и вектором весов выигравшего элемента выходного слоя. На графике показывается общая входная ошибка по всем образцам.
Рис. 7. График ошибки обучения.
Если график засорен лишними линиями, его всегда можно очистить, нажав кнопку Clear (Очистить) на Графике обучения (Training Graph).
Для облегчения сравнения можно установить изображение графиков разными цветами. Для этого необходимо задать текущей линии имя в поле Label (Метка) на Графике обучения (Training Graph), и линия отобразится другим цветом.
Ошибки по образцам
График обучения Training Graph отображает общую квадратичную ошибку сети. Иногда бывает полезно понаблюдать, как изменяются величины ошибки на отдельном образце. Это можно сделать, используя гистограмму Pattern Errors (Ошибки образца), которую можно вызвать командой меню Statistics/Pattern Errors (Статистика/Ошибка образца).
Рис. 8. Гистограмма ошибок по образцам.
Гистограмма автоматически обновляется только к концу периода обучения; но можно установить ее обновление и во время процесса обучения (правда это значительно замедлит процесс). Для этого необходимо выбрать параметр Real-time update (Оперативное обновление) в гистограмме ошибки образца до начала обучения. На гистограмме видно, как алгоритм борется за уменьшение ошибки на отдельном образце, а ошибки на других образцах подпрыгивают.
7.2.5 Оптимизация процесса обучения
Диалоговое окно Обратное распространение (Back Propagation) можно вызвать с помощью команды меню Обучение/ Backpropagation (Train/Backpropagation) (рис. 9). Аналогично вызывается окно обучения алгоритмом сетей Кохонена.
Рис. 9. Диалоговое окно обучения сети.
После нажатия кнопки Обучение (Train) диалогового окна Обучение сети, начнется процесс обучения. Суммарная квадратичная ошибка по всем выходам отобразится на графике.
Нажмите кнопку Обучение еще несколько раз. Каждое нажатие продолжит процесс обучения на заданное количество циклов (эпох).
Возможно, что тенденция снижения общей квадратичной ошибки по графику не видна сразу: при решении некоторых задач может потребоваться тысячи циклов обучения (эпох), чтобы общая ошибка приблизилась к нулевому значению.
Скорость и качество обучения на основе алгоритма обратного распространения ошибки зависит от нескольких параметров, большинство из которых можно изменить в диалоговом окне Back Propagation. Значения, автоматически установленные по умолчанию, являются оптимальными для большинства задач, однако их всегда можно изменить.
Ниже приведены все основные параметры с кратким описанием:
Epochs (Периоды). Количество циклов обучения, выполняемых после нажатия кнопки Train (обучение). Значение по умолчанию - 100.
Learning rate (Коэффициент скорости обучения). В литературе еще известен как коэффициент корреляции. Чем выше это значение, тем быстрее идет процесс обучения, но одновременно повышается нестабильность (особенно при наличии шума). При значениях, близких к 1, алгоритм может просто зациклиться.
Момент (Momentum). Значительно повышает скорость обучения, если он подобран правильно; вносит стабильность в процесс обучения (особенно, если изменения в общей ошибке от цикла к циклу незначительные). Всегда должен находится в пределах [0.0;1.0). (т.е. больше или равен 0.0, строго меньше 1.0). Рекомендуется сочетать большое значение коэффициента корреляции и малый момент и наоборот, малый коэффициент корреляции и большой момент.
Shuffle (Перестановка образцов). Когда активирован этот параметр, порядок представления образцов сети с каждым циклом меняется. Это добавляет некоторый шум и замедляет процесс обучения, но гарантирует избежания попадания алгоритма в мертвую точку, повышая таким образом общую производительность алгоритма.
Программа может прогрессивно изменять значения коэффициента корреляции (Learning rate) и/или момента (Momentum) от цикла к циклу, начиная с начального значения (задается в левом поле параметра) до конечного значения (задается в правом поле параметра). Например, можно постепенно, от цикла к циклу, уменьшать значение параметра коэффициента корреляции для достижения приемлемой величины общей ошибки с наибольшей начальной скоростью.
Окно обучения сети Кохонена (Kohonen Training) (рис. 9) (команда меню Обучение/ Kohonen (Train/Kohonen)) отличается от окна обучения Backpropagation, оно включает начальные и конечные параметры для скорости обучения (коэффициента корреляции) и для размера области близости (соседства). Обычно обучение Кохонена разбивают на две части - фаза прикидки и фаза подстройки.
Скорость обучения/Learning Rate
Скорость обучения в алгоритме Кохонена линейно изменяется от первого цикла обучения до последнего.
Обычно алгоритм обучения запускают в две стадии.
На первой стадии используют изначально высокую скорость обучения (например, от 0.9 до 0.1), большой размер окрестности (например, от 2 до 1) и небольшое число циклов (например, 100).
На второй стадии используют неизменные скорость обучения (например, 0.01), небольшой размер окрестности (например, 0) и большое число циклов (например, 10000).
Окрестность
Это значение определяет количество рассматриваемых соседних элементов вокруг выигравшего элемента. Например, при размере окрестности равном 2, число элементов - 55.
Несколько запусков алгоритма
Если необходимо сравнить характеристики нескольких процессов обучения с разными параметрами, используйте кнопку Reinitialise (Реинициализация) диалогового окна Back Propagation. При нажатии на эту кнопку процесс обучения инициализируется заново; если нажать Обучение (Train) после Reinitialise (Реинициализация) на графике ошибки начнет изображаться новая кривая.
При работе алгоритма Кохонена нажатие кнопки Реинициализация/Reinitialise изменяет только выходной слой радиальных элементов.
7.2.6 Обучение с перекрестной проверкой
Обычно, искусственные нейронные сети обучают на одной последовательности образов, а проверяют качественные характеристики на другой последовательности, не использовавшейся в обучении: это даст возможность независимой оценки «научилась ли сеть чему нибудь полезному?».
Без Перекрестной проверки (Cross Verification) сеть с большой матрицей весов может «переучится» и начать запоминать не только структуру данных но и сами образы (и шум). В результате сеть станет непригодной для использования на каком-либо наборе данных, кроме своей обучающей последовательности.
Способность сети не только запоминать обучающие последовательности, но и корректно вести себя с ранее неизвестными данными известна как обобщающая способность сети. В программе Trajan можно посмотреть, как сеть справляется с обобщением с помощью характеристики Ошибка проверки (если она сравнительно мала - все нормально). В некоторых случаях можно обучать сеть несколько раз, и видеть постоянное стремление общей ошибки к нулю, однако ошибка проверки сначала будет уменьшаться вместе с общей ошибкой, а затем начнет стремительно расти. Это верный признак того, что сеть переучена. Необходимо остановить обучение сети, пока ошибка проверки не начала расти.
Программа автоматически выделяет обучающие и проверочные образы (как указанно в предыдущем разделе). Все обучение проходит на обучающих образах, все ошибки и статистика собираются отдельно для обучающих и проверочных образов.
Для осуществления перекрестной проверки надо отметить опцию Перекрестная проверка (Cross Verification) в окне Обучение сети. Тогда после нажатия кнопки Выполнить (Run) сеть начнет обучаться, причем на графике ошибки теперь отображаются две линии: одна, для обучающих образов, а другая, для проверочных образов. Сеть обучается на обучающих образах, но тут же (в том же цикле) проверяется на проверочных образах.
Проверка сети каждый цикл проверочными образами требует много времени, и не всегда необходима. Поэтому, по желанию, можно отключить перекрестную проверку. Для этого надо снять крестик с поля Перекрестная проверка (Cross Verification) в окне обучения. В этом случае программа игнорирует проверочные образы, что ускоряет процесс обучения. Однако потом можно посмотреть общую ошибку на проверочной последовательности с помощью функции Run All Patterns (Прогон всей обучающей последовательности).
7.3 Работа с сетью
7.3.1 Возможности сети по работе с образцами
После обучения сети ее можно прогнать, т.е. запустить. В программе Trajan для этого предусмотрено несколько режимов.
Прогон текущей обучающей последовательности целиком или по одному образцу за один раз;
Прогон любой другой последовательности образцов целиком или по одному образцу за один раз. Такая последовательность образцов должна иметь необходимое количество входов и не иметь выходов (если выходы есть, то они игнорируются);
Прогон образца, заданного пользователем и не принадлежащего к обучающей последовательности.
Прогон текущей последовательности
Можно прогнать сеть на текущей последовательности образцов, представляя данные сети по одному образцу, или запустить сеть со всей последовательностью. В последнем случае все характеристики собираются по всем образцам.
Прогон одного образца
Для запуска программы в режиме прогона единственного образца необходимо вызвать диалоговое окно Run Single Pattern с помощью команды меню Run/Single Pattern (Выполнить/Одиночный образец) (см. рис. 10).
Для выбора необходимого образца воспользуйтесь полем Pattern (Образец). Нажмите кнопку Run (Выполнить) для прогона текущего образца, или измените поле Pattern (Образец) и нажмите клавишу RETURN.
Рис. 10. Выполнение одного образца.
Самый легкий путь прогнать большое количество образцов по одному за раз, это сначала нажать кнопку Run (Выполнить), а затем нажимать кнопку Стрелочка Вверх, которая находится справа от поля Pattern (Образец).
Входы сети отображаются в матрице на левой половине экрана, а выход - справа.
Кроме реально полученного значения выхода (Actual), справа отображаются еще и ожидаемое значение выхода (Target), и ошибка между ними (Error).
Программа отображает также вверху окна общую ошибку на образец и классификацию текущего образца.
Прогон всей последовательности целиком
Чтобы проверить сеть на всей последовательности целиком необходимо с помощью команды меню Run/All Patterns (Выполнить/Все образцы) вызвать диалоговое окно Run All Patterns (Прогон всех образцов) (рис. 11).
Нажмите кнопку Run (Выполнить) для запуска всей последовательности. Результат появится в том же окне.
Полученная матрица содержит вычисленные сетью значения (o#01), ожидаемые значения (Т. о#01) и ошибку на образце (Е. o#01) для каждого образца. Вверху матрицы отображается так же и общая квадратичная (RMS) ошибка обучения.
Рис. 11. Результаты выполнения всех образцов.
Проверка сети на произвольном образце
В некоторых случаях бывает необходимо прогнать сеть на образце, который не принадлежит к обучающей последовательности, т.е. на произвольном образце, заданном пользователем. Это может пригодится в следующих случаях:
Натренированная сеть используется для предсказания результата по неизвестным входным данным;
Можно поэкспериментировать с качеством тренировки сети, например, как она устойчива к небольшим изменениям входных данных относительной образцов из обучающей последовательности.
Чтобы задать произвольный образец и прогнать его через сеть необходимо вызвать диалоговое окно Run One-off Pattern (Прогон одного из ...) воспользовавшись командой меню Run/One off (Выполнить/Один из).
Введите входные значения в матрицу входов (Inputs Matrix) на левой половине окна и нажмите кнопку Run (Выполнить); результат появится в выходной матрице (Outputs Matrix) на правой стороне окна.
Искусственные нейронные сети обычно достаточно устойчивы к таким незначительным изменениям, поэтому хорошо справляются с «зашумленными» данными, что является одним из преимуществ применения ИНС.
7.3.2 Интерпретация классификации
Когда Вы прогоняете отдельный образец или произвольный образец программа проверяет выход на соответствие установкам степени принадлежности. Существуют следующие варианты:
Если выходное значение больше установленного порога Принять, то образец классифицируется как принадлежащий классу и имя (название) выходного элемента отображается в поле Класс. Если Вы следовали всем инструкциям и все сделали правильно, то название XOR должно отобразится в поле Classification (Класс).
Если результат меньше установленного порога Отклонить, образец классифицируется как не принадлежащий классу и в поле Classification (Класс) отображается слово Negative.
Если результат между двумя порогами степени достоверности, то образец классифицируется как Unknown (Неизвестный).
Рис. 13. Диалоговое окно нормализации.
Установка степени принадлежности
Можно установить желаемую степень принадлежности. Для этого необходимо воспользоваться окном Normalisation (Нормализация) (рис. 13), вызвав его командой меню Edit/Normalisation (Изменить/Нормализация).
Поле Accept (Принять) задает минимальное значение выхода, при котором он классифицируется как 1.0; поле Reject (Отклонить) устанавливает максимальное значение выхода, ниже которого результат классифицируется, как равный 0.0.
Если установить степень принадлежности в окне Нормализация по 0.5, то все или почки все образы будут правильно классифицированы в обоих последовательностях (обучающей и проверочной).
Статистика классификации
Можно посмотреть общую статистику по классификации для всей последовательности. Для этого с помощью команды меню Статистика/Классификация необходимо вызвать окно Сlassification Statistics (Статистика классификации) (рис. 14). Вся статистика отображается в матрице.
Рис.14. Окно отображения общей статистики по классификации всей последовательности.
Данная матрица содержит один столбец для каждого класса. Каждый столбец имеет две секции: общая статистика и распознанная статистика, которые разделены жирной горизонтальной линией.
Общая статистика
Total (Всего). Общее количество образцов данного класса в последовательности.
Correct (Правильных). Количество образцов данного класса, правильно распознанных сетью.
Wrong (Ошибочно). Количество образцов данного класс, ошибочно причисленных к другому классу.
Unknown (Неизвестных). Количество образцов данного класса, не опознанных сетью.
Распознанная статистика
Количество образцов каждого класса, присвоенных какому-либо классу (список распознанных образцов). Неизвестные образцы не учитываются. Программа отображает статистику обучающей последовательности отдельно от статистики проверяющей последовательности. Они разделены жирной вертикальной чертой (обучающая слева, проверяющая справа).
7.3.3 Работа с сетью Кохонена
Сети Кохонена, в отличие от остальных нейронных сетей, используются особым образом, и у программы Trajan есть все возможности для работы с ними:
Окно Частоты побед (Win Frequencies) для иллюстрации, где в сети сформировались кластеры;
Окно Топологическая карта (Topological мар) для иллюстрации, какой образец отнесен к какому кластеру. Это окно поможет Вам заранее задать имена элементам и образцам.
Частоты побед
Откройте окно Частоты побед (Win Frequencies) , вызвав его командой меню Статистика/Частоты побед (Statistics/Win Frequencies) (рис. 15). В этом режиме программа прогоняет все входные образцы и подсчитывает, сколько раз каждый элемент топологического слоя выигрывает (т.е. находится ближе всего к проверяемому образцу). Высокое число побед показывает центры кластеров на топологической карте.
Элементы с нулевыми частотами побед вообще не используются, и их наличие обычно показывает, что обучение прошло не очень успешно (т.к. сеть использует не все предоставленные ей ресурсы). Однако в определенных случаях, из-за небольшого количества входных образцов допустимо наличие неиспользованных элементов.
Рис.15 . Частоты побед
Частоты побед (Win Frequencies) показываются отдельно для обучающих и проверочных образцов (разделены толстой горизонтальной линией). Если расположение кластеров значительно отличается в этих двух половинах, это показывает, что сеть не научилась правильно обобщать данные. В нашем примере это не важно, т.к. обучающая последовательность очень мала для самообучения.
Топологическая карта
Как только распределение центров кластеров определено, можно открыть окно Topological Map (Топологическая карта) и просмотреть сеть с целью идентификации кластеров (рис.7).
Топологическая карта (Topological Map) отображает выходной слой графически в двумерном пространстве. Для каждого элемента топологического слоя отображается его близость к текущему образцу с помощью черного квадрата (чем больше квадрат, тем ближе), и выигравший элемент обведен тонким прямоугольником.
Рис.16. Топологическая карта.
Если проверить несколько образцов (самое удобное нажимать стрелку вверх справа от поля Образец (Pattern)), можно заметить, что похожие образцы объединены в группы, и близкие элементы расположены рядом друг с другом.
На этом этапе можно начинать именовать элементы (давать осмысленные имена) для того, чтобы показать их принадлежность к кластеру.
Если пользователь работает с сетью Кохонена и не знает заранее, какие должны быть кластеры (что является обычным случаем применения сети Кохонена), можно поступить следующим образом: дать полученным кластерам символические имена, а затем просмотреть входные данные и определите значение кластеров. Для этого у программы есть возможность прямо в окне топологической карты (Topological Map) давать имена образцам.
Замечание
Чтобы не набирать на клавиатуре одно и тоже имя каждый раз, можно скопировать его в буфер (выделить и нажать CTRL+INSERT), а затем вставлять в нужное место путем нажатия SHIFT+INSERT. Также можно не нажимать RETURN после каждого имени. После каждого нажатия стрелки вверх или вниз Топологическая карта автоматически обновляется.
7.4 Генетический алгоритм выбора входных атрибутов
При решении различных проблем с помощью нейронных сетей может использоваться широкий диапазон входных параметров, но не всегда видно какие из них очень важны, а какие не нужны совсем. Проблема становится еще более серьезной, когда возникает взаимозависимость или корреляция между некоторыми входными параметрами, что означает, что некоторые образы последовательности могут быть адекватными.
Некоторые архитектуры нейронных сетей (например, многослойный персептрон) реально могут обучиться игнорировать ненужные параметры. Однако, обучение других видов архитектур (например, сети радиальных базисных функций) зависит от числа входных параметров. В любом случае увеличение числа входов требует увеличения обучающих примеров (как правило, число обучающих примеров должно быть в несколько раз больше, чем число весов сети), чтобы предупредить явление переобученности. Как следствие, можно улучшить структуру сети, уменьшив число входов, иногда даже за счет потери некоторой входной информации.
Существует два возможных способа решения этой проблемы. Один предполагает оставление всех оригинальных параметров, но переработать их и взять их меньшее число, оставив столько информации, сколько возможно.
Второй способ решения - определить входные параметры, которые не вносят значительных изменений в представление сети, и удалить их.
Trajan использует для решения описанной проблемы второй способ, применяя комбинацию вероятностных нейронных сетей и сетей генеральной регрессии и генетического алгоритма.
Генетический алгоритм - это стратегия оптимизации для нахождения эффективных параметров в бинарных строках. В этом случае бинарные строки представляют маски: маски определяют какие входные параметры должны использоваться при конструировании нейронной сети. Так 0 обозначает, что параметр не должен использоваться, 1 - что должен. Например, если существует 6 исходных входных параметров, маскирующая строка 001101 обозначает, что первый, второй и пятый параметры следует исключить, а третий, четвертый и шестой оставить.
Генетический алгоритм случайным образом генерирует популяцию таких строк, а затем использует процесс, аналогичный натуральному отбору в природе для выбора выигравших строк, которые использует для "скрещивания" и получения новой популяция. Через несколько поколений производятся наиболее удачные выигравшие строки. Затем в качестве решения из финального поколения случайным образом выбирается лучшая строка.
В генетическом алгоритме выбора входов каждая маска используется для построения новой обучающей последовательности, и на ней тестируются вероятностные сети или сети генеральной регрессии. Эти типы сетей выбраны, исходя из следующих соображений:
Они очень быстро обучаются, создавая множество поколений, необходимых для генетического алгоритма.
Они способны достаточно точно моделировать нелинейные функции.
Как и сети радиальных базисных функций, они относительно чувствительны к включению ненужных входных переменных.
Trajan автоматически выбирает между этими двумя типами сетей, основываясь на типе выходных переменных в текущем наборе образов.
Хотя ненужные входы обычно увеличивают ошибку сети, они могут влиять на нее очень слабо, что создает большие трудности при обнаружении таких входов. Более того, иногда более полезно использовать меньшее число входов, даже если это вызовет небольшое увеличение ошибки, но в этом случае будет лучше представление поколения. В Trajan можно определить фактор штрафа элемента. Он умножается на число выбранных входов и добавляется к ошибке, таким образом, считая лучшими меньшие сети.
Генетический алгоритм в частности хорошо справляется с определением взаимозависимостей между параметрами, расположенными близко друг к другу в маскирующих строках. Следовательно, если есть причины думать, что параметры зависимы, их необходимо расположить в соседних столбцах набора образов.
7.5 Сохранение результатов работы
Программа Trajan сохраняет обучающую последовательность и структуру сети в двух разных файлах.
Сохранение структуры сети
Выберите пункт меню Файл/Сохранить как/Сеть (File/Save As/Network).
Появится диалоговое окно сохранения сети (Рис. 17).
Введите имя файла сети в поле File Name (Имя) диалогового окна. Стандартное расширение файла сети - net.
Нажмите кнопку OK.
Рис. 17. Диалоговое окно сохранения сети.
Сохранение обучающей последовательности
Обучающая последовательность сохраняется аналогично, для этого используется команда меню Файл/Сохранить как/Образец (File/Save As/Pattern). Обучающие последовательности записываются в файл с расширением .pat.
Время от времени свою работу нужно сохранять командами меню File/Save/Network и File/Save/Pattern
Программа автоматически спросит о сохранении работы, если пользователь захочет выйти из программы не записавшись.
Похожее диалоговое окно используется и для открытия сохраненного файла сети или образца.
Система Trajan позволяет сохранять различные результаты работы сети: графики ошибок, матрицы классификации, результаты работы сети на наборе образов и т.п.
Для сохранения результатов необходимо нажать кнопку сохранения (желтого цвета) в окне вывода результатов (обычно она находится в левой части окна). После этого система откроет окно, аналогичное приведенному на рис. 17.
Все результаты сохраняются в файлах с расширением .txt, поэтому необходимо тщательно следить за наименованием файлов. Все данные сохраняются в текстовом формате, часто в виде таблиц, колонки которых разделены символами табуляции. Это позволяет легко копировать данные и импортировать их в различные программы обработки данных.
Глава 8. Экспериментальное исследование эффективности применения нейронных сетей
Оценка студента при проведении реального экзамена может зависеть от различных факторов. Прежде всего это уровень требований преподавателя, его квалификация и знание предмета. Часто преподаватель проявляет гибкость (например, учитывая сложность и взаимосвязь вопросов, (иногда всего один правильный ответ может обеспечить положительную оценку, а незнание этого ответа - неудовлетворительную даже в том случае, когда студент правильно ответил на все остальные вопросы). Кроме того, оценка может зависеть и от психофизического состояния преподавателя, его настроения, самочувствия или даже погоды. Таких тонкостей может быть множество и преподаватель не всегда даже их осознает.
Необходимо также отметить, что при проведении в течение нескольких лет экзамена с одинаковыми вопросами на оценку преподавателя кроме выше перечисленных характеристик, изменяющихся каждый раз, может влиять и изменение его знаний и суждений из года в год.
Следовательно, для правильного оценивания знаний студентов необходимо построить достаточно гибкую и точную нейронную сеть, чтобы адекватно отобразить все нюансы в проставлении оценки преподавателем.
В данном проекте в качестве экспериментальных данных используются результаты экзаменов, проводившихся в Московском Энергетическом Институте.
В МЭИ в 1993, 1994, 1995 годах проводился экзамен одним и тем же преподавателем. Студенты должны были ответить на 8 вопросов, которые из года в год оставались неизменными. Ответ на каждый вопрос оценивался по 10-тибальной шкале (10 - отлично, 0 - не ответил). Затем выставлялась итоговая оценка за экзамен по 4-хбальной шкале (5 - отлично, 4 - хорошо, 3 - удовлетворительно, 2 - плохо). Таким образом были собраны данные об ответах и оценках 296 студентов за 3 года (99, 98, 99 человек соответственно в каждом году). Данные приведены в таблице 1.
Таблица 1. Результаты проведения экзаменов за 1993 - 1995 годы. |
|||||||||||||
Номер студента |
Вопрос 1 |
Вопрос 2 |
Вопрос 3 |
Вопрос 4 |
Вопрос 5 |
Вопрос 6 |
Вопрос 7 |
Вопрос 8 |
Оценка 5 |
Оценка 4 |
Оценка 3 |
Оценка 2 |
|
1 |
0.2 |
1 |
0.4 |
1 |
0.4 |
1 |
1 |
1 |
0 |
0 |
1 |
0 |
|
2 |
1 |
1 |
1 |
0.8 |
1 |
0.8 |
1 |
1 |
0 |
0 |
1 |
0 |
|
3 |
1 |
1 |
1 |
1 |
0.8 |
0.8 |
0.7 |
1 |
0 |
0 |
1 |
0 |
|
4 |
1 |
1 |
0.8 |
1 |
1 |
1 |
1 |
1 |
0 |
1 |
0 |
0 |
|
5 |
0 |
0.6 |
1 |
0.8 |
0.4 |
1 |
1 |
1 |
0 |
0 |
0 |
1 |
|
6 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
0 |
0 |
0 |
|
7 |
1 |
1 |
0.2 |
1 |
1 |
1 |
1 |
1 |
0 |
1 |
0 |
0 |
|
8 |
0.4 |
1 |
0.7 |
1 |
1 |
1 |
1 |
1 |
0 |
0 |
1 |
0 |
|
9 |
0.3 |
1 |
1 |
1 |
0.2 |
1 |
1 |
0.6 |
0 |
0 |
1 |
0 |
|
10 |
1 |
1 |
1 |
1 |
0 |
0.3 |
1 |
0.8 |
0 |
0 |
1 |
0 |
|
11 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
0 |
0 |
0 |
|
12 |
1 |
0.6 |
1 |
1 |
1 |
0 |
1 |
0.4 |
0 |
0 |
1 |
0 |
|
13 |
1 |
1 |
0.4 |
1 |
1 |
1 |
1 |
0.6 |
0 |
0 |
1 |
0 |
|
14 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
0 |
0 |
0 |
|
15 |
0.6 |
1 |
1 |
1 |
1 |
0.3 |
0.7 |
1 |
0 |
0 |
1 |
0 |
|
16 |
0.5 |
1 |
0 |
1 |
0.4 |
1 |
1 |
0.8 |
0 |
0 |
0 |
1 |
|
17 |
0.2 |
0 |
0.4 |
0.2 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
|
18 |
0 |
0.4 |
0.2 |
1 |
0.4 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
|
19 |
0.5 |
0.6 |
1 |
1 |
1 |
1 |
0.7 |
0.6 |
0 |
0 |
0 |
1 |
|
20 |
0 |
0 |
0.8 |
1 |
1 |
0.3 |
0.2 |
0 |
0 |
0 |
0 |
1 |
|
21 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
0 |
0 |
0 |
|
22 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
0 |
0 |
0 |
|
23 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
0 |
0 |
0 |
|
24 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
0 |
0 |
0 |
|
25 |
1 |
1 |
0.2 |
1 |
0.4 |
1 |
0.2 |
1 |
0 |
0 |
1 |
0 |
|
26 |
0 |
0 |
1 |
0.6 |
0.8 |
1 |
0.2 |
0.4 |
0 |
0 |
0 |
1 |
|
27 |
0.2 |
0.4 |
0.4 |
0 |
0 |
0 |
0 |
0.6 |
0 |
0 |
0 |
1 |
|
28 |
0.2 |
1 |
0.6 |
0.6 |
0.4 |
1 |
1 |
1 |
0 |
0 |
0 |
1 |
|
29 |
0 |
1 |
0.2 |
0.2 |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
|
30 |
0.5 |
1 |
1 |
0.6 |
0.8 |
1 |
1 |
0.6 |
0 |
0 |
0 |
1 |
|
31 |
0.2 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
0 |
1 |
0 |
0 |
|
32 |
0 |
0.6 |
0.8 |
1 |
0.2 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
|
33 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
0 |
0 |
0 |
|
34 |
0.8 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
0 |
1 |
0 |
0 |
|
35 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
0 |
0 |
0 |
|
36 |
0.6 |
1 |
0.4 |
1 |
1 |
1 |
1 |
1 |
0 |
0 |
1 |
0 |
|
37 |
1 |
1 |
1 |
1 |
0.2 |
0.8 |
1 |
1 |
0 |
0 |
1 |
0 |
|
38 |
1 |
0.3 |
1 |
0 |
0.6 |
0.3 |
1 |
0.4 |
0 |
0 |
0 |
1 |
|
39 |
0.2 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
0 |
1 |
0 |
0 |
|
40 |
0.6 |
1 |
0.4 |
0.6 |
0.4 |
0 |
0 |
1 |
0 |
0 |
0 |
1 |
|
41 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
0 |
0 |
0 |
|
42 |
1 |
1 |
0.2 |
1 |
0 |
1 |
1 |
1 |
0 |
0 |
1 |
0 |
|
43 |
0.6 |
1 |
1 |
1 |
1 |
1 |
1 |
0.6 |
0 |
0 |
1 |
0 |
|
44 |
0.5 |
0.3 |
1 |
1 |
0 |
1 |
1 |
1 |
0 |
0 |
1 |
0 |
|
45 |
0.5 |
1 |
0 |
0.6 |
1 |
1 |
1 |
1 |
0 |
0 |
1 |
0 |
|
46 |
0 |
1 |
0.2 |
0.8 |
0.4 |
1 |
1 |
1 |
0 |
0 |
0 |
1 |
|
47 |
1 |
1 |
0 |
1 |
0 |
1 |
0.2 |
1 |
0 |
0 |
1 |
0 |
|
48 |
1 |
1 |
0.8 |
1 |
1 |
1 |
1 |
1 |
0 |
1 |
0 |
0 |
|
49 |
1 |
1 |
1 |
1 |
1 |
1 |
0 |
1 |
0 |
1 |
0 |
0 |
|
50 |
1 |
0.6 |
1 |
0.8 |
1 |
1 |
1 |
1 |
0 |
0 |
1 |
0 |
|
51 |
0.2 |
1 |
1 |
0.4 |
1 |
0.3 |
1 |
1 |
0 |
0 |
1 |
0 |
|
52 |
1 |
1 |
0.5 |
1 |
1 |
1 |
1 |
1 |
0 |
1 |
0 |
0 |
|
53 |
1 |
0.6 |
0.4 |
1 |
0.6 |
1 |
1 |
1 |
0 |
0 |
1 |
0 |
|
54 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
0 |
0 |
0 |
|
55 |
0.4 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
0 |
1 |
0 |
0 |
|
56 |
0.2 |
1 |
0.6 |
1 |
0.4 |
1 |
1 |
0.6 |
0 |
0 |
0 |
1 |
|
57 |
0.2 |
1 |
1 |
1 |
0.3 |
1 |
1 |
1 |
0 |
0 |
1 |
0 |
|
58 |
0.3 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
0 |
1 |
0 |
0 |
|
59 |
0 |
1 |
1 |
1 |
1 |
1 |
1 |
0.4 |
0 |
0 |
1 |
0 |
|
60 |
1 |
1 |
0.5 |
0.6 |
1 |
0.5 |
1 |
1 |
0 |
0 |
1 |
0 |
|
61 |
1 |
0.8 |
1 |
1 |
0 |
1 |
1 |
1 |
0 |
0 |
1 |
0 |
|
62 |
0 |
1 |
0.7 |
1 |
0.6 |
0 |
0.8 |
1 |
0 |
0 |
0 |
1 |
|
63 |
1 |
1 |
0.6 |
1 |
1 |
1 |
1 |
1 |
0 |
1 |
0 |
0 |
|
64 |
0 |
0.6 |
0 |
0.7 |
0.7 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
|
65 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
0 |
0 |
0 |
|
66 |
1 |
0.8 |
1 |
1 |
1 |
1 |
1 |
1 |
0 |
1 |
0 |
0 |
|
67 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
0 |
0 |
0 |
|
68 |
0.4 |
0.6 |
1 |
1 |
1 |
1 |
1 |
0.7 |
0 |
0 |
1 |
0 |
|
69 |
0 |
0 |
0.2 |
1 |
0.3 |
1 |
0.6 |
0.8 |
0 |
0 |
0 |
1 |
|
70 |
1 |
0.6 |
1 |
0.4 |
1 |
1 |
0.2 |
1 |
0 |
0 |
1 |
0 |
|
71 |
0.4 |
0.4 |
1 |
0.2 |
0 |
1 |
0.5 |
1 |
0 |
0 |
0 |
1 |
|
72 |
1 |
1 |
0.4 |
1 |
0.6 |
0.4 |
1 |
1 |
0 |
0 |
1 |
0 |
|
73 |
0.7 |
1 |
1 |
1 |
1 |
1 |
1 |
0.6 |
0 |
0 |
1 |
0 |
|
74 |
1 |
0.8 |
0.6 |
1 |
1 |
1 |
0.4 |
1 |
0 |
... |
Подобные документы
Возможности программ моделирования нейронных сетей. Виды нейросетей: персептроны, сети Кохонена, сети радиальных базисных функций. Генетический алгоритм, его применение для оптимизации нейросетей. Система моделирования нейронных сетей Trajan 2.0.
дипломная работа [2,3 M], добавлен 13.10.2015Понятие и свойства искусственных нейронных сетей, их функциональное сходство с человеческим мозгом, принцип их работы, области использования. Экспертная система и надежность нейронных сетей. Модель искусственного нейрона с активационной функцией.
реферат [158,2 K], добавлен 16.03.2011Общие сведения о принципах построения нейронных сетей. Искусственные нейронные системы. Математическая модель нейрона. Классификация нейронных сетей. Правила обучения Хэбба, Розенблатта и Видроу-Хоффа. Алгоритм обратного распространения ошибки.
дипломная работа [814,6 K], добавлен 29.09.2014Сущность и функции искусственных нейронных сетей (ИНС), их классификация. Структурные элементы искусственного нейрона. Различия между ИНС и машинами с архитектурой фон Неймана. Построение и обучение данных сетей, области и перспективы их применения.
презентация [1,4 M], добавлен 14.10.2013Особенности нейронных сетей как параллельных вычислительных структур, ассоциируемых с работой человеческого мозга. История искусственных нейронных сетей как универсального инструмента для решения широкого класса задач. Программное обеспечение их работы.
презентация [582,1 K], добавлен 25.06.2013Рост активности в области теории и технической реализации искусственных нейронных сетей. Основные архитектуры нейронных сетей, их общие и функциональные свойства и наиболее распространенные алгоритмы обучения. Решение проблемы мертвых нейронов.
реферат [347,6 K], добавлен 17.12.2011Искусственные нейронные сети как одна из широко известных и используемых моделей машинного обучения. Знакомство с особенностями разработки системы распознавания изображений на основе аппарата искусственных нейронных сетей. Анализ типов машинного обучения.
дипломная работа [1,8 M], добавлен 08.02.2017Понятие искусственного нейрона и искусственных нейронных сетей. Сущность процесса обучения нейронной сети и аппроксимации функции. Смысл алгоритма обучения с учителем. Построение и обучение нейронной сети для аппроксимации функции в среде Matlab.
лабораторная работа [1,1 M], добавлен 05.10.2010Простейшая сеть, состоящая из группы нейронов, образующих слой. Свойства нейрокомпьютеров (компьютеров на основе нейронных сетей), привлекательных с точки зрения их практического использования. Модели нейронных сетей. Персептрон и сеть Кохонена.
реферат [162,9 K], добавлен 30.09.2013Способы применения технологий нейронных сетей в системах обнаружения вторжений. Экспертные системы обнаружения сетевых атак. Искусственные сети, генетические алгоритмы. Преимущества и недостатки систем обнаружения вторжений на основе нейронных сетей.
контрольная работа [135,5 K], добавлен 30.11.2015Описание технологического процесса напуска бумаги. Конструкция бумагоделательной машины. Обоснование применения нейронных сетей в управлении формованием бумажного полотна. Математическая модель нейрона. Моделирование двух структур нейронных сетей.
курсовая работа [1,5 M], добавлен 15.10.2012Определение и виды модели, ее отличие от понятия моделирования. Формула искусственного нейрона. Структура передачи сигнала между нейронами. Способность искусственных нейронных сетей к обучению и переобучению. Особенности их применения в финансовой сфере.
реферат [136,2 K], добавлен 25.04.2016Механизм работы нервной системы и мозга человека. Схема биологического нейрона и его математическая модель. Принцип работы искусственной нейронной сети, этапы ее построения и обучения. Применение нейронных сетей в интеллектуальных системах управления.
презентация [98,6 K], добавлен 16.10.2013Математическая модель нейронной сети. Однослойный и многослойный персептрон, рекуррентные сети. Обучение нейронных сетей с учителем и без него. Алгоритм обратного распространения ошибки. Подготовка данных, схема системы сети с динамическим объектом.
дипломная работа [2,6 M], добавлен 23.09.2013Принципы организации и функционирования биологических нейронных сетей. Система соединенных и взаимодействующих между собой простых процессоров. Нейронные сети Маккалока и Питтса. Оценка качества кластеризации. Обучение многослойного персептрона.
курсовая работа [1,1 M], добавлен 06.12.2010Нейронные сети как средство анализа процесса продаж мобильных телефонов. Автоматизированные решения на основе технологии нейронных сетей. Разработка программы прогнозирования оптово-розничных продаж мобильных телефонов на основе нейронных сетей.
дипломная работа [4,6 M], добавлен 22.09.2011Способы применения нейронных сетей для решения различных математических и логических задач. Принципы архитектуры их построения и цели работы программных комплексов. Основные достоинства и недостатки каждой из них. Пример рекуррентной сети Элмана.
курсовая работа [377,4 K], добавлен 26.02.2015Анализ применения нейронных сетей для прогнозирования ситуации и принятия решений на фондовом рынке с помощью программного пакета моделирования нейронных сетей Trajan 3.0. Преобразование первичных данных, таблиц. Эргономическая оценка программы.
дипломная работа [3,8 M], добавлен 27.06.2011Сущность и понятие кластеризации, ее цель, задачи, алгоритмы; использование искусственных нейронных сетей для кластеризации данных. Сеть Кохонена, самоорганизующиеся нейронные сети: структура, архитектура; моделирование кластеризации данных в MATLAB NNT.
дипломная работа [3,1 M], добавлен 21.03.2011Задача анализа деловой активности, факторы, влияющие на принятие решений. Современные информационные технологии и нейронные сети: принципы их работы. Исследование применения нейронных сетей в задачах прогнозирования финансовых ситуаций и принятия решений.
дипломная работа [955,3 K], добавлен 06.11.2011