Искусственный Интеллект

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.


Вы здесь » Искусственный Интеллект » Макеты и реализации » Динамическая ассоциативная память


Динамическая ассоциативная память

Сообщений 1 страница 15 из 15

1

Это весьма свежая наша работа, у которой к тому же есть довольно интересные перспективы. Лежит тут: http://animeculture.org.ua/anluheiq21/d … memory.pdf (русской версии нет - значительная часть писалась сразу на английском).

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

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

На модельных задачах память показала весьма неплохие характеристики - так, например, при двух запомненных последовательностях, одна из движущихся горизонтальных линий, другая - из вертикальных, сеть способна отслеживать последовательности при уровне шума в 35%, с 14 запомненными образами на 100 нейронов. Этот показатель является недостижимым для статических сетей. А если снизить число образов до 4 - то шум можно довести почти до 60%, в этом случае и человек не сможет решить задачу, если он не знает о последовательностях (когда из 100 клеток, из которых 10 заполнены линией, 60 имеют случайные значения - линия не всегда видна, и иногда скорее видна вертикальная вместо горизонтальной). Тест был весьма жестким - сеть должна была дать ровно 0 ошибок при 5-кратном прогоне всех образов всех последовательностей, полученный граничный уровень шума усреднялся по 10 независимым повторениям тестирования.

Интересно поведение сети на задаче с пересекающимися последовательностями - в одной последовательности круг движется по одной диагонали, в другой - по другой, в центре они пересекаются (пересечение точное, никаких отличий). В точке пересечения на выходе сети получается правильное продолжение той последовательности, в которой сеть вошла в это состояние, а на постсинапсе видна также "тень" второго варианта продолжения этой же последовательности.

Ради интереса, мы поставили эксперимент, в котором выход сети подавался обратно на вход - таким образом сеть самостоятельно могла генерировать запомненные последовательности (т.к. при поступлении на вход образа номер N сеть отвечает образом N+1, если же сделать последний образ последовательности совпадающим с первым - получится замкнутый цикл). Если в этом режиме при эксперименте с двумя кругами сеть начинала работу из точки пересечения (т.е. без всякого контекста) - то в динамике наблюдался гибрид движения по одной и второй последовательностям, правда заметно искаженный, но тем не менее. Если начало было в другой точки - последовательность генерировалась устойчиво, в том числе и при прохождении точки пересечения.

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

+1

2

будем разбираться... есть пока такие вопросы, чтобы "потрогать" проблему,
1) искажения последовательности - это искажение порядка или просто зашумление картинок в правильной последовательности?
2) можно (в перспективе) показать системе произвольную последовательность, чтобы она (в каком-то другом процессе)
восстанавливала ту последовательность, которую запомнила?

Отредактировано Egg (2009-08-09 19:26:34)

0

3

1 - показ зашумленных в правильной (в ближайшей перспективе - ясно, как не пугаться искажений порядка в несколько кадров, особенно легко бороться с пропущенными, но если в последовательности из 20 образов 10 будут идти неправильно - с этим едва ли что можно сделать). Зато показывать можно с любого места - необязательно начинать с первого кадра.
2 - не очень ясен вопрос. Эта память может запомнить любую последовательность, в перспективе - сможет корректировать запомненную, если показывать похожие, но немного отличающиеся. При наблюдении некоторого процесса память занимается именно тем, что пытается выбрать ту запомненную последовательность (или даже гибрид последовательностей), которые более всего этот процесс напоминают.

0

4

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

0

5

Задача хорошая.

0

6

3d6 написал(а):

не очень ясен вопрос.

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

0

7

Egg написал(а):

единственное, что хочу заметить, зачем для такой интересной задачи использовать
такой неудобный инструмент как ИНС

Инструмент крайне удобен. Вместо того, чтобы думать, как бы так контекстно распознать следующий кадр, да чтобы с пропусками и перестановками, да чтобы на другую последовательность перескочить если надо, да так, чтобы и без полного перебора обойтись, мы просто думаем над тем, какое бы выбрать пространство для представления кадров, чтобы они получше друг от друга отличались - а уж если мы с этим справимся, нейросеть все остальное возьмет на себя. Ну, правда это когда метод до ума доведен будет, пока он в стадии исследования - думать надо больше :)

0

8

3d6:
Как по-вашему, зачем люди создали процессоры? Все же можно выполнять сетями из транзисторов, так даже интеллектуальнее.

0

9

NO, а как на сетях можно эффективно выполнить некоторый алгоритм? Я например не умею... Человек, с его десятками миллиардов нейронов, при выполнении алгоритма менее эффективен, чем простейший калькулятор на паре тысяч транзисторов.

0

10

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

Отредактировано NO (2009-08-10 15:36:14)

0

11

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

0

12

NO написал(а):

все более-менее сложное-интеллектуальное давно считают на процессорах

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

0

13

Вам нужно как-то математику поднимать из железа в софт, в сеть. Вроде разрядов сделать, чтобы переносы переносились при сложении, чтобы все это сеть делала, а не процессор, тогда модификации этого будут гораздо большим пространством алгоритмов чем веса-матрицы.

0

14

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

0

15

В математике много разных бесконечностей. Если Вы бесконечно далеки от самой ближней из них то стоит задуматься где Вы находитесь.

0


Вы здесь » Искусственный Интеллект » Макеты и реализации » Динамическая ассоциативная память


Создать форум. Создать магазин