Шрифт:
Интервал:
Закладка:
Принципиальная новация заключалась в том, что для предсказания распределения вероятностей в узлах дерева MCTS, а также для оценки терминальных позиций дерева перебора в AlphaGo применялись свёрточные нейронные сети: «сеть политик» (policy network) и «сеть оценки» (value network) соответственно. Неслучайно в числе авторов статьи с описанием AlphaGo в Nature можно найти уже знакомого нам по программе распознавания изображений AlexNet Илью Суцкевера. Для первичного обучения нейронных сетей AlphaGo использовалась база данных онлайн-сервиса KGS Go, содержащая 29,4 млн позиций из 160 000 игр сильных игроков в го (с шестого по девятый дан). Датасет был расширен за счёт отражений и поворотов позиций. Доучивание сетей происходило в режиме обучения с подкреплением за счёт игр, в которых программа играла сама с собой.
6.2.3.3 Дальнейшее развитие AlphaGo — отказ от человеческих знаний
Хотя «момент Deep Blue» для го определённо состоялся, это не означало окончания работы DeepMind над проектом. В конце декабря 2016 г. на го-сервере Tygem зарегистрировался новый игрок под именем Magister. Magister одержал 30 побед подряд над лучшими игроками сервера, а затем перешёл на сервер FoxGo, сменив имя на Master, и выиграл ещё 30 раз. Лишь однажды игра была технически признана ничьей, когда у китайского профессионала Чэнь Яое возникли проблемы с подключением к интернету после нескольких начальных ходов партии. Загадочный Master четыре раза одержал победу над корейским игроком девятого дана Пак Чжон Хваном и дважды — над Ке Цзе. Гу Ли также не удалось одолеть неизвестного, и после поражения он пообещал награду в размере 100 000 юаней (около 15 000 долларов) тому, кто сможет это сделать.
Некоторые пользователи сервера заподозрили, что новый игрок не является человеком: Master играл по десять партий в день с небольшими перерывами или вовсе без них. 4 января 2017 г. Демис Хассабис рассказал в Twitter, что за Magister и Master играла обновлённая версия AlphaGo. Благодаря этому эксперименту DeepMind игроки получили возможность изучить приёмы новой версии программы[1950].
19 октября 2017 г. в Nature вышла очередная статья[1951] от команды AlphaGo. В ней была представлена AlphaGo Zero — новая версия программы, при обучении которой не использовались партии игроков-людей. В процессе обучения AlphaGo Zero за три дня превзошла уровень игры версии AlphaGo, игравшей в матче против Ли Седоля, за 21 день достигла уровня игры AlphaGo Master (той самой версии, что играла на сервере FoxGo под ником Master), а спустя 40 дней стала сильнее всех имевшихся на тот момент версий AlphaGo. По мнению Хассабиса, рекордная сила игры AlphaGo Zero была связана именно с отказом от человеческих знаний, которые лишь ограничивали программу.
AlphaGo Zero также содержала ряд упрощений по сравнению с предыдущими версиями AlphaGo. Например, вместо раздельных «сети политики» и «сети оценки» для обеих задач использовалась одна и та же нейронная сеть. Упрощению подвергся и переборный алгоритм.
Следующим шагом развития AlphaGo Zero стало создание системы AlphaZero, способной играть не только в го, но также и в шахматы и сёги (японские шахматы). Препринт статьи, описывающей AlphaZero, был опубликован[1952] на ArXiv 5 декабря 2017 г., а спустя год отчёт об экспериментах с AlphaZero появился и в академической прессе, а именно в журнале Science[1953]. Благодаря использованию в процессе обучения 5000 TPU первой версии для моделирования игр и 16 TPU второй версии для обучения нейронной сети, AlphaZero потребовалось чуть больше 30 часов обучения для того, чтобы превзойти AlphaGo Zero, около двух часов для того, чтобы превзойти уровень самой сильной на тот момент программы для игры в сёги (Elmo), и около четырёх часов для того, чтобы обойти самую сильную программу в шахматах — Stockfish. Последний результат (особенно приведённый в статье итог матча AlphaZero и Stockfish — 64 : 36) вызвал ряд споров в сообществе компьютерных шахмат.
6.2.3.4 Кто же сильнее в шахматах?
Активные разговоры о применении глубоких нейронных сетей в шахматных движках начались в 2015 г., когда канадский исследователь Мэтью Лай создал программу Giraffe[1954], роль оценочной функции которой выполняла свёрточная нейронная сеть, обучавшаяся при помощи метода обучения с подкреплением. Тогда научно-популярная пресса разразилась рядом крайне сомнительных материалов, пестревших громкими заявлениями[1955].
Появившаяся в 2015 г. первая версия Giraffe сильно отличалась от шахматных программ того времени — её оценочная функция не содержала компонентов, основанных на экспертных знаниях. В классических шахматных программах функция оценки позиции состоит из набора фиксированных правил, хорошо известных шахматистам. Оценивается количество материала у сторон, мобильность фигур, наличие проходных, сдвоенных, изолированных и так далее пешек, размещение фигур и многое другое — в современной программе число таких признаков может превышать несколько тысяч. Значения каждой компоненты в прошлом обычно подбирались экспертно, но в последние десятилетия был достигнут большой прогресс по автоматической подстройке параметров. В Giraffe оценка была полностью основана на нейронной сети, изначально ничего не знающей о мнениях шахматных экспертов. Несмотря на отсутствие этих знаний, программа смогла обучиться игре на весьма приличном уровне.
Строго говоря, Giraffe не была первой шахматной программой, использующей нейронные сети, как и не была первой шахматной программой, использующей обучение с подкреплением (в качестве предшественников Giraffe можно упомянуть такие проекты, как KnightCap[1956], Chessterfield[1957] и Stoofvlees[1958]). В шашках подобная Giraffe-модель была реализована командой американского исследователя Дэвида Фогеля, разработавшей программу Blondie24[1959], [1960], [1961]. Однако впервые для шахмат были получены весьма обнадёживающие результаты: Giraffe достигла уровня международного мастера (что, в общем-то, не было слишком внушительным результатом для шахматных программ в те годы, но стало очень серьёзным успехом для «неклассической» системы).
Результат, полученный Лаем, был оценён по достоинству, и его пригласили работать в DeepMind, где он стал участником команды, работавшей над AlphaGo Zero, а затем над AlphaZero, по сути занимаясь развитием подхода, который изначально был предложен в Giraffe. Важное отличие AlphaZero от Giraffe заключается в том,