Одна из характерных особенностей человеческой памяти – возможность ассоциации каких-либо объектов (образов) с другими, непохожими на них или даже с образами-антагонистами. Так, например, в первом случае понятие «зима» ассоциируется с понятием «холод», «праздник» – с «подарком». В случае противоположностей мозгом легко выстраиваются пары: «черный» – «белый», «большой» – «маленький».
На имитацию этой особенности человеческой памяти ориентированы нейронные сети гетероассоциативной памяти – сети Коско, иначе называемые еще сетями двунаправленной ассоциативной памяти. В структуре этой сети (рис.1) два слоя нейронов. Количество нейронов первого слоя K равно количеству бинарных выходных переменных. Число нейронов второго слоя M равно числу бинарных переменных, которые кодируют входной образ, соответствующий выходному. Сами значения входных и выходных переменных принадлежат бинарному множеству {–1; 1}.
В общем случае, задача, решаемая с помощью нейронной сети Коско, ставится следующим образом. Известен набор из N эталонных входных образов и соответствующих им N идеальных выходных образов. После обучения сеть Коско должна уметь из поданного на ее вход зашумленного входного вектора выделить один из заложенных в нее выходных идеальных образов или дать заключение, что входные данные не соответствуют ни одному из них. Таким образом, в отличие от нейронной сети Хопфилда, сеть двунаправленной ассоциативной памяти должна не только избавиться от шума во входном векторе, но и сопоставить соответствующий ему выходной вектор.
Рис. 1. Структура нейронной сети Коско
Алгоритм жизненного цикла нейронной сети Коско включает две стадии: обучения и практического использования.
Стадия обучения содержит следующую последовательность действий:
1.1. Формируются матрицы ассоциированных входных и выходных образов. Матрица входных образов размера NхM аналогична матрице эталонных входных образов нейронной сети Хопфилда. Структура матрицы выходных образов
размера NхK приведена в табл. 1.
1.2. Рассчитываются элементы wij матрицы весовых коэффициентов :
(1)
или в матричной форме записи:
.
Таблица 1. Матрица выходных образов нейронной сети Коско
№ |
№ выходной бинарной переменной |
|||||
1 |
2 |
… |
j |
… |
K |
|
1 |
y11 |
y12 |
… |
y1j |
… |
y1K |
2 |
y21 |
y22 |
… |
y2j |
… |
y2K |
… |
… |
… |
… |
… |
… |
… |
k |
yk1 |
yk2 |
… |
ykj |
… |
ykK |
… |
… |
… |
… |
… |
… |
… |
N |
yN1 |
yN2 |
… |
yNj |
… |
yNK |
На стадии практического использования выполняются следующие операции:
2.1. Неизвестный, возможно, зашумленный образ подается в виде значений элементов входного вектора-столбца в нейронную сеть. Для него или любого следующего (q+1)-го приближения эталонного входного вектора рассчитываются состояния нейронов первого слоя:
(2)
или в матричной форме:
.
2.2. К рассчитанным на предыдущем шаге состояниям нейронов применяется пороговая активационная функция вида (5), в результате чего получается новый вектор выходных значений .
Если значение порога T одинаково для всех нейронов, например, T = 0, такая нейронная сеть Коско называется гомогенной. Если имеются различающиеся значения порогов, сеть называется негомогенной. Негомогенные сети Коско имеет смысл использовать в тех случаях, когда входные или выходные вектора содержат различные по своему происхождению элементы.
2.3. Для всех итераций, кроме первой (q ≠ 1), проверяется условие окончания – стабилизация элементов выходного вектора – равенство (6). Если оно не выполняется, цикл расчетов продолжается с п. 2.4, иначе – переход к п. 2.6.
2.4. Полученные значения элементов выходного образа подаются на входы нейронов второго слоя, для которого, в свою очередь, рассчитываются новые состояния нейронов:
(3)
или в матричной форме:
.
2.5. К рассчитанным состояниям нейронов второго слоя также применяется пороговая активационная функция (5) и вычисляются элементы нового вектора входного образа .
2.6. Проверяется соответствие стабилизировавшегося вектора выходных значений одному из идеальных образов матрицы . Если соответствие установлено, можно сделать вывод, что нейронной сети удалось найти ассоциацию между зашумленным входом и одним из идеальных выходов. В противном случае можно сказать, что входной вектор был слишком сильно зашумлен и соответствие не может быть установлено.
Искусственная нейронная сеть Коско имеет ограничения, связанные с количеством запоминаемых образов. Если все они достаточно сильно друг от друга отличаются, в первом приближении достаточно выполнения условия: N ≤ n, где n – минимальное из двух слоев количество нейронов. Предельно строгое условие аналогично неравенству (8) для сети Хопфилда.
Задачу ассоциации неоднородных образов с помощью нейронной сети Коско можно свести к задаче их классификации. В этом случае количество переменных выходного образа должно соответствовать количеству возможных классов. Для каждого эталонного образа класс кодируется так: в выходном векторе все значения элементов, кроме одного, принимаются равными –1. Единственное положительное значение элемента выходного вектора располагается в позиции, соответствующей нужному классу.
Рассмотрим пример работы гетероассоциативной памяти для двух графических образов, представленных бинарными элементами в квадратной матрице (рис. 2). Входной вектор содержит 16 элементов, выходной – 9 элементов. Соответственно, структура нейронной сети будет включать 9 нейронов в первом слое и 16 – во втором.
Рис. 2. Эталонные входные и выходные образы для обучения сети Коско
Значение элемента входного вектора, равное +1, соответствует закрашенному фрагменту изображения входного образа, –1 – незакрашенному.
В соответствии с алгоритмом стадии обучения нейронной сети Коско составляются матрицы входных и выходных эталонных образов (табл. 2, 3).
Таблица 2. Матрица входных образов для настройки нейронной сети Коско
№ образа |
№ входной переменной |
|||||||
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
|
1 |
1 |
–1 |
–1 |
1 |
–1 |
1 |
–1 |
–1 |
2 |
1 |
1 |
1 |
1 |
1 |
–1 |
–1 |
1 |
№ образа |
№ входной переменной |
|||||||
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
|
1 |
–1 |
–1 |
1 |
–1 |
1 |
–1 |
–1 |
1 |
2 |
1 |
–1 |
–1 |
1 |
1 |
1 |
1 |
1 |
Обе матрицы содержат по 2 строки бинарных данных, кодирующие соответствующие друг другу пары образов, однако размер этих образов разный: в первом случае – 16 входов, во втором – 9 выходов. Далее с использованием соотношения (1) определяются весовые коэффициенты сети Коско (табл. 4).
Таблица 3. Матрица выходных образов для настройки нейронной сети Коско
№ образа |
№ выходной переменной |
|||||||||
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
|
|
1 |
1 |
1 |
1 |
1 |
–1 |
1 |
1 |
–1 |
1 |
|
2 |
1 |
–1 |
1 |
1 |
1 |
–1 |
1 |
–1 |
1 |
Для тестирования сети Коско на стадии практического использования воспользуемся зашумленным входным графическим образом, показанным на рис. 3.
|
Рис. 3. Зашумленный входной образ для распознавания сетью Коско |
Бинарный входной вектор, соответствующий тестовому образу, подается на входы нейронной сети. По соотношениям (2) и (5) из статьи "Автоассоциативная память" производится ассоциация данного вектора с выходным образом. По соотношениям (3) и (5) выполняется обратная ассоциация вновь полученного вектора выходов с входным вектором. Ход последовательных ассоциаций представлен в табл. 5.
Как видно из таблицы, стабилизация выходного вектора наступила уже на второй итерации, и она оказалась идентичной второму выходному эталонному образу. Следовательно, нейронная сеть, моделирующая работу гетероассоциативной памяти, успешно решила задачу для зашумленного набора входных значений.
Таблица 4. Матрица весовых коэффициентов нейронной сети Коско
№ |
№ выходного нейрона |
||||||||
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
|
1 |
2 |
0 |
2 |
2 |
0 |
0 |
2 |
–2 |
2 |
2 |
0 |
–2 |
0 |
0 |
2 |
–2 |
0 |
0 |
0 |
3 |
0 |
–2 |
0 |
0 |
2 |
–2 |
0 |
0 |
0 |
4 |
2 |
0 |
2 |
2 |
0 |
0 |
2 |
–2 |
2 |
5 |
0 |
–2 |
0 |
0 |
2 |
–2 |
0 |
0 |
0 |
6 |
0 |
2 |
0 |
0 |
–2 |
2 |
0 |
0 |
0 |
7 |
–2 |
0 |
–2 |
–2 |
0 |
0 |
–2 |
2 |
–2 |
8 |
0 |
–2 |
0 |
0 |
2 |
–2 |
0 |
0 |
0 |
9 |
0 |
–2 |
0 |
0 |
2 |
–2 |
0 |
0 |
0 |
10 |
–2 |
0 |
–2 |
–2 |
0 |
0 |
–2 |
2 |
–2 |
11 |
0 |
2 |
0 |
0 |
–2 |
2 |
0 |
0 |
0 |
12 |
0 |
–2 |
0 |
0 |
2 |
–2 |
0 |
0 |
0 |
13 |
2 |
0 |
2 |
2 |
0 |
0 |
2 |
–2 |
2 |
14 |
0 |
–2 |
0 |
0 |
2 |
–2 |
0 |
0 |
0 |
15 |
0 |
–2 |
0 |
0 |
2 |
–2 |
0 |
0 |
0 |
16 |
2 |
0 |
2 |
2 |
0 |
0 |
2 |
–2 |
2 |
Таблица 5. Изменение сигналов в сети Коско при подаче тестового образа
№ входа или выхода |
xi(0) |
Итерация 1 |
Итерация 2 |
||||||
расчет |
расчет |
расчет |
расчет |
||||||
|
yj(1) |
|
xi(1) |
|
yj(2) |
|
xi(2) |
||
1 |
1 |
8 |
1 |
12 |
1 |
12 |
1 |
12 |
1 |
2 |
1 |
8 |
1 |
–6 |
–1 |
20 |
1 |
–6 |
–1 |
3 |
–1 |
8 |
1 |
–6 |
–1 |
12 |
1 |
–6 |
–1 |
4 |
1 |
8 |
1 |
12 |
1 |
12 |
1 |
12 |
1 |
5 |
–1 |
–8 |
–1 |
–6 |
–1 |
–20 |
–1 |
–6 |
–1 |
6 |
1 |
8 |
1 |
6 |
1 |
20 |
1 |
6 |
1 |
7 |
–1 |
8 |
1 |
–12 |
–1 |
12 |
1 |
–12 |
–1 |
8 |
–1 |
–8 |
–1 |
–6 |
–1 |
–12 |
–1 |
–6 |
–1 |
9 |
1 |
8 |
1 |
–6 |
–1 |
12 |
1 |
–6 |
–1 |
10 |
–1 |
– |
– |
–12 |
–1 |
– |
– |
–12 |
–1 |
11 |
1 |
– |
– |
6 |
1 |
– |
– |
6 |
1 |
12 |
1 |
– |
– |
–6 |
–1 |
– |
– |
–6 |
–1 |
13 |
–1 |
– |
– |
12 |
1 |
– |
– |
12 |
1 |
14 |
–1 |
– |
– |
–6 |
–1 |
– |
– |
–6 |
–1 |
15 |
–1 |
– |
– |
–6 |
–1 |
– |
– |
–6 |
–1 |
16 |
1 |
– |
– |
12 |
1 |
– |
– |
12 |
1 |
|
– |
– |
– |
– |
– |
– |
0 |
– |
– |
В отличие от искусственной нейронной сети Хопфилда, в сетях Коско весьма сложно столкнуться с ситуацией зацикленного чередования двух различных образов в выходном векторе. Именно по этой причине обычно бывает достаточно проверки одного условия окончания вычислительной процедуры – условия (6).