ДУШКИН Роман Викторович

Как AlphaZero играет в игры, превосходит реальных игроков и конкурирует с подражателями

Это перевод статьи о том, как система AlphaZero учится играть в игры, выпущенная изданием The New Yorker.

Более месяца назад исследовательская группа из Google DeepMind опубликовала статью в журнале Science, в которой был описан Искусственный Интеллект для игр. Их разработка является универсальной, но основным направлением развития были выбраны игры го, шахматы и сёга. Разработка не обладала никакими дополнительными знаниями, помимо правил каждой из игр. Изначально система «тупила», делая случайные ходы. Но спустя какое-то время начинался процесс самообучения. В течение 9 часов алгоритм, специализирующийся на шахматах, сыграл 44 миллиона партий на мощном оборудовании Google. Через два часа тренировок Искусственный Интеллект научился играть лучше, чем любой человек, а через четыре часа произошло невозможное — система победила лучшую программу, симулирующую игру в шахматы.

Как AlphaZero играет в игры, превосходит реальных игроков и конкурирует с подражателями

AlphaZero — это программа, чьей предшественницей являлась знаменитая AlphaGo. Последняя известна тем, что сумела победить Ли Седоля — лучшего игрока в го в мире. Победа Искусственного Интеллекта над человеком произошла в марте 2016 года. В документальном фильме «AlphaGo» рассказывается о двух командах, создавших этот Искусственный Интеллект, и о людях, которые посвятили всю свою жизнь игре. В фильме мы можем увидеть, как бедолаги проигрывают машинами. Кажется, что машина находится в менее выигрышной позиции, но со временем она «набивает руку» и тогда у игроков начинается паника. Во время своей игры с машиной Ли Седоль не выдержал, встал из-за стола, не выключая часов, и ушел покурить. Тогда за трансляцией игры наблюдало 50 миллионов человек, а Ли Седоль просто ушёл курить. После игры он извинился за своё бессилие. Профессиональные игроки посчитали, что машина может найти новые ходы в играх и откроет новые парадигмы. Кстати, тогда Ли Седоль проиграл со счетом 1:4.

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

Искусственный Интеллект AlphaGo Zero получил такое название потому что он не обладал ограничениями, не позволяющими ему выходить за рамки правил. Спустя два месяца компания DeepMind опубликовала анонс третьего материала, в котором говорится, что алгоритм AlphaGo Zero может играть в любую игру с точно прописанными правилами. Например, правила покера для AlphaGo Zero были непостижимы, ибо там присутствует скрытый элемент — перевёрнутые карты. Вскоре DeepMind решается переименовать свою разработку, убрав Go из названия. В итоге получилось название AlphaZero, которое, в каком-то смысле, звучит приятнее. В основе AlphaZero заложен настолько мощный алгоритм, что этот Искусственный Интеллект может постигнуть правила абсолютно любой игры, которая когда-либо существовала. Для этого разработке понадобится лишь один день и большие вычислительные мощности. Кстати, сама система AlphaZero оказалась проще своих предшественниц.

Шахматный движок — это настройки, прописанные ходы и много чего ещё, что создавалось в течение десятилетий путём множественных проб и ошибок. Stockfish — лучший шахматный движок на сегодняшний день, обладающий открытым исходным годом. Движок постоянно улучшается при помощи «естественного отбора», когда несколько тысяч разных версий играют друг с другом и остается та, которая победит всех. Самое страшное в этом программном обеспечении — непонятность. Изменения эта программа воспринимает не на программном уровне, а с точки зрения правил игры. Этот метод был проиллюстрирован Дэвидом Сильвером, руководителем исследовательской группы DeepMind. У Stockfish есть 50 вариантов ходов, каждый из которых является огромной строкой кода.

AlphaZero включает в себя две составные части: нейронную сеть и алгоритм Monte Carlo Tree Search (MCTS). Шахматы — это игра, которая имеет огромное количество вариантов и сочетаний ходов. Никаких вычислительных машин мира не хватит, чтобы просчитать их полностью. Профессиональные игроки обращают внимание на основные факторы, машины должны делать так же.

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

