Объясняем просто: как программа ИИ освоила древнюю игру Го
This is about AlphaGo, Google DeepMindGo playing AI that shook the technology world in 2016 by defeating one of the best players in the world, Lee SedolГо — древняя настольная игра, в которой на каждом шагу так много возможных ходов, что будущее позиции трудно предсказать — , и поэтому для игры требуется сильная интуиция и абстрактное мышление. По этой причине считалось, что только люди могут хорошо играть в го. десятилетия, чтобы создать ИИ, который мог бы так думать. На самом деле, я публикую это эссе сегодня, потому чтоНа этой неделе (8–15 марта) матчу AlphaGo vs Sedol исполняется два года!
Но AlphaGo на этом не остановилась: спустя 8 месяцев она сыграла 60 профессиональных игр на сайте Go под видом игрока по кличке «Мастер» и выигралаevery single game, against dozens of world champions, of course without resting between games.
Naturally this was a HUGE achievement in the field of AI and sparked worldwide discussions about whether we should be excited or worried about artificial intelligence.
Today we are going to take the original research paper published by DeepMind in the Nature journal, and break it down paragraph-by-paragraph using simple English.
После этого эссе вы будете очень четко знать, что такое AlphaGo и как оно работает.Я также надеюсь, что после прочтения этого вы не будете верить всем новостным заголовкам, которые журналисты делают, чтобы напугать вас об ИИ, а вместо этого будете в восторге от него.
Вам НЕ нужно знать, как играть в го, чтобы понять эту статью.На самом деле, я сам прочитал только первые 3-4 строки вступительного абзаца Википедии об этом, но вместо этого, как ни странно, я использую несколько примеров из базовых шахмат, чтобы объяснить алгоритмы. Вам просто нужно знать, что такое настольная игра для 2 игроков, в которой каждый игрок ходит по очереди, и в конце есть один победитель. Кроме того, вам не нужно знать ни физики, ни высшей математики, ни чего-либо еще.
Это сделает его более доступным для людей, которые только сейчас начали изучать машинное обучение или нейронные сети, и особенно для тех, кто не использует английский в качестве своего первого языка (из-за чего читать такие тексты может быть очень сложно). бумаги).
Если у вас НЕТ предварительных знаний об искусственном интеллекте и нейронных сетях, вы можете прочитать раздел «Глубокое обучение» в одном из моих предыдущих эссе.here , Прочитав это, вы сможете пройти через это эссе.
If you want to get a shallow understanding of Reinforcement Learning too (optional reading), you can find it here .
Вот оригинал статьи, если вы хотите попробовать ее прочитать:
Что касается меня: привет, я Аман, инженер по искусственному интеллекту и автономным роботам, я надеюсь, что моя работа сэкономит вам много времени и усилий, если вы будете изучать это самостоятельно.
Кстати, я больше люблю комментарии, чем аплодисменты. :) Делитесь своими мыслями и предложениями, я прочитаю и отвечу на каждое из них.
Давайте начнем!
Abstract
As you know, the goal of this research was to train an AI program to play Go at the level of world-class professional human players.
To understand this challenge, let me first talk about something similar done for Chess. In the early 1990s, IBM came out with the Deep Blue computer which defeated the great champion Gary Kasparovв шахматы (он тоже очень крутой парень, обязательно прочтите о нем больше позже!) Как играл Deep Blue?
Что ж, он использовал очень грубый метод: на каждом этапе игры он просматривал все возможные допустимые ходы, которые можно было сделать, и продолжал исследовать каждый ход, чтобы увидеть, что произойдет. продолжайте изучать ход после двигаться какое-то время, формируя своего рода ОГРОМНОЕ дерево решений из тысяч ходов. А затем он возвращался по этому дереву, наблюдая, какие ходы, казалось, скорее всего, приносили хороший результат. Но что мы подразумеваем под «хорошим результатом» Ну, Deep Blue было много тщательно разработанных шахматных стратегий, встроенных в него опытными шахматистами, чтобы помочь ему принимать более правильные решения — например, как решить, защищать ли короля или получить преимущество где-то еще? алгоритм" для этой цели, чтобы сравнить, насколько выгодны или невыгодны различные позиции на доске (IBM жестко запрограммировала экспертные шахматные стратегии в эту функцию оценки). И, наконец, он выбирает тщательно рассчитанный ход. На следующем свою очередь, он в основном проходит через все это снова.
Как видите, это означает, что Deep Blue обдумывал миллионы теоретических позиций перед тем, как сделать каждый ход. большинство мощные компьютеры, доступные на рынке в то время, могли обрабатывать 200 миллионов позиций на доске в секунду.
Теперь мы подошли к го. Просто поверьте мне, что эта игра гораздо более открытая, и если вы попробуете стратегию Deep Blue в го, вы не сможете играть хорошо. каждый шаг, что это было бы просто нецелесообразно для компьютера, чтобы пройти через этот ад.Например, на первом ходу в шахматах есть 20 возможных ходов.В го у первого игрока есть 361 возможных ходов, и этот диапазон выбора остается широким на протяжении всей игры.
Это то, что они имеют в виду под «огромным пространством для поиска». Более того, в Го не так-то просто судить о том, насколько выгодна или невыгодна та или иная позиция на доске в какой-то конкретный момент игры — «нужно как бы отыграть всю игру на пока прежде чем вы сможете определить, кто побеждает. Но предположим, что у вас есть волшебный способ сделать и то, и другое. И вот тут-то и начинается глубокое обучение!
Итак, в этом исследовании DeepMind использовала нейронные сети для выполнения обеих этих задач (если вы еще не читали о них,вот еще раз ссылка). Они обучили «политическую нейронную сеть» определять, какие ходы являются наиболее разумными в определенной позиции на доске (так что это похоже на следование интуитивной стратегии выбора ходов из любой позиции). оценить, насколько игроку выгодна та или иная расстановка доски (или, другими словами, какова вероятность того, что вы выиграете партию из этой позиции).Они обучали эти нейронные сети сначала на примерах человеческих игр (ваш старый добрый обычный контролируемое обучение). После этого ИИ смог в определенной степени имитировать человеческую игру, поэтому он действовал как слабый человек-игрок. А затем, чтобы еще больше обучить сети, они заставили ИИ играть против себя миллионы раз (это часть «обучения с подкреплением»). При этом ИИ стал лучше, потому что у него было больше практики.
Только с этими двумя сетями ИИ DeepMind смог хорошо противостоять современным программам для игры в го, созданным ранее другими исследователями.Эти другие программы использовали уже популярный ранее существовавший игровой алгоритм, называемый «Поиск по дереву Монте-Карло» (MCTS) Подробнее об этом позже.
Но знаете что, мы еще не говорили о реальной сделке.Искусственный интеллект DeepMind касается не только политики и сетей ценности.Он не использует эти две сети в качествеreplacement of the Monte Carlo Tree Search. Instead, it uses the neural networks to make the MCTS algorithm work better…и стало настолько лучше, что достигло сверхчеловеческого уровня ЭТА улучшенная вариация MCTS — «AlphaGo», ИИ, который победил Ли Седоля и вошел в историю ИИ как один из величайших прорывы когда-либо.
Ничего себе, мы потратили много времени на один только Abstract.
Хорошо — чтобы понять статью с этого момента, сначала мы поговорим об игровой стратегии, называемой алгоритмом поиска по дереву Монте-Карло. Сейчас я просто объясню этот алгоритм достаточно подробно, чтобы понять смысл этого эссе. Но если вы хотите чтобы узнать об этом глубже, некоторые умные люди также сделали отличные видео и сообщения в блогах по этому вопросу:
1. A short video series from Udacity
2. Объяснение Джеффа Брэдбери о MCTS
3.
An MCTS tutorial by Fullstack Academy
Следующий раздел длинный, но простой для понимания (я постараюсь изо всех сил) и ОЧЕНЬ важный, так что оставайтесь со мной!
Давайте поговорим о первом абзаце приведенного выше эссе. Помните, я говорил о том, что Deep Blue создает огромное дерево из миллионов позиций на доске и ходов на каждом этапе игры? Вам приходилось проводить симуляции, смотреть и сравнивать каждую Как я уже говорил, это был простой и очень прямолинейный подход — если среднему инженеру-программисту нужно было разработать игру, играющую в ИИ, и у него были бы все самые мощные компьютеры в мире, он или она, вероятно, разработали бы аналогичное решение.
Но давайте подумаем, как сами люди играют в шахматы? Допустим, вы находитесь на определенной позиции доски в середине игры. По правилам игры вы можете делать дюжину разных вещей — ходить пешкой сюда, ходить ферзем на две клетки. здесь или
три клетки и т. д. Но действительно ли вы составляете список всех возможных ходов, которые вы можете сделать всеми своими фигурами, а затем выбираете один ход из этого длинного списка? движется (допустим, вы приходите
с 3 разумными ходами), которые, по вашему мнению, имеют смысл, а затем вы задаетесь вопросом, что произойдет в игре, если вы выберете один из этих 3 ходов. что во время
эти 15 секунд вам не нужно тщательно планировать будущее каждого хода, вы можете просто «выкатить» несколько мысленных ходов, руководствуясь своей интуицией, не СЛИШКОМ тщательно обдумывая (ну, хороший игрок будет думать дальше и глубже чем
средний игрок). Это потому, что у вас ограниченное время,andвы не можете точно предсказать, что вашopponentбудет делать на каждом шагу в этом прекрасном будущем, которое вы готовите в своем мозгу.
чувство направляет вас. Я буду называть эту часть мыслительного процесса «развертыванием», так что обратите на это внимание!
Итак, после того, как вы «выкатили» свои несколько разумных ходов, вы, наконец, говорите: «К черту все» и просто играете тот ход, который считаете лучшим.
Затем противник делает ход. Это может быть ход, который вы уже давно предвидели, а это значит, что теперь вы достаточно уверены в том, что вам нужно делать дальше. Вам не нужно снова тратить слишком много времени на откаты. ИЛИ, может быть, это ваш противник делает довольно крутой ход, которого вы не ожидали, так что вы должны быть еще осторожнее со своим следующим ходом.Так продолжается игра, и чем ближе она будет приближаться к финишной точке, тем легче для вам предсказать результат ваших ходов — , чтобы ваши развертывания не занимали так много времени.
Цель этой длинной истории — описать, что делает алгоритм MCTS на поверхностном уровне — он имитирует описанный выше процесс мышления, каждый раз строя «дерево поиска» ходов и позиций. Опять же, для получения более подробной информации вы должны проверить
ссылки, о которых я упоминал ранее. Новшество здесь заключается в том, что вместо того, чтобы перебирать все возможные ходы в каждой позиции (что и сделал Deep Blue), вместо этого он разумно выбирает небольшой набор разумных ходов и вместо этого исследует их.
исследуйте их, он «выкатывает» будущее каждого из этих ходов и сравнивает их на основе ихimagined outcomes.
(Серьезно — думаю, это все, что вам нужно, чтобы понять это эссе)
Теперь — возвращаясь к скриншоту из газеты.perfect information game" (пожалуйста, прочитайте определение по ссылке, не волнуйтесь, это не страшно).theoretically, for such games, no matter whichконкретной позиции, на которой вы находитесь в игре (даже если вы только что сыграли 1–2 ходов), возможно, вы сможете правильно угадать, кто выиграет, а кто проиграет (при условии, что с этого момента оба игрока играют «идеально»).I have no idea who came up with this theory, but it is a fundamental assumption in this research project and it works.
So that means, given a state of the game s, потому что существует функция v*(s), которая может предсказать результат, скажем, вероятность того, что вы выиграете эту игру, от 0 до 1. Они называют это «функцией оптимального значения». с большей вероятностью приведут к вашему выигрышу, чем другие позиции на доске, их можно считать более «ценными», чем другие Позвольте мне повторить еще раз: значение = вероятность от 0 до 1 того, что вы выиграете игру.
Но подождите — скажем, рядом с вами сидела девушка по имени Фома, пока вы играли в шахматы, и она на каждом шагу говорила вам, выигрываете вы или проигрываете: «Выигрываете… Вы проигрываете… Нет, все еще проигрываете». …» Я думаю, это не очень поможет вам в Выбирая, какой ход вам нужно сделать. Она также будет довольно раздражающей. Вместо этого вам поможет, если вы нарисуете все дерево всех возможных ходов, которые вы можете сделать, и состояния, к которым эти ходы приведут — , а затем Фома рассказать вы для всего дерева, какие состояния являются выигрышными, а какие проигрышными. Затем вы можете выбрать ходы, которые будут продолжать приводить вас к выигрышным состояниям. Внезапно Фома становится вашим соучастником преступления, а не надоедливым другом. Вот, Фома ведет себя как ваша функция оптимального значения v*(s) Раньше считалось, что невозможно иметь хорошую функцию ценности, такую как Фома, для игры в го, потому что в играх было так много неопределенности.
НО — даже если бы у вас был чудесный Фома, эта стратегия страны чудес, заключающаяся в вытягивании всех возможных позиций для оценки Фомой, не очень хорошо сработает в реальном мире. представить даже На 3–4 хода в будущее возможных позиций может быть так много, что и то, и другое не успеешь проверить все с Фомой.
So Foma is not enough. You need to narrow down the list of moves to a few sensible moves that you can roll out into the future. How will your program do that? Enter Lusha. Lusha is a skilled Chess player and enthusiast who has spent decades watching grand masters play Chess against each other. She can look at your board position, look quickly at all the available moves you can make, and tell you how likely it would be that a Chess expert would make any of those moves if they were sitting in your table. So if you have 50 possible moves at a point, Lusha will tell you the probability that each move would be picked by an expert. Of course, a few sensible moves will have a much higher probability and other pointless moves will have very little probability. She is your policy function, p(a\s). For a given state s, she can give you probabilities for all the possible moves that an expert would make.
Вау — вы можете воспользоваться помощью Луши, чтобы выбрать несколько разумных ходов, а Фома сообщит вам вероятность выигрыша от каждого из этих ходов.Вы можете выбрать ход, который одобряют и Фома, и Луша.Или, если вы хочу быть лишним будьте осторожны, вы можете развернуть ходы, выбранные Лушей, попросить Фому оценить их, выбрать несколько из них, чтобы развернуть их дальше в будущем, и продолжать позволять Фоме и Луше помогать вам предсказывать ОЧЕНЬ далекое будущее игры — гораздо быстрее и больше. эффективнее, чем повторять все шаги на каждом шаге в будущее. ВОТ что они подразумевают под «уменьшением пространства поиска». Используйте функцию значений (Foma) для прогнозирования результатов и используйте функцию политики (Lusha), чтобы дать вам гроссмейстерские вероятности чтобы помочь сузить шаги, которые вы выкатываете. Это называется «выкатывание Монте-Карло». Затем, когда вы возвращаетесь от будущего к настоящему, вы можете взять средние значения и т. д. из всех различных ходов, которые вы выкатили, и выбрать подходящее Это сработало на слабом любительском уровне в Го.
Phew.
Первая строка говорит сама за себя. В MCTS вы можете начать с неквалифицированного Фомы и неквалифицированного Луши. Чем больше вы играете, тем лучше они предсказывают надежные результаты и ходы. «Сужение поиска до пучка действий с высокой вероятностью». это просто изощренный способ сказать: "Lusha помогает вам сузить ходы, которые вам нужно развернуть, присваивая им вероятности того, что эксперт сделает их. Предыдущая работа использовала эту технику для получения сильных игроков с искусственным интеллектом любительского уровня, даже с простыми (или «поверхностными», как они это называют) политическими функциями.
Да, сверточные нейронные сети отлично подходят для обработки изображений. И поскольку нейронная сеть принимает определенные входные данные и дает выходные данные, по сути, это функция, верно? Таким образом, вы можете использовать нейронную сеть, чтобы стать сложной функцией. вы можете просто передать изображение положения доски и позволить нейронной сети самостоятельно понять, что происходит.Остальное самоочевидно.
Here we discuss how Foma and Lusha were trained. To train the policy network (predicting for a given position which moves experts would pick), you simply use examples of human games and use them as data for good old supervised learning.
И вы хотите обучить еще одну немного другую версию этой сети политик для развертывания; эта будет меньше и быстрее. Скажем так, поскольку Луша так опытна, ей требуется некоторое время, чтобы обработать каждую позицию. Она хороша. чтобы начать процесс сужения, но если вы попытаетесь заставить ее повторить этот процесс, ей все равно потребуется слишком много времени. … младший брат Луши Джерри? Я знаю, что знаю, хватит с этими именами.) После этого, как только вы натренируете как медленную, так и быструю политическую сеть в достаточной степени, используя данные игроков-людей, вы можете попробовать позволить Луше играть против себя на доске го в течение нескольких дней и получите больше практики Это часть обучения с подкреплением — создание лучшей версии сети политик.
Then, you train Foma for value prediction: determining the probability of you winning. You let the AI practice through playing itself again and again in a simulated environment, observe the end result each time, and learn from its mistakes to get better and better.
не буду вдаваться в подробностиhowэти сети обучены. Вы можете прочитать больше технических подробностей в следующем разделе статьи («Методы»), которые я здесь не рассматривал. Фактически, реальная цель этого конкретного бумага не показыватьhowони использовали обучение с подкреплением в этих нейронных сетях.В одной из предыдущих статей DeepMind, в которой они учили ИИ играть в игры ATARI, уже обсуждались некоторые методы обучения с подкреплением в глубина (И я уже написал объяснение этой бумагиhere). For this paper, as I lightly mentioned in the Abstract and also underlined in the screenshot above, the biggest innovation was the fact that they used RL with neural networks for improving an already popular game-playing algorithm, MCTS. RL is a cool tool in a toolbox that they used to fine-tune the policy and value function neural networks after the regular supervised training. This research paper is about proving how versatile and excellent this tool it is, not about teaching you how to use it. In television lingo, the Atari paper was a RL infomercial and this AlphaGo paper is a commercial.
Хорошо, мы, наконец, закончили с «вступительными» частями. К настоящему моменту вы уже должны хорошо понимать, что такое AlphaGo. Далее мы немного углубимся в каждую вещь, которую мы обсуждали выше. Вы можете увидеть некоторые уродливые и опасный вид математические уравнения и выражения, но они простые (я их все объясняю).
Итак, первый шаг заключается в обучении нашей политики NN (Lusha), чтобы предсказать, какие ходы, вероятно, будут сыграны экспертом. Цель этой NN — позволить ИИ играть так же, как опытный человек. Это сверточный нейронная сеть (как я уже упоминал (ранее это был особый вид НС, очень полезный при обработке изображений), который принимает упрощенное изображение расположения платы. «Нелинейности выпрямителя» — это слои, которые можно добавить в архитектуру сети. Они придают ей способность изучать более сложные вещи. Если вы когда-либо обучали NN раньше, возможно, вы использовали слой «ReLU». Вот что это такое.
The training data here was in the form of random pairs of board positions, and the labels were the actions chosen by humans when they were in those positions. Just regular supervised learning.
Здесь используется стохастический градиент ASCENT. Ну, это алгоритм обратного распространения ошибки. Здесь вы пытаетесьmaximiseфункция вознаграждения, а функция вознаграждения — это просто вероятность действия, предсказанного экспертом-человеком; вы хотите увеличить эту вероятность. Но эй — вам действительно не нужно слишком много думать об этом. Обычно вы тренируете сеть так, чтобы онаminimises a loss function, which is essentially the error/difference between predicted outcome and actual label. That is called gradient DESCENT. In the actual implementation of this research paper, they have indeed used the regular gradient descent. You can easily find a loss function that behaves opposite to the reward function such that minimising this loss will maximise the reward.
Сеть политик состоит из 13 слоев и называется сетью «политики SL» (SL = контролируемое обучение). Данные получены с… я просто скажу, что это популярный веб-сайт, на котором миллионы людей играют в го. Насколько хорош этот SL политику сети выполнять?
Это было более точно, чем то, что другие исследователи сделали ранее. Остальная часть абзаца говорит сама за себя. Что касается «политики развертывания», вы помните из нескольких абзацев назад, как Луша, сеть политик SL, работает медленно, поэтому она не могу хорошо интегрируется с алгоритмом MCTS? И мы обучили еще одну более быструю версию Луши по имени Джерри, который был ее младшим братом? Ну, это относится к Джерри прямо здесь. Как вы можете видеть, Джерри в два раза менее точен, чем Луша, НО это тысячи раз быстрее!Это действительно поможет быстрее пройти развернутые симуляции будущего, когда мы применим MCTS.
В следующем разделе вам не *обязательно* знать об обучении с подкреплением, но тогда вам придется предположить, что все, что я говорю, работает. читать немного сначала о РЛ.
Когда у вас есть сеть SL, обученная под наблюдением с использованием движений человека-игрока с данными о движениях человека, как я уже говорил ранее, вы должны позволить ей практиковаться самостоятельно и становиться лучше. Это то, что мы делаем здесь. Так что вы просто берете SL политики сети, сохраните ее в файле и сделайте еще одну копию.
Then you use reinforcement learning to fine-tune it. Here, you make the network play against itself and learn from the outcomes.
Но есть проблема в этом стиле обучения.
Если вы постоянно тренируетесь только с ОДНИМ соперником, и этот соперник также тренируется исключительно с вами, вы не сможете многому научиться. это переоснащение: ваши приемы хорошо работают против одного противника, но плохо обобщаются на других противников. Так как же это исправить?
Что ж, каждый раз, когда вы настраиваете нейронную сеть, она становится игроком немного другого типа. Так что вы можете сохранить эту версию нейронной сети в списке «игроков», которые ведут себя немного по-разному, верно? обучение нейронной сети, вы можете заставить его играть случайным образом против многих разных старых и новых версий противника, выбранных из этого списка. Это версии одного и того же игрока, но все они играют немного по-разному. И чем больше вы тренируетесь, тем больше игроков, с которыми вы тренируетесь!
В этом обучении единственное, что направляет процесс обучения, - это конечная цель, т. Е. Победа или поражение. Вам не нужно специально обучать сеть, чтобы делать такие вещи, как захват большей площади на доске и т. Д. Вы просто даете ей все возможное. Легальные ходы, которые он может выбрать, и сказать: «Вы должны выиграть».И именно поэтому RL настолько универсален: его можно использовать для обучения политике или сетям ценности для любой игры, а не только для го.
Здесь они проверили, насколько точной была эта сеть политик RL, просто сама по себе без какого-либо алгоритма MCTS.Как вы помните, эта сеть может напрямую занять позицию на доске и решить, как эксперт будет ее разыгрывать — так что вы можете использовать ее для одиночного умело Ну, в результате тонко настроенная сеть RL выиграла у сети SL, которая была обучена только человеческим движениям, а также у других сильных программ для игры в го.
Must note here that даже до обучения этой сети политик RL, сеть политик SL уже была лучше, чем уровень техники — и теперь она еще больше улучшилась!И мы даже не подошли к другим частям процесса, как сеть стоимости.
Хорошо, мы закончили тренировку Луши. Теперь вернемся к Фоме — помните об «функции оптимального значения»: v*(s) ->, которая говорит только о том, насколько вероятно, что вы выиграете в текущей позиции на доске, если оба игрока играют идеально с что точка на?
Так
Очевидно, чтобы обучить NN, чтобы она стала нашей функцией ценности, нам понадобится идеальный игрок… которого у нас нет, поэтому мы просто используемour strongest player, which happens to be our RL policy network.
It takes the current state board state s, and outputs the probability that you will win the game. You play a game and get to know the outcome (win or loss). Each of the game states act as a data sample, and the outcome of that game acts as the label. So by playing a 50-move game, you have 50 data samples for value prediction.
Лол, нет, такой подход наивен, нельзя использовать все 50 ходов из игры и добавить их в датасет.
Набор обучающих данных должен был быть выбран тщательно, чтобы избежать переобучения.Каждый ход в игре очень похож на следующий, потому что вы двигаетесь только один раз, и это дает вам новую позицию, верно?Если вы возьмете состояния на всех 50 из эти движения и добавить их к тренировочным данным с той же меткой, у вас в основном есть много «своего рода дубликатов» данных, и это вызывает переоснащение. Чтобы предотвратить это, вы выбираете только очень разные игровые состояния. Так, например, вместо всех 50 Ходы игры, вы выбираете только 5 из них и добавляете их в тренировочный набор. DeepMind взял 30 миллионов позиций из 30 миллионов разных игр, чтобы уменьшить вероятность дублирования данных. И это сработало!
Теперь кое-что концептуальное: есть два способа оценить значение позиции на доске.Один вариант – это волшебная функция оптимального значения (наподобие той, которую вы тренировали выше). Другой – просто развернуться в будущем и сделать тысячи симуляции того, как игра может закончиться.Очевидно, что если вы сможете смоделировать будущее игры в уме тысячи раз, как Человек дождя, вы автоматически получите хорошее суждение о том, насколько вероятно, что вы выиграете игру, исходя из вашего текущего состояния. позиция (или любая позиция будущего, которую вы представляете во время симуляции). DeepMind сравнил, как работают оба этих варианта. Вы также можете сделать смесь обоих этих вариантов. Мы немного узнаем об этом «параметре смешивания» позже, так что запомните эту концепцию!
Well, your single neural network trying to approximate the optimal value function is EVEN BETTER than doing thousands of mental simulations using a rollout policy! Foma really kicked ass here. When they replaced the fast rollout policy with the twice-as-accurate (but slow) RL policy Lusha, and did thousands of simulations with that,у нее получилось лучше чем у Фомы.Но чуть лучше и слишком медленно.Так что Фома победитель этого конкурса,она доказала что она нельзя заменить.
Now that we have trained the policy and value functions, we can combine them with MCTS and give birth to our former world champion, destroyer of grand masters, the breakthrough of a generation, weighing two hundred and sixty eight pounds, one and only Alphaaaaa GO!
В этом разделе в идеале у вас должно быть немного более глубокое понимание внутренней работы алгоритма MCTS, но того, что вы уже узнали, должно быть достаточно, чтобы дать вам хорошее представление о том, что здесь происходит. примечаниеhowмы используем вероятности политики и оценки стоимости. Мы объединяем их во время развертывания, чтобы сузить количество ходов, которые мы хотим выполнить на каждом шаге. Q (s, a) представляет функцию ценности, а u (s, а) есть сохраненная вероятность для этой позиции, я объясню.
Помните, что сеть политик использует обучение с учителем для прогнозирования действий экспертов, и это не просто дает вам наиболее вероятное движение, а скорее дает вамprobabilitiesдля каждого возможного хода, которые говорят, насколько он вероятен чтобы быть экспертным ходом. Эта вероятность может быть сохранена для каждого из этих действий. Здесь они называют это «априорной вероятностью», и они, очевидно, используют ее при выборе действий для исследования. Таким образом, в основном, чтобы решить, следует ли исследовать конкретный ход, вы рассматриваете две вещи: во-первых, насколько вероятно, что вы выиграете, сыграв этот ход? Да, у нас уже есть наша «система ценности», чтобы ответить на этот первый вопрос. И второй вопрос: насколько вероятно, что вы выиграете? эксперт бы выбрать этот ход? (Если ход вряд ли будет выбран экспертом, зачем вообще тратить время на его рассмотрение. Это мы получаем из сети политик)
Затем давайте поговорим о «параметре смешивания» (см. возвращаемся к нему!). Как обсуждалось ранее, для оценки позиций у вас есть два варианта: один — просто использовать сеть значений, которую вы все это время использовали для оценки состояний. И два , можешь попробовать чтобы быстро сыграть в игру с развертыванием со своей половинчатой стратегией и посмотреть, выиграете вы или проиграете. Мы видели, как функция ценности была лучше, чем выполнение развертываний. Здесь они объединяют их и делают удары и пробы. Вы пытаетесь дать каждому 50–50 важность, или 40–60, или 0–100 и т. д. Если к первому прибавить % от X, то ко второму придется прибавить 100-X. Вот что означает этот параметр микширования. Вы увидите эти хит и результаты испытаний позже в документе.
After each roll out, you update your search tree with whatever information you gained during the simulation, so that your next simulation is more intelligent. And at the end of all simulations, you just pick the best move.
Interesting insight here!
Remember how the RL fine-tuned policy NN was better than just the SL human-trained policy NN? But when you put them within the MCTS algorithm of AlphaGo, using the human trained NN proved to be a better choice than the fine-tuned NN. But in the case of the value function (which you would remember uses a strong player to approximate a perfect player), training Foma using the RL policy works better than training her with the SL policy.
"Выполнение всей этой оценки требует больших вычислительных мощностей. Нам действительно пришлось использовать большие пушки, чтобы иметь возможность запускать эти чертовы программы".
Self explanatory.
«LOL, наша программа буквально снесла штаны всем другим программам, которые были до нас»
Это снова восходит к этому «параметру смешивания». При оценке позиций, придавая одинаковое значение как функции стоимости, так и развертываниям, они работают лучше, чем просто использование одного из них. Остальное говорит само за себя и раскрывает интересный на виду!
Self explanatory.
Self explanatory. But read that red underlined sentence again. I hope you can see clearly now that this line right here is pretty much the summary of what this whole research project was all about.
Заключительный абзац: «Давайте похвастаемся здесь еще немного, потому что мы это заслужили!» :)