Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Нечёткая логика и нейронные сети (конспект 2016).doc
Скачиваний:
2
Добавлен:
01.07.2025
Размер:
5.64 Mб
Скачать

Сеть Хопфилда

Данная модель, видимо, является наиболее распространенной математической моделью в нейронауке. Это обусловлено ее простотой и наглядность. Сеть Хопфилда показывает, каким образом может быть организована память в сети из элементов, которые не являются очень надежными. Экспериментальные данные показывают, что при увеличении количества вышедших из строя нейронов до 50%, вероятность правильного ответа крайне близка к 100%.

Джон Хопфилд впервые представил свою ассоциативную сеть в 1982 г. в Национальной Академии Наук. В честь Хопфилда и нового подхода к моделированию, эта сетевая парадигма упоминается как сеть Хопфилда. Сеть базируется на аналогии физики динамических систем. Начальные применения для этого вида сети включали ассоциативную, или адресованную по смыслу память и решали задачи оптимизации.

Сеть Хопфилда является однослойной сетью (хотя иногда для удобства в ней выделяют три слоя - входной, слой Хопфилда и выходной слой), потому что в ней используется лишь один слой нейронов. Она так же является рекурсивной сетью, потому что обладает обратными связями. Она функционирует циклически. Сеть состоит из N искусственных нейронов, аксон каждого нейрона связан с дендритами остальных нейронов, образуя обратную связь.

Пример сети Хопфилда из трёх нейронов. Каждый из них имеет выходы сигнала, который подаются на входы всех остальных нейронов, кроме себя самого:

Однако эту сеть нельзя научить практически ничему. Нам нужно намного больше нейронов. Сеть, содержащая N нейронов может запомнить не более ~0.15*N образов (точнее – 0.14). Так что реальная сеть должна содержать достаточно внушительное количество нейронов. Это одно из существенных недостатков сети Хопфилда – небольшая ёмкость. Плюс ко всему образы не должны быть очень похожи друг на друга, иначе в некоторых случаях возможно зацикливание при распознавании.

Как работает сеть. Основным ее применением является восстановление образца, ранее сохраненного сетью, по подаваемому на ее вход искаженному образцу. Образ, который сеть запоминает или распознаёт (любой входной образ) может быть представлен в виде вектора X размерностью n, где n – число нейронов в сети. Выходной образ представляется вектором Y с такой же размерностью. Каждый элемент вектора может принимать значения: +1 либо -1 (Можно свести к 0 и 1, однако +1 и -1 удобнее для расчётов). каждая связь характеризуется своим весом wij , матрица весов предполагается симметричной: wji = wij (N >> 1).

ОБУЧЕНИЕ:

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

На стадии инициализации сети синаптические коэффициенты устанавливаются таким образом:

Здесь i и j - индексы, соответственно, предсинаптического (приёмник сигнала) и постсинаптического (источник сигнала) нейронов; xki, xkj - i-ый и j-ый элементы вектора k-ого образца.

Симметричность матрицы w (wij = wji) и наличие нулей в случае i=j обусловлено требованием устойчивости, поскольку сеть с обратными связями является устойчивой, если её матрица симметрична и имеет нули на главной диагонали [Cohen M. A., Grossberg S. G. 1983]

Если нам необходимо дообучить уже обученную на k образцах нейронную сеть новому k+1 образцу, мы просто прибавляем к каждому синаптическому коэффициенту wji произведение соответствующих элементов вектора xk+1 : wji = wji + xk+1i * xk+1j .

РАСПОЗНАВАНИЕ:

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

1. На входы сети подается неизвестный сигнал X. Его распространение непосредственно устанавливает значения выходов Y:

yi(0) = xi , i = 0...n-1,

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

2. Рассчитывается новое состояние нейронов (значения источников умножаются на соответственные веса нейрона и суммируются)

, j=0...n-1

и новые значения выходов

где f - активационная функция в виде скачка.

Процесс повторяется до тех пор, пока значения на выходах нейронов не стабилизируются.

Y(t+1) = Y(t)

После чего выходной вектор представляет собой образец, который наиболее соответствует входным данным.

У сети Хопфилда имеется два способа реализации:

синхронный ‑ когда состояния t+1 вычисляются сначала для всех нейронов и лишь после этого одновременно (синхронно) состояние t у всех нейронов меняется на t+1

асинхронный – после вычисления нового состояния t+1 очередного нейрона, состояния всех последующих нейронов вычисляются уже с учётом этого изменения.

Принципиальная разница между двумя режимами работы сети состоит в том, что в асинхронном случае сеть обязательно придёт к одному устойчивому состоянию. При синхронном же возможны (но отнюдь не всегда) ситуации с бесконечным циклическим переходом между двумя разными состояниями (динамический аттрактор). Поэтому синхронный режим практически для сети Хопфилда не используется, и рассматривается лишь как основа для понимания более сложного асинхронного режима.

Иногда сеть не может провести распознавания и выдает на выходе несуществующий образ. Это связано с проблемой ограниченности возможностей сети.

Для сети Хопфилда число запомненных образов m не должно превышать величины, приблизительно равной m= N / (2 log2N) или 0.15*N. Попытка записи бо́льшего числа образов приводит к тому, что нейронная сеть перестаёт их распознавать.

Кроме того, если два образа А и Б сильно похожи, они, возможно, будут вызвать в сети перекрестные ассоциации, то есть предъявление на входы сети вектора А приведет к появлению на ее выходах вектора Б и наоборот.