Схватка интеллектов

(Февраль 2003)

Достижим с помощью компьютера искусственный разум или нет — точно науке не известно. Однако создаваемые ныне программистами системы искусственного интеллекта встречаются в реальной жизни все чаще и чаще, причем в разумности своей они порой неотличимы от человеческого поведения.

4_games

Что нам мешает — то нам поможет

Великий английский математик Алан Тьюринг не пользовался термином «искусственный интеллект» (ИИ), поскольку при его жизни такого словосочетания в нарождавшемся компьютерном лексиконе еще не было. Но именно Тьюринг в своей статье 1950 года «Компьютерное машинное оборудование и интеллект» [1] сформулировал знаменитый, впоследствии получивший его имя тест на разумное поведение компьютера.

Тьюринг описал некую воображаемую игру, в которой человек-дознаватель попеременно общается по проводам с человеком и компьютером, находящимися в другом помещении. Задача дознавателя в том, чтобы с помощью серии вопросов определить, кто из его собеседников человек, а кто — машина.

По предположению Тьюринга, машину можно называть мыслящей, если человек-дознаватель не способен отличить ее ответы от ответов другого человека. Тогда же Тьюрингом был сделан и прогноз, что к 2000 году при пятиминутном тест-опросе компьютеры смогут вводить в заблуждение дознавателя по меньшей мере в 30% случаев.

С тех пор прошло полвека и можно говорить, что тест Тьюринга сумел породить весьма обширное поле энергичных исследований под общим названием «искусственный интеллект». Однако, хотя на сегодняшний день компьютеры поразительно эффективно решают сложнейшие задачи, в целом достаточно ясно, что прогноз Тьюринга не оправдался.

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

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

Для решения этих и других технологических проблем, досаждающих нормальной работе портала, руководство Yahoo собрало в сентябре 2000 года специальную научно-практическую конференцию. Именно здесь группа компьютерных ученых из университета Карнеги Меллона во главе с профессором информатики Мануэлем Блюмом (Manuel Blum) и предложила свое решение, вылившееся затем в проект долгосрочного сотрудничества и в ряд уже вполне конкретных результатов.

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

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

В Yahoo эту идею одобрили, и Блюм совместно с группой своих коллег-аспирантов разработал комплекс тестов-вопросов, построенных с учетом труднейших проблем искусственного интеллекта. Эти вопросы имеют такое свойство, что компьютер может сам легко их генерировать и контролировать правильность ответа, однако вот решить — не в силах.

Вопросы-тесты подобного рода разработчики остроумно назвали Captcha (www.captcha.net), что можно перевести и как «повязалово» (просторечное искажение слова Capture — «захват»), и как аббревиатуру от  Completely Automated Public Turing-test to Tell Computers and Humans Apart («полностью автоматический тест Тьюринга общего пользования для различения компьютеров и людей»).

2_gimpy

Один из таких тестов, получивший название Gimpy, состоит из семи размытых, наезжающих друг на друга слов, которые выбираются случайным образом из словаря простой лексики. Для решения загадки требуется идентифицировать 3 из 7 слов и напечатать их в контрольном окошке. Создана также и упрощенная версия Gimpy — единственное деформированное по внешней форме слово, представленное на сложном фоне.

Сейчас этот тест является частью процесса регистрации портала Yahoo, аналогичные тесты реализованы и многими другими порталами, включая, к примеру, российский Mail.ru. Другая головоломка Captcha, под названием Sounds, состоит из искаженных, сгенерированных компьютером звуков, содержащих в себе некое слово или последовательность цифр. Для прохождения этого теста пользователь должен прослушать аудиофайл и напечатать услышанное слово или цифры в контрольном окне.

Игры для взрослых

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

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

Общеизвестно, что довольно долго главной заботой создателей игр было достижение реалистичной и подробно детализированной 3D-графики. Когда же уровень программного и аппаратного обеспечения позволил это сделать, а вычислительный ресурс процессора высвободился для новых задач, встал вопрос о наделении игр более смышленым интеллектом. Произошло это примерно в середине 1990-х годов, и с той поры малочисленная прежде секция ИИ на ежегодной Международной конференции разработчиков игр (Game Developers Conference, GDC) стала расти как  на дрожжах.

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

По свидетельству одного из таких ученых, Сорена Джонсона (Soren Johnson), разработка искусственного интеллекта в академической среде и в игровой индустрии отличаются весьма существенно. Сорен Джонсон работает в компании Firaxis и отвечал за систему ИИ в популярной игре-стратегии Civilization III. По его словам, создание ИИ в игре — это словно большой цикл: сделать небольшой фрагмент ИИ, посмотреть его в работе, внести улучшения, опять посмотреть в работе, затем снова и снова улучшить-проверить.

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

