Meu entendimento é que o algoritmo do Alpha Zero foi corrigido após a fase de "aprendizado"; portanto, ele apresentaria o mesmo movimento para todas as posições? A variabilidade na partida foi inteiramente devida a uma configuração do Stockfish ou o Alpha Zero também exibiu um elemento aleatório em sua seleção de movimentos?
engines
computer-chess
alphazero
firtydank
fonte
fonte
Respostas:
Notei que o AlphaZero jogou 1.d4 e 1.Nf3 em http://www.chessgames.com/perl/chess.pl?tid=91944&crosstable=1 . Possibilidades:
Observe que enquanto os parâmetros do modelo são "fixos" (suas próprias palavras), a movimentação real pode ser diferente. Não temos o código fonte do AlphaZero, mas o multithreading e o MCTS provavelmente são dois casos principais.
fonte
Os autores da LC0 estudaram o artigo AlphaZero com muito cuidado, fizeram seus próprios experimentos e chegaram à seguinte conclusão. O AlphaZero, apesar de chamar seu algoritmo de busca em árvore Monte Carlo (todos os métodos de Monte Carlo são por definição explicitamente aleatórios), não emprega nenhum não determinismo explícito após um certo número de jogadas (acredito que sejam 15 jogadas).
Existem duas partes diferentes no MCTS que podem introduzir aleatoriedade na seleção de movimentos.
Durante a fase de pesquisa, o AlphaZero atribui pesos nos quais se move a explorar com base em 2 fatores: a probabilidade de vitória, conforme avaliada pela rede neural, e também algumas estatísticas de tamanho de subárvore do pai e do filho movem subárvores. O primeiro fator garante que as linhas mais promissoras sejam avaliadas primeiro, e o segundo fator garante que as linhas menos promissoras sejam eventualmente pesquisadas. Em uma implementação natural do MCTS, ele usaria escolhas aleatórias ponderadas entre essas possibilidades ponderadas. Na realidade, o AlphaZero escolhe entre estes completamente deterministicamente, apenas escolhendo o peso máximo de cada vez. Isso ocorre porque a aleatoriedade nesta etapa não se mostra útil e apenas distrai o mecanismo das variações mais importantes, em média.
Durante a fase de mudança, ele pode fazer uma escolha ponderada entre os candidatos à mudança que já possuem avaliações profundas e precisas calculadas pela fase de pesquisa. A idéia é fazer movimentos levemente abaixo do ideal para tentar introduzir diversidade em seu jogo, para que ele não jogue o mesmo jogo todas as vezes. Isso é especialmente importante durante o treinamento, mas também leva a resultados mais interessantes da partida. Acontece que o AlphaZero só faz isso nos primeiros 15 movimentos, depois disso, sempre escolhe o melhor. Esse determinismo acaba sendo essencial para o seu jogo extremamente preciso no final do jogo, onde pequenas diferenças na avaliação acabam sendo a diferença entre empates e vitórias.
Isso é verdade durante o treinamento e a avaliação.
Em outras palavras, uma vez fora da abertura, seu jogo é tão determinístico quanto um mecanismo tradicional.
No entanto, observe que ele terá o mesmo tipo de multithreading e não determinismo de controle de tempo que os mecanismos tradicionais.
fonte