Перцептроны. Алгоритм обучения с обратным распространением ошибки. Области применения нейронных сетей

Нечеткая логика и нейронные сети

Контрольные вопросы по предмету

0


Подпишитесь на бесплатную рассылку видео-курсов:

Текст видеолекции

Применение нейронных сетей 

 

Содержание лекции:

  1. Перцептроны.
  2. Алгоритм обучения с обратным распространением ошибки.
  3. Области применения нейронных сетей.

 

1. Перцептроны

 

Персептроны и зарождение искусственных нейронных сетей

Первое систематическое изучение искусственных нейронных сетей было предпринято Маккалокком и Питтсом в 1943 г. Позднее они исследовали сетевые парадигмы для распознавания изображений, подвергаемых сдвигам и поворотам. Простая нейронная модель, показанная на рис. 2.1, использовалась в большей части их работ. Элемент ∑ умножает каждый вход х на вес w и суммирует взвешенные входы. Если полученная сумма больше заданного порогового значения, выход равен единице, в противном случае — нулю. Эти системы (и множество им подобных) получили название персептронов.

 

 


Рис. 2.1.

Они состоят из одного слоя искусственных нейронов, соединенных с помощью весовых коэффициентов с множеством входов (см. рис. 2.2), хотя, в принципе, описываются и более сложные системы. В 60-е годы персептроны вызвали большой интерес и оптимизм. Одной из первых искусственных сетей, способных к перцепции (восприятию) и формированию реакции на воспринятый раздражитель, явился PERCEPTRON Розенблатта (F.Rosenblatt, 1957). Персептрон рассматривался его автором не как конкретное техническое (вычислительное) устройство, а как модель работы мозга. Розенблатт называл такую нейронную сеть трехслойной, однако, по современной терминологии, представленная сеть обычно называется однослойной, так как имеет только один слой нейропроцессорных элементов.

 


Рис. 2.2.

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

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

Персептронная представляемость

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

Для иллюстрации проблемы представляемости допустим, что у нас есть множество карт, помеченных цифрами от 0 до 9. Допустим также, что мы обладаем гипотетической машиной, способной отличать карты с нечетным номером от карт с четным номером и зажигающей индикатор на своей панели при предъявлении карты с нечетным номером. Представима ли такая машина персептроном? То есть возможно ли сконструировать персептрон и настроить его веса (неважно, каким образом) так, чтобы он обладал такой же разделяющей способностью? Если это достижимо, то говорят, что персептрон способен представлять желаемую машину. Мы увидим, что возможности представления однослойными персептронами весьма ограниченны. Имеется много простых машин, которые не могут быть представлены персептроном, независимо от того, как настраиваются его веса.

Проблема функции ИСКЛЮЧАЮЩЕГО ИЛИ

Один из самых пессимистических результатов М.Л. Минского гласит, что однослойный персептрон не может воспроизвести такую простую функцию, как ИСКЛЮЧАЮЩЕЕ ИЛИ. Это функция от двух аргументов, каждый из которых может быть нулем или единицей. Она принимает значение единицы, когда один из аргументов равен единице (но не оба). Проблему можно проиллюстрировать с помощью однослойной однонейронной системы с двумя входами, показанной на рис. 2.3.

 


Рис. 2.3.

Обозначим один вход через x, а другой через y, тогда все их возможные комбинации будут состоять из четырех точек на плоскости XOY, как показано на рис. 2.4. Например, точка x=0 и y=0 обозначена на рисунке как точка A0. Табл. 2.1 показывает требуемую связь между входами и выходом, где входные комбинации, которые должны давать нулевой выход, помечены A0 и A1, единичный выход – B0 и B1.

 

Таблица 2.1.

Точки

Значения

Значения

Требуемый выход

 

0

0

0

 

1

0

1

 

0

1

1

 

1

1

0

 

 

Рис. 2.4.

В сети на рис. 2.3 функция F является обычным порогом, так что OUT принимает значение 0, когда NET меньше 0,5, и 1 в случае, когда NET больше или равно 0,5. Нейрон выполняет следующее вычисление:

NET =xw1+yw2

( 1)

Никакая комбинация значений двух весов не может дать соотношения между входом и выходом, задаваемого табл. 2.1. Чтобы понять это ограничение, зафиксируем NET на величине порога 0,5. Сеть в этом случае описывается уравнением (2). Это уравнение линейно по x и y, т. е. все значения по x и y, удовлетворяющие этому уравнению, будут лежать на некоторой прямой в плоскости x - y.

