Facebook выпустила крупнейший датасет для обучения машин игре в StarCraft

giphy

Команда исследователей из американского и французского подразделений Facebook создала крупнейший на данный момент датасет для обучения искусственного интеллекта игре в StarCraft. В набор вошло более 65 тысяч игр и в общей сложности более полутора миллиардов «кадров», общий объем датасета составляет 365 гигабайт. Подробное описание коллекции выложено в виде препринта на arXiv.org, а сама она доступна на странице проекта на GitHub.

Игры, как настольные, так и компьютерные, представляют особый интерес для специалистов по искусственному интеллекту, так как позволяют отрабатывать алгоритмы обучения с подкреплением. Это особый класс методов машинного обучения, для которых данные не размечены «правильными» ответами, как в обучении с учителем, но существует механизм обратной связи с некоторой «средой», который и позволяет системе найти оптимальную стратегию для той или иной игры.

Сравнительно недавно компания DeepMind успешно продемонстрировала свою программу AlphaGo, которая в сериях из нескольких матчей обыграла сильнейших профессионалов по го. Однако эта игра, несмотря на всю ее сложность, относится к классу игр с открытой информацией, где обоим игрокам в каждый момент времени доступна полная позиция на доске. Для компьютеров гораздо сложнее обучиться игре с неполной информацией, например, компьютерным стратегиям вроде StarCraft, где из-за «тумана войны» игроки не владеют полной информацией и вынуждены активно пользоваться разведкой и предугадывать действия соперника.

Для любой задачи машинного обучения одним из главных компонентов являются исходные данные, на которых система могла бы обучаться. Так например, успехи систем компьютерного зрения часто приписывают в том числе появившимся наборам размеченных данных вроде датасета ImageNet, на котором системы могли обучаться и совершенствоваться. Аналогичным образом AlphaGo обучалась на записях партий профессиональных игроков, а после, достигнув определенного уровня — играла «сама с собой».

В новом препринте исследователи из Facebook подробно описали созданный ими датасет STARDATA, в который вошли записи игр в StarCraft (как профессиональные, так и любительские), «переведенные» на доступный для алгоритомв машинного обучения язык. То есть для каждый игры с частотой примерно восемь кадров в секунду записаны полные действия игрока, численность и состав его армии, положения юнитов и зданий, технологическое развитие и так далее.

Ранее подобная статистика была доступна всем желающим в виде записей игр, однако воспроизводить их можно было только в специальных программах для просмотра, что накладывало определенные ограничения как по скорости считывания записей, так и по доступным платформам для работы. Отдельную сложность представляли конфликтующие партии, записанные в одной версии и игры и воспроизведенные в другой: даже из-за небольших изменений в балансе игры от патча к патчу это могло привести к нереальным результатам во время воспроизведения.

В STARDATA авторы постарались убрать конфликтующие записи при помощи нескольких фильтрующих алгоритмов, кроме того, они же отсеяли большинство партий, где игроки не были настроены на выигрыш, а, например, заранее договаривались опробовать ту или иную стратегию «в тренировочном» режиме. В итоге датасет включает 65646 записей, из них большая часть — протосы против зергов (18016 игр), а меньше всего представлены зеркала терранов против терранов (2550 игр). Для работы с коллекцией потребуется открытая библиотека TorchCraft, ее имплементации доступны для языков C++, Lua и Python.

Для демонстрации возможностей, который открывает новый датасет, авторы привели в качестве примеров несколько простых статистик. Так, оказалось, что сражения зергов против зергов в среднем заканчивались значительно быстрее, чем игры терранов против терранов. При этом независимо от расы наблюдалась тенденция, что игроки заканчивали игру (сдавались), имея в распоряжении еще как минимум половину от максимальной численности армии, а иногда и вовсе сдавались при максимальной силе армии. Самым контрастным выглядел график употребления ресурсов, где приведено отношение запасов «бедного» игрока к «богатому». Из-за стратегий «раша», то есть быстрой атаки, хорошо видно, что часто проигравший игрок даже не успевал начать добывать газ (второй вид ресурсов после кристаллов).

Наконец, авторы предложили собственный алгоритм для определения сражений, основанный на группировке «кадров» по смертям юнитов, а также привели простой кластерный анализ различных стратегий. На нем четко выделяются, к примеру, хорошо известные протосовские «драгуны в риверов и шаттлы» или «раш темными темпларами».

Авторы надеются, что новый датасет окажется полезным для исследований в области машинного обучения с подкреплением, и в будущем все же удастся создать искусственный интеллект, который бы смог потягаться на равных с профессиональным игроком-человеком. Ранее для этих целей коллаборация DeepMind и Blizzard (разработчики StarCraft) уже анонсировала создание обучающей платформы для систем машинного интеллекта. Она была основана на анализе визуальных образов — различных фильтрах миникарт (отображении юнитов, зоны видимости, ресурсов и так далее). Однако до сих пор ни одной программе не удалось обыграть ведущих профессиональных игроков.

Тарас Молотилин

Нашли опечатку? Выделите фрагмент и нажмите Ctrl+Enter.