Команда разработчиков из DeepMind и Blizzard вслед за релизом API для обучения машин игре в StarCraft 2 рассказала о первых результатах на этом поприще. Исследователи создали несколько базовых архитектур на основе нейросетей, обучили их, и опробовали в серии мини-игр, а также в матчах 1 на 1 против самого слабого из встроенных в StarCraft 2 скриптовых ботов. Полные результаты опубликованы в виде препринта, доступного в блоге DeepMind.
Несмотря на то, что существует множество ботов для различных компьютерных игр, в случае стратегий вроде StarCraft 2 искусственному интеллекту так и не удалось победить человека. Но большинство подобных ботов являются скриптовыми, то есть изначально в них заложена определенная стратегия, которой они следуют всю игру. На максимальных уровнях сложности ботам также обычно даются «бонусы» в виде дополнительных стартовых зданий, юнитов и прочих внутриигровых ресурсов, чтобы сделать сражение интересней для опытного игрока-человека. Однако в последние несколько лет благодаря методам машинного обучения удалось создать обучаемых ботов. Они хорошо проявили себя в играх с открытой информацией, например, настольной игре го, однако в играх с частичной информацией (например, компьютерных стратегиях) человек все еще оказывается сильнее.
Коллектив DeepMind благодаря новому API для StarCraft 2 обучил опробовал в этой игре нескольких ботов на основе нейросетей. Авторы изучали как системы, обучающиеся с подкреплением, так и ботов, обучавшихся с учителем — размеченными данными в этом случае выступали записи игр людей. Результаты сравнивались с работой самого слабого из скриптовых ботов, встроенных в StarCraft, а так же с работой абсолютно случайного бота, с игрой человека-любителя и игрока, достигшего максимального ранка «грандмастер» в турнирной лестнице StarCraft.
Простейшим испытанием для нейросетей была серия мини-игр с примитивными задачами: передвинуть юнита в нужную точку, добывать минералы, добывать минералы и газ, построить пехотинцев и так далее. В этих испытаниях игрок-грандмастер достиг практически максимально достижимых показателей, игрок-любитель тоже был близок к ним, а вот нейросети не всегда справлялись с задачей. Так, в миссии на добычу кристаллов и газа только одна архитектура сообразила, что можно построить дополнительных рабочих, тогда добыча кристаллов ускорится. Отметим, что эти нейросети обучались с подкреплением, то есть изначально им не сообщалось никаких «подсказок». Все, что они могли — это узнавать свой текущий «счет» (например, добытые ресурсы) и выполнять одно из нескольких десятков или сотен доступных действий (передвинуть камеру, выделить юнит, передвинуть юнит, построить юнит и так далее). Самой сложной игрой (но и самой близкой к реальному сражению), как и ожидалось, была постройка пехотинцев, в ней боты не слишком далеко ушли от полностью случайной системы. И только в одной мини-игре нейросетям удалось приблизиться к результату грандмастеров: в задаче «передвинь юнита в указанную точку».
Другим испытанием была полноценная игра нейросети против встроенного легкого бота. В подавляющем числе случаев нейросети проигрывали, а редкие случаи ничьих достигались только благодаря заранее установленной отсечке в 30 минут. Если в качестве «счета» на который опирались нейросети, использовалось «-1» — проиграл, «0» — ничья, «1» — выиграл, то есть боты получали отклик только по окончанию игры, большая часть архитектур не смогла хоть как-то приспособиться к игре. Тем не менее, одной нейросети удалось создать и применить интересную стратегию: она воспользовалась способностью зданий Терранов (одной из игровых рас) взлетать и убегать от армии противника, дотягивая таким образом до ничьей. Если же в качестве счета использовался Blizzard score (совокупная оценка всех добытых ресурсов, построенных зданий и юнитов и так далее), то максимум, на что хватало нейросетей — это не отвлекать рабочих от добычи ресурсов. В этом случае счет стабильно рос, пока не приходила армия соперника.
Наконец, разработчики также обучали ботов на записях реальных игр, предоставленных Blizzard. В этом случае нейросети в основном учились предсказывать исход партии, опираясь на «кадр» из игры. По результатам оказалось, что в первые несколько минут программа не могла предугадать, кто выиграет (что не удивительно для столь ранних этапов игры), то ближе к концу нейросеть предсказывала результат партии с точностью до 64 процентов. При этом программам удавалось до какой-то степени предугадывать следующее действие игрока. Подобные операции являются базовыми для игроков-ботов, и в дальнейшем именно на таких оценках нейросети будут строить свои действия.
Авторы отмечают, что к нынешним результатам стоит относиться лишь как к предварительным, и даже простые стратегии, до которых нейросетям удалось дойти самим, можно считать первыми успехами в покорении StarCraft 2. Ученые сделали вывод, что в будущем стоит тестировать любую перспективную архитектуру на мини-играх, так как в них боты должны показывать показатели, близкие к человеческим, в противном случае вряд ли стоит ожидать, что нейросети освоют более сложные аспекты игры. Так, используя мини-игры, другой команде исследователей удалось обучить нейросеть простейшим тактическим приемам вроде Hit&Run — тактике, при которой юниты с дистанционной атакой короткими перебежками уходят от ближнего боя в перерывах между выстрелами.
Ранее на этой неделе сначала команда из FaceBook выложила базу предобработанных записей игр STARDATA для машинного обучения, а вскоре и Blizzard в сотрудничестве с DeepMind объявил о выходе API для StarCraft и библиотеке для Python, обеспечивающей связку API с популярными системами машинного обучения.
Тарас Молотилин