Нейронная сеть, изучающая доску, глупа. Предсказания, в большинстве своём, делаются случайным образом. От этого страдает и MCTS, который может выбрать неверную часть, на которой система должна сфокусироваться. Но по мере игры AlphaZero учится. Постепенно две составляющие системы начинают улучшать друг друга и всячески дополнять. Даже если нейронная сеть делает неверные прогнозы о возможных ходах, она имеет преимущество, позволяющее ей заглядывать вперёд. Знания, получаемые в ходе игры, могут быть применены для дополнительного обучения нейронной сети. После того, как игра закончилась и результаты доступны к просмотру, можно изучить предположения, которые нейронная сеть делала на протяжении всей игры. Бывают случаи, когда 80.2 % шанс удачного хода по мнению сети, на самом деле равен 60.5 %. Поэтому, полученная после изучения итогов, информация поможет перенастроить коэффициенты нейронной передачи сети для улучшения её работы. Таким образом, после перенастройки сеть сможет использовать более качественную информацию для своего обучения.

После показа разработок AlphaGo Zero и AlphaZero они моментально обзавелись небольшой армией поклонников, которая начала выкладывать ролики об этих системах на YouTube, а также создавать клонов. В большинстве роликов объяснялись принципы работы системы, а энтузиасты создавали свои наработки, которые мало чем походили на оригинал. Но некоторые попытались реализовать такой же продукт. Отметим, что в документации не был опубликован исходный код, а компания не стала делать эти программы доступными для обычных пользователей.

Одни из лучших игровых движков для шахмат и го были созданы программистом, работающем в корпорации Mozilla. Он наблюдал за последними исследованиями в этой сфере. Именно из под его руки вышли самые лучшие игровые движки для го с открытым исходным кодом. Первый получил название Leela, после которого был выпущен LeelaZero. Последний — подражатель разработки DeepMind. Только вот у разработчика не было таких возможностей, как у DeepMind. Чтобы обучить AlphaGo Zero DeepMind 13 дней использовала 15 тысяч тензорных процессоров Google, которые работают над нейросетевыми вычислениями. Чтобы обучить свой движок разработчику LeelaZero понадобилось бы 17 веков.

В целях компенсации недостатка вычислительных мощностей разработчик распределил усилия. LeelaZero — децентрализованная система, которая может дополняться и улучшаться другими участниками. Благодаря распределённому сообществу LeelaZero сыграла против себя 10 миллионов игр, что больше, чем у AlphaGo Zero. Таким образом, этот движок стал одним из самых лучших в го.

Вскоре то же самое произошло и с шахматами. Гэри Линскотт, один из создателей Stockfish, применил код LeelaZero и инновационные идеи AlphaZero. Таким образом была создана Leela Chess Zero. Первое время разработчик сталкивался с некоторыми проблемами, но спустя какое-то время нейронная сеть начала улучшаться. Шахматный мир уже был захвачен AlphaZero, а сообщество этой игры было всполошено продуктивностью разработки. Однако проект Leela Chess Zero смог привлечь сотню добровольцев. По мере того, как они жертвовали свои вычислительные мощности и поправляли исходный код, движок становился только лучше. Сообщество проекта уже подозревает, что вскоре они смогут обогнать Stockfish, а там и до AlphaZero не далеко.

Гэри Линскотт был удивлён, что проект его уровня может быть создан обычным любителем за пару месяце. Программные библиотеки для нейронных сетей помогают создать революционный дизайн, уместив его в несколько десятков строк кода. Уже сейчас существуют приложения, которые могут распределять вычислительные мощности пользователей, а компания NVidia создала довольно доступные графические чипы, позволяющие обучаться нейронным сетям. Сам алгоритм MCTS является очень простым в реализации. Вы даже можете не разбираться в игре, для которой создаёте движок. Некоторые разработчики так и делают — разработчик Leela Zero не играл в го около двадцати лет.

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

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

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

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