22 сентября завершился турнир по Doom среди ботов, которые играли как люди — то есть воспринимая лишь информацию с экрана. В соревнованиях победила команда IntelAct, состоящая из главы лаборатории компьютерного зрения в Intel Labs Владлена Колтуна и сотрудника немецкого Фрайбургского университета Алексея Досовицкого. «Медуза» поговорила с Досовицким и рассказывает, как тренируются боты и зачем это нужно.
Doom — это культовая компьютерная игра, созданная в 1993 году. Смысл игры в том, чтобы убивать адских тварей; но главное, что в ней есть многопользовательский режим. Кроме того, она распространяется без копирайта.
В мае 2016-го на основе открытого кода Doom польские исследователи создали платформу VizDoom для разработки искусственного интеллекта, способного играть в эту игру. Поляки вдохновились успехом компании Google DeepMind, которая научила искусственный интеллект играть в двухмерные игры компании Atari, — и решили выяснить, чего можно достичь в 3D-играх.
Платформа VizDoom заинтересовала многих инженеров, занимающихся машинным обучением. В частности, для изучения возможностей искусственного интеллекта ее использовала студия DICE (самый известный продукт — игры Battlefield). Для дальнейшей популяризации платформы польские исследователи решили устроить соревнование среди агентов (или ботов) с искусственным интеллектом.
22 сентября 2016-го огласили итоги чемпионата. В нем победила команда IntelAct, состоящая из двух человек: главы лаборатории компьютерного зрения в Intel Labs Владлена Колтуна и сотрудника немецкого Фрайбургского университета Алексея Досовицкого.
Чемпионат проводился в двух дисциплинах: более простой, когда боты бились друг с другом на известной им карте с использованием ракетницы, и более сложной — на карте, о которой агенты ничего не знали и где они могли использовать любое оружие. В обоих случаях они имели право собирать патроны и аптечки.
Отличие ботов, участвовавших в соревновании, от обычных ботов (которые есть в каждой игре) состоит в том, что они должны воспринимать игру как человек — то есть наблюдая только за экраном. Они ничего не знают ни о местонахождении патронов, ни о расположении противников.
Бот IntelAct сражается с монстрами из Doom
Intel VCL
В самом начале обучения у бота нет никаких знаний о том, что в принципе происходит в игре, — он не знает, что там есть стены, оружие и монстры. Как рассказал «Медузе» участник команды победителей Алексей Досовицкий, бот начинает случайно двигаться и в какой-то момент натыкается на патроны; тут он понимает, что произошло нечто хорошее. В идеале постепенно он понимает, что нужно находить патроны как можно чаще, и начинает делать это целенаправленно.
Как научиться этому простому действию — подойти к патронам? При текущих алгоритмах требуется, чтобы бот увидел десятки миллионов экранов — это дни и недели игры в реальном времени. Однако боты играют куда быстрее.
На обучение нейронной сети команда победителей потратила три-четыре дня. Остальное время (на подготовку к соревнованиям участникам отводилось четыре месяца) ушло на отладку. Бот команды IntelAct написан на языке Python. Для его обучения использовалась библиотека Google TensorFlow.
В отличие от программы AlphaGo, которой для победы над человеком в настольную игру го потребовались сотни и тысячи процессоров, для обучения бота IntelAct нужен один обычный компьютер. Это обусловлено тем, что AlphaGo нужно просчитывать действия на много шагов вперед, тогда как IntelAct действует, исходя из того, что выгодно прямо сейчас, и не просчитывает разные варианты развития событий.
Чтобы проверить, насколько хорошо бот IntelAct научился играть, его заставляли сражаться с более старыми версиями себя (так же поступали и в DeepMind — нейросеть играла в го с другими версиями себя самой).
За четыре месяца бот, конечно, не научился действовать идеально во всех ситуациях. Как рассказал инженер, он сам пробовал играть против бота и побеждал его — более-менее опытный человек пока может обыграть искусственный интеллект. Но среди участников турнира ботов IntelAct не было равных.
Он бился только во второй категории турнира — на неизвестных картах и с любым набором оружия. В 10 из 12 игр бот выиграл, победив ближайшего преследователя со счетом 256:164 по числу фрагов (убийств). Второе место заняла команда The Terminators из двух человек — выпускников Университета Карнеги — Меллон. В первой дисциплине (на знакомой карте) выиграла команда F1 сотрудников Facebook (во второй они не участвовали). The Terminators заняли второе место и там.
Так играет бот команды The Terminators
Devendra Chaplot
18 сентября, за несколько дней до объявления итогов соревнований, участники The Terminators опубликовали научную работу, в которой рассказали, как работает их бот. В отличие от бота IntelAct, их искусственный интеллект представляет собой не одну, а две нейронные сети: одна отвечает за перемещение, другая — за стрельбу.
Они — опять же, в отличие от команды IntelAct — тренировали своего бота не только на основе визуальной информации, но и получая от самого движка игры данные о присутствии патронов и противников в поле зрения. По словам Алексея Досовицкого из IntelAct, никаких нарушений в этом нет, хотя в его команде решили, что действовать так «некрасиво и нереалистично», поскольку у обычного игрока нет доступа к данным игры, только картинка на экране.
В научной работе выпускников Университета Карнеги — Меллон утверждается, что их бот играет лучше людей. «Я немного удивился, что мы у них выиграли после таких заявлений», — признает Алексей Досовицкий. Он предполагает, что The Terminators тестировали своих ботов на тех же картах, где и тренировали; либо они сильно улучшили алгоритм за те две недели, которые прошли с дедлайна на подачу заявок на соревнования.
В некоторых публикациях о турнире ботов, которых научили убивать, высказываются опасения, что это может означать начало создания сети Skynet из фильма «Терминатор», пытавшейся уничтожить человечество. «Лицемерно говорить, что тренировать агентов собирать яблоки и пускать радуги друг в друга — это хорошо, а играть в Doom — это плохо. Мы, конечно, против человекоподобных роботов-убийц, но эту проблему нужно решать не запрещая играть в Doom, а какими-то другими способами», — отвечает на это Досовицкий.
По его словам, главное — не научить бота играть в Doom, а научить бота учиться в процессе восприятия окружающего мира. То же самое говорят и участники команды The Terminators. Вместо того чтобы создать непобедимого игрока в Doom, они намерены использовать свои разработки для решения прикладных задач.