整合MCTS与深度强化学习的轻量级算法工具包
LightZero是一个开源算法工具包,整合了蒙特卡洛树搜索(MCTS)和深度强化学习(RL)。它支持AlphaZero、MuZero等多种基于MCTS的RL算法,提供详细文档和性能对比。该项目致力于标准化MCTS+RL算法,以促进相关研究和应用。LightZero的轻量级设计和易用性,有助于用户理解算法核心并进行算法间比较。
Updated on 2024.08.18 LightZero-v0.1.0
English | 简体中文(Simplified Chinese) | Documentation | LightZero Paper | 🔥UniZero Paper | 🔥ReZero Paper
LightZero is a lightweight, efficient, and easy-to-understand open-source algorithm toolkit that combines Monte Carlo Tree Search (MCTS) and Deep Reinforcement Learning (RL). For any questions about LightZero, you can consult the RAG-based Q&A assistant: ZeroPal.
The integration of Monte Carlo Tree Search and Deep Reinforcement Learning,
exemplified by AlphaZero and MuZero,
has achieved unprecedented performance levels in various games, including Go and Atari.
This advanced methodology has also made significant strides in scientific domains like protein structure prediction and the search for matrix multiplication algorithms.
The following is an overview of the historical evolution of the Monte Carlo Tree Search algorithm series:
LightZero is an open-source algorithm toolkit that combines Monte Carlo Tree Search (MCTS) and Reinforcement Learning (RL) for PyTorch. It supports a range of MCTS-based RL algorithms and applications, offering several key advantages:
For further details, please refer to Features, Framework Structure and Integrated Algorithms.
LightZero aims to promote the standardization of the MCTS+RL algorithm family to accelerate related research and applications. A performance comparison of all implemented algorithms under a unified framework is presented in the Benchmark.
Lightweight: LightZero integrates multiple MCTS algorithm families and can solve decision-making problems with various attributes in a lightweight framework. The algorithms and environments LightZero implemented can be found here.
Efficient: LightZero uses mixed heterogeneous computing programming to improve computational efficiency for the most time-consuming part of MCTS algorithms.
Easy-to-understand: LightZero provides detailed documentation and algorithm framework diagrams for all integrated algorithms to help users understand the algorithm's core and compare the differences and similarities between algorithms under the same paradigm. LightZero also provides function call graphs and network structure diagrams for algorithm code implementation, making it easier for users to locate critical code. All the documentation can be found here.
The above picture is the framework pipeline of LightZero. We briefly introduce the three core modules below:
Model:
Model
is used to define the network structure, including the __init__
function for initializing the network structure and the forward
function for computing the network's forward propagation.
Policy:
Policy
defines the way the network is updated and interacts with the environment, including three processes: the learning
process, the collecting
process, and the evaluation
process.
MCTS:
MCTS
defines the structure of the Monte Carlo search tree and the way it interacts with the Policy. The implementation of MCTS includes two languages: Python and C++, implemented in ptree
and ctree
, respectively.
For the file structure of LightZero, please refer to lightzero_file_structure.
LightZero is a library with a PyTorch implementation of MCTS algorithms (sometimes combined with cython and cpp), including:
The environments and algorithms currently supported by LightZero are shown in the table below:
Env./Algo. | AlphaZero | MuZero | Sampled MuZero | EfficientZero | Sampled EfficientZero | Gumbel MuZero | Stochastic MuZero | UniZero | Sampled UniZero | ReZero |
---|---|---|---|---|---|---|---|---|---|---|
TicTacToe | ✔ | ✔ | 🔒 | 🔒 | 🔒 | ✔ | 🔒 | ✔ | 🔒 | 🔒 |
Gomoku | ✔ | ✔ | 🔒 | 🔒 | 🔒 | ✔ | 🔒 | ✔ | 🔒 | ✔ |
Connect4 | ✔ | ✔ | 🔒 | 🔒 | 🔒 | 🔒 | 🔒 | ✔ | 🔒 | ✔ |
2048 | --- |