29 марта 2006
Обновлено 17.05.2023

Искусственный интеллект: не в этой жизни

Искусственный интеллект: не в этой жизни - изображение обложка

E-mail рубрики — special@igromania.ru

Искусственный интеллект. Игра с продвинутым AI. Реалистичное поведение компьютера. Мы настолько затаскали эти понятия, что почти утратили их первоначальный смысл. Ну а все-таки? Удалось ли смоделировать процессы мышления, или эта задача неразрешима в принципе? Корректно ли называть AI-алгоритмы в играх искусственным интеллектом? И вообще, что есть искусственный интеллект? И что такое искусственное сознание? Отделимы ли эти понятия друг от друга?

Вопросов море. Ответов ноль. Но это вовсе не значит, что попытка разобраться в этих непростых вопросах заранее обречена на провал. В отличие от электронных болванов, у нас есть uber-оружие — интеллект естественный. Так не побоимся же применить это оружие.

К истокам

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

Впервые понятие «искусственный интеллект» (artificial intelligence) всплыло только с расцветом кибернетики. Сам термин artificial intelligence родился в 1956 году на одноименной конференции в Стэнфордском университете, где обсуждалось решение логических, а не вычислительных задач. А в 60-х годах ХХ века подоспела и технологическая база для создания AI — первые электронные компьютеры. Тогда все были полны оптимизма и точными формулировками себя не утруждали, мол, главное — технический прогресс. Вот возрастет в ближайшем будущем мощность компьютеров, а мы тем временем научимся создавать эффективные алгоритмы для программирования интеллекта, и тогда — только держись! Наступит светлое будущее с искусственным интеллектом в придачу. И будем мы тогда попивать чаек с пряниками, в то время как роботы освободят нас от физической работы, а компьютеры — еще и от умственной. Особо красочно подобные утопические картины удавались тогдашней научной фантастике, даже советской (после того, как кибернетику в СССР исключили из списка лженаук). В концепцию сферического коммунизма в вакууме умные компьютеры и услужливые роботы вписывались идеально: кто в обществе победившего коммунизма пойдет, к примеру, чистить уборные и подметать улицы? Ясное дело, только роботы.

И хотя точного определения искусственному интеллекту никто так и не дал, в обществе сложилось представление об AI как о компьютерной имитации человеческого мышления, включая самые сложные творческие функции, но без присущих человеку недостатков — частых ошибок, забывчивости, недостаточной скорости математических вычислений и так далее. При этом вместе с мышлением умным машинам будущего автоматически приписывалось и сознание, но сознание ущербное и покорное. Лучше всего изложил тезисы «электронного рабства» Айзек Азимов в своих трех законах робототехники. Тогда же начались и первые заигрывания с темой бунта разумных машин — пощекотать подобными сюжетами нервишки было интересно и тогда, и даже сейчас (взять ту же «Матрицу»). Однако фантастические книжки и научно-популярные байки — совсем не то место, где зарыта собака.

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

Согласно вере нейрокибернетиков, в таком гипотетическом девайсе разум должен самозародиться, как мышь в куче тряпья. Или, если хотите — разум является неотъемлемым свойством подобных систем. Увы, проверить это технически невозможно даже сейчас, не говоря уже о середине XX века. Среднее количество нейронов в мозге человека — порядка 10-20 млрд. При этом существует как минимум четыре разновидности нейронов, а число связей одного нейрона с другими может достигать 20 000. Вы все еще хотите создать аппаратную модель мозга? Тогда мы идем к вам! А пока мы к вам идем, подумайте над тем, что сигналы в биологических нейронных сетях — это не двоичный цифровой код, как бы нам этого ни хотелось, а вполне себе аналоговые электрические импульсы. Ах да! На состояние нейронов, как и любых клеток, влияют еще и химические процессы. Одним словом, только для написания числа, выражающего общее число нейронных связей в мозге человека (не говоря уже о возможных состояниях этой нейронной сети), не хватило бы и годовой подшивки журнала «Игромания». Сомневающиеся могут начать с «несложного» эксперимента — возведения 10 млрд хотя бы в десятитысячную степень.

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

Оригинал и модель

