BlizzCon 2016: Стенограмма выступления с панели DeepMind и StarCraft II Deep Learning

05.01.2017 00:00 Сообщество Автор: 10 0

Это частичная стенограмма выступления с панели DeepMind и StarCraft II Deep Learning на BlizzCon 2016. К сожалению, по какой-то причине, лишь 28 минут выступления доступны в записи трансляции для пользователей с Виртуальным Билетом. На панели выступали следующие лица:

  • Ориол Виньялс (учёный-исследователь, DeepMind)
  • Кевин Кальдерон (инженер ПО, StarCraft II)
  • Пол Кит (старший инженер ПО)
  • Тим Эвальдс (инженер ПО, DeepMind)

Женский голос: Добро пожаловать на панель DeepMind и StarCraft II Deep Learning.

 

Artosis: Всем привет. Я Даниэль Стемкоски, но многие меня знают как Artosis и я фанат StarCraft #1 в мире. Я играю в него уже 18 лет. Я был про-игроком первого и второго StarCraft, а так же жил в Корее 8 лет, занимаясь комментированием про-игр. Я вам всё это рассказываю, потому что... ну, наверное только так можно объяснить что я невероятно рад находиться на этой панели, чтобы задать вопросы про то, как DeepMind справляется со StarCraft II.

Я, как и многие из вас, смотрел матч, в котором компьютер Alpha Go играл против Ли Седола, и это было невероятно наблюдать за тем, как компьютер просто уничтожал лучшего игрока в мире. А то, что разработчики данного искусственного интеллекта (далее ИИ, — прим. пер.) решили взяться за StarCraft, лично для меня — это невероятно. Знаете, я всегда говорил себе, что основная причина, по которой я так плохо играю в StarCraft, это потому, что игра сложнее шахмат и го. Я так рад, и хочу, без лишних прелюдий наконец-то представить вам учёного-исследователя DeepMind, Ориола Виньялса.

 

Ориол: Огромное спасибо. Сейчас довольно рано, а в зале уже шумно, поэтому спасибо, что пришли в такую рань. Кстати, мы недавно разговаривали с Даниэлем, и мы, оказывается оба играли в первый StarCraft, и, наверное, даже когда-то попадались в одну игру друг против друга, хоть и у нас не осталось никаких записей матчей. Поэтому, я не знаю, кто из нас победил. Я это говорю потому, что StarCraft всегда был каким-то приятным подарком в моей жизни, особенно в девяностых, когда я ещё был геймером, а также в 2010 году.

Хоть я и вступил в команду довольно поздно, из-за того, что я проходил производственную практику в университете Беркли, мы и раньше занимались подобными проектами по созданию ИИ для Brood War и даже победили в соревновании ИИ против ИИ. Поэтому это довольно интересная область работы с не менее интересным сообществом. И пока мы думали, над какой ещё игрой бы нам поработать в DeepMind,   мы решили, что StarCraft — отличный выбор, что я уже упомянул на церемонии открытия.

Поэтому быть здесь — просто замечательно. Ребята из Blizzard - очень классные, с ними было очень приятно работать и это было, в некотором роде, исполнение мечты, если смотреть на это со стороны игрока, со стороны исследователя ИИ, и так далее. Сегодня у нас есть время ответить на вопросы, а так же мне хотелось бы немного рассказать о том, как мы разрабатывали ИИ DeepMind. Без лишних слов, мне хотелось бы начать презентацию.

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

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

Я буду повторять эти слова весь день, так как в этом вся суть — без знания того, что вы пытаетесь сделать, вы не добьетесь больших успехов в работе. Наша программа учится сама работать в данной ей среде, и это именно то, чем сегодня занимаются большинство исследователей искусственного интеллекта.

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

Это очень важно для DeepMind и многих других лабораторий в мире. Поэтому, как пример успешной, но в то же время узкоспециализированной программы, можно привести систему DeepBlue от IBM, которая обыграла чемпиона по шахматам, Гарри Каспарова.

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

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

Это, очевидно, намного более технические вещи, чем то, что вы обычно слышите и видите на BlizzCon, но я надеюсь, что смогу вам разъяснить трудные понятия, так как вы увидите очень многое из исследования ИИ StarCraft, использующее данную парадигму. Предположим, я — программа у меня есть цель — поговорить с вами, а всё вокруг — наша среда. Я наблюдаю за средой вокруг меня. Я хожу. Я надеюсь, что не упаду где-нибудь, и так далее. Я достигаю цель не только говоря, но и стоя, и прочее; и я взаимодействую со средой говоря что-нибудь, жестикулируя, и так далее, и тому подобное.

Но задача (к примеру) разговора является немного абстрактной, в ней трудно определить цель, справляюсь ли я или нет. Объём того, что мы можем наблюдать вокруг нас довольно велик. Я имею ввиду, я наблюдаю многое вокруг себя, я чувствую, как я хожу и совершаю действия.

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

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

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

