Hopfield Networks – это все, что вам нужно

hopfieldnetworks8211этовсечтовамнужно

[begin{equation}tilde{boldsymbol{W}}_V = boldsymbol{W}_K boldsymbol{W}_V . tag{32}label{eq:Hopfield_2}end{equation}]

Это сообщение в блоге объясняет статью Hopfield Networks – это все, что вам нужно и соответствующий новый PyTorch Слой Хопфилда .

      Основной взносы

        О чем это сообщение в блоге

          Из классических сетей Хопфилда t o самовнимание

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

              Современные сети Хопфилда
            1. Новая функция энергии для непрерывных шаблонов и состояний
            2. Обновление новой энергетической функции – это самовнимание трансформаторных сетей

              Слои Хопфилда для архитектур глубокого обучения

                Слой Хопфилд

              1. Слой HopfieldLayer
                  Поиск Хопфилда через HopfieldLayer
                1. Слой HopfieldPooling
                  1. DeepRC

                      Материал

                        Переписка Основные взносы

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

                        Новая функция энергии является обобщением (дискретные состояния ( Rightarrow ) непрерывные состояния)

                        современные сети Хопфилда

                        он же Плотные ассоциативные воспоминания

                        представлен Кротов и Хопфилд а также Демирцигил и др.

                        Новая современная сеть Хопфилда с непрерывными состояниями сохраняет характеристики своих дискретных аналогов:

                          экспоненциальная емкость хранения

                          1. чрезвычайно быстрая сходимость

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

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

                            Удивительно, но новое правило обновления механизм внимания трансформаторных сетей, представленный в

                            Внимание – все, что вам нужно . Мы используем эти новые идеи для анализа моделей трансформаторов в статье

                            О чем это сообщение в блоге

                            Это сообщение в блоге разделено на три части. Сначала мы переходим от традиционных сетей Хопфилда к современные сети Хопфилда

                            и их обобщение до непрерывных состояний через наши

                            новая функция энергии

                            . Во-вторых, показаны свойства нашей новой энергетической функции и связь с механизмом самовнимания трансформаторных сетей. Наконец, мы представляем и объясняем новый слой PyTorch ( Слой Хопфилда ), который основан на результатах нашей работы. Мы показываем несколько практических примеров использования, например

                            Современные сети Хопфилда и внимание к классификации иммунного репертуара , объединение Хопфилда и ассоциации двух наборов. От классических сетей Хопфилда до самовнимания

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

                            ( boldsymbol { xi} ).

                            Номенклатура

                            С этого момента мы обозначаем (N ) сохраненные шаблоны в виде ( { bo ldsymbol {x} _i } _ {i = 1} ^ N ) и любое шаблон состояния

                            или же государственный

                            как ( boldsymbol { xi} ).

                            Основа

                            правило синхронного обновления

                            состоит в том, чтобы многократно умножить образец состояния ( boldsymbol { xi} ) на матрицу весов ( boldsymbol {W} ), вычесть смещение и взять знак:

                            [begin{equation}boldsymbol{xi^{t+1}} = text{sgn}(boldsymbol{W}boldsymbol{xi}^t – boldsymbol{b}) , tag{2}label{eq:restorage}end{equation}]

                            где ( boldsymbol {b} in mathbb {R} ^ d ) – вектор смещения, который можно интерпретировать как порог для каждого компонента. правило асинхронного обновления

                            выполняет это обновление только для одного компонента of ( boldsymbol { xi} ), а затем выбирает следующий компонент для обновления. Сходимость достигается, если ( boldsymbol { xi ^ {t + 1}} = boldsymbol { xi ^ {t}} ).

                            Асинхронная версия правила обновления Eq. eqref {eq: restorage} минимизирует

                            функция энергии ( text {E} ): [begin{equation}text{E} = -frac{1}{2}boldsymbol{xi}^T boldsymbol{W} boldsymbol{xi} + boldsymbol{xi}^Tboldsymbol{b} = -frac{1}{2} sum_{i=1}^dsum_{j=1}^d w_{ij}xi_ixi_j + sum_{i=1}^d b_ixi_i . tag{3}label{eq:energy_hopfield}end{equation}]

                            Как указано в статьях


                            Брук ,


                            Голес-Чак и др. а также

                            оригинальная статья Хопфилда , свойства сходимости зависят от структуры весовой матрицы ( boldsymbol {W} ) и метода обновления узлов:

                          2. Для асинхронных обновлений с (w_ {ii} geq 0 ) и (w_ {ij} = w_ {ji } ) обновления переходят в стабильное состояние.
                          3. Для синхронных обновлений с (w_ {ij} = w_ {ji} ) обновления сходятся к стабильному состоянию или предельному циклу длиной 2.

                            Для правила асинхронного обновления и симметричных весов ( text {E} ( boldsymbol { xi} ^ {t + 1}) leq text {E} ( boldsymbol { xi} ^ {t}) ) выполняется. Когда ( text {E} ( boldsymbol { xi} ^ {t + 1}) = text {E} ( boldsymbol { xi} ^ {t}) ) для обновления каждого компонента ( boldsymbol { xi} ^ t ) локальный минимум в ( text {E} ) достигнут. Все сохраненные шаблоны ( { boldsymbol {x} _i } _ {i = 1} ^ N ) должны быть фиксированными точками сети Хопфилда, т.е. [begin{equation}boldsymbol{x}_i = text{sgn}(boldsymbol{W}boldsymbol{x}_i – boldsymbol{b}) . tag{4}end{equation}]

                          4. матрица весов

                            ( boldsymbol {W} ) – внешний продукт этого черно-белого изображения ( boldsymbol {x} _ { text {Homer}} ): [begin{equation}boldsymbol{W} = boldsymbol{x}_{text{Homer}} boldsymbol{x}_{text{Homer}}^T , qquad boldsymbol{x}_{text{Homer}} in { -1,1}^d , tag{5}label{eq:weight_matrix}end{equation}]

                            где для этого примера (d = 322 раз 322 ).

                            Можно ли восстановить исходное изображение, если половина пикселей замаскирована? Замаскированное изображение:

                            , которое является нашим начальным состоянием ( boldsymbol { xi} ). Это начальное состояние обновляется посредством умножения на весовую матрицу ( boldsymbol {W} ). Для восстановления исходного изображения требуется одно обновление.

                            Что будет, если мы сохраним

                            более одного шаблона

                            ? Затем весовая матрица строится из суммы внешних произведений три сохраненных шаблона

                            (три входных изображения):

                            [begin{equation}boldsymbol{W} = sum_{i=1}^3 boldsymbol{x}_i boldsymbol{x}_i^T , qquad boldsymbol{x}_i in { -1,1}^d . tag{6}end{equation}]

                            not found

                            not found

                            На этом рисунке слева показано три сохраненных шаблона, а правая сторона показывает шаблон состояния в маске ns ( boldsymbol { xi} ) вместе с полученными шаблонами ( boldsymbol { xi} ^ { text {new}} ).

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

                          5. Маскирование исходных изображений приводит к появлению множества значений пикселей (- 1 ). Поэтому у нас странное поведение: внутренний продукт ( langle boldsymbol {x} _ { text {Homer}} ^ { text {masked}}, boldsymbol {x} _ { text {Bart}} rangle ) больше внутреннего продукта ( langle boldsymbol {x} _ { text {Homer}} ^ { text {masked}}, boldsymbol {x} _ { text {Homer}} rangle ).
                          6. Как указано выше , если вектор смещения не используется, инверсия шаблона, то есть переворот всех пикселей сразу, дает одинаковую энергию.

Leave a comment

Your email address will not be published. Required fields are marked *