Смекни!
smekni.com

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

СТРУКТУРА СЕТИ

На рис. 4.1 показана упрощенная версия прямого действия сети встречного распространения. На нем иллюс­трируются функциональные свойства этой парадигмы. Пол­ная двунаправленная сеть основана на тех же принципах, она обсуждается в этой главе позднее. Нейроны слоя 0 (показанные кружками) служат лишь точками разветвления и не выполняют вычислений. Каждый нейрон слоя 0 соединен с каждым нейроном слоя 1 (назы­ваемого слоем Кохонена) отдельным весом wmn . Эти веса в целом рассматриваются как матрица весов W. Аналогично, каждый нейрон в слое Кохонена (слое 1) соединен с каж­дым нейроном в слое Гроссберга (слое 2) весом vnp . Эти веса образуют матрицу весов V. Все это весьма напоминает другие сети, встречавшиеся в предыдущих главах, различие, однако, состоит в операциях, выполня­емых нейронами Кохонена и Гроссберга. Как и многие другие сети, встречное распростране­ние функционирует в двух режимах: в нормальном режиме, при котором принимается входной вектор Х и выдается выходной вектор Y, и в режиме обучения, при котором подается входной вектор и веса корректируются, чтобы дать требуемый выходной вектор.

НОРМАЛЬНОЕ ФУНКЦИОНИРОВАНИЕ

Слои Кохоненна

В своей простейшей форме слой Кохонена функциони­рует в духе «победитель забирает все», т.е. для данного входного вектора один и только один нейрон Кохонена выдает на выходе логическую единицу, все остальные выдают ноль. Нейроны Кохонена можно воспринимать как набор электрических лампочек, так что для любого вход­ного вектора загорается одна из них. Ассоциированное с каждым нейроном Кохонена множес­тво весов соединяет его с каждым входом. Например, на рис.4.1 нейрон Кохонена К1 имеет веса w11, w21, ...,wm1 составляющие весовой вектор W1. Они соединяются через входной слой с входными сигналами х1, х2 , ...,хm, составляющими входной вектор X. Подобно нейронам большинства сетей выход NET каждого нейрона Кохонена является просто суммой взвешенных входов. Это может быть выражено следующим образом:

NETj = w1j x1+ w2j x2 + … + wm j xm (4.1)

где NETj - это выход NET-го нейрона Кохонена j ,

NETj =

(4.2)

или в векторной записи N = XW (4.3)

где N - вектор выходов NET слоя Кохонена. Нейрон Кохонена с максимальным значением NET явля­ется «победителем». Его выход равен единице, у осталь­ных он равен нулю.

Слой Гроссберга

Слой Гроссберга функционирует в сходной манере. Его выход NET является взвешенной суммой выходов k1 ,k2, ..., kn слоя Кохонена, образующих вектор К. Вектор соединяющих весов, обозначенный через V, состоит из весов v11,v21 , ..., vnp . Тогда выход NET каждого нейрона Гроссберга есть

(4.4)

где NETj - выход j-го нейрона Гроссберга, или в вектор­ной форме

Y = KV, (4.5)

где Y - выходной вектор слоя Гроссберга, К - выходной вектор слоя Кохонена, V - матрица весов слоя Гроссбер­га. Если слой Кохонена функционирует таким образом, что лишь у одного нейрона величина NET равна единице, а у остальных равна нулю, то лишь один элемент вектора К отличен от нуля, и вычисления очень просты. Фактически каждый нейрон слоя Гроссберга лишь выдает величину веса, который связывает этот нейрон с единственным ненулевым нейроном Кохонена.

ОБУЧЕНИЕ СЛОЯ КОХОНЕНА

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

Предварительная обработка входных векторов

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

(4.6)

