Uma implementação comentada e documentada do Muzero, com base no artigo do Google DeepMind (Schrittwieser et al., Nov 2019) e no pseudocódigo associado. Ele foi projetado para ser facilmente adaptável para todos os jogos ou ambientes de aprendizado de reforço (como a academia). Você só precisa adicionar um arquivo de jogo com os hyperparameters e a aula de jogo. Consulte a documentação e o exemplo. Esta implementação é principalmente para fins educacionais.
Vídeo explicativo de muzero
MuZero é um algoritmo de última geração para jogos de tabuleiro (xadrez, vá, ...) e jogos Atari. É o sucessor de Alphazero, mas sem nenhum conhecimento do ambiente subjacente à dinâmica. A MuZero aprende um modelo do ambiente e usa uma representação interna que contém apenas as informações úteis para prever a recompensa, valor, política e transições. O MuZero também está próximo das redes de previsão de valor. Veja como funciona.
Aqui está uma lista de recursos que podem ser interessantes para adicionar, mas que não estão no papel de Muzero. Estamos abertos a contribuições e outras idéias.
Todas as performances são rastreadas e exibidas em tempo real em Tensorboard:

Testando Lunar Lander:

Os testes são feitos no Ubuntu com 16 GB de RAM / Intel i7 / GTX 1050TI Max-Q. Certificamos -se de obter uma progressão e um nível que garante que ele tenha aprendido. Mas não atingimos sistematicamente um nível humano. Para certos ambientes, notamos uma regressão após um certo tempo. As configurações propostas certamente não são ideais e não nos concentramos agora na otimização de hiperparâmetros. Qualquer ajuda é bem -vinda.

Resumo da rede:

git clone https://github.com/werner-duvaud/muzero-general.git
cd muzero-general
pip install -r requirements.lockpython muzero.pyPara visualizar os resultados do treinamento, executado em um novo terminal:
tensorboard --logdir ./results Você pode adaptar as configurações de cada jogo editando a classe MuZeroConfig do respectivo arquivo na pasta Games.
Por favor, use este Bibtex se você deseja citar este repositório (filial mestre) em suas publicações:
@misc{muzero-general,
author = {Werner Duvaud, Aurèle Hainaut},
title = {MuZero General: Open Reimplementation of MuZero},
year = {2019},
publisher = {GitHub},
journal = {GitHub repository},
howpublished = { u rl{https://github.com/werner-duvaud/muzero-general}},
}