ПРИМЕНЕНИЕ АЛГОРИТМОВ МАШИННОГО ОБУЧЕНИЯ В КОМПЬЮТЕРНОЙ МНОГОПОЛЬЗОВАТЕЛЬСКОЙ ОНЛАЙН-ИГРЕ DOTA 2
Конференция: CLXXXII Студенческая международная научно-практическая конференция «Молодежный научный форум»
Секция: Технические науки
CLXXXII Студенческая международная научно-практическая конференция «Молодежный научный форум»
ПРИМЕНЕНИЕ АЛГОРИТМОВ МАШИННОГО ОБУЧЕНИЯ В КОМПЬЮТЕРНОЙ МНОГОПОЛЬЗОВАТЕЛЬСКОЙ ОНЛАЙН-ИГРЕ DOTA 2
Аннотация. По сравнению с предыдущими этапами развития искусственного интеллекта, сложные видеоигры начинают отражать сложность и непрерывность реального мира. Игра DOTA 2 представляет проблемы для обучения с подкреплением из-за больших временных горизонтов, частичной наблюдаемости и большой размерности пространства наблюдения и действия. Правила DOTA 2 также сложны - игра активно разрабатывалась более десяти лет, а игровая логика реализована в сотнях тысяч строк кода. Ключевым решением этой сложной среды было масштабирование существующих систем обучения с подкреплением до беспрецедентного уровня с использованием тысяч графических процессоров в течение нескольких месяцев. Была создана распределенная система обучения, которую использовали для обучения агента, играющего в DOTA 2, под названием OpenAI Five. В апреле 2019 года OpenAI Five победила чемпионов мира по DOTA 2 (Team OG 1), впервые система ИИ победила чемпиона мира по киберспорту 2. OpenAI Five выиграла 99,4% из более чем 7000 игр.
Ключевые слова: компьютерные игры, Dota 2, нейронные сети, нейросети, боты, OpenAI Five.
Долгосрочная цель искусственного интеллекта - решать сложные задачи реального мира. Игры служили ступеньками на этом пути на протяжении десятилетий - от нардов (1992) до шахмат (1997) и Atari (2013) [1–3]. В 2016 году AlphaGo победила чемпиона мира по Go, используя глубокое обучение с подкреплением и поиск по дереву Монте-Карло [4].
В последние годы модели обучения с подкреплением (RL) решали такие разнообразные задачи, как роботизированные манипуляции составление текстов и видеоигры, такие как Starcraft и Minecraft [5].
OpenAI Five - модель, обученной достичь профессионального уровня и превзойти реальных игроков в игре DOTA 2. DOTA 2 - популярная многопользовательская онлайн-игра на боевой арене (MOBA), в которой играют две команды по пять игроков. вторгаться на базу врага, управляя персонажами с уникальными заклинаниями и способностями на фиксированной карте. Игра обеспечивает конкурентную среду для тестирования поведения при планировании благодаря интересу профессиональных игроков и средней продолжительности игры 40 минут. Модель OpenAI Five состоит из пяти LSTM - рекуррентных нейронных сетей с долгой краткосрочной памятью, каждый из которых управляет определенным персонажем DOTA 2 в команде и обучается с использованием алгоритма обучения PPO в играх с самостоятельной игрой с текущими или прошлыми версиями параметров модели. Цель использует очень высокий коэффициент дисконтирования (γ = 1 - 6300 ≈ 0,999841), чтобы серьезно повлиять на будущие награды (разрушение башен, победа в игре) и от краткосрочных выгод (фарм, убийства). Поступая таким образом, авторы смогли обучить модель играть в часовые игры, в то время как обратное распространение было только через 16 временных шагов или 2,1 секунды игрового времени.
Несмотря на то, что OpenAI Five был обучен с помощью методов обучения с подкреплением без моделей и без иерархических представлений правдоподобных последовательностей действий, было замечено, что он был способен передавать свои знания через изменения в игровой среде, а также обобщать свое усвоенное поведение в отношении игроков-людей. Этот уровень устойчивости подразумевает существование некоторой изученной абстракции фундаментальной игровой механики, которая позволяла агенту адаптироваться к игровым состояниям, которых он никогда раньше не видел.
Компьютер оценивает вероятность победы еще на стадии выбора героев. Он проанализировал более 11 миллионов различных матчей заранее, поэтому точно знал, с какими персонажами будет проще победить. (рисунок 1)
Рисунок 1. Карта DOTA 2 с позиции бота OpenAI
Бот OpenAI просчитывает свои действия на шесть секунд вперед и моментально меняет планы, как только ситуация на карте меняется. OpenAI предсказывает происходящее на карте на восемь минут вперед. Его прогнозы касаются: 1) целостности оборонительных вышек; 2) убийств врагов и смертей союзников; 3) количества добитых крипов.
В DOTA 2 используется квадратная карта, где две команды защищают базы в противоположных углах. База каждой команды содержит структуру, называемую древней; игра заканчивается, когда один из этих древних уничтожается противоположной командой. Команды состоят из пяти игроков, каждый из которых управляет отрядом-героем с уникальными способностями. Во время игры у обеих команд есть постоянный поток небольших юнитов, неконтролируемых игроками, которые идут к вражеской базе и атакуют любые юниты или здания противника. Игроки собирают ресурсы, такие как золото, у крипов, которые они используют для увеличения силы своего героя, покупая предметы и улучшая способности.
Чтобы играть в Dota 2, система искусственного интеллекта должна решать различные задачи:
Долгие горизонты времени. Игры Dota 2 работают со скоростью 30 кадров в секунду в течение примерно 45 минут. OpenAI Five выбирает действие каждый четвертый кадр, что дает примерно 20 000 шагов на эпизод. Для сравнения: в шахматах обычно 80 ходов, в го - 150 ходов.
Частично наблюдаемое состояние. Каждая команда в игре может видеть только часть игрового состояния рядом со своими юнитами и зданиями; остальная часть карты скрыта. Сильная игра требует умозаключений, основанных на неполных данных, и моделирования поведения оппонента.
Люди взаимодействуют с игрой Dota 2 с помощью клавиатуры, мыши и монитора компьютера. Они принимают решения в режиме реального времени, обдумывают долгосрочные последствия своих действий и многое другое. Движок Dota 2 работает со скоростью 30 кадров в секунду, OpenAI Five работает только с каждым 4-м кадром, называемое временным шагом. На каждом временном шаге OpenAI Five получает наблюдение от игрового движка, кодирующее всю информацию, которую может видеть игрок-человек, такую как здоровье юнитов, положение и т. д. Затем OpenAI Five возвращает дискретное действие в игровой движок, кодируя желаемое движение, атаку и т. д. Определенная игровая механика контролировалась логикой, написанной вручную, а не политикой: порядок, в котором герои покупают предметы и способности, контроль над уникальным курьером и предметы, которые герои оставляют в резерве. Некоторые свойства окружающей среды были рандомизированы во время обучения, в том числе герои в игре и предметы, которые герои купили. Достаточно разнообразные обучающие игры необходимы для обеспечения устойчивости к широкому спектру стратегий и ситуаций, возникающих в играх с противниками-людьми.
Система определяет политику (π) как функцию от истории наблюдений до распределения вероятностей по действиям, которую параметризируется как рекуррентная нейронная сеть с приблизительно 159 миллионами параметров (θ). Нейронная сеть состоит в основном из однослойного LSTM размером 4096 единиц (см. рисунок 2).
Рисунок 2. Упрощенная архитектура нейронной сети OpenAI
Состояние LSTM проектируется для получения результатов политики (действия и функция значения). Каждый из пяти героев в команде управляется копией этой сети с почти идентичными входами, каждый со своим собственным скрытым состоянием. Сети предпринимают разные действия из-за того, что часть результатов обработки наблюдения показывает, какой из пяти героев находится под контролем. LSTM составляет 84% от общего количества параметров модели.
Отдельные копии одной и той же функции политики (с идентичными параметрами θ) используются для управления каждым из пяти героев в команде. Поскольку видимая информация и туман войны (область, которая видна игрокам из-за близости дружественных юнитов) являются общими для всей команды в Dota 2, наблюдения почти идентичны для каждого героя.
Вместо использования пикселей на экране, аппроксимируется информация, доступную игроку-человеку, в наборе массивов данных. Модель может видеть всю доступную информацию одновременно на каждом временном шаге, тогда как человеку необходимо активно щелкать мышью, чтобы увидеть различные части карты и модификаторы статуса. OpenAI Five использует это семантическое пространство наблюдения по двум причинам: во-первых, потому что цель состоит в изучении стратегического планирования и принятия решений на высоком уровне, а не сосредоточении внимания на визуальной обработке. Во-вторых, невозможно отрендерить каждый кадр в пиксели во всех обучающих играх; это многократно увеличит вычислительные ресурсы. Чтобы позволить пяти сетям выбирать различные действия, LSTM получает дополнительные входные данные от обработки наблюдений, указывающие, какой из пяти героев находится под контролем.
Вся система работает на специализированной распределенной обучающей платформе Rapid [8], работающей на Google Cloud Platform. Используются операции из библиотеки blockparse для быстрого обучения GPU. Пространства для действий и наблюдения большой размерности. OpenAI Five наблюдает около 16 000 полных значений (в основном плавающих и категориальных значений с сотнями возможностей) на каждом временном шаге.
Вывод
OpenAI Five основывается на принципах, сочетающих глубокое обучение с подкреплением, крупномасштабную оптимизацию моделей глубокого обучения и использование самостоятельной игры для изучения окружающей среды и стратегий.
Исходя из использования алгоритма, в такой сложной игре, как Dota 2, для изучения машинного обучения, можно сделать вывод: алгоритм OpenAI может использоваться во многих приложениях сфер жизни, в таких, где необходимо более точно отразить непредсказуемость и непрерывность, наблюдаемые в реальном мире, создавая таким образом более общие системы решения проблем. К примеру, алгоритмы и код, используемые OpenAI Five, в конечном итоге были заимствованы другой нейронной сетью, разрабатываемой компанией, которая управляла физической роботизированной рукой, что говорит о востребованности данного алгоритма.