Objetivo do ruído de Dirichlet no artigo AlphaZero

10

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.s0P(s,a)=(1ε)pa+εηaηDir(0.03)ε=0.25

(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.Dir(α)α={0.3,0.15,0.03}

(AlphaZero)

Duas coisas que eu não entendo:

  1. P(s, a)é um vetor dimensional. É abreviação para a distribuição Dirichlet com parâmetros, cada um com valor ?nDir(α)nα

  2. 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).
  • U(s,a)=cpuctP(s,a)bN(s,b)1+N(s,a) .
monge
fonte
11
Ok, então Dir (a) realmente significa Dir (a, a, ...). Para a <1, isso será concentrado próximo aos vetores base padrão de R ^ n (quanto menor, mais fortemente). Portanto, Dirichlet (a) ajuda (1) a manter a soma dos parâmetros constantes, (2) concentra-se próximo aos vetores de base e (3) prefere nenhum deles.
monk

Respostas:

6

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(π)α

Agora P(s,a)estima a probabilidade de que um bom jogador iria jogar aem s, 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).Dir(α)pi=α α i = 0 π ~ D i r ( α ) π i = 0 αP(s,a)ααi=0πDir(α)πi=0α

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)

Tomáš Gavenčiak
fonte
3

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.

Max S.
fonte
Obrigado. Além de somar uma (o que também podemos fazer escalando um conjunto de distribuições arbitrárias), ela prefere os vetores básicos padrão. Isso parece útil.
monk