Как компьютер научился обыгрывать человека в го и StarCraft

Как компьютер научился обыгрывать человека в го и StarCraft

И какая от этого польза человечеству

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

Герой подкаста — Сергей Бортунов, исследователь в Google DeepMind, занимается машинным обучением. Сергей расскажет, как игры в StarCraft и го помогут машинам решать проблемы человечества.

Что такое го?

Го — это древние восточные шахматы с некоторыми отличиями. Игра существовала уже 2 500 лет назад. С точки зрения математики и вероятностей эта игра гораздо сложнее шахмат.

Что такое StarCraft? 

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

Как Сергей попал в DeepMind 

Про DeepMind мне рассказал студент, которого я курировал, когда был аспирантом.
Потом я попал на конференцию ICML, где познакомился со спикерами из компании лично. 

ICML — International Conference on Machine Learning, это одна из престижных конференций в этой области. Там были интересные доклады людей из DeepMind. Мне понравилось то, о чём говорили ребята, и я попросился к ним на стажировку. 

В тот момент Google покупал DeepMind. Я этого не знал, меня слабо интересовала внутренняя подоплёка, просто хотелось попасть на хорошую стажировку. 

Во время стажировки мне сделали предложение о работе. Теперь я живу в Лондоне, и в моём контракте написано, что я работаю в Google UK Limited.

Игры, в которые люди играют лучше машин

В мире есть две игры, в которые люди исторически играют гораздо лучше, чем машины, — шахматы и го. В 1970-е годы начали писать программы, которые играют в шахматы. Сначала они играли совсем плохо, потом чуть лучше, но гроссмейстеры всегда выигрывали у машин. 

В 1997 году компьютер компании IBM обыграл чемпиона мира по шахматам Гарри Каспарова. Люди к этому шли десятилетиями. А в 2016 году программа и команда AlphaGo, которая как раз является проектом DeepMind, обыграла чемпиона мира по игре в го.

Победа в шахматах в некотором смысле не очень интересна, потому что это победа перебором. Deep Blue победил Каспарова только потому, что лучше перебирал ходы.
А с определённого момента в шахматах можно просчитать все ходы до самого конца. 

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

Ребятам из DeepMind в некотором смысле удалось прописать и перебор, и интуицию алгоритму для игры в го. Нейросеть AlphaGo, с одной стороны, отвечала за интуитивную оценку полезности тех или иных ходов и состояний досок. А с другой — перебирала возможные варианты. 

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

Как нейросети учатся играть и становятся лучше

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

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

В чём сложность StarCraft для машин

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

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

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

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

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

Какая практическая польза человечеству от побед машин
в играх

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

В реальной жизни у человека есть 80, может быть, 100 лет. Всё это время мы учимся. 

Чем лучше машины играют в игры, тем лучше мы понимаем, как функционирует наш организм

Люди — органические существа. Всё, что в нас происходит, — это сворачивание белков. Растут мышцы — сворачиваются какие-то белки. Принимаем лекарство — это молекулы, которые заставляют белки вести себя определённым образом. 

У нас есть белок, развёрнутый линейно. Представьте себе, что мы его отпускаем, и он сворачивается по своим законам. Например, потому, что какие-то молекулы любят друг с другом соединяться. Отсюда есть более и менее вероятные состояния белка. В одномерной структуре надо предсказать 3D-структуру, когда белок уже свернётся. 

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

Без машинного обучения предсказать, как поведёт себя белок, сложно и дорого. У аспиранта может быть тема диссертации: «Сворачивание какого-то конкретного белка», может, нескольких белков. Получается, что он 3–5 лет своей жизни потратит, чтобы свернуть 3–5 белков.

Чем сворачивание белка похоже на игру в StarCraft

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

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

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

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

Полная версия подкаста

Слушайте на Яндекс-музыке по подписке «Яндекс-плюс». Думали, в сказку попали?

Ну, на других платформах тоже есть. Ищите «Запуск завтра». 

Веб-разработка — это новый чёрный
На базе веб-технологий делают всё — от сложного софта до высокобюджетных игр. Изучите технологии и начните карьеру в ИТ. Старт бесплатно. Попробуйте, вдруг вам понравится.
Изучить
Веб-разработка — это новый чёрный
Получите ИТ-профессию
В «Яндекс Практикуме» можно стать разработчиком, тестировщиком, аналитиком и менеджером цифровых продуктов. Первая часть обучения всегда бесплатная, чтобы попробовать и найти то, что вам по душе. Дальше — программы трудоустройства.
Начать карьеру в ИТ
Получите ИТ-профессию Получите ИТ-профессию Получите ИТ-профессию Получите ИТ-профессию