Опубликован: 27.07.2006 | Доступ: свободный | Студентов: 6114 / 1482 | Оценка: 4.37 / 4.06 | Длительность: 13:49:00
ISBN: 978-5-9556-0049-9
Специальности: Программист
Лекция 12:

Теория адаптивного резонанса. Реализация

Принято, что латеральное торможение существует, но игнорируется здесь для сохранения простоты выражения. Торможение является причиной того, что только нейрон с максимальным значением NET будет иметь выход, равный единице; все остальные нейроны будут иметь нулевой выход. Можно рассмотреть системы, в которых в распознающем слое возбуждаются несколько нейронов в каждый момент времени, однако это выходит за рамки данной работы.

Сравнение. На этой фазе сигнал обратной связи от слоя распознавания устанавливает G1 в нуль; правило двух третей позволяет возбуждаться только тем нейронам, которые имеют соответствующие компоненты векторов P и X, равные единице.

Блок сброса сравнивает вектор C и входной вектор X, вырабатывая сигнал сброса, когда их сходство S ниже порога сходства. Вычисление этого сходства упрощается тем, что оба вектора являются двоичными (все элементы либо 0, либо 1). Следующая процедура проводит требуемое вычисление сходства:

  1. Вычислить D — количество единиц в векторе \bf
X.
  2. Вычислить N — количество единиц в векторе \bf
C.

Затем вычислить сходство S следующим образом: S=N/D.

Например, примем, что

\begin{gathered}
Х = 1\;0\;1\;1\;1\;0\;1\quad    D = 5 \\
С = 0\;0\;1\;1\;1\;0\;1\quad    N = 4\\
S=N/D=0,8.
\end{gathered}

S может изменяться от 1 (наилучшее соответствие) до 0 (наихудшее соответствие).

Заметим, что правило двух третей делает C логическим произведением входного вектора Х и вектора P. Однако P равен T_j, весовому вектору выигравшего соревнование нейрона. Таким образом, D может быть определено как количество единиц в логическом произведении векторов T_j и X.

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

Если сходство ниже требуемого уровня, запомненные образы могут быть просмотрены, чтобы найти образ, наиболее соответствующий входному вектору. Если такой образ отсутствует, вводится новый несвязанный нейрон, который в дальнейшем будет обучен. Чтобы инициализировать поиск, сигнал сброса тормозит возбужденный нейрон в слое распознавания на время проведения поиска, сигнал G1 устанавливается в единицу и другой нейрон в слое распознавания выигрывает соревнование. Его запомненный образ затем проверяется на сходство, и процесс повторяется до тех пор, пока конкуренцию не выиграет нейрон из слоя распознавания со сходством, большим требуемого уровня (успешный поиск), либо пока все связанные нейроны не будут проверены и заторможены (неудачный поиск).

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

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

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

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

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

Пусть вектор весов B_j (связанный с возбужденным нейроном j распознающего слоя) равен нормализованной величине вектора C. Эти веса вычисляются следующим образом:

b_{ij}=\frac{Lc_i}{L-I+\sum_k c_k},

где c_ii -я компонента выходного вектора слоя сравнения, j — номер выигравшего нейрона в слое распознавания, b_{ij}вес связи, соединяющей нейрон i в слое сравнения с нейроном j в слое распознавания, L — константа > 1 (обычно 2).

Компоненты вектора весов T_j, связанного с новым запомненным вектором, изменяются таким образом, что становятся равны соответствующим двоичным величинам вектора C:

t_{ij} = c_i,\quad  \text{для всех } i,

где t_{ij} является весом связи между выигравшим нейроном j в слое распознавания и нейроном i в слое сравнения.