то есть с наибольшей вероятностью победы в дальнейшем, и сделать первый ход. Но дерево, которое представляет собой последовательность из девяти штрихов, имеет астрономические размеры: около 100 000 миллиардов листьев. Поэтому приходится хитрить.
Итак, игра в шахматы. Настала очередь белых. Относительно простая программа производит все возможные ходы в соответствии с правилами игры, заданными машине (пешка перемещается на одно поле, но в первый раз она может сделать ход на два поля; слон движется по диагонали и т. д.). Таким образом, программа принимает во внимание каждую фигуру, рассматривает все возможные ходы белых и создает каталог всех возможных новых конфигураций шахматной доски. В среднем на каждый ход приходится 36 возможных вариантов.
Таким образом возникает перевернутое дерево, ветви которого расходятся до бесконечности. Даже с большой памятью, даже с быстрым процессором, машина не может исследовать все эти возможные ходы. Даже самой Deep Blue (шахматному суперкомьютеру компании IBM, выигравшему матч в шахматы у Гарри Каспарова в 1997 г.) потребуется сотня часов, чтобы исследовать их. Поэтому мы должны внедрить методы «обрезки» этого дерева возможностей, чтобы сделать метод более эффективным.
Затем мы даем системе функцию, которая оценивает качество позиций на доске для белых и черных. Эта функция оценки, созданная в сотрудничестве с шахматными экспертами, включает в себя критерии хорошей шахматной расстановки: фигуры защищены друг другом, отсутствуют материальные потери, фигуры хорошо расположены на шахматной доске, то есть больше в центре, чем по краям; король хорошо охраняется; количество клеток, которым угрожают фигуры соперника, невелико и т. д. Каждая из этих характеристик выражается некоторым числом. Эти числа образуют вектор признаков, который обрабатывается своего рода перцептроном без обучения. Он вычисляет взвешенную сумму и производит оценку. Тем самым программа как бы говорит: «Данная позиция хороша для такого-то игрока». Система возвращает положительное число, если расстановка дает белым хорошие шансы на победу, и отрицательное число, если нет. Другими словами, «при такой конфигурации ваши шансы на победу равны плюс 35; для этого – минус 10; для этого – плюс 50».
При исследовании программа, которая играет белыми, считает, что противник также будет играть так, чтобы максимизировать свой рейтинг. После того, как белые сыграют, черные будут искать наиболее выгодную позицию для них и, следовательно, самую невыгодную для белых (самый отрицательный рейтинг). В свою очередь, белые ищут лучшую позицию для себя и т. д.
Рис. 7.9. Поиск по дереву в применении к шахматам
Для каждой из возможных позиций на доске после того, как белые сделали ход, черные могут в среднем сделать 36 разных ходов. Затем у белых снова есть 36 возможных ходов для каждой из этих раскладок, то есть 36 × 36 и т. д. Получается экспоненциальный рост числа вариантов.
Подведем итоги. Есть 36 возможностей на первом ходу, 36 × 36 возможностей на втором, или 1296 возможностей, 36 × 36 × 36 возможностей на третьем (46 656) возможностей. На девятом ходу мы имеем дело уже со 100 000 млрд возможных последовательностей.
Чтобы сократить исследование возможностей, учитывая потенциальный размер дерева, программа сокращает его. На каждом ходе она сохраняет только ветки дерева, получающие высокую оценку для игрока и низкую оценку для противника. В общей сложности анализ может продолжаться до девятого хода, а то и дальше. Наконец, система определяет окончательное максимальное количество очков для белых и выбирает ход, соответствующий первому узлу в этой ветви.
Таким образом, программа сохраняет только определенные узлы дерева, поскольку черные по умолчанию также играют на победу. Эта функция оценки позволяет ограничить «разведку» оптимальными настройками, при которых виртуальный игрок делает ходы, максимально благоприятные для противника, когда для того настала очередь ходить. И затем мы спускаемся все глубже в разветвления при том же объеме вычислений и памяти. Вот так в свое время эта классическая форма искусственного интеллекта взяла верх над чемпионом мира по шахматам Гарри Каспаровым.
Новые машины устроены иначе. Они меньше используют поиск по древу. Вместо этого большая нейронная сеть «наблюдает» за доской или игрой в го и сразу же предсказывает рейтинг всех возможных ходов. Системы AlphaGo и Alpha Go Zero от DeepMind, как и система OpenGo от FAIR, используют для этого сверточную сеть. В Alpha Go Zero сеть обучается, играя против себя миллионы игр. Она усиливает стратегии, ведущие к победам, и ослабляет стратегии, ведущие к поражениям. Это обучение «с подкреплением»: вы не даете машине правильного ответа, а просто говорите ей, что ее ответ хорош или не очень хорош, как будто поощряя и наказывая ее. В сочетании с небольшим участием поиска по дереву этот метод обеспечивает действительно сверхчеловеческие возможности.
Подобные системы могут быть также обучены контролируемым обучением, имитируя людей-игроков, чьи игры постоянно записываются. Однако эти тренировки требуют гигантских вычислительных мощностей. После тренировки мы можем просто запустить сверточную сеть на шахматной доске го или шахматной доске, и она дает нам шанс сыграть. Но, как и в случае с гроссмейстерами-людьми, производительность улучшается, если объединить систему с поиском по дереву и подкреплением обучения.
Однажды я столкнулся с бывшим чемпионом Франции по шахматам, гроссмейстером, который одновременно играл против 50 человек. Он смотрел на шахматную доску и через несколько секунд точно знал, какую фигуру нужно двигать, а затем переходил к следующему человеку. Мы ждали, когда он подойдет к нам, ходили, он поглядывал на доску, смеялся, потом тоже ходил и выиграл у нас уже после десяти ходов. Я выбыл из игры буквально после нескольких ходов (я очень плохо играю в шахматы)! Такому гению, как он, не нужен поиск по дереву, чтобы понять, что происходит и что произойдет на доске. У него есть интуитивное видение шахматной партии, что позволяет ему играть напрямую. Довольно похоже на современные обучаемые системы.
Глава 8
Моя работа в компании Facebook
В 2012 г. победа сверточной сети, предложенной Джеффри Хинтоном и его командой из лаборатории Торонто, потрясла всю область искусственного интеллекта. К тому же университет Торонто выложил код этой сети в открытый доступ. Таким образом, довольно широкое сообщество смогло независимым образом воспроизвести эти результаты на сверхсовременных графических процессорах, позволяющих выполнять числовые операции очень быстро и с малыми затратами ресурсов. Сверточные сети в итоге стали достоянием мирового сообщества.
Лаборатория Йошуа Бенжио в Монреале (Канада) и моя собственная лаборатория в Нью-Йоркском университете (NYU) долгое время использовали аналогичное программное обеспечение, но оно не подходило для новых, очень мощных видеокарт.
В 2012 г. машинное обучение уже оказалось в центре всеобщего внимания; им заинтересовалась цифровая индустрия. В начале 2013 г. в компании Facebook небольшая