А на левой стороне у нас изображение игры, и эта игра может быть простой, как на Atari, либо сложной, как StarCraft II. И далее, мы имеем мини-мозг, если так можно сказать, нейросеть, которая анализирует то, что есть на экране и принимает решения и действует в игре, согласно принятому решению.

Например, игра выводит изображение и вы, как человек, во время игры, кликаете мышкой, двигаете джойстик, или нажимаете кнопки и так далее. А эта программа, эта нейросеть, берёт все устройства ввода и вывода и каждое действие, например, клик мышкой или нажатие клавиши и действует соответствующе в этой среде. Первая платформа, на которой мы проводили тесты, была Atari (довольно простая, не знаю, сколько из вас играло на Atari) и множество игр для неё.

Существует очень много видов игр, и так как мы пытаемся найти лишь главную суть, нам приходится тестировать всё это множество игр. Мы протестировали более 50 игр на Atari, где пиксели были «наблюдением», а возможные действия были чем-то простым, например, двумя кнопками, или что там ещё было у игры, и главной нашей задачей было достичь как можно больше очков. Это было простой задачей.

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

Вот тут видео со всякими играми, которые очевидно, не самые новые. Это точно не новая игра, которую разрабатывает Blizzard, но вы все равно можете увидеть, как программа просто считывает экран и действует. Это современная 3D игра, где вы ходите. Pong — это классика, суть здесь ясна, и парень справа очень хорошо играет.

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

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

Конечно, Atari — всего лишь первый шаг, у нас есть вещи и потруднее. Например, эта, где больше пикселей на экране и игра сама по себе более продвинута. 3D-гонки. Она по принципу труднее предыдущей за счёт того, что мы не видим всего, что происходит в игре. Здесь можно обогнать идущую перед вами машину, и вы будете знать, что эта машина теперь за вами. Мы добились тех же результатов, благодаря концепции памяти. Однако в этой игре программа должна понимать, что она обгоняет машины и, может быть, им стоит подрезать ту машину, и тому подобное. Хотя в этой игре тот же самый алгоритм, что и раньше.

Наша задача здесь — ехать как можно быстрее, выиграть эту гонку. Чтобы это сделать, вам нужно ускоряться или поворачивать в зависимости от окружения, для игр такого типа это крайне важно, и мы это отрабатывали на играх с лабиринтами. Например, вы — программа, и вы находитесь на запутанной, на первый взгляд, карте, но во время игры вы собираете яблоки, за сбор которых получите награду.

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

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

Как на Atari, так и в 3D играх, в программу заложен двухмерный массив позиций на экране, и ваша цель – выиграть игру. Это очень похоже на то, что мы делали раньше. Мы решаем эти задачи используя тот же самый метод, и вышло так, что все наши наработки были настолько успешными в последние годы, что мы вызвали Ли Седола, который является легендой го, 18-кратным чемпионом мира, на поединок.

Го – доведенная до идеала настольная игра, где вы видите всю доску. Мы бросили ему вызов на миллион долларов, и это создало огромный ажиотаж в Корее. Очень многие смотрели эту игру. В то время я был в офисе, в 4 утра по Лондонскому времени. К сожалению, мы ожидали чего-то крайне необычного, но наша программа попросту победила со счётом 4-1.

Было здорово, и это породило в людях интерес к го. По-моему доски для игры в го раскупили сразу после матча. Было интересно всем: любителям, профессионалам и тем, кто любит смотреть, как компьютер играет в игру. В результате многие из прессы задавали вопросы нашему управляющему, Демису Хассабису. В какой-то момент сам Майк Морхейм упомянул этот матч.

А не здорово ли после того, как мы стали чемпионами по го, стать и чемпионами по StarCraft II, используя наш ИИ? С нашими наработками в сфере игр мы уже доказали многое, и в какой-то момент мы обратились к Blizzard и решили – мы хотим взяться за StarCraft II, потому что в этой игре существует множество таких элементов, которые сделали бы наше исследование крайне интересным. Но как обычный игрок, геймер, вы, наверное, не догадываетесь что на самом деле стоит за всеми действиями в игре для ИИ – в этом плане игра является очень сложной.

У меня есть некоторые примеры того, почему StarCraft II – отличная среда для исследования. Одно из главных отличий StarCraft от го состоит в том, что вы не видите всё, что происходит на вашей «доске» – карте, и это делает игру труднее. Когда вы начинаете игру, вы не знаете конкретное местоположение вашего противника, вам необходимо разведывать местность, вам нужно знать, каких юнитов может построить ваш оппонент, и так далее.

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

Существуют и другие аспекты, уникальные для StarCraft. Мой любимый пример – как много действий необходимо, чтобы использовать какую-либо стратегию. К примеру, я хочу создать муталиска, и для меня, как игрока-человека это очень просто – мы начинаем игру, не особо думая строим кучу нужных зданий и вот результат – у вас есть муталиск. Но для компьютера всё намного труднее, потому что необходимо сделать уйму действий, чтобы построить этого самого муталиска.

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

