Сети Хопфилда являются одним из старейших дизайнов повторяющихся нейронных сетей, но остаются актуальными:

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

В этой статье я объясню:

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

Энергетические модели (EBM)

Модель на основе энергии — это вероятностная модель, управляемая функцией энергии, которая описывает вероятность существования в определенном состоянии. Чем ниже энергия, тем более вероятно это состояние.

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

Сети Хопфилда — это энергетические модели, вдохновленные физической системой взаимодействия магнитных диполей.

Магнитные спиновые стекла характеризуются наличием системы неупорядоченных магнитных спиновых состояний.

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

В сетях Хопфилда есть правило перехода состояния, похожее на это поведение… Я вернусь к этому через минуту, но давайте сначала поговорим об архитектуре сети Хопфилда.

Архитектура:

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

Правило обучения:

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

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

У нас есть несколько терминов для определения здесь:

Активация — это взвешенная сумма входов нейрона, прошедшая через порог.

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

Давайте рассмотрим пример, в котором мы вычисляем взвешенную сумму для нейрона А.

Для этого расчета есть три внешних члена, потому что A имеет 3 граничных нейрона.

Каждый член является произведением одного из граничных нейронов и веса, который соединяет его с A.

Когда мы суммируем каждый член вместе, мы получаем 3 — это взвешенная сумма.

Наконец, пороговая функция устанавливает активацию либо на 1, либо на -1 в зависимости от того, больше или меньше 0.

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

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

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

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

Давайте инициализируем новую сеть с теми же весами, но разными значениями нейронов для узлов A и B.

Суммарная энергия сети возросла до 2, а также сейчас она находится в нестабильном состоянии — значение каждого нейрона не соответствует его активации.

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

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

Давайте пока обновим только нейрон A.

После переворота нейрона A общая энергия сети по-прежнему равна 2. Но теперь похоже, что только нейрон B нестабилен, давайте перевернем его бит.

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

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

Так как же нам установить веса, чтобы минимизировать энергию сети для желаемого состояния? Оказывается, это довольно просто.

Если мы хотим сохранить только один паттерн, все, что нам нужно сделать, это установить веса в произведение граничащих с ним нейронов.

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

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

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

Если вам понравилась эта статья, пожалуйста, поставьте мне палец вверх и рассмотрите возможность подписки.

Видео форму этих статей можно найти на моем youtube канале: https://www.youtube.com/watch?v=SVy-CzPFrwQ