Игры, в которые играли люди

Программа AlphaGo обыграла признанного чемпиона со счетом 4-1

Фото:liz west/flicker

Во вторник, 15 марта, в Сеуле прошла последняя встреча между компьютерной программой AlphaGo и южнокорейскими профессионалом го Ли Седолем. По итогам пяти матчей машина, работающая на технологии нейронных сетей, выиграла со счетом 4-1. Как это было и означает ли это, что искусственный разум окончательно превзошел человеческий?

Представьте: 6 августа 1945 года, последние дни второй мировой войны. Ивамото Каору и Хасимото Утаро, два японских мастера го, играют важную партию в местечке Ицукаити, одном из пригородов Хиросимы. Вдруг — ослепительная вспышка, над городом вырастает зловещий гриб. Разрушительная ударная волна выбивает все стекла в доме и раскидывает камни по игровой доске. Невозмутимые Ивамото и Хасимото по памяти восстанавливают свои позиции и доигрывают партию. Об атомной бомбе они узнали только вечером — игра в го не терпит суеты и не позволяет отвлекаться.

Го возникла в Древнем Китае примерно за тысячу лет до нашей эры и быстро стала популярной в странах нынешней Юго-Восточной Азии. Правила этой стратегической игры просты: игроки по очереди ставят на игровое поле черные и белые камни, стараясь отгородить ими как можно большую территорию. При этом тактика го столь многообразна и сложна, что даже начинающие уже не могут внятно объяснить непосвященному человеку причины своих ходов.

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

Мозг из машины

Работа AlphaGo основана на концепции нейронных сетей, предложенной еще в середине XX века. Тогда информатики сообразили, что компьютерные алгоритмы можно не просто навсегда фиксировать в железе, а наоборот, научить их перестраиваться в процессе обработки информации. Похожим образом работают нервные системы живых организмов, в которых при обучении связи между нейронами постоянно образуются, разрушаются или изменяют свою силу.

В XX веке техника еще не была готова к нейронным сетям, и постепенно о них стали забывать, пока в 2012 году не случилась настоящая революция. Алгоритм машинного обучения на нейронных сетях с огромной форой выиграл престижное соревнование в области компьютерного зрения ImageNet.


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

И именно на задачах компьютерного зрения проще всего объяснить работу нейронных сетей. Представим, что нам нужно написать программу для распознавания флагов на фотографиях. Как это сделать? Нейронная сеть, выполняющая такую задачу, будет состоять из нескольких слоев — подпрограмм, последовательно обрабатывающих входное изображение и передающих результат своего анализа на следующий слой. Он же, в свою очередь, может состоять из десятков, сотен и тысяч «электронных» нейронов — фрагментов кода, выполняющих свои маленькие задачи.

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

Похожие процессы происходят в нашей голове и потому маленькие фрагменты программ нейронных сетей и называются нейронами.


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

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

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

«Если пять лет назад к нам бы пришли и попросили написать программу, чтобы определять, есть ли в рекламном ролике бутылка с алкоголем, мы бы сказали, что это невозможно, — рассказывает Александр Крайнов, один из главных специалистов по компьютерному зрению в «Яндексе» и большой любитель го. — Сегодня хорошая команда программистов напишет такой алгоритм за неделю. Более того, теперь это простая задача: для тех же картинок можно автоматически определить, скажем, их «мрачную» атмосферу — с кладбищами, вампирами, зомби».

Компьютерный самоучка

Компьютерные программы для игры в го создают уже давно. Самые примитивные из них могут противостоять только новичкам игры, но разработанная в компании Google AlphaGo куда серьезней: ее работа основана как раз на глубоком машинном обучении, и прошлой осенью она уже обыграла чемпиона Европы по го с разгромным счетом 5-0.

Фото: liz west/flicker


