С 9 по 15 марта этого года в Сеуле, в Южной Корее, состоялось крупное событие в мире гоккей, когда в общей сложности пять раундов человеко-машинного боя прошли. В результате соревнования люди проиграли, и чемпион мира по гонке Ли Сюйши в финале проиграл программе искусственного интеллекта AlphaGo компании Google со счетом 1:4. Так что же такое AlphaGo и где ключ к победе? Здесь мы узнаем об одном из алгоритмов: алгоритме Монте-Карло.
Согласно сообщению агентства Xinhua, программа AlphaGo - это гок-программа, разработанная командой DeepMind, принадлежащей американской компании Google.
В предыдущей статье мы говорили об алгоритме нейронной сети, который Google разрабатывает для автономного обучения машин, и о аналогичном продукте AlphaGo.
Вице-президент и секретарь Китайской ассоциации автоматизации Ван Фэй Юй заявил, что программистам не нужно знать гок, а просто знать основные правила гок. За AlphaGo стоит группа выдающихся компьютерных ученых, точнее, специалистов в области машинного обучения. Ученые используют алгоритмы нейронных сетей, которые вводят в компьютер записи соревнований шахматных специалистов, и позволяют компьютеру соревноваться с самим собой, постоянно учась в процессе.
Так где же ключ к самообразованию для AlphaGo? Это алгоритм Монте Карло.
Что такое алгоритм Монте-Карло?В этом случае, если вы не хотите, чтобы ваш компьютер был полностью свободен, вы должны использовать его, чтобы вы могли использовать его, если хотите. Если в корзине 1000 яблок, и каждый раз, когда вы закрываете глаза, вы выбираете самое большое, вы можете выбрать без ограничений. Итак, вы можете закрыть глаза и выбрать одно, а затем снова выбирать одно по сравнению с первым, оставив большим, затем выбирать одно по сравнению с предыдущим, и вы можете оставить большим. Цикл повторяется, и чем больше вы выбираете, тем больше вероятность выбора самого большого яблока, но если вы не выбираете одно из 1000 яблок, вы не можете быть уверены, что вы выберете самое большое.
То есть алгоритм Монте-Карло - чем больше выборки, тем лучшее решение, но это не гарантирует, что это лучшее, потому что если есть 10000 яблок, то вы можете найти больше.
Он был одним из первых, кто присоединился к этой группе. Общеизвестно, что если есть замок, есть 1000 ключей для выбора, но только один из них правильный. Поэтому каждый раз, когда вы случайно пытаетесь взять один ключ, вы не можете открыть его, вы меняете другой. Чем больше попыток, тем больше шансов открыть лучший ключ, но до того, как вы его откроете, те неправильные ключи не будут полезны.
Таким образом, алгоритм Лас-Вегаса является наилучшим решением, но не обязательно найден. Предположим, что из 1000 ключей, ни один не может открыть ключ, настоящий ключ - 1001-й, но в образце нет 1001-го алгоритма, алгоритм Лас-Вегаса не может найти ключ, который открывает ключ.
Алгоритм Монте-Карло AlphaGoТрудность гокго особенно велика для искусственного интеллекта, поскольку в гокго так много различных подходов, что компьютерам сложно разобраться. Во-первых, возможности гокшема слишком большие; на каждом шагу гокшема очень много возможных вариантов, игроки начинают с 19 x 19 = 361 варианта вариантов. На одном раунде 150 раундов гокшема может возникнуть до 10 170 вариантов. Во-вторых, правила слишком тонкие, и в некоторой степени выбор вариантов зависит от интуиции, сформированной накопленным опытом.
АльфаГо не является только алгоритмом Монте-Карло, а скорее его обновленной версией.
AlphaGo завершает шахматы с помощью алгоритма поиска дерева Монте-Карло и двух глубоких нейронных сетей. Перед борьбой с Ли Систоном, Google сначала обучил нейронную сеть AlphaGo почти 30 миллионами шагов человека против кошки, чтобы она научилась предсказывать, как проиграют человеческие профессиональные шахматисты.
Их задача заключается в том, чтобы совместно выбирать наиболее перспективные шаги, отбрасывая очевидные ошибки, и таким образом контролировать вычисления в пределах, которые могут быть выполнены компьютерами. По сути, это то же самое, что делают человеческие шахматисты.
Исследователь Института автоматизации Академии наук Китая И Цзяньчэнь говорит, что традиционное шахматное программное обеспечение, обычно использующее насильственный поиск, включая глубокие голубые компьютеры, создает поисковые деревья для всех возможных результатов (каждый результат - это фрукт на дереве) и выполняет поиск по мере необходимости. Этот метод также имеет определенную реализуемость в шахматах, прыжках и т. д., но не для гок-джека, поскольку по 19 линиям гок-джека, вероятность падения настолько велика, что компьютер не может построить этот фрукт, чтобы осуществить поиск.
В дальнейшем Мангаччи объясняет, что один из самых фундаментальных элементов глубокой нейронной сети похож на нейроны нашего человеческого мозга, многие слои которых соединены как нейронная сеть человеческого мозга. Две нейронные сети AlphaGo - это сети стратегии и сети оценки.
Стратегическая сеть в основном используется для создания стратегий игры. В процессе игры в шахматы она не думает о том, что должно произойти с ней, а о том, что может произойти с человеком. То есть она предсказывает, где будет происходить следующий шаг человека, исходя из текущего состояния игры.
Тем не менее, стратегическая сеть не знает, будет ли ее шаг хорошим или плохим, она знает только, будет ли он таким же, как у людей, и тогда ей нужно оценить сеть, чтобы она сыграла свою роль.
По словам Мангаччи, сеть оценивает состояние всей дивы для всех возможных вариантов, а затем дает коэффициент выигрыша. Эти значения отражаются в алгоритме поиска дерева Монте-Карло, который повторяет этот процесс и выводит наивысший коэффициент выигрыша. Алгоритм поиска дерева Монте-Карло определяет, что стратегическая сеть будет продолжать выигрыш только там, где коэффициент выигрыша выше, чтобы отказаться от некоторых маршрутов, не используя ни одного пути к черному.
AlphaGo использует эти два инструмента для анализа ситуации, чтобы судить о достоинствах и недостатках каждой следующей стратегии, так же как игроки-человеки судят о текущей ситуации и выводят будущие ситуации. При использовании алгоритмов поиска дерева Монте-Карло, например, 20 шагов в будущем, можно определить, где в будущем выиграть.
Но, несомненно, алгоритм Монте-Карло является одним из основных в AlphaGo.
Два небольших эксперимента Наконец, посмотрим на два небольших эксперимента с алгоритмом Монте-Карло.
Принцип: сначала нарисуйте квадрат, нарисуйте его внутренний круг, а затем случайные точки рисунка в этом квадратном круге, настроив точки, которые находятся примерно в круге P, тогда P = площадь круга / площадь квадратного. P= ((Pi)RR) / ((2R*2R) = Pi/4, то есть Pi = 4P
Шаги: 1. Поставить центр круга в исходном пункте и сделать круг с радиусом R, тогда площадь круга 1/4 первого квадрата будет PiRR/4 2. Сделайте этот 1/4 круга внешним квадратом, координаты которого ((0,0) ((0,R) ((R,0) ((R,R), то площадь этого квадрата будет RR 3. Включите точку ((X,Y), чтобы 0 <= X <= R и 0 <= Y <= R, то есть точка в квадратном пространстве 4. С помощью формулы XX+YYR определяет, находится ли точка в пределах 1/4 окружности. 5. Установим, что число всех точек (т.е. количества экспериментов) равно N, а количество точек (т.е. точек, удовлетворяющих шагу 4) в кругу 1/4, равно M.
P=M/N, то есть Pi=4*N/M.Изображение 1
M_C ((10000) выполняется с результатом 3.1424
# В интервале [-2,2] произвольно создать число, найти его соответствующее y и найти наибольшее из них, которое считается самым большим значением функции на [-2,2]Изображение 2
После 1000 симуляций было найдено очень большое значение 185.12292832389875 ((очень точно)
Если вы видите это, вы понимаете. Код можно писать вручную. Переведено с сайта WeChat