Говоря о моделировании каких-либо процессов или объектов, в том числе и мыслительных, никогда нельзя забывать, что моделируемая система всегда будет отличаться от оригинальной. Это кажется вам очевидным? Тогда рассмотрим классический пример. Чем отличаются с функциональной точки зрения процессор и его программный эмулятор? Только скоростями? А если принять во внимание то, что мощности машины, на которой запущен эмулятор, достаточно для уравнивания скоростей физического процессора и эмулируемого? Будет ли в этом случае модель идентична оригиналу? Оказывается, тоже нет. Например, эмулятор копирует логическую структуру процессора, а не физическую, которая может содержать ошибки на этапе разводки кристалла или фотолитографии. Соответственно реальный процессор, в отличие от оригинала, может содержать аппаратные ошибки, влияющие на результаты вычислений. Также на работу физического процессора влияет температура в корпусе ПК, а на виртуальный — глюки в операционной системе.

Это правило несоответствия модели и оригинала универсально для всех объектов и явлений, в том числе и для моделирования интеллекта. Вопрос только в том, насколько точной для успешного моделирования AI должна быть модель тех или иных мыслительных процессов.

Черный ящик

«Алгоритмисты» в противовес нейрокибернетикам решили подступиться к проблеме AI с другой стороны — попытались смоделировать функции мышления при помощи прикладной математики и теории алгоритмов. Этих исследователей физиологическая сторона интеллекта не интересовала совсем. Те или иные функции мышления они сводили к проблеме черного ящика — плевать, что там у него внутри, главное, что поступает на вход и что получается на выходе. В идеале это должно было выглядеть так: « А ну-ка, ящик! Вот тебе “Я помню чудное мгновенье” товарища Пушкина. И чтоб к завтрашнему дню на этот текст у меня был рэп-шлягер с тремя вариантами аранжировок! Время пошло! »

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

Проблему с четким определением интеллекта пока отдали на откуп философам и психологам, а сами сосредоточились на главном — необходимых признаках, которыми обладает любой интеллект. Итак, любой интеллект должен:

1. Содержать некоторую базу знаний об окружающем мире. Ключевое слово здесь не «база», а «знания».

2. Самообучаться, т.е. пополнять базу знаний. При этом интеллект должен уметь оперировать незнакомыми, а также нечеткими, не формализуемыми понятиями, например «немного», «какая-то фиговина», «от забора и пока не задолбаетесь».

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

4. Выводить общие правила на основе частных случаев.

5. Общаться с другими интеллектуальными системами на смысловом (семантическом), а не синтаксическом уровне.

6. Иметь мотивацию.

Разбор полетов начнем с самого первого пункта. Казалось бы, что может быть проще базы знаний? Закачивай в компьютер хоть все энциклопедии мира — места хватит. Но только это будут не знания, а данные. На первый взгляд, разница между данными и знаниями неочевидна, но на самом деле она огромна. Буквы и слова в журнале — это данные. А вот то, что написано в статьях, их смысл — это уже знания. Другими словами, чтобы превратить данные в знания, их нужно связать между собой: ошейник как-то связан с собакой, игры — с компьютером, а Петя Иванов, фанат игр и владелец собаки, связан со всеми вышеперечисленными понятиями. Окей! Может быть, представить все это дело в виде гипертекста? Запросто. Но этого будет недостаточно — беспорядочный набор данных превратится лишь… в гипертекстовый мусор. Для полноты картины нужно организовать данные — скажем, в виде объектов с определенным набором свойств, функций и взаимодействий со свойствами и функциями других объектов. Похожий инструментарий предлагает объектно-ориентированное программирование, но есть все основания предполагать, что в биологических системах знания хранятся не в виде модулей на Delphi, а более изощренно.

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

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

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

В противовес замешательству искусственного интеллекта при обработке неформализованных данных, автор статьи совсем недавно наблюдал показательный пример того, как формализует подобные данные интеллект естественный, человеческий. Простейшая жизненная ситуация — табличка «Не работает» на дверях супермаркета. Не до конца ясно — что именно не работает, и уже совсем непонятно, в каких временных интервалах простирается это лаконичное «не работает»? Бойкая тетенька 45 лет в считанные секунды детерминировала эту неопределенность, начав истошно барабанить в стеклянные двери. Очень быстро из недр магазина выполз охранник и расставил все точки над i, включая даже вопрос «почему не работает?» — оказалось, внеплановая ревизия.

