Нейрокомпьютерные системы
Многослойные сети могут привести к увеличению вычислительной
мощности по сравнению с однослойной сетью лишь в том случае, если
активационная функция между слоями будет нелинейной. Вычисление выхода
слоя заключается в умножении входного вектора на первую весовую
матрицу с последующим умножением (если отсутствует нелинейная
активационная функция) результирующего вектора на вторую весовую матрицу.
[pic]
Так как умножение матриц ассоциативно, то X(W1, W2). Это
показывает, что двухслойная линейная сеть эквивалентна одному слою
с весовой матрицей, равной произведению двух весовых матриц.
Следовательно, любая многослойная линейная сеть может быть заменена
эквивалентной однослойной сетью. В гл. 2 показано, что однослойные сети
весьма ограниченны по своим вычислительным возможностям. Таким образом,
для расширения возможностей сетей по сравнению с однослойной сетью
необходима нелинейная однослойная функция.
Сети с обратными связями.
У сетей, рассмотренных до сих пор, не было обратных связей, т.е.
соединений, идущих от выходов некоторого слоя к входам этого же слоя
или предшествующих слоев. Этот специальный класс сетей, называемых
сетями без обратных связей или сетями прямого распространения,
представляет интерес и широко используется. Сети более общего вида,
имеющие соединения от выходов к входам, называются сетями с
обратными связями. У сетей без обратных связей нет памяти, их выход
полностью определяется текущими входами и значениями весов. В некоторых
конфигурациях сетей с обратными связями предыдущие значения выходов
возвращаются на входы; выход, следовательно, определяется как текущим
входом, так и предыдущими выходами. По этой причине сети с обратными
связями могут обладать свойствами, сходными с кратковременной
человеческой памятью, сетевые выходы частично зависят от предыдущих
входов.
ТЕРМИНОЛОГИЯ, ОБОЗНАЧЕНИЯ И СХЕМАТИЧЕСКОЕ ИЗОБРАЖЕНИЕ ИСКУССТВЕННЫХ
НЕЙРОННЫХ СЕТЕЙ.
К сожалению, для искусственных нейронных сетей еще нет опубликованных
стандартов и устоявшихся терминов, обозначений и графических
представлений. Порой идентичные сетевые парадигмы, представленные
различными авторами, покажутся далекими друг от друга. В этой книге
выбраны наиболее широко используемые термины.
Терминология.
Многие авторы избегают термина «нейрон» для обозначения
искусственного нейрона, считая его слишком грубой моделью своего
биологического прототипа. В этой книге термины «нейрон», «клетка»,
«элемент» используются взаимозаменяемо для обозначения
«искусственного нейрона» как краткие и саморазъясняющие.
Дифференциальные уравнения или разностные уравнения.
Алгоритмы обучения, как и вообще искусственные нейронные сети,
могут быть представлены как в дифференциальной, так и в конечно-
разностной форме. При использовании дифференциальных уравнений
предполагают, что процессы непрерывны и осуществляются подобно большой
аналоговой сети. Для биологической системы, рассматриваемой на
микроскопическом уровне, это не так. Активационный уровень
биологического нейрона определяется средней скоростью, с которой он
посылает дискретные потенциальные импульсы по своему аксону. Средняя
скорость обычно рассматривается как аналоговая величина, но важно не
забывать о действительном положении вещей. Если моделировать искусственную
нейронную сеть на аналоговом компьютере, то весьма желательно
использовать представление с помощью дифференциальных уравнений. Однако
сегодня большинство работ выполняется на цифровых компьютерах, что
заставляет отдавать предпочтение конечно-разностной форме как наиболее
легко программируемой. По этой причине на протяжении всей книги
используется конечно-разностное представление.
Графическое представление
Как видно из публикаций, нет общепринятого способа подсчета числа
слоев в сети. Многослойная сеть состоит, как показано на рис. 1.6, из
чередующихся множеств нейронов и весов. Ранее в связи с рис. 1.5 уже
говорилось, что входной слой не выполняет суммирования. Эти нейроны
служат лишь в качестве разветвлений для первого множества весов и не
влияют на вычислительные возможности сети. По этой причине первый слой
не принимается во внимание при подсчете слоев, и сеть, подобная
изображенной на рис. 1.6, считается двухслойной, так как только два слоя
выполняют вычисления. Далее, веса слоя считаются связанными со
следующими за ними нейронами. Следовательно, слой состоит из множества
весов со следующими за ними нейронами, суммирующими взвешенные
сигналы.
Обучение искусственных нейронных сетей.
Среди всех интересных свойств искусственных нейронных сетей ни
одно не захватывает так воображения, как их способность к обучению.
Их обучение до такой степени напоминает процесс интеллектуального
развития человеческой личности, что может показаться, что достигнуто
глубокое понимание этого процесса. Но, проявляя осторожность, следует
сдерживать эйфорию. Возможности обучения искусственных нейронных сетей
ограниченны, и нужно решить много сложных задач, чтобы определить, на
правильном ли пути мы находимся. Тем не менее, уже получены
убедительные достижения, такие как «говорящая сеть» Сейновского (см.
гл. 3), и возникает много других практических применений.
Цель обучения.
Сеть обучается, чтобы для некоторого множества входов давать
желаемое (или, по крайней мере, сообразное с ним) множество выходов.
Каждое такое входное (или выходное) множество рассматривается как
вектор. Обучение осуществляется путем последовательного предъявления
входных векторов с одновременной подстройкой весов в соответствии с
определенной процедурой. В процессе обучения веса сети постепенно
становятся такими, чтобы каждый входной вектор вырабатывал выходной
вектор.
Обучение с учителем.
Различают алгоритмы обучения с учителем и без учителя.
Обучение с учителем предполагает, что для каждого входного вектора
существует целевой вектор, представляющий собой требуемый выход. Вместе
они называются обучающей парой. Обычно сеть обучается на некотором числе
таких обучающих пар. Предъявляется выходной вектор, вычисляется выход
сети и сравнивается с соответствующим целевым вектором, разность
(ошибка) с помощью обратной связи подается в сеть и веса изменяются в
соответствии с алгоритмом, стремящимся минимизировать ошибку. Векторы
обучающего множества предъявляются последовательно, вычисляются ошибки
и веса подстраиваются для каждого вектора до тех пор, пока ошибка по
всему обучающему массиву не достигнет приемлемо низкого уровня.
Обучение без учителя.
Несмотря на многочисленные прикладные достижения, обучение с
учителем критиковалось за свою биологическую неправдоподобность. Трудно
вообразить обучающий механизм в мозге, который бы сравнивал желаемые и
действительные значения выходов, выполняя коррекцию с помощью обратной
связи. Если допустить подобный механизм в мозге, то откуда тогда
возникают желаемые выходы? Обучение без учителя является намного более
правдоподобной моделью обучения в биологической системе. Развитая
Кохоненом [3] и многими другими, она не нуждается в целевом векторе
для выходов и, следовательно, не требует сравнения с предопределенными
идеальными ответами. Обучающее множество состоит лишь из входных
векторов. Обучающий алгоритм подстраивает веса сети так, чтобы
получались согласованные выходные векторы, т.е. чтобы предъявление
достаточно близких входных векторов давало одинаковые выходы. Процесс
обучения, следовательно, выделяет статистические свойства обучающего
множества и группирует сходные векторы в классы. Предъявление на вход
вектора из данного класса даст определенный выходной вектор, но до
обучения невозможно предсказать, какой выход будет производиться данным
классом входных векторов. Следовательно, выходы подобной сети должны
трансформироваться в некоторую понятную форму, обусловленную процессом
обучения. Это не является серьезной проблемой. Обычно не сложно
идентифицировать связь между входом и выходом, установленную сетью.
Алгоритмы обучения.
Большинство современных алгоритмов обучения выросло из концепций
Хэбба [2]. Им предложена модель обучения без учителя, в которой
синаптическая сила (вес) возрастает, если активированы оба нейрона,
источник и приемник. Таким образом, часто используемые пути в сети
усиливаются, и феномен привычки и обучения через повторение получает
объяснение. В искусственной нейронной сети, использующей обучение по
Хэббу, наращивание весов определяется произведением уровней возбуждения
передающего и принимающего нейронов. Это можно записать как
W ij (п + 1) = W ij (n) + ( OUT i OUT j
где W ij (n) - значение веса от нейрона i к нейрону j до подстройки, W
ij (п + 1) - значение веса от нейрона i к нейрону j после подстройки,
(. - коэффициент скорости обучения, OUT i - выход нейрона i и вход
нейрона j, OUTj - выход нейрона j. Сети, использующие обучение по Хэббу,
конструктивно развивались, однако за последние 20 лет были развиты более
эффективные алгоритмы обучения. В частности, в работах [4-6] и многих
других были развиты алгоритмы обучения с учителем, приводящие к сетям с
более широким диапазоном характеристик обучающих входных образов и
большими скоростями обучения, чем использующие простое обучение по
Хэббу. В настоящее время используется огромное разнообразие обучающих
алгоритмов. Потребовалась бы значительно большая по объему книга, чем
эта, для рассмотрения этого предмета полностью. Чтобы рассмотреть этот
предмет систематически, если и не исчерпывающе, в каждой из последующих
глав подробно описаны алгоритмы обучения для рассматриваемой в главе
парадигмы. В дополнение в приложении Б представлен общий обзор, в
определенной мере более обширный, хотя и не очень глубокий. В нем дан
исторический контекст алгоритмов обучения, их общая таксономия, ряд
преимуществ и ограничений. В силу необходимости это приведет к
повторению части материала, оправданием ему служит расширение взгляда на
предмет.
ПРОЛОГ
В последующих главах представлены и проанализированы некоторые
наиболее важные сетевые конфигурации и их алгоритмы обучения.
Представленные парадигмы дают представление об искусстве
конструирования сетей в целом, его прошлом и настоящем. Многие другие
парадигмы при тщательном рассмотрении оказываются лишь их модификациями.
Сегодняшнее развитие нейронных сетей скорее эволюционно, чем
революционно. Поэтому понимание представленных в данной книге парадигм
позволит следить за прогрессом в этой быстро развивающейся области.
Упор сделан на интуитивные и алгоритмические, а не математические
аспекты. Книга адресована скорее пользователю искусственных нейронных
сетей, чем теоретику. Сообщается, следовательно, достаточно информации,
чтобы дать читателю возможность понимать основные идеи. Те, кто знаком
с программированием, смогут реализовать любую из этих сетей.
Сложные математические выкладки опущены, если только они не имеют
прямого отношения к реализации сети. Для заинтересованного читателя
приводятся ссылки на более строгие и полные работы.
Глава 2 Персептроны
ПЕРСЕПТРОНЫ И ЗАРОЖДЕНИЕ ИСКУССТВЕННЫХ НЕЙРОННЫХ СЕТЕЙ
В качестве научного предмета искусственные нейронные сети впервые
заявили о себе в 40-е годы. Стремясь воспроизвести функции
человеческого мозга, исследователи создали простые аппаратные (а позже
программные) модели биологического нейрона и системы его соединений.
Когда нейрофизиологи достигли более глубокого понимания нервной системы
человека, эти ранние попытки стали восприниматься как весьма грубые
аппроксимации. Тем не менее, на этом пути были достигнуты впечатляющие
результаты, стимулировавшие дальнейшие исследования, приведшие к
созданию более изощренных сетей.
[pic]
Первое систематическое изучение искусственных нейронных сетей
было предпринято Маккалокком и Питтсом в 1943 г. [1]. Позднее в работе
[3] они исследовали сетевые парадигмы для распознавания изображений,
подвергаемых сдвигам и поворотам. Простая нейронная модель, показанная
на рис. 2.1, использовалась в большей части их работы. Элемент (
умножает каждый вход х на вес w и суммирует взвешенные входы. Если
эта сумма больше заданного порогового значения, выход равен единице, в
противном случае - нулю. Эти системы (и множество им подобных) получили
название персептронов. Они состоят из одного слоя искусственных
нейронов, соединенных с помощью весовых коэффициентов с множеством
входов (см. рис. 2.2), хотя в принципе описываются и более сложные
системы.
[pic]
В 60-е годы персептроны вызвали большой интерес и оптимизм.
Розенблатт [4] доказал замечательную теорему об обучении персептронов,
объясняемую ниже. Уидроу [5-8] дал ряд убедительных демонстраций
систем персептронного типа, и исследователи во всем мире стремились
исследовать возможности этих систем. Первоначальная эйфория
сменилась разочарованием, когда оказалось, что персептроны не способны
обучиться решению ряда простых задач. Минский [2] строго
проанализировал эту проблему и показал, что имеются жесткие ограничения
на то, что могут выполнять однослойные персептроны, и,
следовательно, на то, чему они могут обучаться. Так как в то время
методы обучения многослойных сетей не были известны, исследователи
перешли в более многообещающие области, и исследования в области
нейронных сетей пришли в упадок. Недавнее открытие методов обучения
многослойных сетей в большей степени, чем какой-либо иной фактор,
повлияло на возрождение интереса и исследовательских усилий. Работа
Минского, возможно, и охладила пыл энтузиастов персептрона, но
обеспечила время для необходимой консолидации и развития лежащей в
основе теории. Важно отметить, что анализ Минского не был опровергнут.
Он остается важным исследованием и должен изучаться, чтобы ошибки 60-х
годов не повторились. Несмотря на свои ограничения, персептроны
широко изучались (хотя не слишком широко использовались). Теория
персептронов является основой для многих других типов искусственных
нейронных сетей, и персептроны иллюстрируют важные принципы. В силу
этих причин они являются логической исходной точкой для изучения
искусственных нейронных сетей.
ПЕРСЕПТРОННАЯ ПРЕДСТАВЛЯЕМОСТЬ
Доказательство теоремы обучения персептрона [4] показало, что
персептрон способен научиться всему, что он способен представлять. Важно
при этом уметь различать представляемость и обучаемость. Понятие
представляемости относится к способности персептрона (или другой сети)
моделировать определенную функцию. Обучаемость же требует наличия
систематической процедуры настройки весов сети для реализации этой функции.
Для иллюстрации проблемы представляемости допустим, что у нас
есть множество карт, помеченных цифрами от 0 до 9. Допустим также, что
мы обладаем гипотетической машиной, способной отличать карты с нечетным
номером от карт с четным номером и зажигающей индикатор на своей панели
при предъявлении карты с нечетным номером (см. рис. 2.3). Представима ли
такая машина персептроном? То есть, может ли быть сконструирован
персептрон и настроены его веса (неважно каким образом) так, чтобы он
обладал такой же разделяющей способностью? Если это так, то говорят,
что персептрон способен представлять желаемую машину. Мы увидим, что
возможности представления однослойными персептронами весьма
ограниченны. Имеется много простых машин, которые не могут быть
представлены персептроном независимо от того, как настраиваются его
веса.
[pic]
Проблема функции ИСКЛЮЧАЮЩЕЕ ИЛИ
Один из самых пессимистических результатов Минского показывает,
что однослойный персептрон не может воспроизвести такую простую
функцию, как ИСКЛЮЧАЮЩЕЕ ИЛИ. Это - функция от двух аргументов, каждый из
которых может быть нулем или единицей. Она принимает значение единицы,
когда один из аргументов равен единице (но не оба). Проблему можно
проиллюстрировать с помощью однослойной однонейронной системы с двумя
входами, показанной на рис. 2.4. Обозначим один вход через х, а другой
через у, тогда все их возможные комбинации будут состоять из четырех
точек на плоскости х - у, как показано на рис. 2.5. Например, точка x=0
и у=0 обозначена на рисунке как точка А .Табл. 2.1 показывает требуемую
связь между входами и выходом, где входные комбинации, которые должны
давать нулевой выход, помечены А и А, единичный выход - В и В. В
сети на рис. 2.4 функция F является обычным порогом, так что OUT
принимает значение ноль, когда NET меньше 0,5, и единица в случае,
когда NET больше или равно 0,5. Нейрон выполняет следующее вычисление:
[pic]
xw1 + yw2 = 0,5 .
Никакая комбинация значений двух весов не может дать соотношения
между входом и выходом, задаваемого табл. 2.1. Чтобы понять это
ограничение, зафиксируем NET на величине порога 0,5. Сеть в этом случае
описывается уравнением (2.2). Это уравнение линейно по х и у, т.е. все
значения по х и у, удовлетворяющие этому уравнению, будут лежать на
некоторой прямой в плоскости x-y.
Таблица 2.1. Таблица истинности для функции ИСКЛЮЧАЮЩЕЕ ИЛИ
|Точки |Значения X|Значения Y|Требуемый выход |
|A0 |0 |0 |0 |
|B0 |1 |0 |1 |
|B1 |0 |1 |1 |
|A1 |1 |1 |0 |
Любые входные значения для х и у на этой линии будут давать
пороговое значение 0,5 для NET. Входные значения с одной стороны прямой
обеспечат значения NET больше порога, следовательно, OUT = 1. Входные
значения по другую сторону прямой обеспечат значения NET меньше порогового
значения, делая OUT равным 0. Изменения значений w1 , w2 и порога
будут менять наклон и положение прямой. Для того чтобы сеть
реализовала функцию ИСКЛЮЧАЮЩЕЕ ИЛИ, заданную табл. 2.1, нужно
расположить прямую так, чтобы точки А были с одной стороны прямой, а
точки В - с другой. Попытавшись нарисовать такую прямую на рис. 2.5,
убеждаемся, что это невозможно. Это означает, что какие бы значения ни
приписывались весам и порогу, сеть неспособна воспроизвести
соотношение между входом и выходом, требуемое для представления
функции ИСКЛЮЧАЮЩЕЕ ИЛИ.
[pic]
Взглянув на задачу с другой точки зрения, рассмотрим NET как
поверхность над плоскостью х-у. Каждая точка этой поверхности
находится над соответствующей точкой плоскости х-у на расстоянии, равном
значению NET этой точке. Можно показать, что наклон этой NЕТ-
поверхности одинаков для всей поверхности х-у. Все точки, в которых
значение NET равно величине порога, проектируются на линию уровня
плоскости NET (см. рис. 2.6). Ясно, что все точки по одну сторону
пороговой прямой спроецируются в значения NET, большие порога, а точки
по другую сторону дадут меньшие значения ^ЕТ. Таким образом,
пороговая прямая разбивает плоскость х-у на две области. Во всех точках
по одну сторону пороговой прямой значение OUT равно единице, по
другую сторону - нулю.
[pic]
Линейная разделимость
Как мы видели, невозможно нарисовать прямую линию, разделяющую
плоскость х-у так, чтобы реализовывалась функция ИСКЛЮЧАЮЩЕЕ ИЛИ. К
сожалению, этот пример не единственный. Имеется обширный класс функций, не
реализуемых однослойной сетью. Об этих функциях говорят, что они являются
линейно неразделимыми, и они накладывают определентные ограничения на
возможности однослойных сетей. Линейная разделимость ограничивает
однослойные сети задачами классификации, в которых множества точек
(соответствующих входным значениям) могут быть разделены геометрически.
Для нашего случая с двумя входами разделитель является прямой
линией. В случае трех входов разделение осуществляется плоскостью,
рассекающей трехмерное пространство. Для четырех или более входов
визуализация невозможна и необходимо мысленно представить n-мерное
пространство, рассекаемое «гиперплоскостью» - геометрическим
объектом, который рассекает пространство четырех или большего числа
измерений. Так как линейная разделимость ограничивает возможности
персептронного представления, то важно знать, является ли данная
функция разделимой. К сожалению, не существует простого способа
определить это, если число переменных велико.
Нейрон с п двоичными входами может иметь 2п различных входных
образов, состоящих из нулей и единиц. Так как каждый входной образ
может соответствовать двум различным бинарным выходам (единица и ноль),
то всего
2" имеется 2 функций от п переменных.
Таблица 2.2. Линейно разделимые функции
[pic]
(Взято из R.O.Winder, Single-stage logic. Paper presented at the
AIEE Fall General Meeting,1960.) Как видно из табл. 2.2,
вероятность того, что случайно выбранная функция окажется линейно
разделимой, весьма мала даже для умеренного числа переменных. По этой
причине однослойные персептроны на практике ограничены простыми
задачами.
Преодоление ограничения линейной разделимости
К концу 60-х годов проблема линейной разделимости была хорошо понята.
К тому же было известно, что это серьёзное ограничение представляемости
однослойными сетями можно преодолеть, добавив дополнительные слои.
Например, двухслойные сети можно получить каскадным соединением двух
однослойных сетей. Они способны выполнять более общие классификации,
отделяя те точки, которые содержатся в выпуклых ограниченных или
неограниченных областях. Область называется выпуклой, если для любых
двух ее точек соединяющий их отрезок целиком лежит в области. Область
называется ограниченной, если ее можно заключить в некоторый шар.
Неограниченную область невозможно заключить внутрь шара (например,
область между двумя параллельными линиями). Примеры выпуклых
ограниченных и неограниченных областей представлены на рис. 2.7.
[pic]
Чтобы уточнить требование выпуклости, рассмотрим простую
двухслойную сеть с двумя входами, подведенными к двум нейронам первого
слоя, соединенными с единственным нейроном в слое 2 (см. рис. 2.8).
Пусть порог выходного нейрона равен 0,75, а оба его веса равны 0,5. В
этом случае для того, чтобы порог был превышен и на выходе появилась
единица, требуется, чтобы оба нейрона первого уровня на выходе имели
единицу. Таким образом, выходной нейрон реализует логическую функцию
И. На рис. 2.8 каждый нейрон слоя 1 разбивает плоскость х-у на две
полуплоскости, один обеспечивает единичный выход для входов ниже верхней
линии, другой - для входов выше нижней линии. На рис. 2.8 показан
результат такого двойного разбиения, где выходной сигнал нейрона второго
слоя равен единице только внутри V-образной области. Аналогично во
втором слое может быть использовано три нейрона с дальнейшим разбиением
плоскости и созданием области треугольной формы. Включением
достаточного числа нейронов во входной слой может быть образован
выпуклый многоугольник любой желаемой формы. Так как они образованы с
помощью операции И над областями, задаваемыми линиями, то все такие
многогранники выпуклы, следовательно, только выпуклые области и
возникают. Точки, не составляющие выпуклой области, не могут быть
отделены от других точек плоскости двухслойной сетью. Нейрон второго
слоя не ограничен функцией И. Он может реализовывать многие другие
функции при подходящем выборе весов и порога. Например, можно сделать
так, чтобы единичный выход любого из нейронов первого слоя приводил к
появлению единицы на выходе нейрона второго слоя, реализовав тем самым
логическое ИЛИ. Имеется 16 двоичных функций от двух переменных. Если
выбирать подходящим образом веса и порог, то можно воспроизвести 14 из
них (все, кроме ИСКЛЮЧАЮЩЕЕ ИЛИ и ИСКЛЮЧАЮЩЕЕ НЕТ).
[pic]
Входы не обязательно должны быть двоичными. Вектор непрерывных
входов может представлять собой произвольную точку на плоскости х-у. В
этом случае мы имеем дело со способностью сети разбивать плоскость на
непрерывные области, а не с разделением дискретных множеств точек. Для
всех этих функций, однако, линейная разделимость показывает, что выход
нейрона второго слоя равен единице только в части плоскости х-у,
ограниченной многоугольной областью. Поэтому для разделения плоскостей
Р и Q необходимо, чтобы все Р лежали внутри выпуклой многоугольной
области, не содержащей точек Q (или наоборот). Трехслойная сеть,
однако, является более общей. Ее классифицирующие возможности
ограничены лишь числом искусственных нейронов и весов. Ограничения на
выпуклость отсутствуют. Теперь нейрон третьего слоя принимает в качестве
входа набор выпуклых многоугольников, и их логическая комбинация может
быть невыпуклой. На рис. 2.9 иллюстрируется случай, когда два
треугольника А и В, скомбинированные с помощью функций «А и не В»,
задают невыпуклую область. При добавлении нейронов и весов число
сторон многоугольников может неограниченно возрастать. Это позволяет
аппроксимировать область любой формы с любой точностью. Вдобавок не все
выходные области второго слоя должны пересекаться. Возможно,
следовательно, объединять различные области, выпуклые и невыпуклые,
выдавая на выходе единицу, всякий раз, когда входной вектор принадлежит
одной из них. Несмотря на то, что возможности многослойных сетей
были известны давно, в течение многих лет не было теоретически
обоснованного алгоритма для настройки их весов.
Эффективность запоминания
Серьезные вопросы имеются относительно эффективности запоминания
информации в персептроне (или любых других нейронных сетях) по
сравнению с обычной компьютерной памятью и методами поиска информации
в ней. Например, в компьютерной памяти можно хранить все входные образы
вместе с классифицирующими битами. Компьютер должен найти требуемый образ
и дать его классификацию. Различные хорошо известные методы могли бы быть
использованы для ускорения поиска. Если точное соответствие не найдено,
то для ответа может быть использовано правило ближайшего соседа.
[pic]
Число битов, необходимое для хранения этой же информации в
весах персептрона, может быть значительно меньшим по сравнению с
методом обычной компьютерной памяти, если образы допускают экономичную
запись. Однако Минский [2] построил патологические примеры, в которых
число битов, требуемых для представления весов, растет с
размерностью задачи быстрее, чем экспоненциально. В этих случаях
требования к памяти с ростом размерности задачи быстро становятся
невыполнимыми. Если, как он предположил, эта ситуация не является
исключением, то персептроны часто могут быть ограничены только малыми
задачами. Насколько общими являются такие неподатливые множества образов?
Это остается открытым вопросом, относящимся ко всем нейронным сетям.
Поиски ответа чрезвычайно важны для исследований по нейронным сетям.
ОБУЧЕНИЕ ПЕРСЕПТРОНА
Способность искусственных нейронных сетей обучаться является их
наиболее интригующим свойством. Подобно биологическим системам, которые
они моделируют, эти нейронные сети сами моделируют себя в результате
попыток достичь лучшей модели поведения. Используя критерий
линейной неделимости, можно решить, способна ли однослойная нейронная
сеть реализовывать требуемую функцию. Даже в том случае, когда ответ
положительный, это принесет мало пользы, если у нас нет способа найти
нужные значения для весов и порогов. Чтобы сеть представляла
практическую ценность, нужен систематический метод (алгоритм) для
вычисления этих значений. Розенблатт [4] сделал это в своем алгоритме
обучения персептрона вместе с доказательством того, что персептрон
может быть обучен всему, что он может реализовывать. Обучение
может быть с учителем или без него. Для обучения с учителем нужен
«внешний» учитель, который оценивал бы поведение системы и управлял ее
последующими модификациями. При обучении без учителя, рассматриваемого
в последующих главах, сеть путем самоорганизации делает требуемые
изменения. Обучение персептрона является обучением с учителем.
Алгоритм обучения персептрона может быть реализован на цифровом
компьютере или другом электронном устройстве, и. сеть становится в
определенном смысле само подстраивающейся. По этой причине процедуру
подстройки весов обычно называют «обучением» и говорят, что сеть
«обучается». Доказательство Розенблатта стало основной вехой и дало
мощный импульс исследованиям в этой области. Сегодня в той или иной
форме элементы алгоритма обучения персептрона встречаются во многих
сетевых парадигмах.
АЛГОРИТМ ОБУЧЕНИЯ ПЕРСЕПТРОНА
Персептрон обучают, подавая множество образов по одному на его
вход и подстраивая веса до тех пор, пока для всех образов не будет
достигнут требуемый выход. Допустим, что входные образы нанесены на
демонстрационные карты. Каждая карта разбита на квадраты и от каждого
квадрата на персептрон подается вход. Если в квадрате имеется линия, то
от него подается единица, в противном случае - ноль. Множество
квадратов на карте задает, таким образом, множество нулей и единиц,
которое и подается на входы персептрона. Цель состоит в том, чтобы
научить персептрон включать индикатор при подаче на него множества
входов, задающих нечетное число, и не включать в случае четного. На
рис. 2.10 показана такая персептронная конфигурация. Допустим, что
вектор Х является образом распознаваемой демонстрационной карты.
Каждая компонента (квадрат) Х - (х1,х2,..., хn ) - умножается на
соответствующую компоненту вектора весов W (w1, w2,..., wn ).
Эти произведения суммируются. Если сумма превышает порог , то
выход нейрона Y равен единице (индикатор зажигается), в противном
случае он - ноль. Как мы видели в гл. 1, эта операция компактно
записывается в векторной форме как Y = XW, а после нее следует
пороговая операция. Для обучения сети образ Х подается на вход и
вычисляется выход Y. Если Y правилен, то ничего не меняется. Однако
если выход неправилен, то веса, присоединенные к входам, усиливающим
ошибочный результат, модифицируются, чтобы уменьшить ошибку. Чтобы
увидеть, как это осуществляется, допустим, что демонстрационная карта с
цифрой 3 подана на вход и выход Y равен 1 (показывая нечетность).
Так как это правильный ответ, то веса не изменяются. Если, однако, на
вход подается карта с номером 4 и выход Y равен единице (нечетный), то
веса, присоединенные к единичным входам, должны быть уменьшены, так как
они стремятся дать неверный результат. Аналогично, если карта с номером 3
дает нулевой выход, то веса, присоединенные к единичным входам, должны
быть увеличены, чтобы скорректировать ошибку. Этот метод обучения
может быть подытожен следующим образом:
[pic]
1. Подать входной образ и вычислить Y
2. а. Если выход правильный, то перейти на шаг 1;
б. Если выход неправильный и равен нулю, то добавить все входы к
соответствующим им весам; или
в. Если выход неправильный и равен единице, то вычесть каждый вход
из соответствующего ему веса.
3. Перейти на шаг 1.
За конечное число шагов сеть научится разделять карты на четные
и нечетные при условии, что множество цифр линейно разделимо. Это
значит, что для всех нечетных карт выход будет больше порога, а для всех
четных - меньше. Отметим, что это обучение глобально, т.е. сеть
обучается на всем множестве карт. Возникает вопрос о том, как это
множество должно предъявляться, чтобы минимизировать время обучения.
Должны ли элементы множества предъявляться последовательно друг за
другом или карты следует выбирать случайно? Несложная теория служит
здесь путеводителем.
Дельта-правило
Важное обобщение алгоритма обучения персептрона, называемое
дельта-правилом, переносит этот метод на непрерывные входы и выходы.
Чтобы понять, как оно было получено, шаг 2 алгоритма обучения
персептрона может быть сформулирован в обобщенной форме с помощью
введения величины (, которая равна разности между требуемым или целевым
выходом Т и реальным выходом А
( = ( T – A )
Случай, когда ( = 0, соответствует шагу 2а, когда выход правилен
и в сети ничего не изменяется. Шаг 26 соответствует случаю ( > 0, а шаг
2в случаю ( < 0. В любом из этих случаев персептронный алгоритм
обучения сохраняется, если 5 умножается на величину каждого входа х.
и это произведение добавляется к соответствующему весу. С целью
обобщения вводится коэффициент «скорости обучения» (, который умножается
на (хi, что позволяет управлять средней величиной изменения весов.
В алгебраической форме записи
(i = ((хi (2.4)
wi(n + 1) = wi (n)+ (i, (2.5)
где (i - коррекция, связанная с i-м входом хi; wi(n + 1) -
значение веса i после коррекции; wi (n) -значение веса i до
Страницы: 1, 2, 3, 4, 5, 6, 7, 8
|