В документах DeepMind AlphaGo Zero и AlphaZero они описывают добавление шума Дирихле к предыдущим вероятностям действий от корневого узла (состояния платы) в Поиске дерева Монте-Карло:
Дополнительное исследование достигается путем добавления шума Дирихле к предшествующим вероятностям в корневом узле , в частности, , где и ; этот шум гарантирует, что все ходы могут быть опробованы, но поиск может по-прежнему отменять неудачные ходы.
(AlphaGo Zero)
А также:
Шум Дирихле был добавлен к предыдущим вероятностям в корневом узле; это было масштабировано обратно пропорционально приблизительному количеству законных ходов в типичной позиции, к значению для шахмат, сёги и го соответственно.
(AlphaZero)
Две вещи, которые я не понимаю:
P(s, a)
является мерным вектором. Является ли сокращением для распределения Дирихле с параметрами, каждый со значением ?Я встречал Дирихле только как сопряженный предшественник многочленного распределения. Почему это было выбрано здесь?
Для контекста P(s, a)
это только один компонент вычисления PUCT (полиномиальное верхнее доверительное дерево, вариант верхних доверительных границ) для данного состояния / действия. Он масштабируется по константе и метрике того, сколько раз данное действие было выбрано среди его братьев и сестер во время MCTS, и добавляется к оценочному значению действия Q(s, a)
:
PUCT(s, a) = Q(s, a) + U(s, a)
,- .
Ответы:
Вопрос 1 прост, здесь - вектор повторений данного значения. (Как ответил Макс С.)α
Вопрос 2 более интересен: распределение Дирихле имеет следующую интерпретацию, релевантную в этом контексте: когда является наблюдаемым вектором подсчета результатов, взятым из некоторого (неизвестного) категориального распределения с вероятностями исхода , то - это вероятность того, что является фактическим базовым распределением, если вы наблюдали в качестве значений. (Это в основном определение двойного распределения.)α π Dir(α)(π) Cat(π) α
ТеперьDir(α) pi= α αi=0 π∼Dir(α) πi=0 α
P(s,a)
оценивает вероятность того, что хороший игрок будет игратьa
вs
, то есть параметры его категорического распределения, AlphaZero хочет узнать. Таким образом, выбрал бы разумные оценки для если бы мы наблюдали хорошие ходы игрока -times. Но если некоторые , то все имеют , что препятствует исследованию. Добавляя шум, они предполагают, что наблюдали за каждым ходом, играемым небольшое количество раз (здесь выбрано 0.3, 0.15, 0.03).P(s,a)
Что касается того, как они получили константы, я предполагаю, что они предполагают, что наблюдали ~ 10 случайных игр в каждой игре: в шахматах предполагает, что вы видели, что каждый ход был сыгран 0.3 раза. Учитывая, что согласно Аллису доступно ~ 35 ходов , авторы предполагают, что вы видели ~ 10 случайных ходов в каждом узле. В Go, если мы допустим в среднем ~ 270 законных ходов (3/4 из 361 позиций на доске), мы увидим эквивалент наблюдения ~ 8 случайных ходов. (У меня нет данных по сёги.)Dir(0.3)
источник
Для вопроса № 1 ответ «да», - вектор, но в этом случае все значения одинаковы. Согласно википедии это называется симметричным распределением Дирихле, и используется, когда «нет никаких предварительных знаний, предпочитающих один компонент другому». В этом случае это означает, что вы не хотите добавлять больше шума к какому-либо конкретному компоненту.α
Для вопроса 2 выборки, взятые из распределения Дирихле, имеют свойство, которое элементы будут суммировать до 1. Я предполагаю, что они используют это, чтобы гарантировать, что после добавления шума, и элементы все равно будут суммироваться до 1.
источник