ИИ в играх от нард до StarCraft II. Часть 1

Мне тут подкинули идею: поисследовать, как в Google DeepMind использовали ИИ в играх и что из этого получилось. Потому что игры – это не только развлечение, но и суперская площадка для экспериментов.

Поехали.

Краткое содержание

Играть в видеоигры весело. А ещё полезно, если вы, например, обучаете ИИ: там же столько данных. Этот пост – первая часть потенциально большой серии, в которой мы узнаем, как команда DeepMind делала вклад в науку, обучая свои модели играть в разные игры. Минимум математики, максимум веселья.

А зачем?

Игры, особенно стратегические, – это сложная среда, в которой много переменных. Чтобы играть хорошо, нужно уметь планировать на несколько шагов вперёд, просчитывать риски, контролировать несколько объектов с разными свойствами. Возьмём, например, шахматы:

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

Или вот StarCraft II. Я не играла, беру информацию из Интернета:

  • там есть разные игровые расы со своими особенностями;
  • нужно выполнять миссии и сражаться с другими игроками, у которых разные стратегии;
  • нужно строить свои здания и собирать ресурсы;
  • чтобы победить другого игрока, нужно разрушить его здания;
  • и это всё в режиме реального времени и в условиях, которые постоянно меняются.

Пока писала, поняла, что хочу поиграть. Интересно, могу ли я списать на игру своё рабочее время? У меня есть хорошее обоснование: я провожу анализ сложной среды для обучения ИИ-агентов. Готовлюсь к воспроизведению экспериментов DeepMind. Да, я работаю в консалтинге, но здесь тоже надо принимать решения в условиях меняющейся среды!

Так, ладно.

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

Как всё начиналось

Сидели сотрудники DeepMind на работе и резались в го. А потом подумали: «А что, если мы ИИ тоже научим? Оформим это дело как научный эксперимент, чтоб дали денег.»

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

Компания DeepMind появилась в 2010 году, а в 2014 её купил Google. История там богатая, но мы с вами пройдёмся по нескольким ключевым вехам, чтобы просто очертить масштаб вклада в развитие ИИ.

Итак, на дворе 2013 год.

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

Буквально только что, в 2012 году нейросеть AlexNet победила в соревновании по классификации изображений: всего 15,3% ошибок – прошлогодний рекорд был 26,2%. Это впечатляющий скачок точности, который стал возможным как раз благодаря обучению на графических процессорах. AlexNet – маленькая по нынешним временам свёрточная нейросеть: в ней было всего 8 слоёв и какие-то 60 миллионов параметров.

До появления трансформеров ещё четыре года, и свёрточные нейросети играют роль Ти-Рекса на большой ИИ-поляне.

И вот в этот момент DeepMind выпускает статью «Playing Atari with Deep Reinforcement Learning» («Играем в игры Atari с использованием глубокого обучения с подкреплением»). Atari – это компания по производству видеоигр, которая была на пике популярности в восьмидесятых. В 2013 году это уже ретро. Игры там простенькие, но надо было с чего-то начинать.

Обучение с подкреплением предполагает, что нейросеть делает предсказание и получает за него награду, потом делает ещё предсказание и выбирает такой вариант, который приносит наибольшую награду. Очень эффективный механизм, но у него есть сложности: особенно непросто правильно подобрать награду – с математической точки зрения, формулу, которая выдаёт число больше в ответ на правильное действие и число меньше на неправильное. «Правильное» и «неправильное» действия надо очень чётко описать. Чтобы понять сложность, возьмём для примера одну видеоигру, с которой Atari начинала свой путь, – пинг-понг.

ИИ в играх от нард до StarCraft II. Часть 1

В ней два игрока с помощью джойстиков управляют «ракетками» – это две короткие вертикальные линии, которые вы видите на скриншоте. Pадача – перекидывать друг другу пиксельный мячик. Если оппонент пропустил удар, вы получаете очко. Всё просто. С человеческой точки зрения.

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

Сложно описать формулой.

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

И решили они тогда, что никаких формул писать не будут, а вместо этого посадят нейросеть играть как человека: на вход – картинка с экрана, на выход – игровые команды (вверх / вниз / огонь и прочее), награда – игровые очки. Чтобы передавать движение объектов, за раз нейросети передавали по четыре снимка экрана, объединённых в одну матрицу.

Вдохновлялись, к слову, работой 1995 года про алгоритм, который обучили играть в нарды. Потом похожий подход пробовали с шахматами и го, но тогда не вышло (потом вышло, но об этом не сегодня). Авторы сказали: «Двадцать лет назад компьютеры были не те. Давайте попробуем ещё раз, ведь многое изменилось».

И получилось: попробовали семь разных игр, из них на шести удалось поставить рекорд среди машин, а на трёх – среди машин и людей.

Что было дальше

Дальше были го, шахматы и StarCraft. И не только. Были новые подходы к планированию, обучению и оценке. Были мультиагентные системы.

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

Начать дискуссию