Pull to refresh

Книга (бытия?). Размышления о природе разума. Часть II

Reading time7 min
Views3.5K


Слово о процессах, или все мы немного контрамоты.

Продолжения размышлений на тему разума как естественного, так и искусственного (ИИ), Первая часть здесь

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

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

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

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

Если взять типичный диспут о природе времени, то классическими будут постулаты о неизменности прошлого (вне контекста путешествий во времени), важности настоящего (есть только миг… ;) ), и будущем, которое пока не существует, а значит его можно изменить. Когда мы говорим об объективной реальности — очень даже может быть, что так оно и есть. Однако человек живет в своей, субъективной модели мира, а там все почти наоборот!

Прошлое далеко не так неизменно, как хотелось бы. Постоянно получая новую информацию, человек перестраивает прошлое, что бы исключить противоречия (вы думали Петр Степаныч на симпозиуме, а он вон из стрип-клуба выходит… Это значит никуда, он, затейник, не ездил и вообще… ). В то же время ваше субъективное будущее во многих аспектах является константой (что бы там ни было, а в пятницу у меня пиво и футбол!). Мало того — имея определенную цель в будущем, вы не только выстраиваете цепочку процессов в обратном порядке (Что бы стать директором крупной компании, нужно закончить престижный вуз с дипломом, для этого в него надо сначала поступить, для этого надо хорошо сдать ЕГЭ, марш учить уроки!), но и вполне вероятно — уходите в этом процессе в прошлое (у не было ли у нас друзей/знакомых, которые сейчас поднялись и обросли связями и могли бы помочь ребенку с ВУЗом) — чем не контрамоция? ;)

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

Я почти уверен, что те, кто занимаются ИИ игр, вроде Альфа Го, это так или иначе понимают. Возможно подходы там несколько иные, но суть та-же: текущая ситуация на доске (причем в развертке на несколько последних ходов) — анализируется на предмет того «что вообще происходит». И в зависимости от того, насколько то, что происходит соответствует тому, что должно происходить — подбираются собственные ходы.

Очень сложно говорить о стратегии/поведении, когда на входе картинка с сенсоров. И наоборот — подготовленный вектор, содержащий полный расклад по текущему состоянию поля в играх с полной информацией (считай полная картина мира) — вполне посильная задача, как показывает практика. Однако, если сверточная сеть первых уровней идентифицировала объекты, а следующие уровни анализируют эти объекты в динамике, идентифицируя процессы (знакомые по обучению, например) дополняет данные, полученные ранее, то с этим уже кажется можно работать…

Вопросы знатокам:

Насколько реально, учитывая текущие наработки по нейронным сетям сделать примерно следующее:

На входе, допустим, непрерывный видеосигнал, возможно стерео. Как вариант: с несколькими степенями свободы (возможность поворачивать камеру — произвольно, или по схеме). Впрочем, при необходимости видеосигнал может быть дополнен/заменен любыми другими способами пространственного восприятия — от сонара до лидара.

Строго говоря...
на входе может быть любой realtime поток — хоть речь/текст, хоть котировки валют, но… В рассматриваемом процессе мне проще опираться на единственный доступный мне для непосредственного изучения образец разума — мой собственный! ) А в этом «образце» сенсорный канал — вне конкуренции!

На выходе:

  1. Карта глубин (если камера статична) или карта окр. пространства (динамическая камера/лидар, etc.);

    Для чего
    Необходимо, если мы хотим иметь реальное пространственное расположение объектов для оценки их взаимодействия. В таком случае картинка с камеры есть лишь двумерная проекция пространства большей размерности, и нужны дополнительные преобразования.
  2. Выделение отдельных объектов (с учетом карты глубин/пространства, а не только/не столько видимых контуров);
  3. Выделение движущихся объектов (скорость/ускорение, построение/предсказание траектории(?));
  4. Иерархическая классификация объектов по любым извлекаемым признакам (формы/габаритов/цвета/нюансов движения/Составных частей(?)). Т.е. по сути извлечения метрик для Гилбертова пространства.

    про иерахию
    возможно слово «Иерархическая» не вполне уместно в данном случае. Я хотел подчеркнуть, возможность в любой момент подобрать метрики так, что бы Расстояние Хеминга между ними позволило считать два различных набора метрик суть одним понятием. Как «красная машина» и «Синий автобус» должны быть обобщены в понятие «транспорное средство», например.

