
Онлайн книга «Искусственный интеллект»
Чтобы понять AlphaGo, стоит вспомнить об игре в крестики-нолики, известной большинству детей. Делая первый ход и располагая знак в центре сетки, вы либо выигрываете, либо играете вничью. Первый ход дает преимущество: у вас будет пять ходов, в то время как у вашего соперника – всего четыре. Большинство детей интуитивно понимают это и, играя с терпеливыми взрослыми, настаивают на праве первого хода. Достаточно просто написать компьютерную программу для игры в крестики-нолики против человека (первая такая программа была составлена в 1952 г.). Существует алгоритм, набор правил, применение которых позволит компьютеру всегда побеждать или играть вничью. Подобно «Hello, world!», программирование игры в крестики-нолики считается простым упражнением на вводных уроках информатики. Го – игра куда более сложная, однако также играется на доске, представляющей собой сетку. Каждому игроку дается горстка черных или белых камешков. Новички играют на сетке из девяти горизонтальных и девяти вертикальных линий, мастера – на сетке 19×19. Черные ходят первыми, размещая камень на пересечении линий. Следом ходят белые, также помещая камень на пересечении. Игроки ходят по очереди, стремясь «захватить» камни соперника и окружить их. Люди играют в го около 3000 лет. Разработчики и поклонники этой игры изучали ее закономерности начиная с 1965 г., а первая программа для го была написала в 1968 г. Существует целое научное направление, посвященное только этой игре, названное (как ни странно) компьютерное го. Игроки и исследователи компьютерного го годами накапливали записи игр, которые выглядят примерно так:
PC [The KGS Go Server at http://www.gokgs.com/]
Человеку может показаться, что текст выше – полная бессмыслица, но он структурирован для компьютерной обработки. Такая структура называется «Умный игровой формат» (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 в высшей степени глупа. Чтобы победить одного-единственного мастера, программе требуется грубая сила и плоды труда множества людей. Программа и заложенные в ней вычислительные методы пригодятся для более полезных задач, требующих массивной переработки чисел. И это действительно полезно для мира – но далеко не все в мире является вычислениями. |