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。
(返回到頂部)