Искусственный интеллект научился побеждать в го

12 марта 2016 года войдёт в историю как день яркой демонстрации того, что человечество не является исключительной средой для распространения идей.

robot-go


Два человека сидели друг напротив друга за чистой доской для игры Го. 12 марта 2016 года в 13:00 по местному Сеульскому времени должна была начаться третья партия в серии из пяти игр. Серии, которой было предназначено перевернуть жизни десятков миллионов игроков в Го.

Чаша с чёрными камнями на ближайшие четыре часа принадлежала Ли Седолю, одному из сильнейших профессиональных игроков мира. Белые камни ставил на доску Аджа Хуан, обладатель любительского 6 дана и один из разработчиков компьютерной программы AlphaGo. Именно она решала, какой ход сделать за белых.




Через четыре часа и тринадцать минут после начала матча взволнованный Ли Седоль собирал камни с доски, объявив третье подряд поражение от компьютера, и, тем самым, поражение в пятиматчевой серии.
Это сражение чем-то напоминало бой Оберина Мартелла и Григора Клигана в сериале «Игра Престолов». Ли Седоль в самом начале партии навязал противнику сложную борьбу (корейцы любят такой стиль), ища слабости программы, но она отвечала уверенно и красиво. В конце партии, когда у человека оставалось мало времени для раздумий, AlphaGo продемонстрировала мощную игру в ко-борьбе (форме тактической борьбы, где раньше компьютеры проигрывали людям «в одну калитку») и буквально сокрушила Ли Седоля.

Демис Хассабис, руководитель рабочей группы AlphaGo, казался растерянным на послематчевой пресс-конференции. Он начал свою речь словами «To be honest, we’re a bit stunned and speechless» («Честно говоря, мы слегка потрясены и потеряли дар речи»).

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

Многие любители Го испытали потрясение 12 марта: привычный мир рухнул. Многие из тех, кто не играет в Го, не считают это событие значимым. Подумаешь: шашки, шахматы, Го… Какая разница? Прочитав статью до конца, вы поймёте, почему разница есть, почему мир для игроков Го не рухнул, и почему 12 марта мы сделали безвозвратный шаг в сингулярность.

Для этого нам придётся немного окунуться в историю игры.

Го как игра

Го — одна из древнейших игр, доживших до современности. Точных данных о её зарождении нет. Древнейшие игровые артефакты, обнаруженные в Китае, датируют началом нашей эры. Можно точно сказать, что игра зародилась в Китае (там она называется «вейци»), распространилась по всей Азии, и расцвела в Японии приблизительно в XVI-XVII веках.

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

robot-go1
Фреска из пещеры Юйлинь 32 (провинция Ганьсу), эпоха Пяти династий (907–979 гг. н.э.)

AlphaGo выходит на арену

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

Это было справедливо, потому что всё, что умели компьютеры — перебирать варианты ходов («я сюда — он сюда — я сюда — он сюда»), отбрасывая заведомо неудачные варианты. Количество «веток ходов» в Го, как мы уже говорили, больше количества атомов во Вселенной — особо не переберёшь.

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

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

Создатели AlphaGo объединили самые успешные подходы, накопленные в индустрии: нейронные сети глубокого обучения, генетические алгоритмы (немного отличающиеся копии AlphaGo играли сами с собой и отбирались лучшие) и методы Монте-Карло.

Главное преимущество нейросетей заключается в том, что они позволяют достигать очень высоких уровней абстракции, вычленяя из изображений их, как бы сказать… чисто абстрактные черты. Например, если нейросеть обучена распознаванию котиков, то в ее первый слой просто загружается изображение, а последующие слои обрабатывают его примерно так: второй распознает контрастность пикселей, третий наличие линий, четвертый их ориентацию, пятый мохнатость, шестой «ушастость», а седьмой и последний — «кóтовость». Важно понимать, что это очень условное представление о нейросетях — никто их заранее не программирует и не знает, что и как распознает данный слой. Как раз наоборот: все это происходит само собой по мере обучения. Суть аналогии в том, что уровень абстрактности очень сильно растет по мере движения от нижних к верхним слоям.

robot-go2
Тот случай, когда нейросеть пытается увидеть «собаковость». The Telegraph

На «вход» в AlphaGo загрузили полторы сотни тысяч партий (в статье Wired пишут о 30 миллионах человеческих ходов), в верхних слоях нейросети образовались некие абстрактные соображения «сбалансированности игровой доски», а потом AlphaGo заставили играть саму с собой, чтобы развить эти соображения.

Го как тренировка сингулярности

12 марта 2016 года войдёт в историю как день яркой демонстрации того, что человечество не является исключительной средой для распространения идей.

Эта демонстрация приближает нас к созданию неспецифического (сильного) искусственного интеллекта, и даёт нам возможность подготовиться к нему. Мы получили очень узкую «заводь смыслов Го», специфическое и сверхэффективное расширение человечества как среды распространения идей. Ближайший вызов — научиться сосуществовать с ним. Мы должны это сделать, потому что нам придётся учиться сосуществовать с гораздо более широкими «заводями», принимающими за нас решения о лечении болезней (IBM Watson уже это делает), о путях доставки грузов и движении транспорта, о выборе образовательных программ…

Руководители Google и AlphaGo должны понимать, что вопрос не только в технологии обучения нейросети. Гораздо важнее — интеграция технологий в человеческое общество. Интеграция AlphaGo в Го-сообщество может стать пилотным проектом.

Что может сделать Google?

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

Худшее, что может сделать Google — выключить рубильник, просто обкатав технологии (как это сделали IBM с Deep Blue). Го-сообщество велико, и ему нанесён слишком серьёзный психологический удар.