Первоначально считалось, что обучение — ключевое требование к интеллекту, тогда как антипод обучения — забывание — не более чем нежелательный эффект. Позже оказалось, что это совсем не так. В процессе обучения умение забывать играет не меньшую роль, чем накопление новых знаний. Почему? Во-первых, объем памяти любой системы (как компьютера, так и живого существа) ограничен. Рано или поздно лишние знания придется убирать, поэтому желательно рассортировать данные на нужные/ненужные заранее. На практике все еще сложнее. Дело в том, что кирпичики знаний далеко не равноценны по своей важности — в первую очередь интеллект обращается к самым важным с его точки зрения данным. Именно расстановка приоритетов позволяет разуму эффективно адаптироваться к окружающей среде. Например, вы можете не вспомнить сложную теорему, будучи разбуженным среди ночи… и ничего страшного не произойдет. Но если вы, стоя на скоростном шоссе, забудете, что от несущегося на вас КАМАЗа надо бежать во всю прыть, ваш сеанс адаптации к шоссе закончится весьма быстро и очень печально. Короче, обучение и систематизация знаний — штука очень сложная как в понимании, так и в реализации.

А вот с пунктами №3 и №4, несмотря на их кажущуюся заумность, все немного проще. Это классическое описание дедукции (выведения частного из общего) и индукции (выведения общего из частного). В этих областях традиционно рулят различные разделы логики, декларативные языки программирования типа Prolog и функциональные — Haskell, LISP и CLOS. В случае с нечеткими данными на помощь приходят теория вероятностей, нечеткая логика и немонотонные алгоритмы. Другими словами, индукция и дедукция достаточно неплохо поддаются алгоритмизации, что привело к ощутимому прогрессу в этом направлении, — появились эффективные экспертные системы в фармакологии, диагностике, дефектологии и так далее.

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

Настоящая же постановка задачи вообще не подразумевает описание метода ее решения:

— Сидоров! Чтоб к приезду товарища генерала казарма была выкрашена!

— Товарищ прапорщик, так краски ж нет…

— Я тебя, что, про краску спрашивал?!

— Никак нет! Разрешите выполнять?

Пункт №5 — задача смыслового общения интеллекта с другими системами — вообще-то представляет собой частный случай вышеописанных пунктов. Раз система содержит внутри себя знания (читай: смыслы), оперирует этими смыслами в дедуктивных и индуктивных алгоритмах, а также осмысленно воздействует на окружающую среду, то что помешает ей полноценно общаться вербальным (разговорным) или символьным (письменным) способом? Однако общение систем AI с человеком исследователи всегда выдвигают на первый план, поскольку без этого создание AI не имеет смысла. Зачем нам интеллект-аутист, который не хочет или не умеет общаться? Какая от него польза? Поэтому данное требование обычно выделяют в отдельный пункт. Обратите внимание, что нас интересует именно осмысленное общение, а не его имитация, каковую мы вот уже не первый год наблюдаем в чат-ботах.

И наконец, «десерт» — мотивация. Предположим, что нам удалось создать AI, полностью удовлетворяющий пунктам №№1-5. Отлично! Но почему мы решили, что он тут же радостно побежит познавать мир, взаимодействовать с окружающей средой и осмысленно общаться со своими создателями? Мы, люди, антропоморфны, и все наши действия так или иначе подчинены нашей физиологической сущности. В человеческом BIOS не просто прописан набор основных целей — поесть, поспать, переспать, постараться прожить как можно дольше и тому подобное. Этот набор целей так или иначе следует из нашей биологической природы. А какой набор базовых целей должен иметь интеллект небиологического происхождения? На данный момент ответ на этот вопрос еще никто не дал.

Что еще хуже — отсутствует ответ и на более важный вопрос. Являются ли необходимые признаки интеллекта в то же время достаточными? Может быть, мы упускаем из вида еще что-то? Например, сознание?

Узнаю бота Колю!

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

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

