LightZero
更新于2024.12.10 LightZero-V0.1.0
英语| 简体中文(简化中文)|文档| LightZero纸| Unizero纸| rezero纸
LightZero是一种轻巧,高效且易于理解的开源算法工具包,结合了Monte Carlo Tree Search(MCTS)和深钢筋学习(RL)。有关LightZero的任何疑问,您可以咨询基于抹布的问答助手:零。
?背景
由Alphazero和Muzero举例说明的蒙特卡洛树搜索和深钢筋学习的整合在包括GO和Atari在内的各种游戏中都达到了前所未有的性能水平。这种先进的方法还在诸如蛋白质结构预测和搜索基质乘法算法之类的科学领域中取得了显着的大步迈进。以下是蒙特卡洛树搜索算法系列的历史演变概述:
上图是LightZero的框架管道。我们简要介绍以下三个核心模块:
模型: Model用于定义网络结构,包括用于初始化网络结构和计算网络正向传播的forward功能的__init__函数。
策略: Policy定义了网络更新的方式并与环境进行交互,包括三个过程: learning过程, collecting过程和evaluation过程。
MCT : MCTS定义了蒙特卡洛搜索树的结构及其与策略的相互作用方式。 MCT的实现包括两种语言:Python和C ++,分别在ptree和ctree中实施。
有关LightZero的文件结构,请参阅LightZero_File_tructure。
?集成算法
Lightzero是一个具有MCTS算法(有时与Cython和CPP结合)的Pytorch实现的库,其中包括:
- alphazero
- Muzero
- 采样的木泽
- 随机的穆泽罗
- 有效的零
- gumbel muzero
- rezero
- Unizero
Lightzero当前支持的环境和算法如下:
| env./algo。 | alphazero | Muzero | 采样的木泽 | 有效的零 | 采样有效的零 | gumbel muzero | 随机的穆泽罗 | Unizero | 采样Unizero | rezero |
|---|
| Tictactoe | ✔ | ✔ | | | | ✔ | | ✔ | | |
| gomoku | ✔ | ✔ | | | | ✔ | | ✔ | | ✔ |
| 连接4 | ✔ | ✔ | | | | | | ✔ | | ✔ |
| 2048 | --- | ✔ | | | | | ✔ | ✔ | | |
| 棋 | | | | | | | | | | |
| 去 | | | | | | | | | | |
| 卡特柱 | --- | ✔ | | ✔ | ✔ | ✔ | ✔ | ✔ | | ✔ |
| 摆 | --- | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | | ✔ | |
| Lunarlander | --- | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | |
| BipedalWalker | --- | ✔ | ✔ | ✔ | ✔ | ✔ | | | ✔ | |
| atari | --- | ✔ | | ✔ | ✔ | ✔ | ✔ | ✔ | | ✔ |
| 深态控制 | --- | --- | ✔ | --- | ✔ | | | | ✔ | |
| mujoco | --- | ✔ | | ✔ | ✔ | | | | | |
| 米格里德 | --- | ✔ | | ✔ | ✔ | | | ✔ | | |
| Bsuite | --- | ✔ | | ✔ | ✔ | | | ✔ | | |
| 记忆 | --- | ✔ | | ✔ | ✔ | | | ✔ | | |
| Sumtothree(台球) | --- | | | | ✔ | | | | | |
| 元素 | --- | | | | ✔ | | | | | |
(1):“✔”表示相应的项目已完成且测试良好。
(2):“”表示相应的项目在等待列表中(正在进行的工作)。
(3):“ ---”表示该算法不支持此环境。
安装
您可以使用以下命令从GITHUB源代码安装最新的LightZero:
git clone https://github.com/opendilab/LightZero.git
cd LightZero
pip3 install -e .
请注意,LightZero当前仅支持Linux和macOS平台上的汇编。我们正在积极努力将此支持扩展到Windows平台。非常感谢您在此过渡期间的耐心。
使用Docker安装
我们还提供了一个Dockerfile,该码头设置一个环境,该环境具有运行LightZero库所需的所有依赖关系。此Docker映像基于Ubuntu 20.04,并安装Python 3.8,以及其他必要的工具和库。这是使用我们的Dockerfile来构建Docker映像,从此图像运行容器,并在容器内执行LightZero代码。
- 下载Dockerfile :Dockerfile位于LightZero存储库的根目录中。将此文件下载到您的本地计算机。
- 准备构建上下文:在本地计算机上创建一个新的空目录,将Dockerfile移至此目录中,然后导航到该目录。此步骤有助于避免在构建过程中向Docker守护程序发送不必要的文件。
mkdir lightzero-docker
mv Dockerfile lightzero-docker/
cd lightzero-docker/
- 构建Docker映像:使用以下命令来构建Docker映像。该命令应从包含DockerFile的目录内部运行。
docker build -t ubuntu-py38-lz:latest -f ./Dockerfile .
- 从图像中运行一个容器:使用以下命令在与Bash Shell的交互式模式下从图像启动一个容器。
docker run -dit --rm ubuntu-py38-lz:latest /bin/bash
- 在容器中执行LightZero代码:一旦您进入容器,您可以使用以下命令运行示例Python脚本:
python ./LightZero/zoo/classic_control/cartpole/config/cartpole_muzero_config.py
快速开始
训练一个uzero代理玩Cartpole:
cd LightZero
python3 -u zoo/classic_control/cartpole/config/cartpole_muzero_config.py
训练一个uzero代理玩乒乓球:
cd LightZero
python3 -u zoo/atari/config/atari_muzero_segment_config.py
训练一个穆泽罗代理商玩Tictactoe:
cd LightZero
python3 -u zoo/board_games/tictactoe/config/tictactoe_muzero_bot_mode_config.py
训练一个Unizero代理玩Pong:
cd LightZero
python3 -u zoo/atari/config/atari_unizero_segment_config.py
文档
LightZero文档可以在此处找到。它包含教程和API参考。
对于那些对自定义环境和算法感兴趣的人,我们提供相关指南:
- 自定义环境
- 自定义算法
- 如何设置配置文件?
- 记录和监视系统
如果您有任何疑问,请随时与我们联系以寻求支持。
基准
单击以展开
- 以下是三个棋盘游戏中Alphazero和Muzero的基准结果:Tictactoe,Connect4,Gomoku。



