Single-Shot Multi-Box

в Статьи

Обучение Deep Neural Network для игры в FIFA 18

Spread the love

A.I. боты в играх обычно создаются вручную с помощью набора правил, которые формируют игровой ИИ. По большей части, этот подход довольно хорошо себя зарекомендовал, заставляя бота имитировать поведение человека. Тем не менее, для большинства игр все еще легко отличить бота от реальной игры человека. Если мы хотим, чтобы эти боты вели себя по-человечески, может нам не задавать правила написанные вручную? Что если мы просто позволим боту разобраться в игре, научив его смотреть на то, как играют люди, тем самым обучим Deep Neural Network?

Такого рода исследования потребовали бы игр, в которых можно заранее собирать такие данные о людях, играющих в неё, до разработки самой игры. FIFA — одна из таких игр, которая позволяет нам исследовать такую возможность. Играть в игру записывая свои игровые действия позволяет обучить бота на основе глубокого обучения без необходимости программировать правило игры.

Код для этого проекта вместе с обученной Deep Neural Network можно найти здесь:

DeepGamingAI_FIFA.git

Механизм игры

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

FIFA 2018 bot wth A.I.

FIFA 2018 bot wth A.I.

Теперь, когда у нас есть фреймворк для ввода информации и управления ботом, мы подошли к интересной части: изучению игрового интеллекта. Это делается в два этапа:

1. с помощью сверточной нейронной сети для понимания снимка экрана (convolution neural network).

2. с использованием сетей с кратковременной памятью для принятия решения о соответствующих действиях на основе распознавания изображения (long short term memory networks).

ШАГ 1: Свёрточная нейронная сеть (CNN)

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

Training Convolution Neural Network for FIFA 2018

Training Convolution Neural Network for FIFA 2018

Для того, чтобы наш бот понимал изображение, которое он дает в качестве входных данных, можно использовать легкий и быстрый CNN — MobileNet. Карта объектов, извлеченная из этой сети, отражает распознанные изображения на высоком уровне, например, где на экране находятся игроки и другие объекты, представляющие интерес. Затем эта функциональная карта используется с Single-Shot Multi-Box, чтобы обнаружить игроков на поле вместе с мячом и целью.

Шаг 2. Обучение долгой краткосрочная памяти или Long Short Term Memory Networks (LSTM)

Long Short Term Memory Networks (LSTM)

Long Short Term Memory Networks (LSTM)

Теперь, когда у нас есть понимание образа, мы можем пойти дальше и решить, какой шаг мы хотим сделать. Однако мы не хотим смотреть только на один кадр и действовать. Мы бы предпочли краткую последовательность этих изображений. Вот здесь и появляются LSTM, поскольку они хорошо известны тем, что способны моделировать временные последовательности в данных. Последовательные кадры используются в качестве временных шагов в нашей последовательности, и для каждого кадра извлекается карта объектов с использованием модели CNN. Затем они подаются в две сети LSTM одновременно.

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

Эти сети были обучены работе с данными, которые были собраны путем игры с записью входного изображения и нажатия клавиш. Один из немногих случаев, когда сбор помеченных данных не кажется рутиной!

Оценка производительности A.I. бота на основе Deep Neural Network

Основываясь на 400-минутной тренировке, бот научился бегать по направлению к цели противника, проходить вперед и делать удары при обнаружении цели. В режиме FIFA 18 для начинающих он уже забил 4 гола в 6 играх, что на 1 больше, чем у Пола Погба в сезоне 17/18 на момент написания статьи.

Видео бота, играющего против встроенного бота, можно найти на видео ниже

Заключение

Первые впечатления от такого подхода к созданию игровых ботов, безусловно, положительные! С ограниченным обучением, бот уже освоил основные правила игры: делать движения к цели и забивать мяч в сетку. Приблизить к производительности на человеческом уровне можно благодаря большему количеству обучающих данных для Deep Neural Network, которые разработчикам игр будет легко собрать. Более того, расширение обучения модели для изучения реальных игровых кадров позволит разработчикам игр сделать поведение бота намного более естественным и реалистичным. Если бы кто-нибудь из EA Sports читал это …

Автор Chintan Trivedi, переведено c:

Building a Deep Neural Network to play FIFA 18