Нейронные сети Хопфилда и Хэмминга
Как говорилось выше, иногда сеть не может провести распознавание и выдает на выходе несуществующий образ. Это связано с проблемой ограниченности возможностей сети. Для сети Хопфилда число запоминаемых образов не должно превышать величины, примерно равной . Кроме того, если два образа А и Б имеют значительное сходство, они, возможно, будут вызывать у сети перекрестные ассоциации, то есть предъявление на входы сети вектора А приведет к появлению на ее выходах вектора Б и наоборот.
Когда нет необходимости, чтобы сеть выдавала образец в явном виде и достаточно, скажем, получать номер образца, ассоциативную память успешно реализует сеть Хэмминга. Данная сеть характеризуется, по сравнению с сетью Хопфилда, более экономным использованием памяти и меньшим объемом вычислений, что становится очевидным из ее структуры (см. рис. 8.2).
Сеть состоит из двух слоев. Первый и второй слои имеют по нейронов, где — число образцов. Нейроны первого слоя имеют по синапсов, соединенных с входами сети (которые образуют фиктивный нулевой слой). Нейроны второго слоя связаны между собой ингибиторными (отрицательными обратными ) синаптическими связями. Единственный синапс с положительной обратной связью для каждого нейрона соединен с его же аксоном.
Идея работы сети состоит в нахождении расстояния Хэмминга от тестируемого образа до всех образцов. Расстоянием Хэмминга называется число отличающихся битов в двух бинарных векторах. Сеть должна выбрать образец с минимальным расстоянием Хэмминга до неизвестного входного сигнала, в результате чего будет активизирован только один выход сети, соответствующий именно этому образцу.
На стадии инициализации весовым коэффициентам первого слоя и порогу активационной функции присваиваются следующие значения:
Здесь - -й элемент -го образца.
Весовые коэффициенты тормозящих синапсов во втором слое берут равными некоторой величине . Синапс нейрона, связанный с его же аксоном, имеет вес +1.
Алгоритм функционирования сети Хэмминга следующий:
-
На входы сети подается неизвестный вектор
,исходя из которого рассчитываются состояния нейронов первого слоя (верхний индекс в скобках указывает номер слоя):
После этого полученными значениями инициализируются значения аксонов второго слоя:
-
Вычисляются новые состояния нейронов второго слоя:
.Активационная функция имеет вид порога, причем величина должна быть достаточно большой, чтобы любые возможные значения аргумента не приводили к насыщению.
- Проверить, изменились ли выходы нейронов второго слоя за последнюю итерацию. Если да — перейти к шагу 2. Иначе — конец процедуры.
Из оценки алгоритма видно, что роль первого слоя весьма условна: воспользовавшись один раз на шаге 1 значениями его весовых коэффициентов, сеть больше не обращается к нему, поэтому первый слой может быть вообще исключен из сети.