Это превращает входной вектор в единичный вектор с тем же самым направлением, т.е. в вектор единичной длины в n-мерном пространстве. Уравнение (4.6) обобщает хорошо известный случай двух измерений, когда длина вектора равна гипотенузе прямоугольного треугольника, образованного его х и у компонентами, как это следует из известной теоремы Пифагора. На рис. 4.2а такой двумерный вектор V представлен в координатах х-у, причем координата х равна четырем, а координата х - трем. Квадратный корень из суммы квадратов этих компонент равен пяти. Деление каждой компоненты V на пять дает вектор V' с компонентами 4/5 и 3/5, где V' указывает в том же направлении, что и V, но имеет единичную длину. На рис. 4.26 показано несколько единичных векто­ров. Они оканчиваются в точках единичной окружности (окружности единичного радиуса), что имеет место, когда у сети лишь два входа. В случае трех входов векторы представлялись бы стрелками, оканчивающимися на поверх­ности единичной сферы. Эти представления могут быть перенесены на сети, имеющие произвольное число входов, где каждый входной вектор является стрелкой, оканчива­ющейся на поверхности единичной гиперсферы (полезной абстракцией, хотя и не допускающей непосредственной визуализации).

При обучении слоя Кохонена на вход подается вход­ной вектор, и вычисляются его скалярные произведения с векторами весов, связанными со всеми нейронами Кохоне­на. Нейрон с максимальным значением скалярного произве­дения объявляется «победителем» и его веса подстраива­ются. Так как скалярное произведение, используемое для вычисления величин NET, является мерой сходства между входным вектором и вектором весов, то процесс обучения состоит в выборе нейрона Кохонена с весовым вектором, наиболее близким к входному вектору, и дальнейшем при­ближении весового вектора к входному. Снова отметим, что процесс является самообучением, выполняемым без учителя. Сеть самоорганизуется таким образом, что дан­ный нейрон Кохонена имеет максимальный выход для данно­го входного вектора. Уравнение, описывающее процесс обучения имеет следующий вид:

Wн= Wc + a (x – Wc), (4.7)

где wH - новое значение веса, соединяющего входную компоненту хc выигравшим нейроном; wc - предыдущее значение этого веса; a - коэффициент скорости обучения, который может варьироваться в процессе обучения. Каждый вес, связанный с выигравшим нейроном Кохонена, изменяется пропорционально разности между его величиной и величиной входа, к которому он присоединен. Направление изменения минимизирует разность между весом и его входом. На рис. 4.3 этот процесс показан геометрически в двумерном виде. Сначала находится вектор X-Wc, для этого проводится отрезок из конца W в конец X. Затем этот вектор укорачивается умножением его на скалярную величину a, меньшую единицы, в результате чего получа­ется вектор изменения d. Окончательно новый весовой вектор W является отрезком, направленным из начала координат в конец вектора d. Отсюда можно видеть, что эффект обучения состоит во вращении весового вектора в направлении входного вектора без существенного измене­ния его длины.

Рис.4.3. Вращение весового вектора в процессе обучения (WH – вектор новых весовых коэффициентов, Wc - вектор старых весовых коэффициентов).

Переменная a является коэффициентом скорости обу­чения, который вначале обычно равен ~ 0,7 и может по­степенно уменьшаться в процессе обучения. Это позволя­ет делать большие начальные шаги для быстрого грубого обучения и меньшие шаги при подходе к окончательной величине. Если бы с каждым нейроном Кохонена ассоциировался один входной вектор, то слой Кохонена мог бы быть обу­чен с помощью одного вычисления на вес. Веса нейрона-победителя приравнивались бы к компонентам обучающего вектора (a = 1). Как правило, обучающее множество вклю­чает много сходных между собой входных векторов, и сеть должна быть обучена активировать один и тот же нейрон Кохонена для каждого из них. В этом случае веса этого нейрона должны получаться усреднением входных векторов, которые должны его активировать. Постепенное уменьшение величины « уменьшает воздействие каждого обучающего шага, так что окончательное значение будет средней величиной от входных векторов, на которых происходит обучение. Таким образом, веса, ассоциированные с нейро­ном, примут значение вблизи «центра» входных векторов, для которых данный нейрон является «победителем».