Библиотека    Новые поступления    Словарь    Карта сайтов    Ссылки





назад содержание далее

Часть 13.

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

Если f(x) = + 1, то х принадлежит одному классу, если f(x) = -1 - другому. Такое преобразование называется кусочно-линейной биполярной пороговой функцией (рис. 10.7, а). Пороговый вход служит для смещения пороговой функции вдоль вертикальной оси. Величина этого смещения определяется в процессе обучения с помощью настройки весового коэффициента w3-

Используем данные из табл. 10.3 для обучения персептрона, показанного на рис. 10.6. Инициализируем значения веса случайным образом, например [0,75, 0,5, -0,6], и применим алгоритм обучения персептрона, описанный в подразделе 10.2.1. Верхний индекс переменной, в частности 1 в выражении f(nef)1, задает номер текущей итерации алгоритма. Обработка данных начинается с первой строки таблицы

Поскольку значение f(net)1 =1 корректно, настройка весовых коэффициентов не нужна. Следовательно, W2=W1. Для второго обучающего примера

Рис. 10.6. Персептрон для классификации данных из табл. 10.3 с кусочно-линейной биполярной пороговой функцией

Для данного обучающего примера на выходе персептрона ожидается значение -1, значит, для настройки весов необходимо применить обучающее правило, описанное в подразделе 10.2.1,

где с - постоянный коэффициент обучения, X и W - векторы входов и весовых коэффициентов, f - номер итерации обучения, Т - символ транспонирования, dt-1 - ожидаемый результат в момент времени t-1 (или, как в данном случае, в момент времени f=2). Выход сети при t=2 равен 1, следовательно, разность между ожидаемым и реальным выходом сети составляетНа самом деле для биполярного персептрона инкремент обучения всегда составляет либо + 2сХ либо - 2сХ, где X - вектор из обучающего множества. Коэффициент скорости обучения - это небольшое вещественное число, наподобие 0,2. Обновим вектор весовых коэффициентов:

Часть IV. Машинное обучение 444

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

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

После десяти итераций обучения сети персептрона формируется линейное разделение, показанное на рис. 10.5. Примерно через 500 шагов обучения вектор весовых коэффициентов будет равен [-1,3; -1,1; 10,9]. Нас интересует линейное разделение двух классов. В терминах дискриминантных функций gi и gj разделяющая поверхность представляет собой множество точек, для которых gi(х)= gj(x) или gi(x) - gj(x)=0, т.е. уровень активации равен 0. Уравнение функционирования сети можно записать в терминах весов

Следовательно, линейная разделяющая поверхность между двумя классами определяется линейным уравнением

10.2.3. Обобщенное дельта-правило

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

На рис. 10.7 показаны графики некоторых пороговых функций: кусочно-линейной биполярной пороговой функции (рис. 10.7, а), используемой для персептрона, и нескольких видов сигмоидальных функций (sigmoid). Сигмоидальные функции получили такое название благодаря тому, что их график напоминает латинскую букву "S" (рис. 10.7, б). Типичная сигмоидальная активационная функция, или логистическая функция (logistic function), задается уравнением

Здесь, как и ранее, хi- - i-й вход, wi - вес связи, ? - параметр "кривизны", используемый для настройки формы сигмоидальной кривой. При больших значениях ? форма сигмоиды приближается к обычной кусочно-линейной пороговой функции с диапазоном значений {0,1}, а при значениях параметра "кривизны", близких к 1, она напоминает прямую линию.

Аргументом пороговой функции является уровень активации нейрона, а ее значением - выход нейрона. Сигмоидальная активационная функция непрерывна, что позволяет точнее оценить ошибку на выходе сети. Подобно обычной пороговой функции, сигмоидальная активационная функция отображает точки области определения в значения из интервала (0,1). Однако в отличие от обычной пороговой функции сигмоида может

Глава 10. Машинное обучение на основе связей 445

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

а. Строгая кусочно-линейная биполярная пороговая функция

б. Сигмоидальная униполярная пороговая функция

в. Сигмоидальная сдвинутая функция с различной "кривизной". Чем больше значение параметра, тем точнее сигмоидальная аппроксимация кусочно-линейной пороговой функции

