Почему искусственный интеллект тренируют на компьютерных играх

15 сентября 2018, 13:00
Почему искусственный интеллект тренируют на компьютерных играх

Обучение с подкреплением часто применяют для тренировки ИИ-алгоритмов, и в результате они учатся обыгрывать опытных киберигроков. Издание Quartz рассказало о подобных эксперимантах и о перспективах этого метода.

5 августа команда ботов под названием OpenAI Five соревновалась с профессиональными игроками в Dota 2, игре, которая требует быстрой реакции, исчерпывающего знания стратегий и самое главное — командной работы.

В игре две команды из пяти игроков размещаются на противоположных сторонах прямоугольного участках и пытаются уничтожить базы друг друга, сражаясь с помощью «физической силы» и заклинаний. На сегодня это одна из самых активных киберспортивных дисциплин, а призовой фонд турнира в этом году составил более $23 млн. Перед началом матча шансы ботов на победу приблизительно приравнивали к шансам робота обыграть Майкла Джордана под кольцом.

На примере игр даже далёкие от науки люди смогут очень легко оценить, насколько далеко продвинулись исследователи ИИ. Машинный интеллект уже превосходил человеческий в решении головоломок: суперкомпьютеру DeepBlue от IBM удалось обыграть знаменитого шахматиста Гарри Каспарова, а разработанная DeepMind программа AlphaGo выиграла матч в го против корейского профессионала Ли Седоля. Компьютерный алгоритм оказался сильнее людей, которые многие годы оттачивали своё мастерство. Эти примеры у всех на слуху, но помимо них учёные десятилетиями работают над ИИ-агентами, которым нет равных в играх Atari, шашках и Super Smash Bros.

Не все результаты лабораторных исследований, проводимых на видеоиграх, применимы в реальной жизни. Но OpenAI дала понять, что её разработки могут быть весьма полезны и за пределами лаборатории. Например, аналогичные алгоритмы, как для игры в Dota 2, можно научить управлять роботизированными конечностями.

Положительное подкрепление

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

Бот OpenAI играет миллионы матчей сам с собой на протяжении двух недель. В каждой игре его цель смещают от получения очков для себя к повышению общекомандного результата — и таким образом исследователи формируют «командный дух».

Игры отлично подходят для тренировки ИИ, потому что они имитируют условия реального мира, но при этом имеют конкретную цель, считает профессор Нью-Йоркского университета Джулиан Тогелиус: «Игры хороши тем, что в них есть стимул: победить, набрать как можно больше очков».

Кроме того, игры — это всего лишь программы. В них можно играть бесконечное число раз или запускать тысячи ботов параллельно, чтобы ускорить поиск решения или стратегии. Но недостаток метода в том, что обучаемый алгоритм полностью зависит от вознаграждения. У него нет никакого понятия, как игра должна функционировать, и если вдруг произойдет баг или сбой, бот просто сделает то, что с наименьшими усилиями приведёт его к бонусу.

К такому выводу в прошлом году пришли исследователи из Фрайбургского университета в Германии, когда использовали обучение с подкреплением для тренировки алгоритма на игре Q*bert для Atari. Вместо того, чтобы учиться играть подобно человеку, бот пытался заманить врагов в «смертельную ловушку», спрыгивая с края кубика и зная, что враг последует за ним. Программа считала врага убитым и давала боту дополнительную жизнь и очки — профит.

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

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

Больше, чем просто игра

Боты OpenAI играют в компьютерные игры не ради того, чтобы побеждать профессионалов, а чтобы научиться принимать множество небольших решений, которые приведут к конечной значимой цели. У компании есть ещё один проект, в котором применяется та же самая система обучения и тот же самый алгоритм, что и для ботов Dota 2: алгоритм для управления механической рукой, которая способна удерживать кубик и пальцами вращать его в любом направлении.

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

«По сути мы смогли достичь той же производительности, используя идентичный код, что и в проекте Dota. Всего за пару недель мы добились того, чего пытались добиться в течение месяцев. Я думаю, никто из нас такого не ожидал», — поделился технический специалист OpenAI Джонас Шнайдер.

В этих исследованиях применяется созданная OpenAI программа под названием Rapid. Она координирует работу тысяч процессоров, на которых одновременно запущены тысячи алгоритмов обучения с подкреплением. Каждому из алгоритмов соответствует бот, который либо играет в игру, либо шевелит роборукой, а в конце экспериментов синхронизирует полученные знания с «коллегами».

Вычислительные мощности, в тысячи раз большие, чем у стандартного ноутбука, позволяют роботизированной руке достичь впечатляющей ловкости, причём программистам не нужно прописывать движения каждого отдельного пальца.

Однозадачные алгоритмы

OpenAI использует схоже коды, чтобы тренировать игровой ИИ и робота. Но важно то, что каждый из них учится выполнять свою отдельную задачу. Бот Dota 2 совершенно не смог бы управлять механической рукой — сами по себе алгоритмы достаточно универсальны и могут научиться любому навыку, но в последствии будут способны выполнять только его.

«Не существует алгоритмов, которые бы обучались на игре, а потом использовались в реальном мире. Но зато некоторые методы, разработанные для игр, находят применение на практике», — отмечает Тогелиус.

Система обучения с подкреплением Rapid — не первая технология, созданная с помощью компьютерных игр и применяемая в реальном мире. Более 10 лет назад специально для игры в го был разработан «метод Монте-Карло». Сегодня этот алгоритм используется для решения задач на планирование и оптимизацию. Европейское космическое агентство с помощью него рассчитывает межпланетные траектории космических зондов. Также он лежит в основе созданного DeepMind алгоритма AlphaGo, который в 2016 победил Ли Седоля.

Команда роботики OpenAI считает, что в будущем этот метод обучения может использоваться для выполнения более сложных заданий. Система Dota 2 задействует в 20 раз больше вычислительной мощности, чем роборука, и в отличие от неё тренируется две недели, а не два дня. Это значит, что команду роботики ждут ещё более комплексные и задачи, которые займут более длительный период обучения.

«Мы были удивлены, насколько далеко позволили зайти уже существующие алгоритмы, поэтому надеемся, что Dota станет своего рода знаковым рубежом для видеоигр. Очевидно, что если игра такой сложности под силу алгоритму обучения с подкреплением, это многое говорит о возможностях как метода, так и видеоигр», — заметил Шнайдер.

Обсуждение