Нейронная сеть для решения задачи XOR

Автор: Пользователь скрыл имя, 04 Апреля 2013 в 17:11, дипломная работа

Краткое описание

Цель - изучение основных принципов работы искусственной вычислительной модели биологического нейрона и их демонстрация на примере решения задачи XOR.
Задачи
Изучение общих вопросов организации искусственных нейронных сетей;
Анализ способности к обучению искусственных нейронных сетей;
Изучение проблемы ограниченности возможностей однослойных персептронов;
Создание программного приложения, демонстрирующего решение проблемы XOR – исключающего ИЛИ.

Оглавление

Введение 3
1 Интеллектуальные системы на основе искусственных нейронных сетей 6
1.1 Аппаратное моделирование структур, подобных структуре мозга 6
1.2 Архитектура нейронной сети 13
1.3 Обучение искусственных нейронных сетей. 25
2 Многослойные сети прямого распространения 33
2.1 Ограниченность возможностей однослойных персептронов. 33
2.2 Принцип обучения многослойной нейронной сети с помощью алгоритма обратного распространения 37
2.3 Пример решения задачи XOR - исключающего ИЛИ 50
Заключение 59
Список используемой литературы 61
Приложение А 62

Файлы: 1 файл

Диплом Дорошева Виталия.docx

— 580.55 Кб (Скачать)

Нейронные сети с обратными связями.

Помимо рассмотренных выше «прямоточных»  нейронных сетей, в которых сигналы  распространяются в направлении  от входов к выходам, существуют и  более сложные структуры искусственных  нейронов.

На рис. 1.12 мы показали структуру нейронной сети с обратными связями. Как видно на этом рисунке, сигналы с выходов сети попадают обратно на ее входы. При этом выходные сигналы смешиваются с входными сигналами.

Рисунок 1.12. Нейронная сеть с обратными связями

 

Если в нейронной сети имеются  обратные связи, она может стать  неустойчивой. Такая сеть может «зациклиться», проходя бесконечное количество раз через одни и те же состояния.

Нейронные сети могут быть усложнены  за счет добавления в нее элементов, задерживающих распространение  сигнала в прямом или обратном направлении. На рис. 1.13 показаны такие элементы задержки.

Рисунок 1.13. Нейронная сеть с обратными связями и задержками

 

 

Используя элементы задержки при моделировании  нейронной системы головного  мозга, можно учитывать тот факт, что сигналы возбуждения передаются между нейронами не мгновенно.

 

1.3 Обучение искусственных  нейронных сетей

Обучение нейронных сетей.

Нейронную сеть можно представить себе в виде черного ящика, имеющего входы и выходы. Реакция нейронной сети на входные сигналы определяется ее структурой, а также весовыми коэффициентами, задающими «силу» связей между нейронами.

Но вот выбор структуры нейронных  сетей и выбор значений весовых  коэффициентов для нейронов представляет собой две действительно сложные  задачи.

Что касается структуры нейронной  сети, то в зависимости от предназначения этой сети можно выбирать однослойную  или многослойную сеть, а также  вносить в нее дополнительные усложнения, вроде задержек. При  этом современные исследователи  имеют возможность опираться  на предшествующий опыт работ в области  нейронных сетей, так как большинство  задач, вроде распознавания образов  или прогнозирования, уже были детально изучены ранее. Например, для распознавания  образов можно использовать нейронную  сеть в виде персептрона Розенблатта (рис. 1.10). Другие задачи могут быть успешно решены при помощи нейронных сетей с другой структурой.

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

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

Здесь может сразу возникнуть аналогия с обучением человека. Надо, однако, заметить, что сложность искусственных  нейронных сетей не сопоставима  со сложностью человеческого мозга. Кроме того, искусственные нейронные  сети моделируют особенности живых  нейронов лишь приблизительно. Поэтому  при обсуждении способности искусственных  нейронных сетей к обучению речь может идти только о выполнении простейших функций мозга. До реального моделирования  способностей человеческого мозга  к обучению, к сожалению, дело еще  не дошло.

В литературе достаточно подробно описаны  различные методики обучения нейронных  сетей. Как правило, для того чтобы  детально разобраться в этих методиках, необходимо вспомнить некоторые  сведения из высшей математики, в частности, дифференцирование функций.

Задача распознавания  объектов.

Наилучшим образом искусственные  нейронные сети подходят для решения  задачи распознавания объектов, или, другими словами, классификации объектов.

Исходные данные для этой задачи — набор входных объектов, характеризующихся своими параметрами.

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

Простейший способ определить, здоров человек или болен, известен каждому. Берем градусник, измеряем температуру, и если она выше 37°, считаем, что  человек болен.

Разумеется, измеряя одну только температуру  невозможно выявить все болезни. Например, если у человека слишком  высокое или слишком низкое давление, температура тела может быть и  нормальной. Тем не менее, такой человек  болен.

Давайте попытаемся учесть давление. Будем считать здоровыми тех  людей, у которых отношение верхнего давления к нижнему давлению находится  вблизи значения 3/2. Разумеется, это  тоже очень сильное упрощение, однако оно дает нам возможность выявить  больных людей с нормальной температурой тела.

На рис. 1.14 мы изобразили систему координат, где по горизонтали отсчитывается температура тела, а по вертикали — отношение верхнего давления к нижнему давлению.

Рисунок 1.14. Классификация по температуре и давлению

 

Точками здесь отмечаются пары значений температуры и отношения давлений для разных людей. Если точка попала в прямоугольную область, закрашенную  серым цветом, то она соответствует  здоровому человеку, если нет — больному.