Рис. 10.7. Активационные функции

Появление сетей с непрерывными активационными функциями исторически обусловило новые подходы к обучению на основе коррекции ошибки. Так, обучающее правило Видроу-Хоффа [Widrow и Hoff, 1960] предполагает минимизацию среднеквадратической ошибки между ожидаемым выходным значением и уровнем активации сети neti=Wxj, независимо от вида активационной функции. Но самым важным правилом обучения для сетей с непрерывной активационной функцией является, пожалуй, дельта-правило (delta-rule) [Rumelhart и др., 1986, а].

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

Рис. 10.8. Двухмерная поверхность ошибки. Константа с определяет размер шага обучения

Часть IV. Машинное обучение 446

Дельта-правило предполагает использование непрерывной и дифференцируемой активационной функции. Этими свойствами обладает рассмотренная выше логистическая функция. Дельта-правило для настройки j-го весового коэффициента i-го узла сети имеет вид

где с - постоянный коэффициент скорости обучения, di и Оi - ожидаемый и реальный выходы i-го нейрона, f ' - производная активационной функции i-го узла, а хj - j-ое входное значение i-го узла. Покажем, как выводится эта формула.

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

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

Рассмотрим случай, когда сеть состоит из единственного (выходного) слоя нейронов. Более общий случай наличия скрытых слоев будет описан в разделе 10.3. Сначала необходимо определить скорость изменения ошибки на каждом из выходных нейронов сети. Для этого нужно взять частную производную (partial derivative), определяющую скорость изменения векторной функции по одной из переменных. Частная производная общей ошибки для каждого i-го нейрона выходного слоя составляет

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

Учитывая предыдущее соотношение, получим

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

Глава 10. Машинное обучение на основе связей 447

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

Поскольку f - непрерывная функция, можно вычислить ее производную

Подставляя это соотношение в предыдущее уравнение, получим

Для минимизации ошибки необходимо изменить значение веса в направлении антиградиента. Следовательно,

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

Существенное влияние на эффективность дельта-правила оказывает коэффициент скорости обучения с (см. рис. 10.8). Значение этого коэффициента определяет величину изменения весов на каждом шаге обучения. Чем больше с, тем быстрее вес приходит к оптимальному значению. Однако если коэффициент с слишком велик, алгоритм может "проскочить" точку экстремума или осциллировать в окрестности этой точки. Небольшие значения коэффициента скорости обучения позволяют устранить эту проблему, но замедляют процесс обучения. Оптимальное значение этого коэффициента иногда определяется с учетом фактора момента [Zurada, 1992] - параметра, настраиваемого экспериментально для каждого конкретного приложения.

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

10.3. Обучение по методу обратного распространения

10.3.1. Вывод алгоритма обратного распространения

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

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

448 Часть IV. Машинное обучение

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

Рис. 10.9. Обратное распространение ошибки в нейронной сети со скрытым слоем

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

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

Метод обратного распространения является обобщением дельта-правила. В нем тоже используется метод градиентного спуска, описанный в разделе 10.2. Для узлов скрытого слоя ошибка вычисляется на основе ошибки выходного слоя. Формулы вычисления добавок к весовому коэффициенту связи wki между k-м и i-м нейронами по методу обратного распространения ошибки имеют вид

Глава 10. Машинное обучение на основе связей 449

Во втором соотношении у - индекс узла следующего слоя, до которого распространяется сигнал от i-го нейрона, и

Вычислим производную от этой функции. Сначала возьмем производную для первой формулы по весовым коэффициентам связей с выходным слоем. Как и ранее, требуется вычислить скорость изменения ошибки сети в зависимости от к-го веса связи wk с i-м нейроном. Этот случай рассматривался при выводе дельта-правила в подразделе 10.2.3, где было показано, что

Поскольку f - логистическая активационная функция, то

Напомним, что f(neti) = Oi. Подставляя это выражение в предыдущее уравнение, получим

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

