Вопрос_64_Нечаев (1006306), страница 2
Текст из файла (страница 2)
Рис. 1. Сеть встречного распространения без обратных связей.
Нейроны слоя 0 (показанные кружками) служат лишь точками разветвления и не выполняют вычислений. Каждый нейрон слоя 0 соединен с каждым нейроном слоя 1 (называемым слоем Кохонена) отдельным весом wmn. Эти веса в целом рассматриваются как матрица весов W. Аналогично, каждый нейрон в слое Кохонена (слое 1) соединен с каждым нейроном в слое Гроссберга (слое2) весом vnp. Эти веса образуют матрицу весов V.
Нормальное функционирование
Слой Кохонена
В своей простейшей форме слой Кохонена функционирует следующим образом: для данного входного вектора один и только один нейрон Кохонена выдает на выходе логическую единицу, все остальные выдают нуль.
Ассоциированное с каждым нейроном Кохонена множество весов соединяет его с каждым входом. Например, на рисунке 1 нейрон Кохонена K1 имеет веса w11,w21...wm1 , составляющие весовой вектор W1. Они соединяются через входной слой с входными сигналами х1, х2 ...xm, составляющими входной вектор Х. Подобно нейронам большинства сетей, выход NET каждого нейрона Кохонена является просто суммой взвешенных входов. Это может быть выражено следующим образом:
NET=X*W
Нейрон Кохонена с максимальным значением NET является “победителем”. Его выход равен единице, а у остальных он равен нулю.
Слой Гроссберга
Слой Гроссберга функционирует в сходной манере. Его выход NET является суммой взвешенных входов k1,k2...kn слоя Кохонена, образующих вектор K. Вектор соединяющих весов, обозначенный через V, состоит из весов v11,v21...vnp. Тогда выход NET каждого нейрона Гроссберга есть
Y=K*V,
где Y- выходной вектор слоя Гроссберга, K- выходной вектор слоя Кохонена, V- матрица весов слоя Гроссберга. Слой Кохонена функционирует таким образом, что лишь у одного нейрона величина NET равна единице, а у остальных - нулю. Поэтому лишь один элемент вектора К отличен от нуля и вычисления очень просты. Фактически каждый нейрон слоя Гроссберга лишь выдает величину веса, который связывает этот нейрон с единственным ненулевым нейроном Кохонена.
Режим обучения
Обучение слоя Кохонена
Слой Кохонена классифицирует входные векторы в группы схожих. Это достигается с помощью такой подстройки весов Кохонена, что близкие входные векторы активируют один и тот же нейрон данного слоя. Затем задачей слоя Гроссберга является получение требуемых выходов.
Обучение Кохонена является самообучением, протекающим без учителя. Поэтому трудно (и не нужно) предсказывать, какой именно нейрон Кохонена будет активизироваться для данного входного вектора. Необходимо лишь гарантировать, чтобы в результате обучения разделялись несхожие входные векторы.
Весьма желательно (хотя и не обязательно) нормализовать входные векторы перед тем, как предъявлять их сети. Это выполняется с помощью деления каждой компоненты входного вектора на длину вектора. В алгебраической записи
хi’=xi/(x12+x22+...+xn2)
Это превращает входной вектор в единичный вектор того же направления в n- мерном пространстве.
При обучении слоя Кохонена на вход подается входной вектор, и вычисляются его скалярные произведения с векторами весов, связанными со всеми нейронами Кохонена. Вес нейрона с максимальным скалярным произведением выставляется в единицу. Так как скалярное произведение, используемое для вычисления величин NET, является мерой сходства между входным вектором и вектором весов, то процесс обучения состоит в выборе нейрона Кохонена с весовым вектором, наиболее близким к входному вектору, и дальнейшем приближении весового вектора к входному. Сеть самоорганизуется таким образом, что данный нейрон Кохонена имеет максимальный выход для данного входного вектора. Уравнение, описывающее процесс обучения имеет следующий вид:
wн=wc+х-wс
где wн- новое значение веса, соединяющего входную компоненту х с выигравшим нейроном; wc- предыдущее значение этого веса; - коэффициент скорости обучения, который может варьироваться в процессе обучения. Каждый вес, связанный с выигравшим нейроном Кохонена, изменяется пропорционально разности между его величиной и величиной входа, к которому он присоединен. Направление изменения минимизирует разность между весом и его входом. На рис. 2 этот процесс показан геометрически.
Рис.2 Вращение весового вектора в процессе обучения
Переменная является коэффициентом скорости обучения, который в начале равен 0.7, и может постепенно уменьшаться в процессе обучения. Это позволяет делать большие начальные шаги для быстрого грубого обучения и меньшие шаги при подходе к окончательной величине.
Всем весам сети перед началом обучения следует придать начальные значения. Общепринятой практикой является присваивание весам небольших случайных значений. При обучении слоя Кохонена выбранные весовые векторы следует нормализовать. Окончательные значения векторов после обучения совпадают с нормализованными входными векторами. Поэтому нормализация перед началом обучения приближает весовые векторы к их окончательным значениям, сокращая, таким образом, обучающий процесс.
Другой способ задания начальных значений носит название метод выпуклой комбинации. Он состоит в том, что все веса приравниваются одной и той же величине 1/(n)1/2 , где n- число входов и, следовательно, число компонент каждого вектора. Благодаря этому все весовые векторы совпадают и имеют единичную длину. Каждой же компоненте входа Х придается значение xi+{[1/(n)1/2](1-)}, где n- число входов. Вначале очень мало, вследствие чего все входные векторы имеют длину, близкую к 1/(n)1/2, и почти совпадают с векторами весов. В процессе обучения сети постепенно возрастает, приближаясь к единице. Это позволяет разделять входные векторы и окончательно приписывать им истинные значения. Весовые векторы отслеживают один или небольшую группу входных векторов и в конце обучения дают требуемую картину выходов. Метод выпуклой комбинации хорошо работает, но замедляет процесс обучения, так как весовые векторы подстраиваются к изменяющейся цели.
Обучение слоя Гроссберга
Слой Гроссберга обучается сравнительно просто. Входной вектор, являющийся выходом слоя Кохонена, подается на слой нейронов Гроссберга, и выходы слоя Гроссберга вычисляются, как при нормальном функционировании. Далее, каждый вес корректируется лишь в том случае, если он соединен с нейроном Кохонена, имеющим ненулевой выход. Величина коррекции веса пропорциональна разности между весом и требуемым выходом нейрона Гроссберга, с которым он соединен. В символьной записи это выглядит так:
vijн=vijc+(yj- vijc)ki,
где ki- выход i-го нейрона слоя Кохонена (только для одного нейрона Кохонена он отличен от нуля); yj - j-я компонента вектора желаемых векторов.
Первоначально берется 0.1, и затем постепенно уменьшается в процессе обучения.
Отсюда видно, что веса слоя Гроссберга будут сходиться к средним величинам от желаемых выходов, тогда как веса Кохонена обучаются на средних значениях входов. Обучение слоя Гроссберга- это обучение с учителем(смотрите в доп. материале), алгоритм располагает желаемым выходом, по которому он обучается. Обучающийся без учителя самоорганизующийся слой Кохонена дает выходы в недетерминированных позициях. Они отображаются в желаемые выходы слоем Гроссберга.
Дополнительная информация
(не обязательная)
Сеть встречного распространения полностью
На рисунке ниже показана сеть встречного распространения целиком. В режиме нормального функционирования предъявляются входные векторы Х и Y, и обученная сеть дает на выходе векторы X' и Y', являющиеся аппроксимациями соответственно для Х и Y. Векторы Х и Y предполагаются здесь нормализованными единичными векторами, следовательно, порождаемые на выходе векторы также будут иметь тенденцию быть нормализованными. В процессе обучения векторы Х и Y подаются одновременно и как входные векторы сети, и как желаемые выходные сигналы. Вектор Х используется для обучения выходов X', а вектор Y - для обучения выходов Y' слоя Гроссберга. Сеть встречного распространения целиком обучается с использованием того же самого метода, который описывался для сети прямого действия. Нейроны Кохонена принимают входные сигналы как от векторов X, так и от векторов Y. Но это неотличимо от ситуации, когда имеется один большой вектор, составленный из векторов и Y, и не влияет на алгоритм обучения.
В качестве результирующего получается единичное отображение, при котором предъявление пары входных векторов порождает их копии на выходе. Это не представляется особенно интересным, если не заметить, что предъявление только вектора Х (с вектором Y, равным нулю) порождает как выходы X', так и выходы Y'. Если F - функция, отображающая Х в Y', то сеть аппроксимирует ее. Также, если F обратима, то предъявление только вектора Y (приравнивая Х нулю) порождает X'. Уникальная способность порождать функцию и обратную к ней делает сеть встречного распространения полезной в ряде приложений. Рисунок в отличие от первоначальной конфигурации не демонстрирует противоток в сети, по которому она получила свое название. Такая форма выбрана потому, что она также иллюстрирует сеть без обратных связей и позволяет обобщить понятия всего полученного материала.
Режим интерполяции
(дополнительно к обучению слоя Кохонена)
Мы обсуждали алгоритм обучения, в котором для каждого входного вектора активировался лишь один нейрон Кохонена. Это называется методом аккредитации. Его точность ограничена, так как выход полностью является функцией лишь одного нейрона Кохонена. В методе интерполяции целая группа нейронов Кохонена, имеющих наибольшие выходы, может передавать свои выходные сигналы в слой Гроссберга. Число нейронов в такой группе должно выбираться в зависимости от задачи, и убедительных данных относительно оптимального размера группы не имеется. Как только группа определена, ее множество выходов NET рассматривается как вектор, длина которого нормализуется на единицу делением каждого значения NET на корень квадратный из суммы квадратов значений NET в группе. Все нейроны вне группы имеют нулевые выходы. Метод интерполяции способен устанавливать более сложные соответствия и может давать более точные результаты. По-прежнему, однако, нет убедительных данных, позволяющих сравнить режимы интерполяции и аккредитации.
Обучение с учителем
Различают алгоритмы обучения с учителем и без учителя. Обучение с учителем предполагает, что для каждого входного вектора существует целевой вектор, представляющий собой требуемый выход. Вместе они называются обучающей парой. Обычно сеть обучается на некотором числе таких обучающих пар. Предъявляется выходной вектор, вычисляется выход сети и сравнивается с соответствующим целевым вектором, разность (ошибка) с помощью обратной связи подается в сеть, и веса изменяются в соответствии с алгоритмом, стремящимся минимизировать ошибку. Векторы обучающего множества предъявляются последовательно, вычисляются ошибки и веса подстраиваются для каждого вектора до тех пор, пока ошибка по всему обучающему массиву не достигнет приемлемо низкого уровня.
Обучение без учителя
Несмотря на многочисленные прикладные достижения, обучение с учителем критиковалось за свою биологическую неправдоподобность. Трудно вообразить обучающий механизм в мозге, который бы сравнивал желаемые и действительные значения выходов, выполняя коррекцию с помощью обратной связи. Если допустить подобный механизм в мозге, то откуда тогда возникают желаемые выходы? Обучение без учителя является намного более правдоподобной моделью обучения в биологической системе. Развитая Кохоненом и многими другими, она не нуждается в целевом векторе для выходов и, следовательно, не требует сравнения с предопределенными идеальными ответами. Обучающее множество состоит лишь из входных векторов. Обучающий алгоритм подстраивает веса сети так, чтобы получались согласованные выходные векторы, т. е. чтобы предъявление достаточно близких входных векторов давало одинаковые выходы. Процесс обучения, следовательно, выделяет статистические свойства обучающего множества и группирует сходные векторы в классы. Предъявление на вход вектора из данного класса даст определенный выходной вектор, но до обучения невозможно предсказать, какой выход будет производиться данным классом входных векторов. Следовательно, выходы подобной сети должны трансформироваться в некоторую понятную форму, обусловленную процессом обучения. Это не является серьезной проблемой. Обычно не сложно идентифицировать связь между входом и выходом, установленную сетью.















