本文首發於我的博客:oncemath.com
採用 BY-NC-ND 4.0 協議進行創作。轉載請遵守協議條件。
第八章對蒙特卡羅樹搜索(MCTS)這一重要演算法一帶而過,沒有仔細講解,這裡補充一點 MCTS 方面的一點介紹。
蒙特卡洛樹搜索的主要目的:給出一個『遊戲狀態』並選擇『勝率最高的下一步』。
有限兩人零和回合制遊戲
蒙特卡洛樹搜索運行的框架 / 環境是『遊戲』,其本身是一個非常抽象的廣義術語,這裡只針對於一種遊戲類型——有限兩人零和回合制遊戲:
- 『遊戲』意味著處理互動情況。
- 『有限』表示在任何時間點上,玩家之間都有有限的互動。
- 『兩人』表示參與者只有兩位。
- 『回合制』表示玩家按照一定順序進行遊戲。
- 『零和遊戲』意味著遊戲雙方有著相反的目標,換句話說:在遊戲的任何終結狀態下,所有玩家獲得的總和等於零。有時這樣的遊戲也被稱為嚴格競爭博弈。
圍棋、國際象棋等都是有限兩人零和回合制遊戲。
為何採用 MCTS ?
MCTS其實是在線規劃(online planning)的一種,從當前局面出發,以非參數方式估計局部 Q 函數,然後用局部 Q 函數估計去決定下一次採取哪個 action 。
由於是規劃(planning),MCTS的限制就是得要知道環境的全部信息,即有完美的前向模型(forward model),這樣才能知道走完一步後是什麼狀態。圍棋這類『有限兩人零和回合制遊戲』因為規則固定,狀態清晰,有完美快速的前向模型,所以 MCTS是 個好的選擇。
如何表徵一個博弈
可以使用一種著名的數據結構以簡單的形式來表徵一個博弈:博弈樹。