Но всегда ли специалисты по AI использовали именно такое определение искусственного интеллекта? Оказывается, нет, одно время между моделированием и имитацией фактически ставился знак равенства. Наверняка все слышали о тесте Тьюринга, который в упрощенном виде звучит так: искусственную систему можно назвать интеллектуальной, если при общении с человеком последний не сможет отличить ее от живого мыслящего собеседника. Это легкое, но практически бессмысленное правило прочно прижилось в широких кругах и охотно цитируется в наши дни. А чат-боты ежегодно упражняются «в сдаче» теста Тьюринга. Номинанту на первое место положена премия в $100 000 и сертификат «о разумности». Однако нынешние технологии пока не позволяют ботам бороться за первое место, и они воюют только за третье в номинации «лучший среди равных» с призовым фондом $3000.

Почему мы назвали определение Тьюринга бессмысленным? Во-первых, потому, что теоретически этот тест может пройти (и рано или поздно обязательно пройдет) именно программа-имитатор с очень большой базой заготовленных ответов и правил. С каждым годом прогресс в этой области уверенно движется вперед. С другой стороны, слесарь Петрович из ЖЭКа может и не пройти тест Тьюринга в силу слабой эрудиции и ограниченного лексикона (116 смысловых вариаций слова «ять»), что никоим образом не уменьшит его разумности.

Боты-имитаторы и экспертные системы, которые не думают в привычном нам смысле слова, а просто быстро перебирают огромную базу данных по заданным правилам — это, безусловно, интересные достижения. А как же с реализацией «настоящего» AI?

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

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

Эффект Шамблера

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

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

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

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

Еще проще устроен AI в гоночных играх и других симуляторах, в том числе в командных играх, типа футбола и хоккея (все дружно вспомнили спортивную линейку EA и смахнули скупую слезу). Именно поэтому любители спортсимов год от года жалуются на наличие читерских точек для забивания голов и получения других преимуществ над компьютером. А чего вы, собственно, хотели от несчастных автоматов без воли и желания победить и даже без возможности учиться на своих ошибках?

Возможно, в RPG и особенно в стратегиях ситуация обстоит иначе? Ведь эти жанры по определению «умнее»? Может быть, там используются не просто автоматы с обратной связью, а что-нибудь позабористее? Вынуждены вас разочаровать. Возьмем пошаговые стратегии, жанр, в котором сильный AI наиболее востребован. Почему именно этот жанр? Потому что он оперирует сложным и разнообразным игровым окружением, которое предполагает использование большого количества разнообразных тактик. Вдобавок этот жанр традиционно ориентирован на одиночный режим, в котором игроку волей-неволей приходится сражаться именно с компьютером. Какая пошаговая стратегия в первую очередь приходит на ум? Правильно, Civilization 4. Вот на ее священных мощах мы сейчас и попрыгаем.

Для начала попытаемся понять, как играют в Civilization 4 живые игроки. В большинстве случаев они концентрируют внимание на самых приоритетных направлениях развития. Как это выглядит на практике? Интеллектом формируются метазадачи (глобальные задачи), например:

— Построить максимум чудес света;

— Первыми вырваться к оракулу и либерализму, которые дают призовые технологии;

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

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

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

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

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

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

Дальше причины консервативности AI для разных жанров начинают разбегаться в разные стороны. Спортивные симуляторы привязаны к предельно жестким срокам разработки. Это безостановочный конвейер. А теперь представьте, что некто предлагает не только внести изменения в техпроцесс, но еще и увеличить длину участка ОТК раза в три. Да его просто сожрут с потрохами!

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

Опять-таки остается открытым вопрос — а нужны ли в шутерах противники, обладающие опытом игры, сравнимым с опытом живого человека? Ведь большинство представителей этого жанра — игры про супергероев, где баланс изначально сдвинут в сторону численного превосходства AI и их заведомой бестолковости. Кто будет играть в шутер, где «nobody super» и где игрока будут убивать в 9 случаях из 10 даже на минимальной сложности? Более того, в шутерах с простым окружением пока прекрасно работают и обычные автоматы с обратной связью. Вспомним хотя бы лучших ботов для Quake.

В стратегиях ситуация аналогичная — «тюнингом» баланса в сторону компьютера можно добиться тех же результатов, что и при создании обучаемого AI. В той же Civilization 4, если задуматься, нет принципиальной разницы между тем, играет ли компьютер честно или нечестно, — важен сам факт экстремальной ситуации, в которую поставлен игрок.

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

А за Facade’ом…

