Совместная работа над виртуальным миром аниматов
- Подробности
- Обновлено 07 Ноябрь 2012
- Автор: Nemo
- Просмотров: 16606
Д.Ю.Придатко
e-mail: Этот адрес электронной почты защищен от спам-ботов. У вас должен быть включен JavaScript для просмотра.
Когда то давно, когда автор только начинал интересоваться тем, как работает мозг и как его работу можно смоделировать, встал закономерный вопрос «Как можно моделировать работу мозга, если ни чего подобного человек не делал, и что ему надо сделать не вполне понимает». Не замысловатый ответ был найден на примере создания самолета: «Украсть идею у природы».
Действительно, полет не свойственен человеку и был не понятен ему. Непонятны были как принципы полета аппарата тяжелее воздуха, так и конкретные технические решения необходимые для реализации такого полета. Имевшиеся проблемы решались наблюдением за природой, бесчисленным количеством проб и ошибок и наконец, после понимания некоторых базовых принципов, аппаратом математики и физики оформившемся в последствии в аэродинамику. Уверен, что и проблема создания искусственного интеллекта (ИИ) будет решена таким же способом.
Какова же ситуация в настоящее время в ИИ? Наблюдение за природой ведется всеми самыми изощренными способами. Способы эти, правда, либо весьма скромны по своей разрешающей способности, либо по массовости регистрируемых явлений. А как дела с пробами и ошибками? В основном упор делается на исследовании и разработке отдельных функций интеллекта. ИИ никто не строит. Или не сообщает об этом. На самом деле видимо строят, но не у нас. Программа американского агентства передовых оборонных исследовательских проектов (DARPA) по созданию когнитивной системы - это по сути и есть прообраз ИИ [1].
Раньше строили программные комплексы, имитирующие отдельные, признаваемые самыми интеллектуальными, проявления человеческой деятельности (классический пример - игра в шахматы). Затем, слава богу, это осудили, бросили, а потом и решили проблему методом грубой силы. Бросились в физиологическое подобие. Так как наблюдения за природой весьма скромны, то и подобие было, да и есть весьма примитивным. Но главное - решили имитировать отдельные функции обработки информации - например распознавание образов. Очень востребованная функция. Только эта функция, вырванная из контекста интеллекта, очень напоминает ситуацию с игрой ЭВМ в шахматы. Строятся отдельные модели неких функций свойственных мозгу с точки зрения философии или обыденного знания. Что думают нейроны по поводу своих обязанностей по исполнению ими этих функций - неизвестно.
Ситуация отягощается тем, что никто не знает, а что мы строим. Определения интеллекту нет.
Каков выход? Начать нужно все же с определения интеллекту. Так как попытки дать такое определение пока не увенчались успехом, то видимо нужно воспользоваться ослабленным тестом Тьюринга [2]. Действительно, мы судим об интеллектуальности человека, животного или технической системы по их поведению. Следовательно, необходимо строить системы способные к интеллектуальному поведению в окружающем мире. И строить их соблюдая биологическое подобие. А так как построить сразу интеллект в человеческом понимании не получается, то придется пройти путь эволюции, в процессе которого мозг постепенно усложнялся от простейших нервных систем поддержания гомеостаза до сложнейшей нервной сети мозга поддерживающей ... тот же гомеостаз. Остается надеяться, что этот путь когнитивной эволюции, предложенный и активно пропагандируемый В.Г.Редько [3],[4] нам удастся пройти гораздо быстрее, чем это сделала природа.
Итак, нужно строить интеллектуальные системы, подходя к ним как к живым организмам. Каждая такая система должна иметь некоторые потребности, должна быть способна ставить и достигать некоторые текущие, а в дальнейшем и стратегические цели, позволяющие ей реализовать свои потребности. Мерой интеллекта, видимо должна стать адаптивность интеллектуальной системы к меняющимся условиям среды.
Такая адаптивность может быть двух видов: изменяющая величину (закономерность) воздействия и изменяющая последовательности воздействия. С точки зрения человека, наиболее интеллектуальными, являются такие последовательности действий, которые позволяют достичь необходимой цели за приемлемое время и с минимальными энергетическими тратами. Причем время и энергетические траты для искусственных систем при одинаковых изменениях условий поддаются измерению. Таким образом, можно сравнивать системы по интеллектуальности. А это уже путь к измерению интеллекта. Сразу надо отметить, что интеллектуальность в этом случае, вещь относительная. Легко представить себе систему достаточно тупую, но весьма оптимальную для конкретных условий, а значит интеллектуальную в выше приведенном смысле. Например, современный авторулевой на судне способен вести судно с меньшими энергетическими затратами и большей точностью, чем человек. Приходится признать, что авторулевой в конкретной среде имеет больший интеллект (адаптивность), чем человек. Однако его интеллектуальность в человеческом мире практически равна 0. Из этого следует необходимость построения сложного виртуального мира в которую погружена испытываемая интеллектуальная система.
Каким образом можно начать строить такие постепенно все более адаптивные системы? Одно время надежды возлагались на генетические подходы. Это конечно самый биологичный подход, но, к сожалению, генетика, хотя и движется вперед семимильными шагами, еще не является оформившейся и стабильной наукой. А привлекать для моделирования непонятно чего, другое непонятно что... Это тупиковый на сегодняшний день путь, что подтверждается отсутствием ярких решений в области ИИ полученных с помощью генетического подхода.
Другой путь- моделирование разумных существ (аниматов) существующих и решающих задачи в сложном мире. Реальное моделирование, в «железе», стоит очень не дешево и требует много времени. Но есть альтернативный путь: моделирование в виртуальном мире.
Таким образом, идея состоит в моделировании аниматов в виртуальной (но приближенной к реальной) среде с дальнейшим переносом наработок в реальные изделия. Моделирование необходимо осуществлять в соответствии с общебиологическими принципами предназначения интеллекта. И с постепенным наращиванием сложности обрабатывающих алгоритмов.
Этот подход к исследованию не нов. Можно, например, вспомнить фирму Microsoft, которая предложила программистам игру Terrarium. Вероятно, целью проекта был поиск идей интеллектуальных алгоритмов, однако Microsoft потерпела неудачу с данным проектом. Так как среда была поста и детерминирована, то лучшими алгоритмами оказались простые алгоритмы на основе жесткой логики, придуманные вполне интеллектуальными программистами. В предлагаемом варианте моделирования аниматов, это исключено, так как кроме цели выживания в статичных условиях ставиться цель максимальной адаптивности к изменению условий. А условия легко менять, усложняя виртуальный мир с помощью современного программного обеспечения.
Но главное достоинство предлагаемого подхода моделирования в виртуальном мире проявляется в повторном использовании элементов: виртуальных полигонов, моделей аниматов и главное повторном использовании отдельных элементов «мозга» анимата. На последнем положении стоит немного остановиться. Хотя данные современной нейронауки указывают на отсутствие локализации психических функций [5], однако наличие морфологических особенностей отдельных структур мозга, их постепенное возникновение и развитие в процессе эволюции [6], а так же последовательность возбуждения структур мозга в процессе обработки информации [7] позволяет говорить о функциональной специализации отдельных областей в общем процессе обработки информации мозгом. К такой специализации относятся сенсорные функции, функции ассоциативной, декларативной и процедурной памяти, эмоциональной сферы, планирования действий и т. д. Таким образом, становится теоретически возможным повторное использование кода обеспечивающего какие либо функции мозга анимата вместе со своими оригинальными разработками. Такой подход обеспечивает многократное ускорение сроков проверки гипотез. Ведь существуют различные гипотезы как относительно работы мозга в целом, так и относительно отдельных аспектов обработки информации мозгом. Но проверка эффективности этих гипотез на множестве классов задач в комплексном моделировании поведения анимата затруднена, так как требует недопустимо больших затрат времени на вспомогательную работу связанную с моделированием всей остальной, не оригинальной части модели (среды, проблемных ситуаций, анимата, его «мозга»).
Предлагаемый подход позволит участникам по мере накопления математического, информационного и программного обеспечения испытывать и сравнивать новые идеи в комплексе, в составе виртуальных миров, а не на отдельных ограниченных ситуациях.
Причем современные технологии распределенных систем позволяют повторно использовать сторонний программный код по вычислительной сети без фактического получения его другими лицам, что обеспечивает сохранность интеллектуальной собственности. Это открывает возможность коллективной исследовательской работы сообществом разработчиков не связанных единым административно-организационным управлением. Т.е. проще говоря, Вы можете сделать, что-то оригинальное, всем демонстрировать работу этого, другие могут использовать результаты работы вашего кода в своих опытах и никто не в состоянии использовать или видеть Ваш код, без Вашего разрешения.
В процессе поиска инструментального программного обеспечения способного обеспечивать поставленные выше задачи, автором было рассмотрено большое количество программных пакетов (около 20). Как ни странно наиболее подходящим оказался пакет 3D моделирования Blender [8].
Blender является современным, свободно распространяемым пакетом 3-х мерного моделирования с открытым программным кодом, встроенным физическим и игровым движком и возможностью управления 3D сценами из программного кода написанного на Python.
Рассмотрим некоторые достоинства и недостатки данного программного пакета. К достоинствам можно отнести:
-
кроссплатформенность;
-
бесплатность;
-
открытость кода;
-
наличие мощного сообщества разработчиков, в том числе и на территории СНГ [9];
-
активную поддержку и развитие проекта на текущий момент;
-
наличие не плохого встроенного физического движка Bullet;
-
наличие встроенного игрового движка, позволяющего вообще без программирования автоматизировать поведение объектов, в т.ч. использовать сенсоры;
-
возможность получения данных от сенсоров объектов в программу на языке программирования Python, а также возможность управления любыми объектами модели из программы;
-
слабую, но имеющуюся документированность пакета в отличии от плохо документированного пакета Microsoft Robotics Developer Studio ( в т.ч. наличие материалов на русском языке) [10];
-
хорошее качество 3D моделирования.
Совокупность этих особенностей положительно отличает пакет Blender от его ближайшего конкурента MS Robotics Developer Studio, который, видимо, по мере развития станет платным. Другим ближайшим конкурентом является известный, но очень не дешевый пакет WeBots .
К недостаткам Blender следует отнести:
-
отсутствие встроенного визуального языка программирования роботов;
-
медлительность при 3D моделировании виртуального мира с активными объектами.
Со вторым из этих недостатков сообществом разработчиков ведется активная борьба, т.к. данный пакет планируется позиционировать, в том числе как среду для разработки 3D игр. К тому же, вероятно, медлительность программ моделирующих мозг анимата будет значительно превосходить медлительность пакета Blender.
Что касается визуального языка программирования и вообще многопоточного программирования то одним из вариантов решения проблемы видится использование программного пакета Urbi 2.0 [11], который как обеспечивает многопоточность приложений, так и имеет среду для визуального программирования. В таком случае на Blender реализуется виртуальный мир и анимат (аниматы), с помощью Python реализуется сервер, позволяющий по TCP/IP получать информацию от сенсоров или изменять состояние исполнительных органов. А «мозг» анимата реализуется с помощью пакета Urbi 2.0, или любыми другими программами написанными практически на любом языке программирования способном поддерживать обмен информацией через порты протокола TCP/IP. Причем, виртуальный мир и «мозг» анимата могут работать на одной и той же или на различных ЭВМ, в том числе допустимо и управление аниматом в виртуальном мире по сети Интернет. В сущности, данный подход похож на решения фирмы Microsoft в пакете MS Robotics Developer Studio, но обладает, на взгляд автора, большей гибкостью и открытостью. Особенно обращая внимание на то, что с мая 2010 года планируется открыть исходный код проекта Urbi.
Таким образом, в настоящее время существует возможность совместного исследования, разработки и моделирования поведения аниматов в единой среде моделирования. Такая деятельность может быть распределена на добровольных началах между сообществом исследователей или групп исследователей. При этом появляется возможность для существенного уменьшения сроков проверки гипотез принципов работы мозга за счет прямого использования результатов работ других исследователей.
Литература
- Филиппов В.А. На пути к сингулярности // Газета "ПОИСК" № 3-4 от 23.01.2009. - С.8.
- Тьюринг А. М. Вычислительные машины и разум. // В сб.: Хофштадер Д., Деннет Д. Глаз разума. - Самара: Бахрах-М, 2003. - С. 47-59.
- Редько В.Г. Перспективы моделирования когнитивной эволюции // Третья международная конференция по когнитивной науке: Тезисы докладов: в 2 т. М.: Художественно-издательский центр, 2008. Т. 2. С. 576-577.
- Редько В.Г. Об исследовании когнитивной эволюции // Электронная культура: трансляция в социокультурной и образовательной среде. Под ред. А.Ю. Алексеева, С.Ю. Карпук - М.: МГУКИ, 2009. С. 99-104.
- Хомская Е.Д. Нейропсихология: Учебник. Изд.второе, доп. М.:УМК «Психология», 2002.416с.
- Савельев С.В. Происхождение мозга. - М.: ВЕДИ, 2005. - 368с. с ил.
- Иваницкий А.М. Мозговая основа субъективных переживаний: гипотеза информационного синтеза // Журн. высш. нервн.деят. 1996. Т. 46. N 2. C. 241.
- сайт сообщества Blender http://www.blender.org/
- сайт крупнейшего русскоязычного форума по Blender - http://blender3d.org.ua/
- Essential Blender (на русском языке) - http://b3d.mezon.ru/index.php/ Essential_Blender
- сайт группы разработчиков универсального робототехнического языка программирования Urbi 2.0 - http://gostai.com/