- 以下是Muzero,Muzero w/ ssl的基准结果,在Atari的三个离散动作空间游戏中,有效零和采样效率为效率。




- 以下是在三个经典连续的动作太空游戏中使用
Factored/Gaussian政策代表采样的基准结果:pendulum-v1,lunarlandercrienconunous-v2,bipedalwalker-v3和两个穆乔科连续的动作太空游戏:hopper-v3,walker-v3,walker2d-v3。
“货运策略”表明代理商学习一个输出分类分布的策略网络。手动离散后,五个环境的动作空间的尺寸分别为11、49(7^2),256(4^4),64(4^3)和4096(4^6)。另一方面,“高斯政策”是指代理学习一个直接输出参数(MU和Sigma)以进行高斯分布的策略网络。






- 以下是在四个环境下的Gumbelmuzero和Muzero(在不同的模拟成本下)的基准结果:Pongnoframeskip-V4,Mspacmannoframeskip-v4,Gomoku和Lunarlandercerconcontinous-V2。




- 以下是2048年环境中随机Muzero和Muzero的基准结果,其机会水平不同(num_chances = 2和5)。


- 以下是Muzero W/ SSL在Minigrid环境中的各种MCT探索机制的基准结果。


很棒的mcts注意
纸笔记
以下是上述算法的详细纸张说明(中文):
点击崩溃
- alphazero
- Muzero
- 有效的零
- 采样
- Gumbelmuzero
- 随机Muzero
- 符号
您还可以参考相关的Zhihu列(中文):对MCTS+RL边境理论和应用程序的深入分析。
算法。概述
以下是上述算法的MCTS原理图:
单击以展开
- MCT
- alphazero
- Muzero
- 有效的零
- 采样
- Gumbelmuzero
- 随机Muzero
很棒的MCTS论文
这是有关蒙特卡洛树搜索的研究论文的集合。本节将不断更新以跟踪MCT的前沿。
关键论文
单击以展开
LightZero实施系列
- 2018 Science Alphazero:一种通用的增强学习算法
- 2019 Muzero:通过学习模型进行计划,掌握Atari,Go,国际象棋和Shogi
- 2021 ExcilityZero:掌握Atari游戏的数据有限
- 2021取样的Muzero:在复杂的动作空间中学习和计划
- 2022随机Muzero:在随机环境中计划的模型
- 2022 Gumbel Muzero:通过与Gumbel进行计划改进政策
Alphago系列
- 2015 Nature Alphago掌握了深度神经网络和树木搜索的游戏
- 2017年自然alphago零掌握无知识的GO游戏
- 2019 ELF OpenGo:Alphazero的分析和开放重新成熟
- 2023年游戏学生:完美和不完美信息游戏的统一学习算法
Muzero系列
- 2022在线和离线强化学习通过学习模型进行计划
- 2021矢量量化计划模型
- 2021 MUESLI:结合政策优化的改进。
MCTS分析
- 2020年蒙特卡洛树作为正规政策优化
- 2021自一致的模型和价值观
- 2022年对抗性政策击败了专业级别的AIS
- 2022 PNA在Alphazero中获取国际象棋知识。
MCTS应用程序
- 2023符号物理学习者:通过蒙特卡洛树搜索发现管程
- 2022自然发现使用加固学习更快的矩阵乘法算法
- 2022 MUZERO具有自我竞争的VP9视频压缩中的费率控制
- 2021 Douzero:用自我扮演深入强化学习掌握杜迪兹
- 2019将计划和深入的强化学习结合在战术决策中为自动驾驶
其他论文
单击以展开
ICML
- 可扩展的安全政策改进通过蒙特卡洛树搜索2023
- Alberto Castellini,Federico Bianchi,Edoardo Zorzi,ThiagoD.Simão,Alessandro Farinelli,Matthijs TJ Spaan
- 密钥:使用基于MCT的策略在线安全政策改进,基线自举的安全政策改进
- eppenv:Gridworld和sysadmin
- 通过路径一致性2022的Alphazero有效学习
- Dengwei Zhao,Shikui TU,Lei Xu
- 钥匙:有限的自我播放,路径一致性(PC)最佳性
- expenv:去,奥赛罗,戈姆库
- 可视化Muzero型号2021
- Joery A. de Vries,Ken S. Voskuil,Thomas M. Moerland,Aske Plaat
- 钥匙:可视化值等效动力学模型,动作轨迹差异,两种正则化技术
- expenv:Cartpole和MountainCar。
- 蒙特卡洛树搜索中的凸正则化2021
- Tuan Dam,Carlo D'Eramo,Jan Peters,Joni Pajarinen
- 钥匙:熵验证备份操作员,遗憾分析,tsallis etropy,
- expenv:合成树,atari
- 信息粒子滤清器树:用于POMDP的在线算法,在连续域上具有基于信念的奖励2020
- 约翰内斯·菲舍尔(ÖmerSahinTas)
- 钥匙:连续POMDP,粒子过滤树,基于信息的奖励成型,信息收集。
- expenv:pomdps.jl框架
- 代码
- 复古*:通过神经指导A* search 2020学习回归合成计划
- Binghong Chen,Chengtao Li,Hanjun Dai,Le Song
- 钥匙:化学折叠式计划,基于神经的a* - 类算法,安多树
- expenv:USPTO数据集
- 代码
ICLR
- 决策时间计划的更新等效框架2024
- Samuel Sokota,Gabriele Farina,David J Wu,Hengyuan Hu,Kevin A. Wang,J Zico Kolter,Noam Brown
- 钥匙:不完美的信息游戏,搜索,决策时间计划,更新等价
- 费用:哈纳比,3x3突然的黑暗六角和幻影tic-tac-toe
- 通过规划2024的有效的多代理增强学习
- Qihan Liu,Jianing Ye,Xiaoteng MA,Jun Yang,Bin Liang,Chongjie Zhang
- 钥匙:多机构强化学习,计划,多代理MCT
- Expenv:SMAC,Lunarlander,Mujoco和Google Research Football
- 通过观看Pure Videos 2023成为有限数据的熟练播放器
- Weirui Ye,Yunsheng Zhang,Pieter Abbeel,Yang Gao
- 钥匙:基于矢量量化,训练阶段,微调阶段的无动作视频,前进周期一致性(FICC)的预训练。
- expenv:atari
- 基于政策的计划问题的自我竞争2023
- Jonathan Pirnay,QuirinGöttl,Jakob Burger,Dominik Gerhard Grimm
- 关键:自我竞争,通过计划反对过去自我的可能策略来找到强大的轨迹。
- Expenv:旅行推销员问题和工作店调度问题。
- 通过Explorer-Navigator框架2023解释时间图模型
- 温文夏,米卡·莱,凯哈·山,姚张,新南·戴,徐李,李
- 关键:临时GNN解释器,探险家,可以找到带有MCT的事件子集,MCT是一个学习事件之间相关性并有助于减少搜索空间的导航器。
- expenv:Wikipedia和Reddit,合成数据集
- Speedyzero:掌握Atari的数据有限和时间2023
- Yixuan Mei,Jiaxuan Gao,Weirui Ye,Shaohuai Liu,Yang Gao,Yi Wu
- 钥匙:分布式RL系统,优先刷新,剪切LARS
- expenv:atari
- 通过学习模型2023的高效离线政策优化
- Zichen Liu,Siyi Li,Wee Sun Lee,Shuicheng Yan,Zhongwen Xu
- 钥匙:离线-RL的正规化一步基于模型的算法
- expenv:atari,bsuite
- 代码
- 使用自适应树搜索启用任意翻译目标2022
- Wang Ling,Wojciech Stokowiec,Domenic Donato,Chris Dyer,Lei Yu,Laurent Sartran,Austin Matthews
- 钥匙:自适应树搜索,翻译模型,自回归模型,
- Expenv:WMT2020的中文 - 英语和Pashto - 英语任务,来自WMT2014的德语英语
- 深度学习在树上搜索组合优化2022中有什么问题
- Maximili1anBöther,OttoKißig,Martin Taraz,Sarel Cohen,Karen Seidel,Tobias Friedrich
- 钥匙:NP-HARD最大独立集问题的组合优化,开源基准套件,对流行的引导树搜索算法的深入分析,将树搜索实现与其他求解器进行比较
- Expenv:NP-HARD最大独立集。
- 代码
- 语言行动价值估算2021
- Youngsoo Jang,Seokin Seo,Jongmin Lee,Kee-eung Kim
- 钥匙:具有语言驱动的探索,本地乐观的语言价值估计的蒙特卡洛树搜索。
- expenv:互动小说(如果)游戏
- 实用的大规模平行蒙特卡洛树搜索应用于分子设计2021
- Xiufeng Yang,Tanuj Kr Aasawat,Kazuki Yoshizoe
- 钥匙:大量平行的蒙特卡洛树搜索,分子设计,哈希驱动的并行搜索,
- 费用:辛烷值 - 水分区系数(LOGP)受合成可及性(SA)和较大的环罚评分的惩罚。
- 观看未观察的:一种并行的蒙特卡洛树搜索的简单方法2020
- Anji Liu,Jianshu Chen,Mingze Yu,Yu Zhai,Xuewen Zhou,ji liu
- 钥匙:平行的蒙特卡洛树搜索,有效地将树划分为子树,比较每个处理器的观察比。
- Expenv:Joy-City游戏的加速和绩效比较,Atari游戏的平均插曲返回
- 代码
- 学习通过神经探索 - 开发树在高维度计划2020
- Binghong Chen,Bo Dai,Qinjie Lin,Guo Ye,Han Liu,Le Song
- 关键:元路径计划算法,利用一种新型的神经结构,可以从问题结构中学习有希望的搜索方向。
- expenv:一个2D工作区,带有2 DOF(自由度)点机器人,一个3 Dof Stick机器人和5 DOF蛇机器人
神经
- Lightzero:在一般顺序决策方案2023中用于蒙特卡洛树搜索的统一基准
- Yazhe Niu,Yuan PU,Zhenjie Yang,Xueyan Li,Tong Zhou,Jiyuan Ren,Shuai Hu,Hongsheng Li,Yu Liu
- 钥匙:在一般顺序决策方案中部署MCT/Muzero的第一个统一基准。
- expenv:ClassicControl,Box2D,Atari,Mujoco,Gobigger,Minigrid,Tictactoe,ConnectFour,Gomoku,2048年,等等。
- 大型语言模型作为大规模任务计划的常识知识2023
- Zirui Zhao,Wee Sun Lee,David HSU
- 关键:世界模型(LLM)和LLM诱导的策略可以合并为MCT,以扩大任务计划。
- 支出:乘法,旅行计划,物体重新安排
- 蒙特卡洛树搜索与鲍尔茨曼探索2023
- 迈克尔·画家,穆罕默德·贝伊米(Mohamed Baioumy),尼克·霍斯(Nick Hawes)
- 钥匙:带有MCT的Boltzmann探索,最大熵目标的最佳动作不一定与原始目标的最佳动作相对应,两种改进的算法。
- Expenv:冻结的湖泊环境,帆船问题,去
- 掌握Atari Games 2023的通用加权路径一致性
- Dengwei Zhao,Shikui TU,Lei Xu
- 钥匙:广义加权路径一致性,一种加权机制。
- expenv:atari
- 加速蒙特卡洛树搜索概率树状态抽象2023
- Yangqing Fu,Ming Sun,Buqing Nie,Yue Gao
- 钥匙:概率树状态抽象,传递性和聚集误差约束
- Expenv:Atari,Cartpole,Lunarlander,Gomoku
- 明智地花费时间:通过虚拟扩展加速MCT 2022
- Weirui Ye,Pieter Abbeel,Yang Gao
- 钥匙:权衡计算与表演,虚拟扩展,花费时间的时间适应时间。
- expenv:atari,9x9 go
- 计划有效模仿学习2022
- Zhao-heng Yin,Weirui Ye,Qifeng Chen,Yang Gao
- 钥匙:行为克隆,对抗性模仿学习(AIL),基于MCTS的RL。
- Expenv:DeepMind Control Suite
- 代码
- 超越任务绩效的评估:分析十六进制的alphazero中的概念
- 查尔斯·洛弗(Charles Lovering
- 关键:Alphazero的内部表示,模型探测和行为测试,如何在网络中捕获这些概念。
- expenv:十六进制
- 类似α的药物对对抗性扰动是否强大? 2022
- Li-cheng Lan,Huan Zhang,Ti-Rong Wu,Meng-Yu Tsai,I-Chen Wu,4 Cho-Jui Hsieh
- 钥匙:对抗状态,第一次对AIS的对抗性攻击。
- expenv:去
- 黑盒优化2022的蒙特卡洛树下降
- Yaoguang Zhai,Sicun Gao
- 密钥:黑盒优化,如何进一步整合基于样本的下降以更快地优化。
- Expenv:非线性优化的合成功能,穆乔科(Mujoco)运动环境中的增强学习问题以及神经体系结构搜索(NAS)中的优化问题。
- 蒙特卡洛树搜索基于高维贝叶斯优化的变量选择2022
- Lei Song ∗,Ke Xue ∗,Xiaobin Huang,Chao Qian
- 钥匙:通过MCTS的低维子空间,使用任何贝叶斯优化算法在子空间中进行优化。
- expenv:NAS板凳问题和Mujoco运动
- 蒙特卡洛树搜索与迭代精炼状态抽象2021
- Samuel Sokota,Caleb Ho,Zaheen Ahmad,J。ZicoKolter
- 钥匙:随机环境,逐步扩大,抽象精炼
- Expenv:二十一点,陷阱,五乘五。
- 深概要蒙特卡洛计划在侦察盲目的象棋2021
- 格雷戈里·克拉克(Gregory Clark)
- 关键:不完美的信息,具有未加权粒子滤波器的信念状态,信息状态的新型随机抽象。
- expenv:侦察盲棋
- 多人:连续空间MDP中的蒙特卡罗计划与非质子分析2020
- Weichao Mao,Kaiqing Zhang,Qiaomin Xie,TamerBa≥Sar
- 钥匙:连续的状态行动空间,分层乐观优化。
- 费用:Cartpole,倒置的摆,摇摆和Lunarlander。
- 使用Monte Carlo Tree搜索学习黑框优化的搜索空间分区2020
- Linnan Wang,Rodrigo Fonseca,Yuandong Tian
- 关键:使用一些样本,非线性决策边界来学习搜索空间的分区,并学习当地模型以选择良好的候选人。
- eppenv:Mujoco运动任务,小规模的基准,
- 混合与匹配:一种从混合分布中学习模型的乐观树搜索方法2020
- Matthew Faw,Rajat Sen,Karthikeyan Shanmugam,Constantine Caramanis,Sanjay Shakkottai
- 钥匙:协变速器问题,混合与匹配结合了随机梯度下降(SGD)与乐观的树搜索和模型重复使用(与不同混合物分布的样品进行了部分训练的模型)
- 代码
其他会议或期刊
- 学习停止:动态模拟蒙特卡洛树搜索AAAI 2021。
- 关于蒙特卡洛树搜索和增强学习杂志人工智能研究杂志2017。
- 通过学习蒙特卡洛树搜索的学习动作的样品神经架构搜索IEEE交易在模式分析和机器智能2022中。
反馈和贡献
?引用
@article{niu2024lightzero,
title={LightZero: A Unified Benchmark for Monte Carlo Tree Search in General Sequential Decision Scenarios},
author={Niu, Yazhe and Pu, Yuan and Yang, Zhenjie and Li, Xueyan and Zhou, Tong and Ren, Jiyuan and Hu, Shuai and Li, Hongsheng and Liu, Yu},
journal={Advances in Neural Information Processing Systems},
volume={36},
year={2024}
}
@article{pu2024unizero,
title={UniZero: Generalized and Efficient Planning with Scalable Latent World Models},
author={Pu, Yuan and Niu, Yazhe and Ren, Jiyuan and Yang, Zhenjie and Li, Hongsheng and Liu, Yu},
journal={arXiv preprint arXiv:2406.10667},
year={2024}
}
@article{xuan2024rezero,
title={ReZero: Boosting MCTS-based Algorithms by Backward-view and Entire-buffer Reanalyze},
author={Xuan, Chunyu and Niu, Yazhe and Pu, Yuan and Hu, Shuai and Liu, Yu and Yang, Jing},
journal={arXiv preprint arXiv:2404.16364},
year={2024}
}?致谢
该项目是基于以下关于GitHub存储库的先驱工作部分开发的。我们对这些基本资源表示深切的感谢:
- https://github.com/opendilab/di-engine
- https://github.com/deepmind/mctx
- https://github.com/yewr/efficityzero
- https://github.com/werner-duvaud/muzero-general
我们要特别感谢以下贡献者 @paparazz1,@karroyan, @nighood, @jayyoung0802,@timothijoe,@tutuhuss, @tutuhuss,@harryxuancy, @puyuan1996, @puyuan1996,@hansbug,@hansbug,以便他们对这个algorithm library的宝贵贡献和支持。
感谢所有为这个项目做出贡献的人:
?许可证
此存储库中的所有代码均为Apache许可证2.0。
(返回到顶部)