Страница 8 из 9
Создание машины, способной научиться играть в го, все еще казалось отдаленной мечтой. Сперва они взялись за решение задачи, которая представлялась менее заумной: освоение игр Atari 1980-х годов. Вероятно, компания Atari виновата во множестве прогулов уроков учениками конца 1970-х и начала 1980-х. Я лично хорошо помню, как много времени я потратил, играя на приставке Atari 2600 одного своего друга в Pong, Space Invaders и Asteroids. Эта приставка была одним из первых устройств, конструкция которых позволяла играть не в одну, а в несколько разных игр, которые загружались на кассетах. Такая система открыла возможность создать с течением времени целый спектр разнообразных игр. Более ранние приставки позволяли играть только в одну игру, которая была физически встроена в них.
Одна из моих любимых игр на Atari называлась Breakout. Параллельно верхней кромке экрана шла стена из разноцветных кирпичиков, а игрок управлял расположенной внизу ракеткой, которую можно было двигать влево или вправо при помощи джойстика. Шарик отскакивал от ракетки и летел в сторону кирпичиков. Каждый раз, когда он попадал в какой-нибудь кирпичик, кирпичик исчезал. Целью игры было убрать с экрана все кирпичики. За попадание в один из желтых кирпичиков, из которых состояла нижняя часть стены, начислялось одно очко. Красные кирпичики в верхней части приносили по семь очков. По мере исчезновения кирпичиков ракетка становилась все меньше, а шарик летал все быстрее, что делало игру труднее.
Особенное удовольствие мы испытали однажды, когда придумали хитрый способ взломать эту игру. Нужно было пробить сквозь кирпичики на краю экрана туннель; тогда, если шарик пролетал сквозь него и оказывался сверху от стены, он начинал скакать, отражаясь от верхней кромки экрана и верхних, «дорогих», кирпичиков и постепенно уничтожая стену. Игрок мог расслабиться и просто смотреть за этим процессом, пока шарик в конце концов не прилетал сквозь стену обратно вниз. Нужно было только держать ракетку наготове, чтобы снова отбить шарик вверх. Очень приятная была стратегия!
Хассабис и другие члены группы, которую он собирал в это время, также много играли в молодости в компьютерные игры. Возможно, их родителям было приятно узнать, что время и силы, потраченные на эти игры, не были растрачены впустую. Игра Breakout оказалась идеальным полигоном для проверки способности коллектива DeepMind запрограммировать компьютер на обучение играм. Написать программу для каждой отдельной игры было бы работой сравнительно несложной. Но Хассабис и его коллеги ставили перед собой гораздо более трудную задачу.
Они хотели написать программу, которая получала бы на входе состояние пикселей экрана и текущий счет и играла так, чтобы максимизировать счет. Правила игры программе не сообщаются: она должна случайным образом экспериментировать, двигая в разные стороны ракетку в Breakout или по-всякому стреляя из лазерной пушки по снижающимся кораблям пришельцев в Space Invaders. Каждый раз, когда программа делает ход, она может оценить, привел ли он к увеличению счета или не произвел никакого эффекта.
Эта программа реализует возникшую еще в 1990-е годы концепцию обучения с подкреплением, которая предполагает корректировку вероятности определенных действий в зависимости от воздействия на функцию вознаграждения или счет. Например, в игре Breakout можно принять только одно-единственное решение – сдвинуть ракетку, расположенную внизу экрана, влево или вправо. Изначально выбор делается с вероятностью 50: 50. Но если случайное перемещение ракетки приводит к попаданию по шарику, то через короткое время после этого счет увеличивается. Тогда программа производит пере-калибровку вероятности смещения влево или вправо с учетом этой новой информации. Это увеличивает вероятность смещения в том же направлении, в котором движется шарик. Новшеством было совмещение такого обучения с нейронными сетями, которые должны были оценивать состояние пикселей и решать, какие именно элементы коррелируют с ростом счета.
Вначале, поскольку компьютер просто пробовал случайные ходы, его игра была ужасна; он почти не набирал очков. Но каждый раз, когда очередной случайный ход приводил к увеличению счета, программа запоминала этот ход и более активно использовала его в дальнейшем. Постепенно случайные ходы прекратились, и стал проявляться более обоснованный рисунок игры – ходы, которые, как программа выяснила на опыте, по-видимому, способствовали росту счета.
Видеоролик, который сотрудники DeepMind приложили в качестве иллюстрации к написанной впоследствии статье об этой работе, стоит посмотреть. В нем показано, как программа учится играть в Breakout. Сначала видно, как она случайным образом двигает ракетку взад и вперед, чтобы посмотреть, что из этого выйдет. Затем, когда шарик наконец попадает в ракетку, отскакивает от нее и разбивает кирпичик, отчего увеличивается счет, программа начинает переписывать самое себя. По-видимому, соприкосновение пикселей ракетки с пикселями шарика приносит положительный результат. После 400 партий программа играет уже по-настоящему сильно: ракетка постоянно отправляет шарик то туда, то сюда.
Но настоящий шок я испытал, когда увидел, что она открыла, сыграв 600 партий. Она нашла нашу лазейку! Не знаю точно, сколько партий потребовалось сыграть нам в детстве, чтобы освоить этот фокус, но, судя по количеству времени, которое потратили мы с другом, их вполне могло быть и больше. И вот тебе на. Манипулируя ракеткой, программа стала пробивать по бокам туннели, чтобы шарик застревал в пространстве между верхом стены и верхним краем экрана. После этого счет начинает расти очень быстро, а компьютеру почти ничего не приходится делать. Насколько я помню, когда мы с моим другом открыли этот трюк, мы запрыгали от восторга. Машина же не ощутила ничего.
К 2014 году, через четыре года после создания DeepMind, программа научилась обыгрывать человека в двадцати девяти из сорока девяти игр для Atari, которые были ей предложены. Статья с подробным описанием достижений группы была опубликована в журнале Nature в начале 2015 года. Любая публикация в Nature считается одной из вершин карьеры ученого. Но эта статья удостоилась еще более высокой чести: она стала главной темой всего выпуска. Редакция журнала признала ее появление важным этапом в развитии искусственного интеллекта.
Стоит еще раз подчеркнуть, насколько поразительным было это достижение с точки зрения программирования. Программа, имевшая в своем распоряжении только сырые данные о состоянии пикселей и изменениях счета, прошла весь путь от случайных перемещений ракетки Breakout взад и вперед к пониманию того, что создание туннеля на краю стены позволяет добиться максимального счета. Но игры для Atari – далеко не ровня древней игре го. Хассабис и его коллеги по DeepMind решили, что готовы создать новую программу, которая могла бы взяться и за эту задачу.
Именно тогда Хассабис решил продать свою компанию Google. «Мы не собирались этого делать, но в течение трех лет я был настолько сосредоточен на поисках финансирования, что на исследования оставалось всего 10 % моего времени, – объяснял он в то время в интервью журналу Wired. – Я понял, что в одной жизни, наверное, не хватит времени и построить компанию размером с Google, и решить задачу создания ИИ. Чем я буду больше гордиться потом – созданием многомиллиардного дела или вкладом в раскрытие тайны разума? Выбор был очевиден». Благодаря этой продаже он получил в свое распоряжение всю мощь Google и возможность работать над созданием кода для достижения своей цели – разрешения проблемы го… а там и интеллекта.
Предыдущие компьютерные программы, созданные для игры в го, не могли и приблизиться к уровню, достаточному для игры на равных даже против сильного любителя. Поэтому многие эксперты относились к мечте коллектива DeepMind создать программу, способную хотя бы отдаленно сравниться с мастерами международного класса, в высшей степени скептически. Большинство по-прежнему было согласно с мнением, которое высказал в газете New York Times в 1997 году, после шахматной победы компьютера DeepBlue, астрофизик Пит Хат: «До того как компьютер обыграет человека в го, пройдет, возможно, еще лет сто – а может быть, и больше. Любой более или менее умный человек, научившийся играть в го, через несколько месяцев сможет победить все существующие компьютерные программы. Для этого не надо быть Каспаровым».