Смекни!
smekni.com

Нейрокомпьютерные системы (стр. 7 из 32)

Чтобы уточнить требование выпуклости, рассмотрим простую двухслойную сеть с двумя входами, подведенными к двум нейронам первого слоя, соединенными с единствен­ным нейроном в слое 2 (см. рис. 2.8). Пусть порог выхо­дного нейрона равен 0,75, а оба его веса равны 0,5. В этом случае для того, чтобы порог был превышен и на выходе появилась единица, требуется, чтобы оба нейрона первого уровня на выходе имели единицу. Таким образом, выходной нейрон реализует логическую функцию И. На рис. 2.8 каждый нейрон слоя 1 разбивает плоскость х-у на две полуплоскости, один обеспечивает единичный выход для входов ниже верхней линии, другой - для входов выше нижней линии. На рис. 2.8 показан результат такого двойного разбиения, где выходной сигнал нейрона второго слоя равен единице только внутри V-образной области. Аналогично во втором слое может быть использовано три нейрона с дальнейшим разбиением плоскости и созданием области треугольной формы. Включением достаточного числа нейронов во входной слой может быть образован выпуклый многоугольник любой желаемой формы. Так как они образованы с помощью операции И над областями, задаваемыми линиями, то все такие многогранники выпук­лы, следовательно, только выпуклые области и возникают. Точки, не составляющие выпуклой области, не могут быть отделены от других точек плоскости двухслойной сетью. Нейрон второго слоя не ограничен функцией И. Он может реализовывать многие другие функции при подходя­щем выборе весов и порога. Например, можно сделать так, чтобы единичный выход любого из нейронов первого слоя приводил к появлению единицы на выходе нейрона второго слоя, реализовав тем самым логическое ИЛИ. Имеется 16 двоичных функций от двух переменных. Если выбирать подходящим образом веса и порог, то можно воспроизвести 14 из них (все, кроме ИСКЛЮЧАЮЩЕЕ ИЛИ и ИСКЛЮЧАЮЩЕЕ НЕТ).

Входы не обязательно должны быть двоичными. Вектор непрерывных входов может представлять собой произволь­ную точку на плоскости х-у. В этом случае мы имеем дело со способностью сети разбивать плоскость на непрерывные области, а не с разделением дискретных множеств точек. Для всех этих функций, однако, линейная разделимость показывает, что выход нейрона второго слоя равен едини­це только в части плоскости х-у, ограниченной много­угольной областью. Поэтому для разделения плоскостей Р и Q необходимо, чтобы все Р лежали внутри выпуклой многоугольной области, не содержащей точек Q (или на­оборот). Трехслойная сеть, однако, является более общей. Ее классифицирующие возможности ограничены лишь числом искусственных нейронов и весов. Ограничения на выпук­лость отсутствуют. Теперь нейрон третьего слоя принима­ет в качестве входа набор выпуклых многоугольников, и их логическая комбинация может быть невыпуклой. На рис. 2.9 иллюстрируется случай, когда два треугольника А и В, скомбинированные с помощью функций «А и не В», задают невыпуклую область. При добавлении нейронов и весов число сторон многоугольников может неограниченно возрастать. Это позволяет аппроксимировать область любой формы с любой точностью. Вдобавок не все выходные области второго слоя должны пересекаться. Возможно, следовательно, объединять различные области, выпуклые и невыпуклые, выдавая на выходе единицу, всякий раз, когда входной вектор принадлежит одной из них. Несмотря на то, что возможности многослойных сетей были известны давно, в течение многих лет не было тео­ретически обоснованного алгоритма для настройки их весов.

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

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

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

ОБУЧЕНИЕ ПЕРСЕПТРОНА

Способность искусственных нейронных сетей обучать­ся является их наиболее интригующим свойством. Подобно биологическим системам, которые они моделируют, эти нейронные сети сами моделируют себя в результате попы­ток достичь лучшей модели поведения. Используя критерий линейной неделимости, можно решить, способна ли однослойная нейронная сеть реализо­вывать требуемую функцию. Даже в том случае, когда ответ положительный, это принесет мало пользы, если у нас нет способа найти нужные значения для весов и поро­гов. Чтобы сеть представляла практическую ценность, нужен систематический метод (алгоритм) для вычисления этих значений. Розенблатт [4] сделал это в своем алго­ритме обучения персептрона вместе с доказательством того, что персептрон может быть обучен всему, что он может реализовывать. Обучение может быть с учителем или без него. Для обучения с учителем нужен «внешний» учитель, который оценивал бы поведение системы и управлял ее последующи­ми модификациями. При обучении без учителя, рассматри­ваемого в последующих главах, сеть путем самоорганиза­ции делает требуемые изменения. Обучение персептрона является обучением с учителем. Алгоритм обучения персептрона может быть реализо­ван на цифровом компьютере или другом электронном уст­ройстве, и. сеть становится в определенном смысле само подстраивающейся. По этой причине процедуру подстройки весов обычно называют «обучением» и говорят, что сеть «обучается». Доказательство Розенблатта стало основной вехой и дало мощный импульс исследованиям в этой облас­ти. Сегодня в той или иной форме элементы алгоритма обучения персептрона встречаются во многих сетевых парадигмах.

АЛГОРИТМ ОБУЧЕНИЯ ПЕРСЕПТРОНА

Персептрон обучают, подавая множество образов по одному на его вход и подстраивая веса до тех пор, пока для всех образов не будет достигнут требуемый выход. Допустим, что входные образы нанесены на демонстрацион­ные карты. Каждая карта разбита на квадраты и от каждо­го квадрата на персептрон подается вход. Если в квадра­те имеется линия, то от него подается единица, в проти­вном случае - ноль. Множество квадратов на карте зада­ет, таким образом, множество нулей и единиц, которое и подается на входы персептрона. Цель состоит в том, чтобы научить персептрон включать индикатор при подаче на него множества входов, задающих нечетное число, и не включать в случае четного. На рис. 2.10 показана такая персептронная конфигу­рация. Допустим, что вектор Х является образом распоз­наваемой демонстрационной карты. Каждая компонента (квадрат) Х - 1,х2,..., хn ) - умножается на соот­ветствующую компоненту вектора весов W (w1, w2,..., wn ). Эти произведения суммируются. Если сумма превышает порог , то выход нейрона Y равен единице (индикатор зажигается), в противном случае он - ноль. Как мы видели в гл. 1, эта операция компактно записывается в векторной форме как Y = XW, а после нее следует пороговая операция. Для обучения сети образ Х подается на вход и вычи­сляется выход Y. Если Y правилен, то ничего не меняет­ся. Однако если выход неправилен, то веса, присоединен­ные к входам, усиливающим ошибочный результат, модифи­цируются, чтобы уменьшить ошибку. Чтобы увидеть, как это осуществляется, допустим, что демонстрационная карта с цифрой 3 подана на вход и выход Y равен 1 (показывая нечетность). Так как это правильный ответ, то веса не изменяются. Если, однако, на вход подается карта с номером 4 и выход Y равен единице (нечетный), то веса, присоединенные к единичным входам, должны быть уменьшены, так как они стремятся дать неверный результат. Аналогично, если карта с номе­ром 3 дает нулевой выход, то веса, присоединенные к единичным входам, должны быть увеличены, чтобы скорре­ктировать ошибку. Этот метод обучения может быть подытожен следующим образом:

1. Подать входной образ и вычислить Y

2. а. Если выход правильный, то перейти на шаг 1;

б. Если выход неправильный и равен нулю, то добавить все входы к соответствующим им весам; или

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