Выбрать главу

Игроки и исследователи компьютерного го годами накапливали записи игр, которые выглядят примерно так:

(; GM [1]

FF [4]

SZ [19]

PW [Sadavir]

WR [7d]

PB [tzbk]

BR [6d]

DT [2017 – 05–01]

PC [The KGS Go Server at http://www.gokgs.com/]

KM [0.50]

RE [B+Resign]

RU [Japanese]

CA [UTF-8]

ST [2]

AP [CGoban:3]

TM [300]

OT [3x30 byo-yomi]

; B [qd]; W [dc]; B [eq]; W [pp]; B [de]; W [ce]; B [dd]; W [cd]; B [ec]; W [cc]; B [df]; W [cg]; B [kc]; W [pg]; B [pj]; W [oe]; B [oc]; W [qm]; B [of]; W [pf]; B [pe]; W [og]; B [nf]; W [ng]; B [nj]; W [lg]; B [mf]; W [lf]; B [mg]; W [mh]; B [me]; W [li]; B [kh]; W [lh]; B [om]; W [lk]; B [qo]; W [po]; B [qn]; W [pn]; B [pm]; W [ql]; B [rq]; W [qq]; B [rm]; W [rl]; B [rn]; W [rj]; B [qr]; W [pr]; B [rr]; W [mn]; B [qi]; W [rh]; B [no]; W [on]; B [nn]; W [nm]; B [nl]; W [mm]; B [ol]; W [mp]; B [ml]; W [ll]; B [np]; W [nq]; B [mo]; W [mq]; B [lo]; W [kn]; B [ri]; W [si]; B [qj]; W [qk]; B [kq]; W [kp]; B [ko]; W [jp]; B [lp]; W [lq]; B [jq]; W [jo]; B [jn]; W [in]; B [lm]; W [jm]; B [ln]; W [hq]; B [qh]; W [rg]; B [nh]; W [re]; B [rd]; W [qe]; B [pd]; W [le]; B [md])

Человеку может показаться, что текст выше – полная бессмыслица, но он структурирован для компьютерной обработки. Такая структура называется «Умный игровой формат» (SGF, Smart Games Format). Из набора цифр и букв мы узнаем о том, кто играл партию, где, какие ходы были сделаны и как игра завершилась.

Ход игры описан в той части, где мы видим максимально плотный текст. Колонки в го маркированы в алфавитном порядке слева направо, а строки – сверху вниз. В нашем случае черные (B) ходили первыми и поместили камешек на пересечении колонок q и d, что записано как;B [qd]. Следующие символы;W [dc] говорят о том, что камень белых (W) оказался на пересечении d и c. Каждый последующий ход записан в подобном формате. Итог игры (RE) зафиксирован как RE [B+Resign], что означает капитуляцию черных.

Разработчики AphaGo собрали огромный массив данных из 30 млн SGF-файлов. Все эти архивы не искусственно симулированные матчи, а записи реальных игр, сыгранных реальными людьми (и иногда компьютерами). Так, играя в го на одном из множества сайтов, любители и профессионалы, по сути, добавляли опыт своей игры в массив. На самом деле не так уж и сложно создать видеоигру в го: в интернете можно найти достаточно инструкций и свободного исходного кода. Кроме того, все видеоигры могут сохранять данные партий. Правда, одни из них делают это, другие – нет. Некоторые хранят данные ваших партий и затем передают их разработчикам. Создатели сайтов для онлайн-игры в го публикуют онлайн архивы сыгранных партий в виде огромных пакетов. В результате все эти пакеты были объединены в массив из 30 млн игр, собранный командой AlphaGo.

Программистам понадобилось 30 млн игр, чтобы «натренировать» модель, которую они назвали AlphaGo. Кроме того, вы должны понять, что профессиональные игроки в го годами играют в компьютерное го. Так они тренируются. Вследствие этого 30 млн игр также включают в массив и игры лучших игроков мира. Миллионы часов человеческого труда были ценой тренировочных данных – хотя большинство историй об AlphaGo повествует о волшебных алгоритмах, а не о людях, которые годами незаметно для окружающих (и без вознаграждения) создавали тренировочный массив.

Разработчики программы AlphaGo использовали метод под названием поиск Монте-Карло для того, чтобы выбрать из 30 млн игр множество ходов, которые с наибольшей вероятностью ведут к победе. Затем они запрограммировали его использовать алгоритм, выбирающий следующий ход из множества. Кроме того, они также реализовали отдельный алгоритм, подсчитывающий вероятность победы для каждого конкретного хода из множества. Вычисления происходили в масштабах, едва вообразимых человеком. В го существует 10163 возможных позиций. Так, благодаря наложению нескольких вычислительных методов и выбору хода с наибольшей вероятностью победы разработчики создали программу, победившую лучших игроков в го.

Умна ли AlphaGo? Ее разработчики – определенно. Им удалось решить сложную математическую задачу, над которой десятилетиями бились десятки лучших умов. Одной из наиболее поразительных вещей в математике является то, что она учит видеть закономерности в окружающем мире. Большинство вещей функционирует согласно математическим правилам: кристаллы растут регулярным образом, цикады впадают в спячку под землей на годы и просыпаются лишь тогда, когда температура почвы достигает нужной отметки, и таких примеров множество. AlphaGo – это прорыв в математике, достижение, которое было бы невозможным без аппаратного и программного прогресса в вычислительной технике. Стоит признать достижение команды разработчиков.

Однако AlphaGo не является разумной машиной. У нее нет сознания. Она делает только одну вещь: играет в компьютерную игру. Она содержит данные 30 млн игр, сыгранных любителями и профессионалами го, поэтому в каком-то смысле AlphaGo в высшей степени глупа. Чтобы победить одного-единственного мастера, программе требуется грубая сила и плоды труда множества людей. Программа и заложенные в ней вычислительные методы пригодятся для более полезных задач, требующих массивной переработки чисел. И это действительно полезно для мира – но далеко не все в мире является вычислениями.