蒙特卡洛樹搜尋 8 11 蒙特卡洛樹搜尋

2021-10-12 09:08:17 字數 767 閱讀 3504

我想蒙特卡洛樹搜尋(monte carlo tree search, mcts)突然為人所知還是得益於deepmind的alphago。一瞬間,關於解析alphago背後技術的文章大量湧現,其中的乙個核心技術就是本節mcts的乙個擴充套件。本節我們基於前面的知識,來看看mcts究竟是什麼?

首先,我們給mcts下兩個定義。第一,mcts是乙個決策時規劃演算法;第二,mcts是乙個rollout演算法。不同之處在於mcts中會部分的儲存值函式,從而能夠指導**產生更高回報值的軌跡。

在mcts中,每當我們遇到乙個新的狀態,需要選擇動作時,就會執行mcts(決策時規劃)。每乙個mcts更新過程都是乙個迭代過程。這個迭代過程會**很多從當前狀態開始直到終止態的軌跡(rollout)。mcts的核心思想是專注於哪些獲得高的評估回報的**,並且基於先前的高回報**軌跡不斷的往外擴充套件,產生新的**經驗。

mcts工作機理

在mcts中,重要的過程也是取樣軌跡,然後基於取樣軌跡利用mc方法估計值函式。它的特殊之處在於如何取樣軌跡和進行值備份。總結起來可以分為四步,如下圖所示:

蒙特卡洛樹搜尋

在每一輪迭代中,mcts重複的執行上面4個步驟,盡可能多的**出更多的軌跡來(獲得更多的分支),直到規劃時間用完或者計算資源耗盡。然後,以**軌跡中的某些累積統計引數為準則來選擇根節點的動作,這個準則可以是最大的動作值

在16.6節中我們會介紹alphago中使用的方法,它其實是mcts的乙個擴充套件。它結合了mcts中的mc評估和基於深度神經網路學習得到的動作值。

為什麼mcts會這麼有效?

MCTS 蒙特卡洛樹搜尋

最近想去做乙個小型的五子棋對弈,中間會用到蒙特卡洛樹,在此標記一下。mcts,即蒙特卡羅樹搜尋,是一類搜尋演算法樹的統稱,可以較為有效地解決一些搜尋空間巨大的問題。如乙個8 8的棋盤,第一步棋有64種著法,那麼第二步則有63種,依次類推,假如我們把第一步棋作為根節點,那麼其子節點就有63個,再往下的...

蒙特卡洛樹演算法 MCTS

實質上可以看成一種增強學習 蒙特卡羅樹搜尋 mcts 會逐漸的建立一顆不對稱的樹。可以分為四步並反覆迭代 1 選擇 從根節點,也就是要做決策的局面r出發向下選擇乙個最急迫需要被拓展的節點t 局面r是第乙個被檢查的節點,被檢查的節點如果存在乙個沒有被評價過的招式m,那麼被檢查的節點在執行m後得到的新局...

蒙特卡洛理解

蒙特卡羅演算法並不是一種演算法的名稱,而是是一類隨機方法的統稱。這類方法的特點是,可以在隨機取樣上計算得到近似結果,隨著取樣的增多,得到的結果是正確結果的概率逐漸加大,但在 放棄隨機取樣,而採用類似全取樣這樣的確定性方法 獲得真正的結果之前,無法知道目前得到的結果是不是真正的結果。從特性特性來說,我...