1. 程式人生 > 實用技巧 >【強化學習】MCTS: 蒙特卡洛樹搜尋

【強化學習】MCTS: 蒙特卡洛樹搜尋

  • 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)