Nos artigos AlphaGo Zero e AlphaZero do DeepMind , eles descrevem a adição de ruído Dirichlet às probabilidades anteriores de ações do nó raiz (estado da placa) na Monte Carlo Tree Search:
Exploração adicional é obtida adicionando ruído Dirichlet às probabilidades anteriores no nó raiz , especificamente , em que e ; esse ruído garante que todas as jogadas possam ser tentadas, mas a pesquisa ainda pode anular as jogadas ruins.
(AlphaGo Zero)
E:
O ruído do dirichlet foi adicionado às probabilidades anteriores no nó raiz; isso foi escalado em proporção inversa ao número aproximado de movimentos legais em uma posição típica, com um valor de para xadrez, shogi e Go, respectivamente.
(AlphaZero)
Duas coisas que eu não entendo:
P(s, a)
é um vetor dimensional. É abreviação para a distribuição Dirichlet com parâmetros, cada um com valor ?Só me deparei com Dirichlet como o conjugado anterior da distribuição multinomial. Por que foi escolhido aqui?
Por contexto, P(s, a)
é apenas um componente do cálculo PUCT (árvore de confiança superior polinomial, uma variante dos limites de confiança superior) para um determinado estado / ação. É dimensionado por uma constante e uma métrica para quantas vezes a ação especificada foi selecionada entre seus irmãos durante o MCTS e adicionada ao valor estimado da ação Q(s, a)
:
PUCT(s, a) = Q(s, a) + U(s, a)
.- .
Respostas:
A questão 1 é direta, aqui é um vetor de repetições do valor fornecido. (Respondida por Max S.)α
A pergunta 2 é mais interessante: a distribuição Dirichlet tem a seguinte interpretação relevante neste contexto: Quando é o vetor observado de contagens de resultados extraídas de alguma distribuição categórica (desconhecida) com probabilidades de resultados , então é a probabilidade de que seja a distribuição subjacente real, considerando-se como a contagem. (Esta é basicamente a definição de uma distribuição dupla.)α π Dir(α)(π) Cat(π) α
AgoraDir(α) pi= α α i = 0 π ~ D i r ( α ) π i = 0 αα αi=0 π∼Dir(α) πi=0 α
P(s,a)
estima a probabilidade de que um bom jogador iria jogara
ems
, isto é os parâmetros de sua distribuição categórica, que AlphaZero quer aprender. Portanto, obteria amostras de estimativas razoáveis para se observássemos um bom movimento de jogador times. Mas se algum , todos os têm , impedindo a exploração. Ao adicionar o ruído, eles assumem que observaram cada movimento sendo jogado um pequeno número de vezes (aqui escolhido 0,3, 0,15, 0,03).P(s,a)
Quanto à forma como eles obtiveram as constantes, meu palpite é que eles presumem ter observado ~ 10 jogadas aleatórias em todos os jogos: No xadrez, assume que você viu cada jogada jogada 0,3 vezes. Dado que há ~ 35 movimentos disponíveis de acordo com Allis , os autores assumem que você viu ~ 10 movimentos aleatórios em cada nó. Em Go, se assumirmos ~ 270 movimentos legais em média (3/4 de 361 posições no tabuleiro), vemos um equivalente a observar ~ 8 movimentos aleatórios. (Eu não tenho os dados para Shogi.)Dir(0.3)
fonte
Para a pergunta número 1, a resposta é sim, é um vetor, mas neste caso todos os valores são iguais. De acordo com a wikipedia, isso é chamado de distribuição Dirichlet simétrica e é usado quando "não há conhecimento prévio favorecendo um componente em detrimento de outro". Nesse caso, isso significa que você não deseja adicionar mais ruído a nenhum componente em particular.α
Para a pergunta 2, amostras retiradas de uma distribuição Dirichlet têm a propriedade de que os elementos serão somados a 1. Suponho que eles estejam usando isso para garantir que após adicionar o ruído, e os elementos ainda sejam somados a 1.
fonte