Выведем формулу настройки весов для нейронов скрытого слоя. Для простоты сначала предположим, что сеть содержит только один скрытый слой. Возьмем один i-й нейрон скрытого слоя и проанализируем его вклад в общую ошибку на выходе сети. Для этого рассмотрим вклад i-го нейрона в ошибку на выходе j-го нейрона выходного слоя, а затем просуммируем этот вклад для всех элементов выходного слоя. И, наконец, учтем вклад в общую ошибку k-гo весового коэффициента связи с i-м нейроном. Эта ситуация изображена на рис. 10.10.

Рис. 10.10. Общий вклад

нейрона в ошибку на выходе сети, принимаемый во внимание при настройке весового коэффициента Wki

Часть IV. Машинное обучение 450

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

Тогда предыдущее соотношение можно переписать в виде

Первый множитель в правой части этого соотношения, взятый с обратным знаком, обозначим deltaj

Напомним, что уровень активации j-го нейрона netj выходного слоя вычисляется как сумма произведений весовых коэффициентов и выходных значений узлов скрытого слоя.

Поскольку частные производные вычисляются только по одному компоненту суммы - по связи между нейронами i и j, получим

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

Теперь просуммируем это выражение по всем связям i-го нейрона с узлами выходного слоя

Поскольку используется логистическая активационная функция,

Глава 10. Машинное обучение на основе связей 451

Это соотношение определяет чувствительность ошибки на выходе сети к выходу ;'-го нейрона скрытого слоя. Теперь определим значение deltai - чувствительность ошибки сети к уровню активации i-го нейрона скрытого слоя. Это даст возможность получить чувствительность ошибки сети к весовым коэффициентам входящих связей i-го узла. Снова воспользуемся цепным правилом

Подставляя это значение в уравнение для deltai приходим к соотношению

где хк - к-й вход i-го нейрона.

Подставляя это соотношение в выражение для deltai, получим

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

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

Для сетей с несколькими скрытыми слоями эта процедура рекурсивно применяется для распространения ошибки от n-го скрытого слоя к слою п-1.

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

10.3.2. Пример применения метода обратного распространения ошибки: система NETtalk

Система NETtalk - интересный пример нейросетевого решения сложной проблемы обучения [Sejnowski и Rosenberg, 1987]. Система NETtalk обучается произносить английский текст. Это достаточно сложная задача для явного подхода, основанного на символьном представлении информации, например для системы, основанной на правилах, поскольку английское произношение очень нерегулярно.

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

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

452 Часть IV. Машинное обучение

нейрон. Узлы выходного слоя представляют фонемы с помощью 21 свойства человеческой артикуляции. Остальные 5 нейронов кодируют ударение и границы слогов. Сеть NETtalk содержит 80 скрытых нейронов, 26 выходных узлов и 18629 связей.

Рис. 10.11. Топология сети системы NETtalk

При обучении системы NETtalk ей предъявляется окно размером 7 символов, и система пытается "произнести" среднюю букву. После сравнения ее произношения с корректным веса системы настраиваются по методу обратного распространения ошибки.

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

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

Система NETtalk обучается достаточно эффективно, хотя для этого требуется большое число обучающих примеров, а также многократное повторение итераций обучения на одних и тех же обучающих данных. В работе [Shavlik и др., 1991] приводятся данные экспериментального сравнения результатов решения этой задачи методом обратного распространения и с помощью алгоритма IDЗ. Оказалось, что оба алгоритма дают одинаковые результаты, хотя по-разному обучаются и используют данные. В этом исследовании общее множество примеров разделялось на две части: обучающую и тестовую выборки. Обе системы (IDЗ, описанная в разделе 9.3, и NETtalk) смогли корректно произнести 60% тестовых данных после обучения на 500 примерах. Однако для обучения системы IDЗ понадобился один проход по обучающему множеству, а для системы NETtalk итерации обучения многократно повторялись. В проведенном исследовании обучение завершилось после 100 итераций.

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

Глава 10. Машинное обучение на основе связей 453

показаться на первый взгляд. В следующем примере метод обратного распространения применяется для решения задачи "исключающего ИЛИ".

10.3.3. Применение метода обратного распространения для решения задачи "исключающего ИЛИ"

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

Рис. 10.12. Решение задачи "исключающего ИЛИ" методом обратного распространения. Здесь Wij - весовые коэффициенты связей, Н - скрытый нейрон