Как вы уже, наверное, поняли из статьи, новаторский AI в играх коммерчески неэффективен. Однако далеко не для всех разработка игры — это обязательно коммерция. Для некоторых — например, для Эндрю Мэйтиса и Майкла Штерна — это, в первую очередь, научное исследование.

Эта парочка целых пять лет работала над необычной игрой Facade … а теперь бесплатно раздает ее всем желающим (cкачать ее можно по адресу http://proceduralarts.com). Расплата за некоммерческую направленность проекта — архаичный движок, недостатки которого с лихвой компенсируются отличной озвучкой, атмосферным интерактивным саундтреком и уникальным геймплеем.

Что же такое Facade? Это адвенчура с ролевыми элементами и открытым геймплеем, и в то же время — это не столько игра, сколько интерактивная драма с множеством вариантов развития. В центре драмы — компьютерные персонажи Трип и Грэйс — с виду успешная и благополучная пара с массой комплексов и замолчанных за 10 лет брака проблем. Иначе зачем бы они стали звонить вам (старому другу семьи) среди ночи с просьбой срочно приехать к ним в гости?

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

Таким образом, Мэйтис и Штерн замахнулись ни много ни мало на моделирование общения на уровне смыслов. Результат пока еще далек от идеала, и это совершенно точно не AI в классической трактовке этого термина:

— Боб, что ты пьешь?

— Коктейль Молотова.

— Отлично, сейчас я смешаю тебе свой фирменный коктейль с красным вином.

Еще пример:

— Трип, я — серийный убийца.

— Ээээ…

— Я пришел убить тебя и твою долбанную жену.

— …

(игра зависла)

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

Я ем, значит, я существую?

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

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

Начнем с нашего старого знакомого — интеллекта. Это явление, безусловно, объективное, наблюдаемое и поддающееся измерению. Объективность заключается в том, что интеллект взаимодействует с окружающей средой, а результаты воздействия на среду двух или более интеллектов всегда можно сравнить. Петя решил задачу на пять минут раньше Миши. А Вася вообще забил на задачу и пошел пить пиво. Вот вам и простор для сравнения и соответствующих выводов. Мало того, интеллект может быть понятием интегральным — Вася принес пиво Мише, и вторую задачу они вдвоем решили на 10 минут быстрее Пети. В этом случае интеллекты Васи и Миши нужно сложить (желательно еще и умножить на пивной коэффициент).

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

Если заметить проявление интеллекта можно без особого труда, то проявление сознания — только по косвенным признакам. Как проявляется сознание? Единой версии нет.

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

Откуда такая путаница? На самом деле все вполне объяснимо. Проявления интеллекта, как уже было упомянуто, мы можем наблюдать через «побочные эффекты» — своеобразное отражение интеллектуальной деятельности в окружающем мире. По этим остаточным признакам, как физики по следам микрочастиц в барокамерах, мы можем собрать и систематизировать свойства интеллекта.

Сознание же никуда за пределы нашего «я» не выходит и следов не оставляет, поэтому любые попытки его пощупать и описать равносильны попытке описать систему средствами самой системы, что невозможно по определению. Хотите наглядных примеров? Пожалуйста — во времена отсутствия томографов и УЗИ люди не могли объективно изучить даже свою печень, пока их не препарировала система более высокого уровня в виде хирурга или палача. В строгом смысле, разумеется, врачи и палачи — это тот же системный уровень, но аналогия должна быть понятна. Жаль, что трепанация пока не дает положительных результатов по извлечению сознания.

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

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

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

Прекрасное далеко

Вопрос искусственного интеллекта нельзя рассматривать в отрыве от терминологии. В статье мы отталкивались от классических определений интеллекта и AI, выдвинутых в 1950-х годах и доработанных в 70-80-х. С точки зрения этих определений, AI пока не создан и будет создан еще нескоро, если такое вообще возможно. И это даже не касаясь проблемы сознания. А тест Тьюринга через пару лет пройдет тупой чат-бот с огромной базой знаний — точно вам говорим.

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

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

Вероятно, все это время у вас на языке вертелся вопрос: «Как скоро игровые персонажи будут меня понимать в буквальном смысле этого слова?» Ответ будет коротким: очень и очень нескоро.

Комментарии
Чтобы оставить комментарий,Войдите или Зарегистрируйтесь