Шрифт:
Интервал:
Закладка:
6.2.3.7 Игры с неполной информацией: стратегии реального времени
Впрочем, как бы ни велико было пространство состояний настольных и карточных игр, оно не идёт ни в какое сравнение с пространством состояний компьютерных стратегий реального времени. Например, в игре StarCraft при размере карты 128 × 128 консервативная оценка числа состояний для 400 юнитов (персонажей) на карте составляет[1979] (128 × 128)400 ≈ ≈ 101685, при этом коэффициент ветвления игрового дерева (рассчитываемый как число возможных действий одного юнита в степени числа активных юнитов) находится в пределах от 1050 до 10200 (в шахматах порядка 35). Ещё десять лет назад мало кто мог помыслить о том, что машины вскоре смогут без заметной форы соперничать с людьми в подобных играх. Конечно, мир StarCraft или других подобных игр по своей сложности всё ещё безнадёжно далёк от реального мира, но это определённо гигантский скачок вперёд по сравнению с классическими настольными играми.
Внимание разработчиков систем игрового ИИ в эру глубокого обучения оказалось приковано к двум популярным стратегиям реального времени: Dota 2 и StarCraft II.
Dota 2 — многопользовательская онлайновая боевая арена (multiplayer online battle arena, MOBA): две команды по пять человек сражаются на большой карте, защищая свои базы и атакуя противников. Турниры по Dota 2 славятся в мире киберспорта рекордными призовыми фондами.
В 2016 г. компания OpenAI начала разработку собственного бота для игры в Dota 2. Выбор в пользу этой игры был сделан не только из-за её популярности, но и в силу наличия версии игры для Linux, а также открытого программного интерфейса приложения (Application programming interface, API), что позволяло существенно упростить процесс разработки бота. 11 августа 2017 года бот OpenAI в прямом эфире играл против одного из наиболее известных игроков в Dota 2 — Даниила Ишутина. Бот одержал победу в двух партиях из двух.
Для обучения бота, сердцем которого служит нейронная сеть на базе LSTM из 1024 блоков, было использовано 60 000 ядер CPU и 256 GPU Nvidia Tesla K80, предоставленных облачным сервисом Microsoft Azure. Один день обучения при использовании таких колоссальных вычислительных мощностей соответствовал 300 годам игрового времени, в течение которого бот играл сам с собой. При этом использовался алгоритм обучения с подкреплением, получивший название «оптимизация на базе аппроксимации политики» (Proximal Policy Optimization, PPO)[1980]. Процесс обучения длился две недели.
На вход LSTM-сети бота поступают доступные ему сведения об игровом мире (характеристики юнита, его позиция и направление, информация об атаках, дистанции до других персонажей и т. д.), упакованные в массив из 20 000 чисел[1981]. На выходе сети формируется вектор, описывающий действие, которое необходимо предпринять персонажу[1982].
Добившись успеха в игре один на один, исследователи из OpenAI перешли к командному варианту игры (пять на пять). Результатом их труда стал бот под названием OpenAI Five. В этот раз для обучения использовались ресурсы Google Cloud Platform — 128 000 ядер CPU и 256 GPU Tesla P100. Это позволило симулировать 180 игровых лет за один день расчётов (900 лет, если считать время каждого из персонажей по отдельности).
К июню 2018 г. боты OpenAI Five научились играть в команде и смогли одержать несколько побед над командами любителей и полупрофессиональных игроков[1983]. На чемпионате The International 2018 OpenAI Five сыграли два матча против профессиональных команд, один против бразильской paiN Gaming (входящей в двадцатку сильнейших в мире), другой против команды Big God, состоящей из прославленных китайских игроков. Первый матч продолжался 51 минуту (против обычных 45 минут). Сначала боты казались дезориентированными, но к середине игры смогли превзойти людей по количеству убийств и собранного золота. Впрочем, победу всё же одержали люди: в ходе последней битвы профессионалы смогли разрушить базу противника. Игроки из Big God смогли управиться с противником за 45 минут.
Хотя боты и проиграли оба матча, представители OpenAI заявили об успехе предприятия, поскольку игра с одними из лучших игроков в Dota 2 позволила исследователям проанализировать и скорректировать алгоритмы системы на будущее. Следующая публичная демонстрация игры OpenAI Five состоялась в апреле 2019 г., когда команда ботов выиграла в Сан-Франциско серию игр «до двух побед» против чемпионов The International 2018 — европейской команды OG. Игры транслировались в прямом эфире[1984]. В том же месяце было организовано четырёхдневное онлайн-мероприятие, в ходе которого все желающие могли попытать счастья в игре против ботов. В итоге из 42 729 игр боты выиграли 38 654 (чуть более 90%).
Исследователи компании DeepMind, в свою очередь, сконцентрировали усилия на StarCraft II. В отличие от Dota 2 игроки в StarCraft II оперируют не отдельными персонажами, а целыми воюющими друг с другом армиями, в которых может быть более сотни юнитов, а также игровой экономикой, подразумевающей добычу ресурсов, строительство зданий и производство новых отрядов.
С 2010 г. в Университете Сечжона (Sejong University, 세종대학교) в Сеуле проходят регулярные соревнования по StarCraft с участием людей и машин. Надо отметить, что это весьма респектабельное мероприятие, которое проводится при поддержке различных коммерческих и общественных организаций, например Института инженеров электротехники и электроники (Institute of Electrical and Electronics Engineers, IEEE) — крупнейшей в мире ассоциации технических специалистов, насчитывающей более 423 000 членов в более чем 160 странах мира.
В 2017 г., после первых успехов бота OpenAI в Dota 2, StarCraft воспринимался многими как надёжный бастион человеческого превосходства в мире компьютерных игр. В конце октября 2017 г. на очередном турнире в Sejong профессиональный игрок в StarCraft Сон Бён-гу сразился с четырьмя ботами в первую версию StarCraft и одержал бесспорную победу со счётом 4 : 0. Данные боты разрабатывались как командами разработчиков из крупных корпораций, так и отдельными энтузиастами.
В августе 2017 г. DeepMind и Blizzard выпустили инструменты разработки ботов для StarCraft II. Также было опубликовано 65 000 записей игр. Учёный-информатик и менеджер турниров StarCraft Дэвид Черчилль предположил, что ботам понадобится пять лет, чтобы победить людей, сделав, однако, оговорку, что AlphaGo в своё время смогла