Важно: по возможности система не предобученная. Т.е. какие-то базовые вещи могут быть заложены (например — сверточная сеть первого слоя, для выделения контуров/геометрии), но выделять объекты и позднее распознавать их должна научится сама.

  • Ну и, наконец, построение развертки (на основе пп 1,4, т.е. пространственной карты с учетом метрик) во времени (пока, на этом этапе видимо непосредственно наблюдаемого периода), с целью провести анализ по пунктам 2-4, с дабы выявить: процессы/события (являющиеся по сути своей изменениями во времени п.3) и их кластерной классификации (п.4).

Еще раз: из картинки с сенсоров мы сначала извлекаем описание мира в более подготовленном виде, размеченном по извлекаемым признакам и разделенном не на пиксели, а на объекты. Затем разворачиваем мир, состоящий из объектов во времени и полученную «картину мира» подаем на вход следующей сети, которая работает с ней так, как работали предыдущие слои с сенсорной картинкой. Там, где выделялись контуры объектов, теперь будут выделяться «контуры» происходящих процессов. Взаиморасположение объектов в пространстве подобно причинно следственной связи процессов во времени… Как-то так.

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

Ну и последнее: имея в будущем фиксированное состояние системы (где зафиксированы только значимые элементы гилбертовых метрик, при свободной трактовке остальных, не существенных значений) — способна ли сеть «домыслить» остальное?

Ну т.е. если бы это было изображение, в котором заданы только два несвязанных фрагмента — может ли сеть, обученная на какой-то выборке достроить «непротиворечивое» полное изображение? Выборка в данном случае — аналогичные временные интервалы из опыта, фрагменты — текущее и заданное состояния. Результат: непротиворечивая «история», связывающая одно и второе…

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

  • включение в «историю» собственных действий, если возможно/необходимо
  • приоритет «закономерных» причинно-следственных паттернов над неконтролируемыми стохастическими выбросами (проблема рулетки)
  • какой-то вариант любопытства, т.е. активное познание закономерностей через действие… etc

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

P.P.S. Я отдаю себе отчет, что текст сырой, и мысль перепрыгивает с одного на другое, но я очень хотел задать паре человек эти вопросы (раздел «вопрос знатокам»), а это трудно сделать без хоть какого-то изложения. Прошлый текст (а я его сейчас перечитывал, и понял что он очень сложный для восприятия) свою задачу выполнил: я получил несколько ценных для меня дискуссий… Надеюсь и в этот раз прокатит! ;)

UPD: Не смотря на минусы — дискуссия все-таки завязалась, чему я несказанно рад!

UPD2: Список ссылок по теме, которую дали в разное время разные люди, или нашел сам:

  1. Про сегментацию, популярно: тыц...
  2. А если усилить стереозрением? Раз, два и допустим, три
  3. То все было про OpenCV, чистая математика, без нейронок. А можно же совместить, или так… А еще вот.
  4. Если по совокупности методов упомянутых ранее объект выделен, то набор признаков для отслеживание его в дальнейшем вполне может быть сформирован на лету...
  5. Почему вообще нужно искать иные подходы, когда есть замечательный Reinforcement Learning?
  6. Предобученная сеть, выделяющая действия на видео… Трудно пока сказать насколько это применимо в нашем случае, но интересно!


UPD3: Перевод материала, где люди руководствуются очень похожими соображениями и добиваются таки реальных результатов! Маст рид.
Tags:
Hubs:
-2
Comments124

Articles