Это весьма свежая наша работа, у которой к тому же есть довольно интересные перспективы. Лежит тут: http://animeculture.org.ua/anluheiq21/d … memory.pdf (русской версии нет - значительная часть писалась сразу на английском).
Суть в чем: стандартная ассоциативная память имеет аттракторные состояния. И при показе искаженного вектора, может восстановить его за несколько итераций. Конечно, тут есть ряд проблем (главным образом, огромная чувствительность к смещениям, поворотам и изменениям масштаба), но на них есть ряд методов решения, и в целом сети такого рода интересны как с научной, так и с практической точки зрения.
Однако они пригодны только для распознавания статических образов - показали картинку - получили восстановленное изображение - пошли дальше.
Мы поставили перед собой задачу запоминания последовательностей - т.е. не просто распознать, на что похоже данное изображение, а определить, ложится оно в контекст текущей последовательности, или противоречит ему (и если противоречит - есть ли другая последовательность, которая лучше опишет новое изображение в данном контексте). На вход сети поступает (искаженный) текущий образ последовательности, на выходе сеть должна сформировать следующий образ из этой последовательности.
В принципе, к этой задаче уже подходили со стороны ассоциативных нейросетей, и получили определенные результаты, но во всех известных нам работах использовали хеббовское правило модификации весов. Это подразумевает длительный итеративный процесс, который к тому же гарантированно сходится только если память далека от насыщения.
Вместо этого мы использовали алгоритм псевдообращения матрицы, а также рассмотрели виртуальную сеть - кроме реального слоя из N нейронов было введено еще два виртуальных слоя (один для представления входов, другой - для представления задержанных сигналов). И хотя "физического смысла" у виртуальных нейронов нет, их введение позволило применить математику для стандартной сети Хопфилда (т.к. получилась квадратная матрица, пусть и большая ее часть физически не существует), получить ряд оценок аттракторного радиуса, ну и собственно однопроходный алгоритм обучения (который, к тому же, позволяет добавить образы в память и удалить из памяти без переобучения с нуля, выделено специально в контексте ответа на один из вопросов в соседней теме). Оценки были проверены экспериментально, соответствие - очень хорошее.
На модельных задачах память показала весьма неплохие характеристики - так, например, при двух запомненных последовательностях, одна из движущихся горизонтальных линий, другая - из вертикальных, сеть способна отслеживать последовательности при уровне шума в 35%, с 14 запомненными образами на 100 нейронов. Этот показатель является недостижимым для статических сетей. А если снизить число образов до 4 - то шум можно довести почти до 60%, в этом случае и человек не сможет решить задачу, если он не знает о последовательностях (когда из 100 клеток, из которых 10 заполнены линией, 60 имеют случайные значения - линия не всегда видна, и иногда скорее видна вертикальная вместо горизонтальной). Тест был весьма жестким - сеть должна была дать ровно 0 ошибок при 5-кратном прогоне всех образов всех последовательностей, полученный граничный уровень шума усреднялся по 10 независимым повторениям тестирования.
Интересно поведение сети на задаче с пересекающимися последовательностями - в одной последовательности круг движется по одной диагонали, в другой - по другой, в центре они пересекаются (пересечение точное, никаких отличий). В точке пересечения на выходе сети получается правильное продолжение той последовательности, в которой сеть вошла в это состояние, а на постсинапсе видна также "тень" второго варианта продолжения этой же последовательности.
Ради интереса, мы поставили эксперимент, в котором выход сети подавался обратно на вход - таким образом сеть самостоятельно могла генерировать запомненные последовательности (т.к. при поступлении на вход образа номер N сеть отвечает образом N+1, если же сделать последний образ последовательности совпадающим с первым - получится замкнутый цикл). Если в этом режиме при эксперименте с двумя кругами сеть начинала работу из точки пересечения (т.е. без всякого контекста) - то в динамике наблюдался гибрид движения по одной и второй последовательностям, правда заметно искаженный, но тем не менее. Если начало было в другой точки - последовательность генерировалась устойчиво, в том числе и при прохождении точки пересечения.
С учетом того, что это - простейшая из моделей на эту тему, и мы сейчас ведем работу над значительным ее усовершенствованием, можно ожидать еще более интересных (и, возможно, практически ценных) результатов.