По свидетельству другого эксперта, Стивена Рэбина, одна из наиболее сложных вещей при создании систем ИИ в играх — это сделать так, чтобы игра ни при каких обстоятельствах не выглядела тупой. Стив Рэбин — составитель и редактор любопытного сборника «Премудрости программирования ИИ в играх» [2] (www.aiwisdom.com), где собрано более 70 статей и историй разработчиков, непосредственно занятых в данной области.

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

Когда в этих двух технологиях что-то начинает идти не по плану, то внести локальные исправления оказывается крайне непросто. Здесь действует принцип «все или ничего» — нельзя удалить какой-то элемент, не нарушив при этом всю уже созданную красоту. При жестких планах выпуска продукта в продажу это обстоятельство оказывается чрезвычайно критичным.

А потому в игровой индустрии доминирует прагматичный подход, так что на конференции GDC-2002 доклады и презентации разработчиков были явно сфокусированы не столько на революционных новациях, сколько на усовершенствовании уже хорошо обкатанных технологий. Две наиболее популярных на сегодня системы ИИ в играх — это машины с конечным числом состояний и сценарии-скрипты.

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

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

3_automat

Проще всего пояснить функционирование конечного автомата в игре на примере иллюстрации, где на игрока нападает вражеский монстр-охранник с мечом. Монстр начинает из состояния «Ждать», когда со 100-процентным здоровьем дожидается появления в поле зрения игрока. После чего переходит в состояние «Нападение» и устремляется к гостю, когда же расстояние снижается до определенного уровня, монстр переходит в режим «Атака» и пытается угробить игрока мечом. Если это удается — режим «Победный танец», игра окончена, увы. Но если же в ходе атаки умелому игроку удастся подорвать здоровье монстра до уровня меньше 20%, то охранник переходит в режим «Бегство» и пытается спасти то, что от здоровья осталось. Бегство может закончиться либо гибелью монстра, либо его исчезновением из поля зрения игрока — в этом случае происходит автоматическое переключение в режим «Ждать».

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

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

Но могут быть и скрипты весьма изощренных в интеллекте персонажей, реализующие или самостоятельный конечный автомат с большим числом состояний, или иной, более экзотический тип системы ИИ. Сценарии могут быть написаны как на специализированных языках, созданных под конкретную игру, так и на стандартных языках общего назначения, типа Perl или Java. Ради быстродействия скрипты на таких языках обычно никогда не интерпретируются в ходе игры, а компилируются заранее и встраиваются в потоки команд низкого уровня, работающих непосредственно с движком.

Смешались в кучу орки, люди

Те же самые по сути технологии ИИ все активнее используются в кинематографе для съемки массовых, особенно батальных сцен. На волне феноменального успеха киноэпоса «Властелин колец» особо известны в этой области стали новозеландская программа Massive (www.massivesoftware.com) и ее создатель Стивен Риджелус (Stephen Regelous).

1_zast

Именно с помощью этого программного обеспечения, наделяющего собственным (пусть и не особо глубоким) интеллектом каждого виртуального персонажа в толпе, киностудией Weta Digital были созданы и грандиозная битва в прологе первой части «Братство кольца», и гигантское сражение в Хельмовом ущелье для второй части кинотрилогии. Несмотря на астрономический бюджет нынешних голливудских постановок, нужная в сценах пролога битва, к примеру, где в схватке сходятся порядка 70 тысяч сложно одетых, загримированных и вооруженных воинов, была совершенно неподъмна для реальной постановки. Поэтому режиссер картины Питер Джексон и обратился за помощью к земляку Риджелусу, с которым ему уже доводилось сотрудничать в фильме The Frighteners.

Риджелус решил, что каждый персонаж в виртуальной массовке должен наделяться своим собственным «мозгом» и множеством выборов, потому что при создании реалистичной толпы самое главное — это сделать реалистичным поведение каждого отдельного агента. Поэтому в программе Massive интеллект всякого агента сам определяет, что его персонаж видит и слышит, как быстро надо двигаться и насколько медленно надлежит погибнуть.

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

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

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

Поэтому в результате программу Massive с успехом применяют не только для съемки батальных сцен, но и для изготовления виртуальных дублеров киноартистов, и для реалистичного моделирования поведения птичьих стай. Удачная имитация программой естественных природных процессов приводит к тому, что в комбинированных сценах битв нового фильма «Две твердыни» даже эксперты далеко не всегда  могут отличить реального человека-статиста от его виртуального коллеги.

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

# # #

[1] Turing A. M., «Computing Machinery and Intelligence»,  Mind, October 1950,  p.433-460.
[2]  Steve Rabin (Editor), «AI Game Programming Wisdom», Charles River Media, 2002