Структура нейронных сетей

Автор работы: Пользователь скрыл имя, 23 Мая 2011 в 16:21, доклад

Описание

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

Работа состоит из  1 файл

метод обратного распространения ошибки.docx

— 147.05 Кб (Скачать документ)

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

   Один из вариантов решения  этой проблемы — разработка  наборов выходных сигналов, соответствующих  входным, для каждого слоя НС, что, конечно, является очень  трудоемкой операцией и не  всегда осуществимо. Второй вариант  — динамическая подстройка весовых  коэффициентов синапсов, в ходе  которой выбираются, как правило,  наиболее слабые связи и изменяются  на малую величину в ту или  иную сторону, а сохраняются  только те изменения, которые  повлекли уменьшение ошибки на  выходе всей сети. Очевидно, что  данный "метод тыка", несмотря на свою кажущуюся простоту, требует громоздких рутинных вычислений. И, наконец, третий, более приемлемый вариант — распространение сигналов ошибки от выходов НС к ее входам, в направлении, обратном прямому распространению сигналов в обычном режиме работы. Этот алгоритм обучения НС получил название процедуры обратного распространения. Разработка алгоритма обратного распространения сыграла важную роль в возрождении интереса к искусственным нейронным сетям. Обратное распространение — это систематический метод для обучения многослойных искусственных нейронных сетей. Он имеет солидное математическое обоснование. Несмотря на некоторые ограничения, процедура обратного распространения сильно расширила область проблем, в которых могут быть использованы искусственные нейронные сети, и убедительно продемонстрировала богатые возможности этой методики.

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

     

     Подается  множество входов, идущих либо извне, либо от предшествующего слоя. Каждый из них умножается на вес, и произведения суммируются:

     

     где N – количество нейронов внешнего слоя.

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

     

     Функция такого вида весьма удобна, так как  имеет простую производную, что  используется при реализации алгоритма обратного распространения:

     

     

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

     В действительности имеется множество  функций, которые могли бы быть использованы. Для алгоритма обратного распространения требуется только, чтобы функция была всюду дифференцируема. Сигмоид удовлетворяет этому требованию. Его дополнительное преимущество состоит в автоматическом контроле усиления. Для слабых сигналов (величина   близка к нулю) кривая вход-выход имеет сильный наклон, дающий большое усиление. Когда величина сигнала становится больше, усиление падает. Таким образом, большие сигналы воспринимаются сетью без насыщения, а слабые сигналы проходят по сети без чрезмерного ослабления. Многослойная сеть. Рассмотрим иерархическую сетевую структуру, в которой связанные между собой нейроны объединены в несколько слоев. На возможность построения таких архитектур указал еще Ф.Розенблатт, однако им не была решена проблема обучения. Межнейронные синаптические связи сети устроены таким образом, что каждый нейрон на данном уровне иерархии принимает и обрабатывает сигналы от каждого нейрона более низкого уровня. Таким образом, в данной сети имеется выделенное направление распространения нейроимпульсов — от входного слоя через один (или несколько) скрытых слоев к выходному слою нейронов. Нейросеть такой топологии мы будем называть обобщенным многослойным персептроном или просто персептроном.

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

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

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

     WN=rand(N,i)-0.5

Обучение сети обратного распространения требует выполнения следующих операций:

  1. Выбрать очередную обучающую пару из обучающего множества; подать входной вектор на вход сети.
  2. Вычислить выход сети.
  3. Вычислить разность между выходом сети и требуемым выходом (целевым вектором обучающей пары).
  4. Подкорректировать веса сети так, чтобы минимизировать ошибку.
  5. Повторять шаги с 1 по 4 для каждого вектора обучающего множества до тех пор, пока ошибка на всем множестве не достигнет приемлемого уровня.

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

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

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

Структуру обратного распространения ошибки можно изобразить и помощью блок-схемы:

        

   На шаги 1 и 2 можно смотреть как на "проход вперед", так как сигнал распространяется по сети от входа к выходу. Шаги 3, 4 составляют "обратный проход", здесь вычисляемый сигнал ошибки распространяется обратно по сети и используется для подстройки весов. Эти два прохода теперь будут детализированы и записаны как математические выражения.

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

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

Этот  процесс может быть выражен в  сжатой векторной форме. Веса между нейронами будем рассматривать как матрицу W. Тогда V - вектор выхода внешнего слоя,  может быть выражен не как сумма произведений. В векторном обозначении V=XW. Покомпонентным применением функции F к V-вектору, получаем выходной вектор  . Таким образом, для данного слоя вычислительный процесс описывается следующим выражением:

(3)

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

   Рассмотрим процесс обучения весовых коэффициентов выходного слоя. Ошибка выхода i-ого нейрона представляет собой разность между выходом модели и выходом сети и обозначается :

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

где N – количество нейронов в сети. Энергия среднеквадратичной ошибки в таком случае вычисляется как нормализированная по N сумма всех значений энергии ошибки Е:

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

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

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

Информация о работе Структура нейронных сетей