Досье искусственного интеллекта. Часть 2.
Сергей Бобровский
Программные технологии для роботов
При создании роботов применяется самое разное компьютерное оборудование, нередко требующее низкоуровневого программирования. Для облегчения этой задачи создано немало программных систем. Исследовательская лаборатория Массачусетского технологического института свободно распространяет интерпретатор языка Interactive-C, ориентированный на быстрое выполнение команд и поддержку нескольких процессов, что особенно актуально при разработке робототехнических комплексов. Интерпретатор доступен по адресу: ftp://cher.media.mit.edu/pub/projects/interactive-c/.
Компания Parallax предлагает бортовой компьютер для роботов, который выполняет программы, написанные на Parallax BASIC (версии Бейсика),и поддерживает набор стандартных интерфейсов. В ОЗУ компьютера помещается 600 строк кода, а процессор выполняет 4 тыс. инструкций в секунду.
Фирма NetMedia выпускает более совершенную систему – диалект Бейсика (www.basicx.com), представляющий собой подмножество Microsoft Visual Basic. Микрокомпьютер NetMedia с ОЗУ объемом 64 Кб и многозадачной ОС выполняет команды со скоростью 100 тыс. операторов в секунду. Он использовался, например, при создании робота Fluffy 2, способного самостоятельно обнаруживать и обходить препятствия. При этом программа управляет работой 12 сервомоторов и обрабатывает показания ультразвукового датчика.
Одна из ведущих фирм – разработчиков роботов IS Robotics предлагает на рынке открытую программную архитектуру для управления робототехническими системами на основе технологии CORBA – MOBILITY Robot Software Development Environment Package. Это набор готовых компонентов для конструирования управляющих систем. Графическая оболочка среды разработки выполнена на Java, а само программирование ведется на языке L – усовершенствованном диалекте Common Lisp, поддерживающем параллельное выполнение и синхронизацию работы множества процессов, что необходимо при создании роботов с несколькими системами управления движением и анализа информации от различных периферийных датчиков.
Похожими работами занимается фирма RWI Division, автор так называемой "центральной нервной системы для роботов" uFLEX, связывающей все периферийные блоки робота с единым компьютерным модулем. На основе технологии uFLEX были созданы шагающий робот Ariel для подводного разминирования, набор небольших подводных лодок, имитирующих подвижность и маневренность стай рыб, робот Holon с 36 степенями свободы, несколько серий роботов STRIDE для выполнения разведывательных действий в областях со сложным рельефом, в городской местности и т. д.
Автономные агенты
Технологии автономных агентов привлекательны прежде всего тем, что позволяют разработчику, не знающему точного способа решения задачи или оптимальных параметров управления процессами, обойтись минимумом усилий, создав только один прототип агента, содружество которых затем запускается в компьютерную среду (например, в распределенную сеть) и достаточно эффективно выполняет черновую переработку информации, адаптируясь к окружающей среде и постепенно достигая поставленной цели.
В Колумбийском университете создана система JAM, предназначенная для анализа безопасности проведения электронных транзакций. Центральная самообучающаяся система, первоначально использующая набор шаблонов аномальных ситуаций, следит за изменением содержимого больших и быстро растущих распределенных БД в реальном масштабе времени, выявляя типичное для конкретной организации "поведение" транзакций. За возможными неисправностями и отклонениями в работе следят локальные агенты, также способные к обучению. Они передают накопленные сведения в главную систему, принимающую стратегические решения. Агенты могут объединяться в группы и превращаться в метаагенты, синтезирующие конкретные модели обучения своих подопечных.
Продолжаются работы над технологией Microsoft Agent, вводящей в Windows интерактивные персонажи, с которыми можно общаться и советоваться. Этот подход предполагает принципиально новый интерфейс взаимодействия человека и компьютера (более подробно см. http://msdn.microsoft.com/workshop/imedia/agent/).
Но наиболее перспективным сегодня считается применение интеллектуальных помощников для выполнения всевозможных операций поиска и сбора информации в Интернете – пока это всевозможные сетевые агенты (пауки, Web-роботы), индексирующие данные в Интернете. Однако стремительный и хаотический рост Web-пространства требует новых подходов для отбора нужных сведений. Новые поколения интеллектуальных автономных агентов подходят для этого как нельзя лучше – они способны самообучаться, эффективно взаимодействовать друг с другом и проявлять определенную самостоятельность при общении с клиентом.
Одни разработчики считают, что агент должен делать за пользователя в Интернете все – надо просто послать его за нужной информацией или файлом, и он принесет его "на блюдечке". В более глобальной перспективе предполагается перенести на агентов и работу по электронной коммерции, когда продавцами и ассистентами будут выступать программы, а людям остается только подсчитывать прибыль. Идея хорошая, но пока для ее реализации нет подходящих ресурсов. Нужны мощные суперкомпьютеры, распределенные хранилища данных, эффективные низкоуровневые технологии поиска и ОС, поддерживающие выполнение мобильного кода.
Определенные шаги в этом направлении делаются. Когда появилась технология Java, группа OMG разработала Mobile Agent System Interoperability Facility – требования к протоколу общения агентов. Развивает эти идеи, в частности, японское отделение IBM, создавшее библиотеку разработчика Java-агентов (аглетов) Java Aglets SDK (www.trl.ibm.co.jp/aglets), в основу которой положен переделанный из Sun’овского слогана "пишется однажды, работает везде" новый: "пишется однажды, передвигается везде".
Немалую активность в создании агентов для Интернета проявляет DARPA. Оно разработало протокол обмена знаниями и основанный на нем язык общения агентов Knowledge Query and Manipulation Language (KQML), также пригодный для применения в интеллектуальных решателях.
Интересное направление в области автономных агентов родилось с развитием языка XML. На его основе сегодня создаются XML-агенты, способные по запросу предоставлять информацию из произвольных источников данных. Немаловажно, что в отличие от Java-технологии, когда для выполнения байт-кода требуется JVM-машина, XML-агенты описываются единственным тегом <AGENT>, используют всего три типа объектов – "ввод", "вывод" и "ошибка" и содержат набор рецепторов для общения со своими "коллегами". Агенты могут применять любой доступный язык сценариев (или специально разработанный XMLScript), а также CGI-программы – в зависимости от возможностей сервера, на котором они выполняются. Главное, чтобы локальные программы стандартно обрабатывали три типа объектов.
Если классические агенты путешествуют по Сети сами, то XML-агенты лишь обмениваются сообщениями и данными с другими агентами с помощью HTTP-запросов, что позволяет создавать сколь угодно сложные структуры автоматического хранения и управления данными.
Нейронные сети
Буквально за последние несколько лет ИТ достигли уровня, при котором наконец стало возможным создание больших нейронных сетей. Появились новые процессоры, параллельные системы и соответствующее ПО, что позволило использовать нейротехнологии в коммерческих целях.
Абердинский университет создал кластер из 256 RISC-процессоров, способных формировать 2,4 трлн. связей между нейронами в секунду при среднем времени обучения 0,45 с. Некоторые тестовые примеры, требовавшие 10 ч работы на станциях SGI, теперь выполняются в кластере за 1 с.
Фирма Axeon выпустила самообучающийся процессор, применяемый в устройствах мобильной связи для повышения качества передачи, в системах навигации, распознавания изображений, обнаружения отклонений от нормальной работы, что особенно актуально для финансовых организаций.
В мозгу человека примерно 1 трлн. нейронов с огромным числом соединений между ними. Смоделировать такую систему на компьютере пока невозможно, а вот сымитировать поведение более простых существ, например нематоды, имеющей всего 302 нейрона, уже не представляет сложности. Кливлендский университет выполнил такую работу, и процесс поиска компьютерной нематодой пищи в лабиринте полностью совпал с аналогичным процессом, выполняемым живым прототипом. Следующий проект исследователей – создание виртуального таракана, у которого нейронов побольше.
Компания Bittco Solutions (www.bittco.com) предлагает продукт NetReality – хранилище документов, способное с помощью нейронных технологий выделять семантические связи между словами и их комбинациями ("геномы" документов). На основе NetReality реализован Web-портал, учитывающий интересы конкретных пользователей и облегчающей поиск в Интернете нужной информации.
Компания Intelligenesis (www.intelligenesis.net) разработала самоорганизующуюся систему WebMind. Она пытается "осознать" смысл информации в сети (пока локальной) и ответить на вопросы пользователей. WebMind – нечто среднее между хранилищем данных и средством поиска и анализа. Первоначально происходит процесс самообучения на реальных данных с применением нейронных сетей, затем формируется набор семантических сетей, а автономные агенты создают или уничтожают связи между их узлами (строками в БД, документами и т. п.). Анализируются последовательности обращений пользователей к данным и выполненные переходы между ними для выявления скрытых связей. На основе WebMind и технологии объединения мобильных устройств Sun Jini планируется создавать самоорганизующиеся сети Java-процессоров.
Корпорация Symantec лицензировала нейронную технологию IBM для контроля за попытками вирусного заражения загрузочных секторов.
Клеточные автоматы
Клеточные автоматы (КА) применяются сегодня в самых разных областях. Основным преимуществом данной технологии считается самостоятельное развитие системы и теоретическая возможность создания самовоспроизводящихся автоматов, которую Фон Нейман доказал в своей классической статье Theory of Self-Reproducing Automata (такой автомат требует десятков тысяч ячеек, каждая из них может находиться в одном из 29 состояний).
КА обладают тремя основными характеристиками: параллелизм (состояние всех ячеек меняется одновременно), локальность (состояние конкретной ячейки зависит только от состояния ее ближайших соседей) и гомогенность (homogeneity) – подчинение одному набору правил (чаще всего элементарному) для всех ячеек.
Делятся КА на четыре категории:
- точечные области (система переходит в статическое состояние после короткого времени функционирования);
- цикл (периодическое повторение состояний);
- хаотическое состояние (постоянные непредсказуемые изменения системы);
- структурное состояние (упорядоченное нестабильное поведение, пример – игра "Жизнь" Джона Конвея).
Благодаря простоте характеристик КА удается создавать специализированные и высокопроизводительные КА-процессоры. Они применяются для моделирования потоков физических частиц, развития экологических систем и городов, для шифрования, обработки изображений и т. д. Как правило, КА используются в связках с технологиями генетических алгоритмов и нейронных сетей.
Искусственная жизнь
Вопросы создания кибернетических устройств – полностью электронных или построенных на базе живых существ и способных эффективно выполнять присущие человеку действия, как интеллектуальные, так и двигательные, – привлекают активное внимание разработчиков, потому что сулят прекрасный возврат инвестиций.
Пока ИТ только развивались, в этой области главенствовал подход, основанный на создании управляющих алгоритмов для конкретного применения, что позволило, например, наладить массовый выпуск настраиваемых роботов-сборщиков. Современный подход опирается на теории адаптивных систем и эволюционного развития. В соответствии с ним предполагается, что устройства управления должны самостоятельно мутировать и развиваться: менять число и положение различных датчиков, свою форму и размеры и т. п.
Один из финансируемых DARPA проектов – система сборки конструкций из кубиков Лего, состоящая из манипулятора, видеокамеры и компьютера. Исходно в нее заложены только элементарные правила стыковки кубиков и цель – конечное сооружение, после чего система начинает пробовать различные комбинации кубиков, экспериментально определяя прочность и стабильность различных собираемых структур и выполняя несложную оптимизацию процессов сборки. Пока за один день системе удается самостоятельно собирать конструкции типа двухметровых игрушечных мостов и кранов, способных поднимать груз весом в полкилограмма. Самое главное, что эти конструкции отвечают всем инженерным требованиям по надежности, о которых система и не подозревает. Следующая цель разработчиков – подобным путем автоматизировать сборку системой себе подобных роботов.
Мичиганский университет создал программу, моделирующую процессы эволюции организмов. Экспериментируя с ней, ученые пришли к выводу, что мутации в ряде случаев приводят к резкому повышению жизнестойкости виртуальных существ, причем она достигается не просто сложением качеств. Более жизнеспособными оказались существа, способные сопротивляться множественным мутациям. Некоторое удивление исследователей вызвало то, что выживают более простые организмы (по мнению автора статьи, это в определенной степени закономерно – эволюционная теория не может объяснить, почему в природе должно происходить развитие от простого к сложному, ведь таракан более жизнеспособен, чем обезьяна, а камень более "жизнестоек", чем любое живое существо).
Тем не менее множество экспериментов над цифровыми насекомыми помогло не только понять детали механизма мутаций, но и определить правильные подходы к воздействию на этот процесс, что весьма актуально, в частности, для генной инженерии. Например, программа Avida, моделирующая процессы в чашках Петри, позволила в ряде задач по выделению генотипов повысить их эффективность в миллионы раз. Финансирует эти исследования корпорация Microsoft и Национальный научный фонд США.
Другой проект Microsoft – Microsoft Ball – предназначен для моделирования эмоциональных состояний личности. В соответствии с ним программа должна определять эмоциональное состояние пользователя и менять способ общения с человеком. Учитывая негативное отношение общества к возможной агрессивности компьютеров, реакция системы при потенциально опасных для нее действиях будет пассивной – например, голос, которым комментируется работа и выдаются советы, сменится с женского на мужской.
Microsoft Ball основан на результатах экспериментов, показывающих, что люди, получающие эмоциональный отклик и реакцию на их действия от программы, значительно дольше работают с компьютером, чем те, кто использует "молчаливые" приложения.
Проблемы агрессивного поведения волнуют, конечно, военных. Они планируют применять технологии распознавания уровней агрессии (чтобы определить, какие объекты надо уничтожать в первую очередь) в автономных устройствах. Хорошо подходят для решения подобных задач, например, байесовские сети.
Общение с человеком на естественном языке – задача, волнующая ученых уже 30 лет. Тогда была разработана программа Eliza объемом 240 строк на Лиспе. Она выделяла ключевые слова во фразах, строила на их основе простые вопросы и создавала неплохую иллюзию реального диалога. Большинство сегодняшних разработок действуют по тому же принципу, – определяют ключевые слова и их комбинации без понимания смысла.
Однако имеются программы на основе иных принципов. Так, компания Artificial Life (www.artificial-life.com) выпускает набор продуктов, использующих технологии ИИ.
Сервер приложений Klone Server поддерживает работу автономных агентов (интерактивных персонажей), которые общаются с посетителями сайта на естественном языке. Пока они способны отвечать на 20% вопросов, что обеспечивает 80% всех потребностей посетителей в информации.
Агенты могут решать различные проблемы общения, основываясь на системе логического вывода, имеющей несколько уровней синтаксического анализа фраз, слежения за контекстом разговора и понимания отдельных слов. Способность поддерживать беседу и понимать, куда клонится разговор, очень важна – она позволяет вносить в процесс общения эмоциональные составляющие, например при реакции агентов на трудные вопросы. Агенты могут также определить предпочтения посетителя, обращаясь к базе знаний о структуре сайта. Клиент-серверная версия Klone Server на 50 одновременно работающих с агентами посетителей стоит $2499.
Модуль Messenger выполняет автоматический анализ и обработку поступающей электронной почты и способен самостоятельно отвечать на письма или перенаправлять их на другие адреса в зависимости от смыслового наполнения.
Модуль KnowledgeManager формирует смысловую карту корпоративных документов и семантические взаимосвязи между ними.
Модуль SalesRep составляет пользовательские профили, анализируя траектории путешествия людей по сайту и результаты общения с агентами. Эти профили предназначены для применения в системах электронной коммерции.
Модуль CallCenterAgent позволяет создавать интеллектуальные центры обслуживания, способные в автономном режиме без участия человека выдавать быстрый ответ на обращение по телефону или электронной почте.
Модуль Portfolio Manager определяет типичные интересы человека и предпочтительные для него способы общения (телефон, пейджер, почта), а также вероятность продажи ему того или иного продукта.
Биотехнологии
Перспектива использования биологических объектов для получения программируемых систем привлекает множество ученых. В организме человека действуют самые разные биологические моторы, они переносят молекулы кислорода по кровеносным сосудам, выталкивают пыль из легких, заставляют руки и ноги сгибаться и т. д. Правда, как эти моторы работают, до сих пор далеко не всегда известно.
Бостонский колледж сообщил о создании мотора внутри живой клетки, который состоит из 78 атомов. Источником энергии для мотора, своеобразным аккумулятором служит живой организм (сразу вспоминается фильм "Матрица"). Правда, пока то, что получилось, работает весьма грубо и, по словам одного профессора, напоминает скорее молекулярный трактор.
Вейсманнский научный институт этим летом предложил универсальную технологию биомолекулярного компьютера, функционирующего на основе живой клетки. Принцип действия этого компьютера напоминает машину Тьюринга – одни молекулы играют роль ленты, другие задают правила ее обработки, реализуемые с помощью химических взаимодействий. Предполагается, что это достижение позволит создавать программируемые лекарства.
Лос-Анджелесский университет в сотрудничестве с исследовательской лабораторией компании Hewlett-Packard сообщил о первых достижениях в области молекулярных процессоров. Ученые смогли создать группу молекул, работающую по принципу транзистора. Как обещается, в крупинке песка удастся реализовать мощь 100 рабочих станций.
Игрушки
Роботы активно используются и в индустрии развлечений. С октября компания MGA Entertainment продает интерактивного медведя Koby, который благодаря встроенной микросхеме распознавания речи RSC-264T и нейрочипу способен общаться с ребенком, произносить десятки фраз, выполнять 400 последовательностей движений и проявлять 17 видов активности; он может даже попросить, чтобы с ним поиграли или его погладили.
Не снижается интерес к технологиям ИИ со стороны разработчиков игр. Однако коммерческие игры с компьютерными персонажами, действующими сколько-нибудь осмысленно, еще не появились. Рост спроса на игры с большим числом таких персонажей заставляет программистов реализовывать самые разные алгоритмы для имитации развития виртуальных существ – генетические и нейронные, нечеткой логики и адаптивного поведения, но пока получается это у них плохо. Первые серьезные результаты появятся, очевидно, года через два-три. Сегодня же стоимость более-менее приличного игрового мотора для компьютерных персонажей значительно превышает стоимость графического ядра для 3D-игр. Поэтому в некоторые игры (Unreal, Wisdom of Kings – The Twilight War, Civilization: Call to Power) встраиваются скрипт-языки, описываются открытые интерфейсы для подключения DLL-библиотек, чтобы позволить сторонним разработчикам реализовывать собственные алгоритмы.
Сотрудничают с создателями игровых алгоритмов ИИ военные организации и НАСА, потому что проблемы формирования поведения автономных устройств в сложных условиях при отсутствии с ними связи (например, на других планетах) аналогичны проблемам программирования боевых единиц во всевозможных стратегиях реального времени и ролевых играх, проводимых на огромных виртуальных пространствах.
В свою очередь академические и военные исследования также не остаются без внимания разработчиков игр. Так, в игре Panzer General 3 реализованы алгоритмы из реальных боевых симуляторов, учитываются тактико-технические характеристики настоящей военной техники (вплоть до анализа угла столкновения снаряда с броней танка), которые, впрочем, даже на хороших компьютерах пока требуют пятиминутного ожидания хода программы.
В заключение надо сказать, что, по всей вероятности, революций в технологиях искусственного интеллекта в обозримом будущем не произойдет, а их развитие будет напрямую связано с ростом производительности компьютеров и объемами привлекаемых человеческих ресурсов.