One-Page AlphaGo --十分钟看懂 AlphaGo 的核心算法!
下文概括了圍棋借助人工智能在 2016 年實現的突破。
圍棋是一個完全信息博弈問題。而完全信息博弈,通常能被簡化為尋找最優值的樹搜索問題。它含有 b 的 d 次方個可能分支,在國際象棋中 b≈35,d≈80;而在圍棋中 b≈250,d≈150。很顯然,對于圍棋,用窮舉法或簡單的尋路算法(heuristics)是行不通的。但有效的方法是存在的:
-
從策略(policy) P(a|s) 中取樣 action,降低搜索廣度
-
通過位置評估降低搜索深度
-
把策略和值用蒙特卡洛樹搜索(MCTS)結合起來。
通常的步驟是:
-
用一個 13 層的 CNN,直接從人類棋步中訓練一個監督學習策略網絡 Pσ。輸入為 48 x 19 x 19 的圖像(比方說,它的組成棋子顏色 是 3 x 19 x 19),輸出是使用 softmax 層預測的全部落子的概率。精確度是 55.7%。
-
訓練一個能在運行時快速取樣 action 的快速策略 Pπ。這會用一個基于小型模式特征的線性 softmax。精確度是 24.2%,但它計算一次落子只用 2 微秒,而不像 Pσ 需要 3 毫秒。
-
訓練一個增強學習策略網絡 Pρ ,通過優化博弈結果來進一步提升監督策略網絡。這把策略網絡向贏棋優化,而不是優化預測精確度。本質上,Pρ 與 Pσ 的結構是一樣的。它們的權重使用相同值 ρ=σ 初始化。對弈的兩個選手,是當前策略網絡 Pρ 和隨機(防止過擬合)選擇的此前的策略網絡迭代。
-
訓練一個價值網絡(value network)Vθ,來預測強化學習策略網絡自己和自己下棋的贏家。該網絡的架構和策略網絡類似,但多出一個特征平面(當前玩家的顏色),并且輸出變成了單一預測(回歸,均方差損失)。根據完整棋局來預測對弈結果,很容易導致過擬合。這是由于連續落子位置之間高度相關,只有一子之差。因此,這里使用了強化學習策略網絡自己與自己對弈新生成的數據。該數據從包含 3000 萬個不同位置的獨立棋局中抽取。
-
把策略網絡、價值網絡、快速策略和蒙特卡洛樹搜索結合起來。一個標準的蒙特卡洛樹搜索過程包含四步:選擇、擴展、評估、備份。為了讓大家更容易理解,我們只粗略講了講它如何在模擬中選擇狀態的部分(如對數學感興趣,請到原始論文中找公式)。
狀態分數=價值網絡輸出+快速運行(fast rollout)的策略結果+監督學習策略網絡輸出
高狀態得分(或者說落子)會被選擇。價值網絡輸出和快速運行策略結果是評估函數,在葉子節點進行評估(注意,為了評估快速運行,需要一直到最后一步)。監督學習策略網絡輸出是一個當前階段的 action 概率,充作選取分數的獎勵分。該分數會隨訪問次數而退化,以鼓勵探索。注意強化學習策略網絡只被用于輔助,來生成價值網絡,并沒有直接在蒙特卡洛樹搜索中使用。
到這就結束了,以上就是戰勝了人類的 AlphaGo 算法!
====================================分割線================================
本文作者:三川 本文轉自雷鋒網禁止二次轉載,原文鏈接
總結
以上是生活随笔為你收集整理的One-Page AlphaGo --十分钟看懂 AlphaGo 的核心算法!的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 三星Galaxy S23系列今日首销 最
- 下一篇: 不怕被 AirTag 追踪了,BVS 推