Итак, мы решили простейшую задачу классификации  объектов по двум параметрам, и представили на рис. 1.14 это решение в графическом виде.

Более точная классификация могла  бы учитывать не отношение верхнего и нижнего давления, а абсолютные значения этих параметров. На рис. 1.15 мы привели классификацию по трем параметрам — верхнему давлению, нижнему давлению и температуре тела.

Теперь наш рисунок стал трехмерным. Если точка, соответствующая набору параметров человека, попала внутрь параллелепипеда, то этот человек здоров, если нет — болен.

Рисунок 1.15. Классификация по трем параметрам

 

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

Искусственные нейронные сети в  состоянии выполнить классификацию  объектов по многим параметрам. Это  можно сделать, например, с помощью  персептрона Розенблатта.

Заметим, что персептрону все  равно, какие объекты он распознает. Любые объекты представляются для  него в виде точек, расположенных  в некотором многомерном пространстве параметров. Персептрон группирует эти  объекты в многомерные области, выполняя таким способом распознавание  объектов.

Обучение  персептрона.

Персептрон может распознавать любые объекты, представленные набором своих числовых параметров. Речевые сигналы также можно представить в виде таких параметров.

Итак, рассмотрим схему распознавания  изображений десятичных цифр, которая  есть во многих книгах, посвященных  искусственным нейронным сетям (рис. 1.16).

Рисунок 1.16. Использование персептрона для распознавания цифр

 

В левой части рис. 1.16 располагается панель светочувствительных фотоэлементов. На эту панель можно класть прозрачные пластинки с изображением цифр от 0 до 9. Это изображение перекрывает часть поверхности некоторых фотоэлементов, из-за чего на них попадает меньше света.

Выход каждого фотоэлемента подключается к своему входу персептрона при  помощи индивидуальной соединительной линии. Таким образом, количество n входных сенсорных элементов нашего персептрона равно количеству фотоэлементов, расположенных на панели.

Что же касается ассоциативного и  эффектроного слоев, то в каждом из них имеется по 10 нейронов. В процессе обучения нейронной сети каждый из нейронов ассоциативного слоя настраивается  таким образом, чтобы он реагировал на изображение «своей» цифры. Настройка  происходит путем изменения весовых  коэффициентов нейрона.

Настройка нейрона.

Вначале на панель фотоэлементов кладут пластинку с изображением цифры 1. Затем программа настраивает  весовые коэффициенты нейронной  сети таким образом, чтобы сигнал появился только на одном выходе персептрона, например, на выходе Y1 (и только на этом выходе). Далее на панель кладется пластинка с изображением цифры 2, а коэффициенты настраиваются, пока сигнал не появится только на выходе Y2. Затем эта операция повторяется для всех остальных цифр.

Рассмотрим процесс настройки  весовых коэффициентов подробнее.

На первом этапе в качестве начальных  значений весовых коэффициентов  используются случайные числа. Далее  персептрону предъявляется цифра 1, и проверяются значения сигналов на выходе эффекторного слоя .

Если значение сигнала на выходе Y1, который соответствует цифре 1, правильный, то весовые коэффициенты соответствующего нейрона ассоциативного слоя не меняются.

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

Далее снова проверяется значение сигнала на входе Y1, и, при необходимости, снова выполняется корректировка весовых коэффициентов. Эта процедура выполняется до тех пор, пока нейрон A1 ассоциативного слоя не научится распознавать цифру 1. Затем персептрон обучается распознаванию других цифр.

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

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

Проблемы  с обучением нейронных сетей.

Проблема настройки весовых коэффициентов нейронной сети в процессе обучения не слишком проста. Лишь в конце 80-х годов был разработан способ обучения многослойных нейронных сетей. При этом было придумано правило, называемое алгоритмом обратного распространения ошибок.

Суть алгоритма обратного распространения  ошибок состоит в выделении двух потоков нейронной сети. Прямой поток  представляет собой поток сигналов, распространяющихся от входа сети к  ее выходу. Обратный поток продвигается в направлении от выхода сети к  ее входу и представляет собой  поток ошибок. В соответствии с  этими ошибками и происходит корректировка  весовых коэффициентов слоев  нейронной сети.

Не всякий процесс обучения нейронной  сети будет успешным, или, как еще  говорят, сойдется. Даже если обучение сети было успешным, не обязательно  сеть будет выполнять свою работу наилучшим образом.

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

Сказанное иллюстрирует рис. 1.17.

 

Рисунок 1.17 Поиск экстремума функции

 

На этом рисунке изображена функция, имеющая три минимума Xmin1, Xmin2 и Xmin3. При этом только в точке Xmin2 достигается действительно наименьшее значение функции во всей области ее определения. Это глобальный минимум функции. Что же касается точек Xmin1 и Xmin3, то это локальные минимумы функции.

Если поиск экстремума выполняется  от точки, обозначенной на рис. 1.17 буквой a, то при движении по графику вправо будет обнаружен локальный минимум Xmin1. Если же при поиске экстремума движение будет происходить из точки b влево, то будет обнаружен локальный минимум Xmin3. В любом из этих случаев глобальный минимум функции, который находится в точке Xmin2, то он так и не будет обнаружен.

Существуют и другие проблемы, такие  как слишком большие значения весовых коэффициентов, вызывающие «паралич» нейронной сети или  чрезмерное уменьшение шага обучения, увеличивающее время обучения до чрезмерно большого значения. Кроме  того, при некоторых условиях обучение нейронной сети может превратиться в неустойчивый процесс, когда, выучивая одно, сеть при этом забывает другое.

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

Информация о работе Нейронная сеть для решения задачи XOR