xw1+yw2=0,5

( 2)

Любые входные значения для x и y на этой линии будут давать пороговое значение 0,5 для NET. Входные значения с одной стороны прямой обеспечат значения NET больше порога, следовательно, OUT =1. Входные значения по другую сторону прямой обеспечат значения NET меньше порога, делая OUT равным 0. Изменения значений w1, w2 и порога будут менять наклон и положение прямой. Для того чтобы сеть реализовала функцию ИСКЛЮЧАЮЩЕЕ ИЛИ, заданную табл. 2.1, нужно расположить прямую так, чтобы точки A0, A1 были с одной стороны прямой, а точки B0, B1 — с другой. Попытавшись нарисовать такую прямую на рис. 2.4, убеждаемся, что это невозможно. Это означает, что какие бы значения ни приписывались весам и порогу, сеть неспособна воспроизвести соотношение между входом и выходом, требуемое для представления функции ИСКЛЮЧАЮЩЕЕ ИЛИ. Взглянув на задачу с другой точки зрения, рассмотрим NET как поверхность над плоскостью XOY. Каждая точка этой поверхности находится над соответствующей точкой плоскости XOY на расстоянии, равном значению NET в этой точке. Можно показать, что наклон этой NET-поверхности одинаков для всей поверхности XOY. Все точки, в которых значение NET равно величине порога, проектируются на линию уровня плоскости NET (см. рис.2.5).

 


Рис. 2.5.

Ясно, что все точки по одну сторону пороговой прямой проецируются в значения NET большие порога, а точки по другую сторону дадут меньшие значения NET. Таким образом, пороговая прямая разбивает плоскость x - y на две области. Во всех точках по одну сторону пороговой прямой значение OUT равно единице, по другую сторону — нулю.

Линейная разделимость

Как мы убедились, невозможно нарисовать прямую линию, разделяющую плоскость x - y так, чтобы реализовывалась функция ИСКЛЮЧАЮЩЕЕ ИЛИ. К сожалению, этот пример не единственный. Имеется обширный класс функций, не реализуемых однослойной сетью. Об этих функциях говорят, что они являются линейно неразделимыми: они-то и накладывают определенные ограничения на возможности однослойных сетей.

Линейная разделимость ограничивает однослойные сети задачами классификации, в которых множества точек (соответствующих входным значениям) могут быть разделены геометрически. Для нашего случая с двумя входами разделитель является прямой линией. В случае трех входов разделение осуществляется плоскостью, рассекающей трехмерное пространство. Для четырех или более входов визуализация невозможна, и необходимо мысленно представить n-мерное пространство, рассекаемое "гиперплоскостью" — геометрическим объектом, который делит пространство четырех или большего числа измерений.

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

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

Таблица 2.2.

n

 

Число линейно разделимых функций

1

4

4

2

16

14

3

256

104

4

65536

1882

5

4,3x109

94572

6

1,8x1019

15028134

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

Преодоление ограничения линейной разделимости

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

Чтобы уточнить требование выпуклости, рассмотрим простую двуслойную сеть с двумя входами, которые подведены к двум нейронам первого слоя, соединенными с единственным нейроном в слое 2 (см. рис. 2.7а). Пусть порог выходного нейрона равен 0,75, а оба его веса равны 0,5. В этом случае для того, чтобы порог был превышен и на выходе появилась единица, требуется, чтобы оба нейрона первого уровня на выходе имели единицу. Таким образом, выходной нейрон реализует логическую функцию И. На рис. 2.7а каждый нейрон слоя 1 разбивает плоскость XOY на две полуплоскости, один обеспечивает единичный выход для входов ниже верхней линии, другой — для входов выше нижней линии. На рис. 2.7б показан результат такого двойного разбиения, где выходной сигнал нейрона второго слоя равен единице только внутри V-образной области. Аналогично, во втором слое может быть использовано три нейрона с дальнейшим разбиением плоскости и созданием области треугольной формы. Включением достаточного числа нейронов во входной слой может быть образован выпуклый многоугольник любой желаемой формы. Все такие многогранники выпуклы, так как они образованы с помощью операции И над областями, задаваемыми линиями: следовательно, только выпуклые области и возникают. Точки, не составляющие выпуклой области, не могут быть отделены от других точек плоскости двухслойной сетью.

 


Рис. 2.7.

