Я думаю, что ОП путала насчет AlphaGo с альфа-бета. В альфа-бете вы действительно использовали бы сеть политик для помощи в сокращении, но не здесь. Опять же, отсечение отсутствует, поскольку алгоритм основан на поиске по дереву Монте-Карло (MCTS).
Любой, кто считает мой ответ слишком длинным, может перейти к разделу с резюме, где я заявляю, почему две сети не являются избыточными.
В следующем примере я сделаю несколько упрощений, чтобы облегчить понимание моих идей.
Пример:
Представьте, что у вас есть позиция, где есть два законных хода. Первый ход для вас безнадежно потерян, однако второй ход дает вам выигрышное преимущество.
- Первый ход: вынужденная потеря для вас
- Второй ход: вынужденная победа для вас
Оценочная сеть
Давайте предположим, что оценочная сеть, которую Google дает вам, идеальна. Он может отлично оценить любую позицию листа в нашем примере. Мы не будем менять нашу сеть стоимости в этом примере.
Чтобы упростить наш пример, давайте предположим, что наша сеть значений дает:
- -1000 за любую позицию листа, что для вас потеря
- +1000 за любую позицию листа, которая является победой для вас
Политика сети
Давайте предположим, что Google предоставляет вам две сети политик. Вероятности, сгенерированные для нашей позиции:
- Политика 1: 0,9 за ход 1 и 0,1 за ход 2
- Политика 2: 0,2 за ход 1 и 0,8 за ход 2.
Обратите внимание, что наша первая сеть политик дает неверную априорную вероятность для нашего примера. Это дает 0,9 за ход 1, который является проигрышным ходом. Это хорошо, потому что даже Google не может обучить идеальную политику сети.
Игра с первой политикой сети
AlphaGo должен сгенерировать симуляцию с Монте-Карло, и ему нужно выбрать ход 1 или 2. Теперь AlphaGo рисует случайную переменную с равномерным распределением и выбирает:
- Переместите 1, если случайное число <= 0,9
- Переместите 2, если случайное число> 0,9
Таким образом, AlphaGo с большей вероятностью выберет проигрышный ход для симуляции (в нашей самой первой симуляции). В нашей первой симуляции мы также будем использовать сеть ценностей, чтобы получить оценку для симуляции. В статье это:
Это значение будет -1000, потому что это моделирование приведет к потере.
Теперь AlphaGo необходимо сгенерировать второе моделирование. Опять же, первый ход будет гораздо более вероятным. Но в конце концов, второй ход будет выбран, потому что:
- Наша предыдущая вероятность для второго хода составляет 0,1, а не ноль
- AlphaGo рекомендуется пробовать ходы, которые мало изучены. В статье это делается с помощью этого уравнения:
Обратите внимание, что N
это число ходов, в которых выполняется поиск, и оно находится в знаменателе. Чем более вероятен наш первый ход, тем меньше u
функция. Таким образом, вероятность выбора нашего второго хода повышается, потому что AlphaGo фактически выбирает ход по этому уравнению:
Это ключевое уравнение. Пожалуйста, посмотрите на это внимательно:
- У него есть термин
P
для априорной вероятности (заданный сетью политики)
- У него есть термин
Q
для оценочных баллов (определяется сетью добавленной стоимости).
Теперь мы знаем, что наш второй ход в конечном итоге будет выбран. Когда это случается, сеть ценности дает +1000. Это увеличится Q
, что делает второй ход гораздо более вероятным при последующих симуляциях.
При достаточном количестве симуляций количество раз, когда второй ход выбран для симуляции, должно быть больше, чем количество раз, когда выбран первый ход.
Наконец, ход, который AlphaGo решает сделать, (цитируется в статье):
По завершении поиска алгоритм выбирает наиболее посещаемый ход из корневой позиции.
Игра со второй политикой сети
Нашей второй сети политик понадобится меньше итераций, чтобы выбрать ход 2, потому что в первую очередь правильная вероятность, заданная сетью политик, верна.
замечания
Здесь все очень похоже на Bayesian
анализ. Мы начинаем с некоторой априорной вероятности (заданной сетью политики), затем генерируем данные для перемещения распределения вероятности (заданного сетью значений).
Сводки
- Политическая сеть используется для генерации априорных вероятностей, чтобы определить, какой шаг должен выбрать поиск Монте-Карло.
- Сеть значений используется для генерации данных для проверки политики сети. Если сеть политик плохая, AlphaGo потребуется больше вычислительных ресурсов для конвергенции (если вообще когда-либо).
- Вы можете думать об этом как о байесовском анализе