Игры — это неотъемлемая часть деятельности человека. Человек играет в игры для того, чтобы учиться и развлекаться. Немудрено, что разработчики ИИ-систем обратили свой внимание и в эту область. Но надо отметить, что здесь есть несколько аспектов, что такое игры и как интеллектуальные агенты должны в них «играть».
С одной стороны есть компьютерные игры, разного рода аркады, шутеры, стратегии реального времени, квесты и тому подобные. В них игрок взаимодействует с некоторой средой, внутри которой могут обретаться эти самые интеллектуальные агенты, которые делают игру интересней. Это могут быть персонажи внутри игры, а могут быть и симуляторы других игроков. Впрочем, для некоторых игр эти категории вообще могут смешиваться.
Давайте я кратко обрисую то, что используется разработчиками интеллектуальных агентов для того, чтобы играть в игры было действительно интересно. Так называемый «игровой Искусственный Интеллект» должен именно повышать интерес к игре, завлекая игроков. Это значит, что нужно искать баланс интеллектуальности — для некоторых игр очень легко сделать агента, который будет всегда выигрывать, поэтому в этих случаях использование технологий Искусственного Интеллекта направлено на «отупление» интеллектуальных агентов и симуляцию человекоподобного интеллектуального поведения.
Если же игрок взаимодействует с внутриигровыми персонажами, которые должны показывать интеллектуальное поведение, то в этом случае такие агенты обычно делятся на три категории — неиграющие агенты, боты и мобы.
Неиграющие агенты чаще всего устроены при помощи правил и сценариев, которые исполнятся в тех или иных случаях и условиях. Такие правила и сценарии можно сделать сколь угодно сложными и разветвлёнными, что позволит показать такой уровень интеллектуального поведения, который требуется для игры.
Боты и мобы — это действующие в игре интеллектуальные агенты, действия которых обычно враждебны к игроку. Боты обладают высоким уровнем интеллекта, а мобы — низким, так как предназначены для «набивки» опыта. Для реализации этих типов интеллектуальных агентов также чаще всего используются правила и сценарии, но бывает, что на сцену выходят и новые технологии — искусственные нейронные сети и многоагентные системы.
С другой стороны есть компьютерные реализации обычных игр — шашки, шахматы и так далее. И в этом направлении сегодня достигнуты поразительные успехи в вопросе создания ИИ-систем, готовых бросить вызов человеку и даже уже побивших естественный интеллект. Давайте рассмотрим парочку примеров.
Первый пример — это шахматный суперкомпьютер Deep Blue, разработанный компанией IBM. Почему шахматы? Человека всегда интересовала эта игра не только как средство провести интеллектуальный досуг, но и как модель для изучения тактики и стратегии. Ну и кроме того, шахматы — это очень сложная игра с точки зрения перебора вариантов ходов.
Если взять такие игры, как, к примеру, «крестики-нолики», то для них можно составить полное дерево ходов, особенно если использовать средства компьютерной техники, после чего определить непроигрышную стратегию и реализовать программу, жёстко зашив в неё найденную стратегию. Для крестиков-ноликов сегодня это может сделать старшеклассник.
Намного более тяжёлой является игра в шашки, но и для неё уже программа позволяет реализовать непроигрышную стратегию. Например, компьютерная программа Chinook по словам разработчиков никогда не проигрывает человеку. Мне самому сложно это оценить, так как я не большой любитель играть в шашки, но описание алгоритма заслуживает доверия. Если довериться разработчиком, можно сказать, что шашки были похоронены в 2007 году.
Но шахматы не такие. Никакие вычислительные мощности не позволят справиться с тем комбинаторным взрывом, который порождает огромное количество вариантов ходов в каждой позиции. Просмотреть дерево решений для шахматной партии невозможно, да и никто из людей обычно этого не делает. Шахматисты каким-то особым образом смотрят на партию и оценивают её, просматривая вперёд только несколько шагов, да и то не все варианты. Это очень похоже на символьные вычисления, когда позиция на доске воспринимается как символ. Но что там в голове на самом деле происходит, не знают даже гроссмейстеры.
Однако создатели компьютера Deep Blue пошли по пути нисходящей парадигмы и создали компьютер, который перебирал дерево решений, обращался к истории игр гроссмейстеров и оценивал позиции при помощи хитрой функции, учитывавшей несколько тысяч параметров. Всё это делали специализированные шахматные процессоры, которые в параллельном режиме перебирали огромное количество позиций — в пике до трёхсот миллионов в секунду. Вы только представьте — десятки специализированных процессоров перебирают триста миллионов шахматных позиций в секунду.
И это позволило компьютеру выиграть у сильнейшего на 1997 год шахматиста планеты. Этот пример показывает нам, что методы Искусственного Интеллекта не ограничиваются нейросетями, и нисходящая парадигма в самом своём примитивном применении — эвристических поисковых алгоритмах — может дать фору самому продвинутому человеку.
Теперь давайте перейдём к следующей игре, которая, как говорят любители, ещё сложнее шахмат. Это игра го, в которой пространство решений превосходит все мыслимые объёмы. Площадь доски, количество камней, возможность ходов — всё это делает игру го в принципе непросчитываемой даже на десять ходов вперёд. Игроки говорят о том, что они как бы «видят» хорошие и плохие ходы.
При этом такого понятия, как «дебют» в шахматах, в игре го нет, есть только общие рекомендации о том, как ходить в тех или иных ситуациях. Поэтому компьютерную программу невозможно нагрузить «книгой дебютов», составленной по играм лучших игроков, как это было сделано в случае с Deep Blue. Так что долгое время считалось, что уж в го человек будет ещё очень долго обыгрывать компьютер. Даже профессионалы в области Искусственного Интеллекта говорили о появлении такой программы только к 2025 году.
И вот компания DeepMind, которую впоследствии приобрела корпорация добра Google, начала разработку ИИ-системы, которая смогла бы победить профессионального игрока в го. Разработка увенчалась успехом — в марте 2016 года программа AlphaGo выиграла у одного из самых сильных игроков мира Ли Седоля четыре партии из пяти в матче.
Внутренности этой системы в целом неизвестны, так как разработчики не стали открывать то, что находится у системы «под капотом». Тем не менее, из научных статей разработчиков известно, что здесь использованы методы машинного обучения на искусственных нейронных сетях, причём архитектура решения основана на использовании нескольких нейронных сетей различных типов, некоторые из которых вообще необходимы для обучения и подготовки системы к игре, но не используются в самой игре.
Также использовались методы нисходящего подхода, в частности метод Монте-Карло на деревьях решений. При подготовке к игре система проходила объёмное обучение, которое заключалось в проигрывании огромного количества игр со своими собственными экземплярами. В итоге к матчу AlphaGo подошла полностью обученной как на имеющихся партиях профессионалов, так и при игре сама с собой. Итог — победа над четвёртым игроком мира и дальнейшее использование некоторых находок системы в игре профессионалами.
Эти примеры показывают, что развитие технологий Искусственного Интеллекта идёт семимильными шагами. И если ещё вчера профессионалы в этой области прогнозировали один темп развития, сама технология уже сегодня показывает совсем другой — намного более быстрый. Так что всем нам надо готовиться к наблюдению прорывов в области Искусственного Интеллекта, а некоторым даже участвовать в них.