alphogo 理解
Mastering the game of Go with deep neural networks and tree search
有三個概念需要理解。
蒙特卡洛樹搜索
為什么叫樹搜索呢?我們把棋子在棋盤上的落子情況看作棋盤的各個狀態。最開始的空棋盤看作是樹的根結點,當落子時,落子之后的狀態都是在上一個狀態的基礎上改變的,每下一個子,就相當于葉子節點又拓展了新的葉子結點。一直拓展直到棋盤上擺滿了子,這棵樹才停止生長。
什么是蒙特卡洛? 蒙特卡洛的思想就是模擬,是不斷隨機實驗,最終利用很多次實驗的結果去統計我們想要計算的目標變量。
比如這里的下棋,在每一步時我們該如何落子呢? 假設棋盤上當前的落子情況為狀態s,下一步要采取的動作為a,那么對于每個s都應當有相應的a與之對應。我們想要知道的就是給定一個s,其對應的a是什么,a的狀態是有限的,我們可以‘向前看’。隨機選擇一個a,然后對方再隨機選擇一個動作,一直到分出勝負,此時統計獲勝的那方每次下棋時的(s,a),將這個元組對應的分數+1,這樣經過很多次的模擬之后,每個狀態-動作元組都有對應的得分,我們在下棋的時候就可以選擇得分比較大的那個動作執行。
總的來說,蒙特卡洛樹搜索是一種框架,它是一種思想。
策略網絡
策略網絡就是采用神經網絡作為預測函數的策略函數。策略函數就是我們在之前說的根據當前的狀態s來獲取對應的動作a的函數。
值網絡
值網絡的作用是根據當前的狀態s預測最終能獲勝的概率。沒有這個概率值也能做,不過預測的準確率就不行。
在預測過程中策略網絡和值網絡分別起到的作用是怎樣的,或者說 預測過程是怎樣的?
上面是論文中摘抄出來的圖,這里簡單說一下我的理解。
圖a 實際上可以算是結果圖了,就是已經計算出來了Q值,已經知道往哪個方向走是最好的。
圖b 是依據policy network 生成下一個節點的過程。
圖c 依據value network輸出該節點的value并且執行MCTS rollout
圖d 是根據文中公式計算Q值并且返回Q值最大的那條邊。
下面這個圖是我理解的搜索過程:
有監督的策略網絡 \(p_{\theta}\),快速的策略網絡 \(p_{\pi}\) ?
We train the neural networks using a pipeline consisting of several stages of machine learning (Fig. 1). We begin by training a supervised learning (SL) policy network pσ directly from expert human moves. This provides fast, efficient learning updates with immediate feedback and high-quality gradients. Similar to prior work13,15, we also train a fast policy pπ that can rapidly sample actions during rollouts. Next, we train a reinforcement learning (RL) policy network pρ that improves the SL policy network by optimizing the final outcome of games of self- play. This adjusts the policy towards the correct goal of winning games, rather than maximizing predictive accuracy. Finally, we train a value network vθ that predicts the winner of games played by the RL policy network against itself.
策略網絡和值網絡分別是怎么訓練的?
參考:https://charlesliuyx.github.io/2017/05/27/AlphaGo%E8%BF%90%E8%A1%8C%E5%8E%9F%E7%90%86%E8%A7%A3%E6%9E%90/
轉載于:https://www.cnblogs.com/mata123/p/9225916.html
總結
以上是生活随笔為你收集整理的alphogo 理解的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: css属性 background
- 下一篇: 2.11.1.移植前的准备工作