Мой любимый игрок – это, возможно… я сам три или четыре года назад.
Третья фундаментальная проблема подражания как стратегии обучения заключается в том, что если ваша главная цель – копировать учителя, вам будет трудно его превзойти.
Об этом задумывался один из пионеров машинного обучения, человек, придумавший сам этот термин, – Артур Сэмюэл. Еще в 1959 году он создал самообучающуюся программу для игры в шашки. «Я заложил в нее ряд принципов, которые, как мне было известно, имели отношение к игре, – рассказывал он, – хотя на тогда, ни сейчас я не уверен в их точном значении». В этот список входили такие параметры, как количество шашек у игрока, количество дамок, число доступных ходов и так далее [610].
В итоге программа научилась обыгрывать самого Сэмюэла, хотя использовала только те стратегические идеи, которые он в нее вложил. Способность безошибочно рассчитывать варианты в сочетании с точной настройкой «веса» каждого фактора методом проб и ошибок позволила системе превзойти учителя. Для того времени это было грандиозным достижением (как мы уже упоминали, акции IBM взлетели за одну ночь), и Сэмюэл справедливо гордился своим успехом. Тем не менее, он прекрасно понимал, что проект достиг потолка. «Сейчас компьютер играет по моим правилам и отлично умеет комбинировать, извлекая максимум выгоды, – сетовал он. – Но единственный способ победить мастеров – это дать машине лучший набор принципов. Но как?.. На сегодня я единственный человек в мире, кто может научить ее играть лучше, а она уже превзошла мои уроки».
Сэмюэл полагал, что настоящий прорыв случится тогда, когда компьютер сможет сам вырабатывать стратегические принципы. «Если бы только компьютер мог генерировать собственные условия! Но в ближайшем будущем на это мало надежды, – говорил он [611]. – К сожалению, никакой удовлетворительной схемы для этого пока не придумано» [612].
К концу ХХ века фундаментальные методы компьютерной игры изменились на удивление мало, как и их ограничения. Машины стали в миллионы раз быстрее, машинное обучение выделилось в отдельную индустрию, но упрямая зависимость компьютеров от нас осталась прежней.
В 1990‐е годы команда IBM, работая над шахматным суперкомпьютером Deep Blue, создала оценочную функцию, очень похожую на ту, что Сэмюэл использовал для шашек. Работая с гроссмейстерами, исследователи пытались перечислить все факторы, которые определяют силу позиции: количество фигур, их подвижность, контроль центра, безопасность короля, пешечная структура и так далее. Вместо 38 параметров Сэмюэла они использовали восемь тысяч [613]. «Эта шахматная оценочная функция, – рассказывал руководитель команды Сюй Фэнсюн, – вероятно, сложнее всего, что когда‐либо описывалось в компьютерной литературе по шахматам» [614]. Главный вопрос, разумеется, состоял в том, как взвесить и объединить эти тысячи факторов в единую оценку позиции. Сколько пешек стоит отдать за контроль центра? А за безопасность короля? Баланс был жизненно важен.
Как же они настроили эти тысячи параметров? С помощью подражания.
Команда Deep Blue использовала базу данных из 700 000 партий гроссмейстеров. Они показывали компьютеру позиции из реальных игр и спрашивали, какой ход он бы сделал. Настраивая оценочную функцию, они стремились к имитации человеческих ходов. Если, скажем, повышение ценности двух слонов делало выбор Deep Blue более похожим на ход гроссмейстера, то этот параметр усиливали.
Эта подражательная стратегия, основанная на человеческом опыте, была соединена с безошибочным расчетом и «грубой силой» машины. Компьютер мог за секунду перебрать сотни миллионов позиций. Этого в сочетании с человеческими критериями оценки хватило, чтобы победить чемпиона мира Гарри Каспарова[615] в историческом матче 1997 года. «Гарри готовился играть против компьютера, – сказал руководитель проекта Си Джей Тан. – Но мы запрограммировали машину так, что она играла как гроссмейстер» [616].
С философской точки зрения некоторые ученые сомневались: не станет ли эта зависимость от человеческих ролевых моделей тормозом для программ? В начале 90‐х Джонатан Шеффер разработал программу для игры в шашки, которая стала настолько сильна, что, когда ее ход отличался от хода гроссмейстера, решение машины часто оказывалось лучше. «Конечно, мы могли бы „подкрутить“ оценочную функцию так, чтобы программа систематически делала человеческие ходы, – писал он, – но далеко не очевидно, что это пошло бы ей на пользу». Во-первых, подгонка под человека снижает способность удивлять противника. Во-вторых, непонятно, полезна ли имитация, когда программа уже достигла уровня лучших людей. «Добиться дальнейшего прогресса оказалось сложно», – признал Шеффер [617]. Его проект, в сущности, зашел в тупик. Вопрос остался открытым для всей индустрии: «насколько имитация эксперта совместима с по-настоящему сильной игрой» [618]?
Пятнадцать лет спустя система AlphaGo от DeepMind наконец реализовала концепцию Артура Сэмюэла о машине, способной выработать собственные стратегические принципы с нуля. Вместо тысяч вручную прописанных характеристик она использовала глубокую нейронную сеть, чтобы автоматически находить паттерны и связи, делающие ходы выгодными. Примерно так же, как нейросеть AlexNet училась отличать кошку от собаки по текстурам и формам. При этом AlphaGo прошла такое же обучение, как и Deep Blue: училась угадывать ходы экспертов в го по огромной базе из 30 миллионов позиций [619]. Она научилась предсказывать ходы человека с точностью 57 %, побив предыдущий рекорд в 44 %. В октябре 2015 года AlphaGo стала первой программой, победившей профессионала в го (трехкратного чемпиона Европы Фань Хуэя). А в марте 2016 года она разгромила Ли Седоля – обладателя 18 титулов чемпиона мира и одного из сильнейших игроков планеты.
И снова, по иронии судьбы, компьютер, превзошедший человека, в душе оставался имитатором [620]. Он не учился делать лучшие ходы. Он учился делать ходы, которые делали люди.
Успех Deep Blue и AlphaGo стал возможен только благодаря огромным базам данных человеческих игр. Эти победы вызвали такой резонанс в мире именно из-за популярности шахмат и го. Но эта же популярность и обеспечила победу машинам. Каждый ход, сделанный людьми за историю игр, был использован против нас. Компьютеры не показали бы таких впечатляющих результатов в менее популярной игре – им просто не хватило бы примеров для обучения. Таким образом, популярность сыграла двойную роль. Она сделала достижение значительным и возможным.
Однако не успела AlphaGo насладиться триумфом, как в 2017 году ее сместила с пьедестала еще более мощная программа – AlphaGo Zero [621]. Главное отличие заключалось в объеме человеческих данных, использованных для обучения: их было ровно ноль. Начав с чистого листа, со случайной игры, программа просто играла сама с собой. Снова, и снова, и снова. Невероятно, но после 34 часов самообучения она достигла уровня той версии AlphaGo, что победила Ли Седоля. Спустя 72 часа команда DeepMind устроила матч между двумя системам. AlphaGo Zero, используя лишь одну десятую вычислительных ресурсов предшественницы, выиграла серию из 100 партий со счетом 100:0.
Как написали исследователи DeepMind в журнале Nature: «Человечество накапливало знания о го миллионами партий на протяжении тысяч лет, кристаллизуя опыт в схемах и книгах» [622]. AlphaGo Zero открыла все это за трое суток.
Но за кадром происходило кое-что любопытное. Системе не показали ни одной человеческой партии. И тем не менее, она училась путем подражания. Она училась имитировать… саму себя.
Вот как работает «самоимитация». Мастерство в играх вроде шахмат или го требует двух типов мышления: «быстрого» и «медленного» [623]. Есть медленное, сознательное рассуждение: «Если я пойду сюда, он ответит так, а я потом так…». У AlphaGo Zero эту роль выполнял алгоритм поиска по дереву Монте-Карло (MCTC), просчитывающий варианты ход за ходом [624]. Но этот медленный расчет тесно связан с быстрой интуицией двумя способами.
Первый – это интуитивная оценка позиции до всякого расчета. Насколько хороша ситуация на доске? Эту функцию выполняла нейросеть (оценочная сеть), которая мгновенно выдавала вероятность выигрыша (от 0 до 100 %).
Второй тип «быстрого» мышления включается, когда мы смотрим на доску и видим несколько вариантов ходов. Некоторые ходы напрашиваются сами собой, другие неочевидны. Мы тратим время на просчет только тех вариантов, которые интуиция подсказывает как перспективные. Именно здесь кроется секрет AlphaGo Zero. Возможные ходы предлагает так называемая стратегическая нейросеть. Она смотрит на позицию и присваивает каждому возможному ходу рейтинг. Что означает это число? Это предсказание того, какой ход машина в итоге выберет после долгого расчета.
Идея кажется странной, почти парадоксальной. Стратегическая сеть пытается угадать, к какому выводу придет алгоритм MCTS после тщательного перебора вариантов. И при этом сам алгоритм MCTS использует эти догадки, чтобы направлять свой поиск (он проверяет в первую очередь те ходы, которые сеть считает вероятными) [625]. «AlphaGo Zero становится собственным учителем, – объясняет Дэвид Сильвер из DeepMind. – Она тренирует свою нейросеть предсказывать ходы, которые сама же AlphaGo Zero и делает» [626].
Кажется, что это рецепт самосбывающегося пророчества (система использует прогнозы, чтобы делать ходы, которые она предсказала). Но на самом деле происходит усиление:
«Быстрая» сеть дает подсказки.
«Медленный» алгоритм MCTS использует их, чтобы провести более глубокий и качественный поиск.
В результате поиска машина находит ход, который лучше первоначальной догадки.
Этот новый, улучшенный ход используется для переобучения «быстрой» сети.
Сеть становится умнее, дает лучшие подсказки, и цикл повторяется.
В техническом сообществе этот процесс известен как «усиление», но его можно назвать и чем‐то вроде трансцендентности. AlphaGo Zero училась подражать только самой себе. Она использовала свои догадки, чтобы принимать лучшие решения, а затем училась предсказывать эти лучшие решения. Она начала со случайной игры. 72 часа спустя она стала сильнейшим игроком в мире.