Смекни!
smekni.com

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

Выбор начальных значений весовых векторов

Всем весам сети перед началом обучения следует придать начальные значения. Общепринятой практикой при работе с нейронными сетями является присваивание весам небольших случайных значений. При обучении слоя Кохоне­на случайно выбранные весовые векторы следует нормали­зовать. Окончательные значения весовых векторов после обучения совпадают с нормализованными входными вектора­ми. Поэтому нормализация перед началом обучения прибли­жает весовые векторы к их окончательным значениям, сокращая, таким образом, обучающий процесс. Рандомизация весов слоя Кохонена может породить серьезные проблемы при обучении, так как в результате ее весовые векторы распределяются равномерно по поверх­ности гиперсферы. Из-за того, что входные векторы, как правило, распределены неравномерно и имеют тенденцию группироваться на относительно малой части поверхности гиперсферы, большинство весовых векторов будут так удалены от любого входного вектора, что они никогда не будут давать наилучшего соответствия. Эти нейроны Кохонена будут всегда иметь нулевой выход и окажутся беспо­лезными. Более того, оставшихся весов, дающих наилучшие соответствия, может оказаться слишком мало, чтобы раз­делить входные векторы на классы, которые расположены близко друг к другу на поверхности гиперсферы. Допустим, что имеется несколько множеств входных векторов, все множества сходные, но должны быть разде­лены на различные классы. Сеть должна быть обучена активировать отдельный нейрон Кохонена для каждого класса. Если начальная плотность весовых векторов в окрестности обучающих векторов слишком мала, то может оказаться невозможным разделить сходные классы из-за того, что не будет достаточного количества весовых векторов в интересующей нас окрестности, чтобы припи­сать по одному из них каждому классу входных векторов. Наоборот, если несколько входных векторов получены незначительными изменениями из одного и того же образца и должны быть объединены в один класс, то они должны включать один и тот же нейрон Кохонена. Если же плот­ность весовых векторов очень высока вблизи группы слег­ка различных входных векторов, то каждый входной вектор может активировать отдельный нейрон Кохонена. Это не является катастрофой, так как слой Гроссберга может отобразить различные нейроны Кохонена в один и тот же выход, но это расточительная трата нейронов Кохонена. Наиболее желательное решение состоит в том, чтобы распределять весовые векторы в соответствии с плот­ностью входных векторов, которые должны быть разделены, помещая тем самым больше весовых векторов в окрестности большого числа входных векторов. На практике это невы­полнимо, однако существует несколько методов приближен­ного достижения тех же целей.

Одно из решений, известное под названием метода выпуклой комбинации (convex combination method), состо­ит в том, что все веса приравниваются одной и той же величине 1/

, где п - число входов и, следователь­ но, число компонент каждого весового вектора. Благодаря этому все весовые векторы совпадают и имеют единичную длину. Каждой же компоненте входа Х придается значение (i+ {[1/
](1 - a)}), где п - число входов. В начале, а очень мало, вследствие чего все входные векторы имеют длину, близкую к 1/
,
и почти совпадают с векторами весов. В процессе обучения сети a. постепенно возрастает, приближаясь к единице. Это позволяет разде­лять входные векторы и окончательно приписывает им их истинные значения. Весовые векторы отслеживают один или небольшую группу входных векторов и в конце обучения дают требуемую картину выходов. Метод выпуклой комбина­ции хорошо работает, но замедляет процесс обучения, так как весовые векторы подстраиваются к изменяющейся цели.

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

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

Еще один метод наделяет каждый нейрон Кохонена «Чувством справедливости». Если он становится победите­лем чаще своей законной доли времени (примерно 1/k, где k - число нейронов Кохонена), он временно увеличивает свой порог, что уменьшает его шансы на выигрыш, давая тем самым возможность обучаться и другим нейронам. Во многих приложениях точность результата сущест­венно зависит от распределения весов. К сожалению, эффективность различных решений исчерпывающим образом не оценена и остается проблемой.

Режим интерполяции

До сих пор мы обсуждали алгоритм обучения, в кото­ром для каждого входного вектора активировался лишь один нейрон Кохонена. Это называется методом аккредита­ции. Его точность ограничена, так как выход полностью является функцией лишь одного нейрона Кохонена. В методе интерполяции целая группа нейронов Кохо­нена, имеющих наибольшие выходы, может передавать свои выходные сигналы в слой Гроссберга. Число нейронов в такой группе должно выбираться в зависимости от задачи, и убедительных данных относительно оптимального размера группы не имеется. Как только группа определена, ее множество выходов NET рассматривается как вектор, длина которого нормализуется на единицу делением каждого значения NET на корень квадратный из суммы квадратов значений NET в группе. Все нейроны вне группы имеют нулевые выходы. Метод интерполяции способен устанавливать более сложные соответствия и может давать более точные ре­зультаты. По-прежнему, однако, нет убедительных данных, позволяющих сравнить режимы интерполяции и аккредита­ции.

Статистические свойства обученной сети

Метод обучения Кохонена обладает полезной и инте­ресной способностью извлекать статистические свойства из множества входных данных. Как показано Кохоненом [8], для полностью обученной сети вероятность того, что случайно выбранный входной вектор (в соответствии с функцией плотности вероятности входного множества) будет ближайшим к любому заданному весовому вектору, равна 1/k, где k - число нейронов Кохонена. Это являет­ся оптимальным распределением весов на гиперсфере. (Предполагается, что используются все весовые векторы, что имеет место лишь в том случае, если используется один из обсуждавшихся методов распределения весов.)

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

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

nijн = nijc + b(yj - nijc)ki, (4.8)

где k. - выход i-го нейрона Кохонена (только для одного нейрона Кохонена он отличен от нуля); уj - j-ая компо­нента вектора желаемых выходов. Первоначально b берется равным ~0,1 и затем по­степенно уменьшается в процессе обучения. Отсюда видно, что веса слоя Гроссберга будут схо­диться к средним величинам от желаемых выходов, тогда как веса слоя Кохонена обучаются на средних значениях входов. Обучение слоя Гроссберга - это обучение с учи­телем, алгоритм располагает желаемым выходом, по кото­рому он обучается. Обучающийся без учителя, самооргани­зующийся слой Кохонена дает выходы в недетерминирован­ных позициях. Они отображаются в желаемые выходы слоем Гроссберга.

Глава 5 Стохастические методы

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