Следует отметить, что входные нейроны напрямую соединены обучаемыми связями с выходным нейроном. Такие дополнительные связи зачастую позволяют снизить размерность скрытого слоя и обеспечивают более быструю сходимость. На самом деле сеть, показанная на рис. 10.12, не является единственно возможной. Для решения задачи "исключающего ИЛИ" можно подобрать множество различных архитектур нейронных сетей.

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

После 1400 циклов обучения для этих четырех обучающих примеров получаются весовые коэффициенты следующего вида (значения округлены до 1 знака после запятой)

Для входного вектора (0,0) на выходе скрытого нейрона будет получено значение

Для этого же входного образа выходное значение сети будет вычисляться по формуле

Для входного вектора (1,0) выходом скрытого нейрона будет

454 Часть IV. Машинное обучение

а на выходе сети будет получено значение

Для входного вектора (0; 1) будут получены аналогичные выходные значения. И, наконец, рассмотрим входной вектор (1; 1). Для него на выходе скрытого слоя получим

а на выходе сети

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

В следующем разделе будут рассмотрены модели конкурентного обучения.

10.4. Конкурентное обучение

10.4.1. Алгоритм обучения "победитель забирает все" для задачи классификации

Рис. 10.13. Слой нейронов при работе алгоритма "победитель забирает все". Нейрон-победитель определяется на основе входных векторов

Глава 10. Машинное обучение на основе связей 455

В алгоритме "победитель забирает все" [Kohonen, 1984], [Hecht-Nielsen, 1987] при предъявлении сети входного вектора возбуждается единственный нейрон, наиболее точно соответствующий этому образу. Подобный алгоритм можно рассматривать как реализацию механизма конкуренции между нейронами сети (рис. 10.13). На рис. 10.13 вектор входных значений Х=(х1 , х2 , ..., хт) передается слою нейронов сети А, В, ..., N, причем нейрон Б оказывается победителем, а его выходной сигнал равен 1.

Алгоритм "победитель забирает все" реализует принцип обучения без учителя, поскольку нейрон-победитель выбирается по максимальному уровню активности. Вектор весовых коэффициентов нейрона-победителя модифицируется для более точного соответствия входному вектору. Если W - вес нейрона-победителя, а X - входной вектор, то вектор W модифицируется следующим образом

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

Согласно этому соотношению каждый компонент вектора весовых коэффициентов увеличивается или уменьшается на величину xi-wi. Целью такой настройки является максимальное приближение нейрона-победителя к входному вектору. Алгоритм "победитель забирает все" не требует прямого вычисления уровней активации для поиска нейрона с наиболее сильным откликом. Уровень активации нейрона напрямую зависит от близости вектора весов входному вектору. Для j-го нейрона с нормализованным вектором весовых коэффициентов Wi уровень активации WiX - это функция евклидового расстояния между Wi и входным образом X. В этом можно убедиться, вычислив евклидово расстояние для нормализованного вектора Wi

Из этого соотношения видно, что среди всех нормализованных векторов весовых коэффициентов максимальный уровень активации WX соответствует векторам с минимальным евклидовым расстоянием ||Х-W||. Во многих случаях более эффективно определять победителя, вычисляя евклидово расстояние, а не уровни активации для нормализованных векторов весов.

Правило обучения Кохонена "победитель забирает все" рассматривается здесь по нескольким причинам. Во-первых, это метод классификации, который можно сравнить с эффективностью персептрона. Во-вторых, его можно комбинировать с другими нейросетевыми архитектурами и обеспечить тем самым более сложные модели обучения. В последующих разделах будет рассмотрена комбинация метода обучения Кохонена с алгоритмом обучения с учителем Гроссберга. Такая комбинированная архитектура, впервые предложенная Робертом Хехт-Нильсеном (Robert Hecht-Nielsen) [Hecht-Nielsen, 1987, 1990], называется сетью встречного распространения (counterpropagation network). Эта нейросетевая парадигма будет рассмотрена в подразделе 10.4.3.