Нейрон второго слоя не ограничен функцией И. Он может реализовывать многие другие функции при подходящем выборе весов и порога. Например, можно сделать так, чтобы единичный выход любого из нейронов первого слоя приводил к появлению единицы на выходе нейрона второго слоя, реализовав тем самым логическое ИЛИ. Например, имеется 16 двоичных функций от двух переменных. Если выбирать подходящим образом веса и порог, то можно воспроизвести 14 из них (все, кроме ИСКЛЮЧАЮЩЕЕ ИЛИ и ИСКЛЮЧАЮЩЕЕ НЕТ).

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

Трехслойная сеть, впрочем, есть более общий случай. Ее классифицирующие возможности ограничены лишь числом искусственных нейронов и весов. Ограничения на выпуклость отсутствуют. Теперь нейрон третьего слоя принимает в качестве входа набор выпуклых многоугольников, и их логическая комбинация может быть невыпуклой. На рис. 2.8б иллюстрируется ситуация, когда два треугольника A и B, скомбинированные с помощью функций "A и не B", задают невыпуклую область. При добавлении нейронов и весов число сторон многоугольников может неограниченно возрастать. Это позволяет аппроксимировать область любой формы с любой точностью. Вдобавок, не все выходные области второго слоя должны пересекаться. Возможно, следовательно, объединять различные области, выпуклые и невыпуклые, выдавая на выходе единицу всякий раз, когда входной вектор принадлежит одной из них.

 


Рис. 2.8.

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

Эффективность запоминания

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

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

 

2. Алгоритм обучения с обратным распространением ошибки

Введение в процедуру обратного распространения

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

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

Обучающий алгоритм обратного распространения

Сетевые конфигурации:

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

NET=o1w1+o2w2+…+onwn.

 

 


Рис. 4.1.

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

 
   

 

 

 

 

( 1)

Как показывает уравнение (1), эта функция, называемая сигмоидом, весьма удобна, так как имеет простую производную, что используется при реализации алгоритма обратного распространения:

 
   

 

 

 


( 2)

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

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

 

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

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

Процедура обратного распространения применима к сетям с любым числом слоев. Однако для того, чтобы продемонстрировать алгоритм, достаточно двух слоев.

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

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

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

 

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

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

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

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

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

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

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

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

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

O=F(XW)

( 3)

Выходной вектор одного слоя является входным вектором для следующего, поэтому вычисление выходов последнего слоя требует применения уравнения (3) к каждому слою от входа сети к ее выходу.

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

Рассмотрим процесс обучения для одного веса от нейрона p в скрытом слое j к нейрону q в выходном слое k. Выход нейрона слоя k, вычитаемый из целевого значения (Target), дает сигнал ошибки. Он умножается на производную сжимающей функции [OUT(1-OUT)], вычисленную для этого нейрона слоя k, давая, таким образом, величину δ.

δ = OUT(1-OUT)(Target- OUT)

( 4)

Затем δ умножается на величину OUT нейрона j, из которого выходит рассматриваемый вес. Это произведение, в свою очередь, умножается на коэффициент скорости обучения  η (обычно от 0,01 до 1,0), и результат прибавляется к весу. Такая же процедура выполняется для каждого веса от нейрона скрытого слоя к нейрону в выходном слое.

Следующие уравнения иллюстрируют это вычисление:

Δw pq,k = η δ q,k OUT pj

( 5)

w pq,k (n+1)= w pq,k (n)+ Δw pq,k

( 6)

где w pq,k (n) — величина веса от нейрона p в скрытом слое k к нейрону q в выходном слое на шаге n (до коррекции); отметим, что индекс k относится к слою, в котором заканчивается данный вес (т. е. к слою, с которым он объединен); w pq,k (n+1) — величина веса на шаге n+1 (после коррекции); δ q,k — величина δ для нейрона q, в выходном слое k; OUT pj — величина OUT для нейрона p в скрытом слое  j.

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

 

 
   

 

 

 


( 7)

Когда значение δ получено, веса, питающие первый скрытый уровень, могут быть подкорректированы с помощью уравнений (5) и (6), где индексы модифицируются в соответствии со слоем.

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

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

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

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

Дальнейшие алгоритмические разработки

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

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

Метод улучшения характеристик обучения сетей обратного распространения. Указывается, что общепринятый от 0 до 1 динамический диапазон входов и выходов скрытых нейронов неоптимален. Так как величина коррекции веса Δw pq,k пропорциональна выходному уровню нейрона, порождающего OUT pj, то нулевой уровень ведет к тому, что вес не меняется. При двоичных входных векторах половина входов в среднем будет равна нулю, и веса, с которыми они связаны, не будут обучаться! Решение состоит в приведении входов к значениям ±1/2 и добавлении смещения к сжимающей функции, чтобы она также принимала значения ±1/2.

