Una implementación comentada y documentada de Muzero basada en el artículo de Google Deepmind (Schrittwieser et al., Nov 2019) y el pseudocódigo asociado. Está diseñado para ser fácilmente adaptable para todos los juegos o entornos de aprendizaje de refuerzo (como el gimnasio). Solo necesitas agregar un archivo de juego con los hiperparámetros y la clase de juego. Consulte la documentación y el ejemplo. Esta implementación es principalmente para fines educativos.
Video explicativo de Muzero
Muzero es un algoritmo de última generación RL para los juegos de mesa (ajedrez, go, ...) y los juegos de Atari. Es el sucesor de Alphazero pero sin ningún conocimiento del entorno subyacente a la dinámica. Muzero aprende un modelo del entorno y utiliza una representación interna que contiene solo la información útil para predecir la recompensa, el valor, la política y las transiciones. Muzero también está cerca de las redes de predicción de valor. Vea cómo funciona.
Aquí hay una lista de características que podrían ser interesantes de agregar pero que no están en el papel de Muzero. Estamos abiertos a contribuciones y otras ideas.
Todas las actuaciones se rastrean y se muestran en tiempo real en Tensorboard:

Prueba de aterrizaje lunar:

Las pruebas se realizan en Ubuntu con 16 GB RAM / Intel I7 / GTX 1050TI MAX-Q. Nos aseguramos de obtener una progresión y un nivel que garantice que haya aprendido. Pero no alcanzamos sistemáticamente un nivel humano. Para ciertos entornos, notamos una regresión después de un cierto tiempo. Las configuraciones propuestas ciertamente no son óptimas y no nos enfocamos por ahora en la optimización de los hiperparámetros. Cualquier ayuda es bienvenida.

Resumen de la red:

git clone https://github.com/werner-duvaud/muzero-general.git
cd muzero-general
pip install -r requirements.lockpython muzero.pyPara visualizar los resultados del entrenamiento, ejecute en una nueva terminal:
tensorboard --logdir ./results Puede adaptar las configuraciones de cada juego editando la clase MuZeroConfig del archivo respectivo en la carpeta de juegos.
Utilice este bibtex si desea citar este repositorio (rama maestra) en sus publicaciones:
@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}},
}