Охота на электроовец. Большая книга искусственного интеллекта - Марков Сергей Николаевич
Если рассчитать результат только по тем игрокам, которые совершили по 3000 игр (11 человек), то DeepStack выиграл у них всех в среднем 429 миллиблайндов за игру, а если сделать поправку на фактор удачи, то победы над десятью игроками из одиннадцати были одержаны со статистически значимым преимуществом и лишь над одним — со статистически незначимым (70 миллиблайндов за игру).
В том же году система Libratus, созданная в Университете Карнеги — Меллона, уверенно одолела четырёх ведущих мировых игроков в HUNL [1975]. Матчи проходили в реальном времени в ходе 20-дневного турнира, а расчёты во время игры производились на новом суперкомпьютере Bridges в Питтсбургском суперкомпьютерном центре.
Наследником Libratus стала Pluribus — система, которая в 2019 г. смогла одержать победу при игре в HUNL с шестью игроками, играя против пяти игроков, входящих в состав мировой покерной элиты [1976], [1977]. Pluribus была создана совместными усилиями учёных из Университета Карнеги — Меллона и исследователей ИИ из компании Facebook. Обе системы, Libratus и Pluribus, обучались при помощи методов обучения с подкреплением. Прежде чем соревноваться с людьми, Pluribus разыграла триллионы раздач в покер против самой себя. Хотя ни Libratus, ни Pluribus не использовали нейронные сети для оценки (вместо этого применялась более простая модель, основанная на методе k-средних для кластеризации признаков), последние публикации [1978] создателей Pluribus посвящены возможности использования глубоких нейронных сетей для замены текущей модели оценки.
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. Данные боты разрабатывались как командами разработчиков из крупных корпораций, так и отдельными энтузиастами.