С помощью таких простых средств время сходимости сокращается в среднем от 30 до 50%. Это один из примеров практической модификации, существенно улучшающей характеристику алгоритма.

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

Применение

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

Фирма NEC в Японии объявила недавно, что обратное распространение было ею использовано для визуального распознавания букв, причем точность превысила 99%. Это улучшение было достигнуто с помощью комбинации обычных алгоритмов с сетью обратного распространения, обеспечивающей дополнительную проверку.

Достигнут впечатляющий успех с Net-Talk системой, которая превращает печатный английский текст в высококачественную речь. Магнитофонная запись процесса обучения сильно напоминает звуки голоса ребенка на разных этапах обучения речи.

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

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

3. Области применения нейронных сетей

Применение нейросетей для решения практических задач

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

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

Аппроксимация функций. Предположим, что есть обучающая выборка ((x1,y1), (x2,y2)..., (xn,yn)) (пары данных вход-выход), которая генерируется неизвестной функцией F, искаженной шумом. Задача аппроксимации состоит в нахождении неизвестной функции F. Аппроксимация функций необходима при решении многочисленных инженерных и научных задач моделирования.

Предвидение/прогноз. Пусть заданы n дискретных отсчетов {y(t1), y(t2), ..., y(tn)} в последовательные моменты времени t1, t2,..., tn . Задача состоит в предвидении значения y(tn+1) в следующий момент времени tn+1. Предвидение/прогноз имеют большое значение для принятия решений в бизнесе, науке и технике (предвидение цен на фондовой бирже, прогноз погоды).

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

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

Управление. Рассмотрим динамическую систему, заданную совокупностью {u(t), y(t)}, где u(t) - входное управляющее воздействие, а y(t) - выход системы в момент времени t. В системах управления с эталонной моделью целью управления является расчет такого входного воздействия u(t), при котором система действует по желательной траектории, заданной эталонной моделью. Примером является оптимальное управление двигателем.

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

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

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

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

Задачи, решаемые на основе нейронных сетей

В литературе встречается значительное число признаков, которыми должна обладать задача, чтобы применение НС было оправдано и НС могла бы ее решить:

·         отсутствует алгоритм или не известны принципы решения задач, но накоплено достаточное число примеров;

·         проблема характеризуется большими объемами входной информации;

·         данные неполны или избыточны, зашумлены, частично противоречивы.

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

Банки и страховые компании:

·         автоматическое считывание чеков и финансовых документов;

·         проверка достоверности подписей;

·         оценка риска для займов;

·         прогнозирование изменений экономических показателей.

Административное обслуживание:

·         автоматическое считывание документов;

·         автоматическое распознавание штриховых кодов.

Нефтяная и химическая промышленность:

·         анализ геологической информации;

·         идентификация неисправностей оборудования;

·         разведка залежей минералов по данным аэрофотосъемок;

·         анализ составов примесей;

·         управление процессами.

Военная промышленность и аэронавтика:

·         обработка звуковых сигналов (разделение, идентификация, локализация);

·         обработка радарных сигналов (распознавание целей, идентификация и локализация источников);

·         обработка инфракрасных сигналов (локализация);

·         обобщение информации;

·         автоматическое пилотирование.

Промышленное производство:

·         управление манипуляторами;

·         управление качеством;

·         управление процессами;

·         обнаружение неисправностей;

·         адаптивная робототехника;

·         управление голосом.

Служба безопасности:

·         распознавание лиц, голосов, отпечатков пальцев.

Биомедицинская промышленность:

·         анализ рентгенограмм;

·         обнаружение отклонений в ЭКГ.

Телевидение и связь:

·         адаптивное управление сетью связи;

·         сжатие и восстановление изображения.

Представленный перечень далеко не полон. Можно найти еще области, где оправданно применение НС.

Литература

  1. А. И. Галушкин. Нейронные сети. Основы теории. - М.: Горячая Линия — Телеком, 2010.
  2. Татузов А.Л. Нейронные сети в задачах радиолокации. – М.: Радиотехника, 2009.
  3. Саймон Хайкин. Нейронные сети. Полный курс. – М.: Вильямс, 2006.
  4. Яхъяева Г.Э. Нечеткие множества и нейронные сети. – М.: Бином, 2006.