AlphaGo состоит из двух основных частей. Первая — это 12 слоев нейронной сети с миллионами компьютерных нейронов, которые обучали на 30 миллионах ходов из задокументированных игровых партий. В каком-то смысле нейронная сеть Alpha Go тоже распознает образы и умеет по картинке на ходе N определять, как будет выглядеть игровое поле после хода N+1 (AlphaGo научилась делать это весьма неплохо: после обучения с фокусом внимания на партии победивших игроков она научилась верно предсказывать следующий ход живых игроков с вероятностью в 57%).

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

При этом действия AlphaGo не лишены элемента случайности: программа с определенной вероятностью может выбрать любой из нескольких наиболее выгодных вариантов ходов. Кстати, именно это сделало ее по-настоящему непобедимой: после обучения на уже сыгранных партиях AlphaGo продолжила тренироваться в бесконечных играх сама с собой. До них она была просто хорошо вышколенной машиной, помнящей миллионы выгодных ходов, хотя и способной обыграть европейского чемпиона (разница в уровне между игроками Азии и Европы очень велика). После игр с самой собой она стала настоящим мастером, способным бросить вызов одному из самых известных игроков го на планете, южнокорейцу Ли Седолю.

Черные начинают и проигрывают

Перед началом встречи Ли Седоль был уверен в своей разгромной победе во всех пяти матчах серии. Скучная, ортодоксальная, пресная – эксперты вслед за южнокорейцем не скупились на обидные эпитеты в адрес машины. 9 марта 2016 года все поменялось. Ли Седоль ходил черными (в го они ходят первыми) и заготовил для первого матча специальное начало. Уже после нескольких первых ходов партия не имела аналогов в истории, но AlphaGo не растерялась.

Быть может, она уже видела все эти ходы в бесконечных сражениях с самой собой, может, научилась отлично импровизировать (этот вариант вероятнее), а может, компьютеру просто повезло. Точно известно только одно: после 186 ходов Ли Седоль признал свое поражение в первом матче, а потом проиграл еще три игры (вторую, третью и пятую). После первых встреч южнокореец признался, что ни разу не чувствовал своего преимущества. AlphaGo ходила спокойно и уверенно, а в самые неожиданные моменты делала резкие выпады в сторону противника (по мнению экспертов, исход первой партии решил буквально один ход компьютера, на который у человека не оказалось достойного ответа).

Ли Седоль делает первый ход в партии против программы AlphaGo. Фото: EPA


Такого не ожидал никто. Эксперты рассуждали о возможностях AlphaGo по ее осенним играм и не могли предположить, как многому компьютер научится за несколько месяцев тренировок. «У AlphaGo просто нет слабых мест, — говорит Александр Крайнов. — Сила его самого слабого хода очень велика. Он не ошибается».

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

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

Дешевый наемный труд?

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

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

Член немецкой рок-группы Compressorhead, состоящей из роботов, на Ночи музеев в Москве. Фото: Sergei Ilnitsky/EPA


Теперь нейронные сети управляют роботами, сочиняют музыку и рисуют картины, которые многие искусствоведы не могут отличить от настоящих. Что особенно изящно, нейронные сети уже научились сами писать компьютерный код. А тот же Google обещает создать на основе AlpphaGo программы для моделирования климата и комплексных медицинских анализов заболеваний.

Так что людям, похоже, стоит задуматься о том, что скоро их конкурентами за рабочие места станут бездушные и не знающие усталости машины. Правда, случится это не прямо завтра: на одну программу Alpha Go работает 176 графических карточек Nvidia, каждая стоимостью примерно четыре тысячи долларов. Кроме того, нейронная сеть использует 1200 процессоров, и ей требуются сотни часов работы серверов для обучения алгоритма и тысячи человеко-часов работы программистов: в сумме выходит несколько миллионов или скорее десятков миллионов долларов за одну выигранную серию в го. Так что у людей еще есть некоторое время, чтобы подготовиться к приходу искусственного интеллекта.
Михаил Петров
Теги:

Читать еще на Чердаке: