Автор: Пользователь скрыл имя, 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
Обучение с учителем и без учителя.
Существуют два метода обучения нейронных сетей — обучение с учителем и обучение без учителя.
Рассмотренная выше процедура обучения персептрона распознаванию цифр является процедурой с учителем. Учитель предъявляет сети по очереди все цифры от 0 до 9, обучая ее распознавать каждую цифру.
Но существует еще и другая методика обучения, без учителя. В этом случае в процессе обучения происходит самоорганизация сети. Сеть, обученная без учителя, сможет выполнять кластеризацию объектов, группируя их по признакам, определяющим свойства таких объектов.
Детерминистский и стохастический метод.
Выше рассматривали процедуру обучения персептрона, представляющую собой последовательный пошаговый процесс. Такой метод обучения называется детерминистским.
В отличие от детерминистского метода, стохастический метод обучения предполагает псевдослучайное изменение весовых коэффициентов. При этом те изменения, которые приводят к уменьшению ошибки распознавания, сохраняются, а те изменения, которые ведут к увеличению ошибки, — отвергаются.
Стохастический метод обучения
обладает некоторыми преимуществами.
В частности, он позволяет решить
проблему нахождения глобальных минимумов
при наличии локальных
Все виды персептронов, предложенные Розенблаттом, начиная с 1958 года, являются по современной классификации многослойными. Однако в 1970-е годы интерес к персептронам снизился, и в 1986 году Румельхарт сконструировал многослойный персептрон заново. При этом по причине терминологической неточности Румельхарта в литературе распространилось также представление о том, что первоначальный персептрон Розенблатта был примитивным и однослойным, и лишь Руммельхарт обосновал необходимость введения скрытых слоёв.
В своих исследованиях Розенблатт
использовал преимущественно эл
Среди отличий многослойного
Многослойный перцептрон будет обладать функциональными преимуществами по сравнению с персептроном Розенблатта только в том случае, если в ответ на стимулы не просто будет выполнена какая-то реакция (поскольку уже в персептроне может быть получена реакция любого типа), а выразится в повышении эффективности выработки таких реакций. Например, улучшится способность к обобщению, то есть к правильным реакциям на стимулы которым персептрон не обучался. Но на данный момент таких обобщающих теорем нет, существует лишь масса исследований различных стандартизированных тестов, на которых сравниваются различные архитектуры.
Итак, отдельно взятый нейрон вида (1.1)
позволяет реализовать линейный
классификатор или линейную регрессию.
При решении практических задач
линейность оказывается чрезмерно
сильным ограничением. На ограниченность
персептрона указывали Минский
и Пайперт в своей знаменитой
книге «Персептроны». Следующий
классический контрпример иллюстрирует
невозможность нейронной
В многослойных нейронных сетях (их часто называют персептронами) нейроны объединяются слои. Слой содержит совокупность нейронов с едиными входными сигналами. Число нейронов в слое может быть любым и не зависит от количества нейронов в других слоях. В общем случае сеть состоит из нескольких слоев, пронумерованных слева на право. Внешние входные сигналы подаются на входы нейронов входного слоя (его часто нумеруют как нулевой), а выходами сети являются выходные сигналы последнего слоя. Кроме входного и выходного слоев в многослойной нейронной сети есть один или несколько так называемых скрытых слоев.
В свою очередь, среди многослойных сетей выделяют:
Теоретически число слоев и число нейронов в каждом слое может быть произвольным, однако фактически оно ограничено ресурсами компьютера или специализированных микросхем, на которых обычно реализуется нейросеть. Чем сложнее сеть, тем более сложные задачи она может решать.
Вероятно, архитектура многослойных нейронных сетей используется сейчас наиболее часто. Она была предложена еще в работах Розенблатта и подробно обсуждается почти во всех учебниках по нейронным сетям. Обычно сеть состоит из множества сенсорных элементов (входных узлов), которые образуют входной слой; одного или нескольких скрытых слоев вычислительных нейронов и одного выходного слоя нейронов.
В литературе нет единообразия относительно того, как считать число слоев в многослойных нейронных сетях. Одни предлагают считать число слоев, включая несуммирующий входной слой, другие – считать, только слои, выполняющие суммирование. Мы предлагаем использовать последнее определение. Согласно этому определению, многослойная нейронная сеть на рисунке ниже рассматривается как двухслойная. Вход распределительного слоя считается нулевым слоем.
Рисунок 2.2 Многослойная нейронная сеть.
Многослойная нейронная сеть может
моделировать функцию практически
любой степени сложности, причем
число слоев и число элементов
в каждом слое определяют сложность
функции. Определение числа
Среди многослойных нейронных сетей можно выделить четыре наиболее значимых и важных класса нейронных сетей:
Среди различных структур нейронных сетей (НС) одной из наиболее известных является многослойная структура, в которой каждый нейрон произвольного слоя связан со всеми аксонами нейронов предыдущего слоя или, в случае первого слоя, со всеми входами НС. Такие НС называются полносвязными. Когда в сети только один слой, алгоритм ее обучения с учителем довольно очевиден, так как правильные выходные состояния нейронов единственного слоя заведомо известны и подстройка синаптических связей идет в направлении, минимизирующем ошибку на выходе сети. По этому принципу строится, например, алгоритм обучения однослойного персептрона. В многослойных же сетях оптимальные выходные значения нейронов всех слоев, кроме последнего, как правило, не известны, и двух- или более слойный персептрон уже невозможно обучить, руководствуясь только величинами ошибок на выходах НС.
Один из вариантов решения этой проблемы — разработка наборов выходных сигналов, соответствующих входным, для каждого слоя НС, что, конечно, является очень трудоемкой операцией и не всегда осуществимо. Второй вариант — динамическая подстройка весовых коэффициентов синапсов, в ходе которой выбираются, как правило, наиболее слабые связи и изменяются на малую величину в ту или иную сторону, а сохраняются только те изменения, которые повлекли уменьшение ошибки на выходе всей сети. Очевидно, что данный "метод тыка", несмотря на свою кажущуюся простоту, требует громоздких рутинных вычислений. И, наконец, третий, более приемлемый вариант — распространение сигналов ошибки от выходов НС к ее входам, в направлении, обратном прямому распространению сигналов в обычном режиме работы. Этот алгоритм обучения НС получил название процедуры обратного распространения. Разработка алгоритма обратного распространения сыграла важную роль в возрождении интереса к искусственным нейронным сетям. Обратное распространение — это систематический метод для обучения многослойных искусственных нейронных сетей. Он имеет солидное математическое обоснование. Несмотря на некоторые ограничения, процедура обратного распространения сильно расширила область проблем, в которых могут быть использованы искусственные нейронные сети, и убедительно продемонстрировала богатые возможности этой методики.
Обучающий алгоритм обратного распространения.
Сетевые конфигурации:
Нейрон. На рис. 2.2 показан нейрон, используемый в качестве основного строительного блока в сетях обратного распространения. Подается множество входов, идущих либо извне, либо от предшествующего слоя. Каждый из них умножается на вес, и произведения суммируются:
.
Рисунок 2.3 Нейрон
Эта сумма, обозначаемая , должна быть вычислена для каждого нейрона сети. После того, как величина вычислена, она модифицируется с помощью активационной функции, и получается сигнал OUT. Для алгоритмов обратного распространения обычно используется функция
|
(1) |
Как показывает уравнение (1), эта функция, называемая сигмоидом, весьма удобна, так как имеет простую производную, что используется при реализации алгоритма обратного распространения:
|
(2) |
Сигмоид, который иногда называется
также логистической или
В действительности имеется множество функций, которые могли бы быть использованы. Для алгоритма обратного распространения требуется только, чтобы функция была всюду дифференцируема. Сигмоид удовлетворяет этому требованию. Его дополнительное преимущество состоит в автоматическом контроле усиления. Для слабых сигналов (величина NET близка к нулю) кривая вход-выход имеет сильный наклон, дающий большое усиление. Когда величина сигнала становится больше, усиление падает. Таким образом, большие сигналы воспринимаются сетью без насыщения, а слабые сигналы проходят по сети без чрезмерного ослабления. Многослойная сеть. Рассмотрим иерархическую сетевую структуру, в которой связанные между собой нейроны объединены в несколько слоев (см. рис. 2.3). На возможность построения таких архитектур указал еще Ф.Розенблатт, однако им не была решена проблема обучения. Межнейронные синаптические связи сети устроены таким образом, что каждый нейрон на данном уровне иерархии принимает и обрабатывает сигналы от каждого нейрона более низкого уровня.
Рисунок 2.4 Объединение нейронов в несколько
слоев