Прежде чем завершить это введение, следует отметить несколько важных модификаций алгоритма "победитель забирает все". Иногда в этот алгоритм добавляется параметр "совести", который обновляется на каждой итерации и препятствует слишком частым "победам" одних и тех же нейронов. Благодаря этому параметру пространство входных образов равномерно представляется всеми нейронами сети. В некоторых модификациях алгоритма определяется не нейрон-победитель, а множество ближайших нейронов, и настраиваются весовые коэффициенты связей всех нейронов этого множества. Еще один подход сводится к дифференцированной настройке весовых коэффициентов всех нейронов из окрестности нейрона-победителя. В рамках этого метода обучения веса обычно инициализируются случайными значениями и нормализуются [Zurada, 1992]. В работе [Hecht-Nielsen, 1990] показано, что алгоритм "победитель забирает все" можно рассматривать в качестве эквивалента

456 Часть IV. Машинное обучение

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

10.4.2. Сеть Кохонена для изучения прототипов

Вопросы классификации данных и исследования роли прототипов в обучении традиционно относились к компетенции психологов, лингвистов, специалистов по компьютерным наукам и теории обучения [Wittgenstein, 1953], [Rosen, 1978], [Lakoff, 1987]. Роль прототипов и классификации в интеллектуальной деятельности - это также основная тема данной книги. В разделе 9.5 описаны методы классификации, основанные на символьном представлении информации, и вероятностные алгоритмы кластеризации, реализованные в системах COBWEB и CLUSTER/2. В разделе 10.2 представлен нейросетевой алгоритм классификации с помощью персептрона, а в этом разделе рассмотрен алгоритм кластеризации Кохонена "победитель забирает все" [Kohonen, 1984].

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

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

В системах, обучаемых по методу Кохонена, типа CLUSTER/2, используется строгий индуктивный порог, т.е. желаемое количество прототипов явно задается в начале работы алгоритма, а затем постоянно уточняется. Это позволяет разработчику определить конкретное число прототипов, представляющих каждый кластер данных. Метод встречного распространения (подраздел 10.4.3) обеспечивает дополнительное управление выбранным числом прототипов.

На рис. 10.15 показана сеть Кохонена, предназначенная для классификации данных из табл. 10.3. Эти данные представлены в двухмерном декартовом пространстве, поэтому прототипы, представляющие кластеры данных, тоже являются упорядоченными парами. Для представления кластеров данных выбрано два прототипа - по одному на каждый кластер. Узлы А и В случайным образом инициализированы значениями (7,2) и (2,9). Случайная инициализация подходит только для таких простых примеров, как этот. Обычно в качестве начальных значений векторов весовых коэффициентов выбираются представители каждого кластера.

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

Глава 10. Машинное обучение на основе связей 457

Обучение сети Кохонена осуществляется без учителя, а нейрон-победитель определяется на основе расстояния между входным вектором и каждым из прототипов. Классификация выполняется в контексте самоорганизации сети (self-organizing network). Обычно при обучении сети методом Кохонена входные данные обрабатываются в случайном порядке, однако данные из табл. 10.3 будут выбираться сверху вниз. Сначала измеряется расстояние от точки (1,1) до каждого из прототипов

Рис. 10.14. Обучение сети Кохонена без учителя, при котором генерируется последовательность прототипов, представляющих классы из табл. 10.3

Рис. 10.15. Архитектура сети Кохонена для классификации данных из табл. 10.3

Узел А(7; 2) становится победителем, так как он ближе к точке (1; 1). Расстояние между этими точками- ||(1; 1)-(7; 2)||, причем квадратный корень вычислять нет необходимости, поскольку эта функция возрастающая. Теперь для узла-победителя нужно пересчитать значения весовых коэффициентов, установив коэффициент скорости обучения равным 0,5. На второй итерации

На второй итерации обучения вычислим расстояния от точки (9,4; 6,4):

Снова победителем является узел А. Веса связей перед третьей итерацией обучения составляют

458 Часть IV. Машинное обучение

назад содержание далее



ПОИСК:




© FILOSOF.HISTORIC.RU 2001–2023
Все права на тексты книг принадлежат их авторам!

При копировании страниц проекта обязательно ставить ссылку:
'Электронная библиотека по философии - http://filosof.historic.ru'