【強化學習】MCTS: 蒙特卡洛樹搜尋
阿新 • • 發佈:2020-10-18
-
Monte-Carle 樹搜尋是一種前向搜尋(Forward Search)
-
用的是基於取樣的模型
可以先看一下下文中的一個例子,mini-max搜尋是一種傳統的博弈樹演算法,在國際象棋中獲得了比較好的應用。
但是需要遍歷整個遊戲樹,對於棋格數多許多的圍棋,構建完整的遊戲樹代價是十分昂貴的。
28 天自制你的 AlphaGo (6) : 蒙特卡洛樹搜尋(MCTS)基礎
- 選擇 Selection:從根節點 R 開始,遞迴選擇最優的子節點(後面會解釋)直到達到葉子節點 L。
- 擴充套件 Expansion:如果 L 不是一個終止節點(也就是,不會導致博弈遊戲終止)那麼就建立一個或者更多的字子節點,選擇其中一個 C。
- 模擬 Simulation:從 C 開始執行一個模擬的輸出,直到博弈遊戲結束。
- 反向傳播 Backpropagation:用模擬的結果輸出更新當前行動序列。
- 反向傳播
反向傳播是從葉結點(simulation 開始的那個節點)到根結點。在這條路徑上所有的節點統計資訊都會被計算更新。
可以看蒙特卡羅樹搜尋 Monte Carlo Tree Search_John Levine的例子來對應上述的流程圖:
第一輪迭代:
第二輪迭代:
第三輪迭代:
- MCTS的終止
取決於你什麼時候想讓他停止,比如說你可以設定一個時間,比如五秒後停止計算。
一般來說最佳走法就是具有最高訪問次數的節點,這點可能稍微有點反直覺。這樣評估的原因是因為蒙特卡洛樹搜尋演算法的核心就是,越優秀的節點,越有可能走,反過來就是,走得越多的節點,越優秀。
參考資料:
【詳細原理】蒙特卡洛樹搜尋入門教程!
Monte Carlo Tree Search – beginners guide
蒙特卡洛樹搜尋最通俗入門指南
28 天自制你的 AlphaGo (6) : 蒙特卡洛樹搜尋(MCTS)基礎
蒙特卡洛樹搜尋 MCTS 入門
機器學習 alphaGo — monte carlo search tree(1)