Ещё одна вещь, которая не сразу приходит в голову – то, как это исследование может помочь нам в реальном мире. Ну, знаете… в игрушки играть – дело весёлое, но что если мы хотим сделать что-то ещё. Вот тут по правую сторону очень цветастый сервер Google, на котором хранятся все запросы и электронная почта и всё такое. Мы недавно разрабатывали алгоритм, который мог бы быть использован для охлаждения этих серверов, используя меньше энергии, чем раньше.

Как вы можете представить, охлаждение серверов Google стоит немалых денег, и в дата-центре существует множество программ, сенсоров, счётчиков температуры и прочее. Как и в StarCraft, вы не знаете, как всё работает – что если этот клапан – неправильный, или температура не фиксируется на счётчиках, а сейчас солнечный день, и надо бы что-то поменять.

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

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

Напоследок я хотел бы сказать, что именно StarCraft II заставил нас работать в два раза больше в плане разработки алгоритмов, памяти, планировании и воображении. И на этой ноте, я бы хотел представить вам Кевина из команды разработчиков StarCraft II, который вам немного расскажет, с точки зрения Blizzard, о том, почему работа над ИИ — такая интересная задача. Итак, поприветствуем Кевина на сцене.

 

StarCraft II и DeepMind

Кевин: Доброе утро, меня зовут Кевин Кальдерон. Я один из инженеров из команды разработчиков StarCraft II и мы вместе с DeepMind работаем над этим проектом. StarCraft II является одной из самых стратегически глубоких игр на рынке, и это делает игру идеальной платформой для разработки ИИ, который мог бы работать над целым ворохом задач. Последние несколько месяцев мы, вместе с DeepMind, работали над инструментарием для создания такой программы. И сейчас, когда «ядро» нашего проекта готово, я хотел бы рассказать о том, над чем мы работали.

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

Обычно, поведение ИИ задано вручную гейм-дизайнером. Это полная противоположность тому, как работает Deep Learning, где ничего не прописано вручную и программа обучается сама. ИИ, который сейчас в StarCraft II – результат такого заскриптованного ИИ. Во всех стратегиях задачи ИИ заданы вручную, и различаются лишь интеллектом каждого гейм-дизайнера, который его разработал.

Уровни сложности такого ИИ также подкручены гейм-дизайнерами. Этот рукотворный подход мы использовали во всех наших играх. Таким подходом руководствуются и сообщества, которые разрабатывают ИИ для наших игр, и даже существуют целые турниры по разработкам подобных ИИ для StarCraft: Brood War.

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

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

Выглядит круто, да? Давайте разберёмся, как это работает. Мы помогли достичь DeepMind этого результата двумя путями. Сначала мы создали интерфейс в самой игре для программы, чтобы облегчить процесс самообучения. Это то же самое, что и Ориол рассказывал о наработках в других играх. В данном случае, программа является игроком-ИИ, работающем на технологии DeepMind, а StarCraft II является средой для данной программы.

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

Во-вторых, мы помогаем, анализируя записи игр. Этот вид ИИ начинает совершенно без какого-либо знания об игре. Лучший способ такой программе научиться чему-то — посмотреть, как играет другие, и попытаться делать то же, что и они. Записи игр предоставляют ИИ именно такую возможность обучения.

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

Мы очень тесно работаем с DeepMind, чтобы создать необходимые инструменты для исследования ИИ в StarCraft, и по мере того, как мы делаем прогресс, мы будем постепенно открывать все эти инструменты для всего сообщества. Даже если мы не инженер, то вы все равно можете помочь проекту, просто играя в игру.

Мы можете помочь создать нам записи игры, которые можно использовать для обучения ИИ. Мы также были приятно удивлены скриптованным ИИ, созданным сообществом StarCraft: Brood War. Нам хотелось бы предоставить им возможность экспериментировать с ИИ StarCraft II.

Чтобы достичь всех поставленных целей, мы выпустим сборник инструментов, который мы называем StarCraft II API. Это позволит воздействовать на развитие ИИ в нашей игре. Наша цель в этом – предоставить поддержку исследователям высококлассного ИИ и разработчикам небольших заскриптованных ИИ. В этом сборнике вы можете найти инструменты для того, чтобы начать работу, а также программы, позволяющие нескольким ИИ играть друг против друга.

Мы собираемся выпустить этот сборник в первом квартале следующего года. Если вы хотите ознакомиться с техническими аспектами, то мы можете почитать запись в блоге StarCraft2.com после окончания работы данной панели.

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

Трудно сейчас сказать, к чему это нас может привести, но у данного исследования явно есть возможность положительно отразиться на играх и мире в целом. Мы с превеликой гордостью осознаём, что наша игра, StarCraft II – платформа для такого полезного исследования. Напоследок хочется сказать, что StarCraft II станет следующей большой платформой для исследования ИИ. Для достижения этого, мы дадим вам возможность использовать необходимые для исследования инструменты API, и мы надеемся привлечь не только исследователей, но и игроков, чтобы воплотить это в реальность.

 

Оригинал

Переводчик: Лилия Сатоева

%%%time%%%
%%%name%%%
%%%message%%%