關鍵論文導讀
本文整理圍棋 AI 發展史上最重要的論文,提供快速理解的摘要與技術要點。
論文總覽
時間軸
閱讀建議
| 目標 | 建議論文 |
|---|---|
| 了解基礎 | AlphaGo (2016) |
| 理解自我對弈 | AlphaGo Zero (2017) |
| 了解通用方法 | AlphaZero (2017) |
| 實作參考 | KataGo (2019) |
1. MCTS 的誕生(2006)
論文資訊
標題:Efficient Selectivity and Backup Operators in Monte-Carlo Tree Search
作者:Rémi Coulom
發表:Computers and Games 2006
核心貢獻
首次將蒙地卡羅方法系統性地應用於圍棋:
之前:純隨機模擬,沒有樹結構
之後:建構搜索樹 + UCB 選擇 + 回傳統計
關鍵概念
UCB1 公式
選擇分數 = 平均勝率 + C × √(ln(N) / n)
其中:
- N:父節點訪問次數
- n:子節點訪問次數
- C:探索常數
MCTS 四步驟
1. Selection:用 UCB 選擇節點
2. Expansion:展開新節點
3. Simulation:隨機模擬到終局
4. Backpropagation:回傳勝負
影響
- 讓圍棋 AI 達到業餘段位水平
- 成為後續所有圍棋 AI 的基礎
- UCB 概念影響了 PUCT 的發展
2. AlphaGo(2016)
論文資訊
標題:Mastering the game of Go with deep neural networks and tree search
作者:Silver, D., Huang, A., Maddison, C.J., et al.
發表:Nature, 2016
DOI:10.1038/nature16961
核心貢獻
首次結合深度學習與 MCTS,擊敗人類世界冠軍。
系統架構
技術要點
1. 監督學習 Policy Network
# 輸入特徵(48 個平面)
- 己方棋子位置
- 對方棋子位置
- 氣的數量
- 提子後的狀態
- 合法手位置
- 最近幾手的位置
...
2. 強化學習改進
SL Policy → 自我對弈 → RL Policy
RL Policy 比 SL Policy 強約 80% 勝率
3. Value Network 訓練
防止過擬合的關鍵:
- 從每盤棋只取一個位置
- 避免相似局面重複出現
4. MCTS 整合
葉節點評估 = 0.5 × Value Network + 0.5 × Rollout
Rollout 使用快速 Policy Network(準確率較低但速度快)
關鍵數據
| 項目 | 數值 |
|---|---|
| SL Policy 準確率 | 57% |
| RL Policy 對 SL Policy 勝率 | 80% |
| 訓練 GPU | 176 |
| 對局 GPU | 48 TPU |
3. AlphaGo Zero(2017)
論文資訊
標題:Mastering the game of Go without human knowledge
作者:Silver, D., Schrittwieser, J., Simonyan, K., et al.
發表:Nature, 2017
DOI:10.1038/nature24270
核心貢獻
完全不需要人類棋譜,從零開始自我學習。
與 AlphaGo 的差異
| 面向 | AlphaGo | AlphaGo Zero |
|---|---|---|
| 人類棋譜 | 需要 | 不需要 |
| 網路數量 | 4 個 | 1 個雙頭 |
| 輸入特徵 | 48 平面 | 17 平面 |
| Rollout | 使用 | 不使用 |
| 殘差網路 | 無 | 有 |
| 訓練時間 | 數月 | 3 天 |
關鍵創新
1. 單一雙頭網路
2. 簡化輸入特徵
# 只需要 17 個特徵平面
features = [
current_player_stones, # 己方棋子
opponent_stones, # 對方棋子
history_1_player, # 歷史狀態 1
history_1_opponent,
... # 歷史狀態 2-7
color_to_play # 輪到誰
]
3. 純 Value Network 評估
不再使用 Rollout
葉節點評估 = Value Network 輸出
更簡潔、更快速
4. 訓練流程
學習曲線
4. AlphaZero(2017)
論文資訊
標題:Mastering Chess and Shogi by Self-Play with a General Reinforcement Learning Algorithm
作者:Silver, D., Hubert, T., Schrittwieser, J., et al.
發表:arXiv:1712.01815 (後發表於 Science, 2018)
核心貢獻
通用化:同一演算法應用於圍棋、西洋棋、將棋。
通用架構
輸入編碼(遊戲特定)→ 殘差網路(通用)→ 雙頭輸出(通用)
跨遊戲適應
| 遊戲 | 輸入平面 | 動作空間 | 訓練時間 |
|---|---|---|---|
| 圍棋 | 17 | 362 | 40 天 |
| 西洋棋 | 119 | 4672 | 9 小時 |
| 將棋 | 362 | 11259 | 12 小時 |
MCTS 改進
PUCT 公式
選擇分數 = Q(s,a) + c(s) × P(s,a) × √N(s) / (1 + N(s,a))
c(s) = log((1 + N(s) + c_base) / c_base) + c_init
探索噪聲
# 根節點加入 Dirichlet 噪聲
P(s,a) = (1 - ε) × p_a + ε × η_a
η ~ Dir(α)
α = 0.03(圍棋), 0.3(西洋棋), 0.15(將棋)
5. KataGo(2019)
論文資訊
標題:Accelerating Self-Play Learning in Go
作者:David J. Wu
發表:arXiv:1902.10565
核心貢獻
50 倍效率提升,讓個人開發者也能訓練強大的圍棋 AI。
關鍵創新
1. 輔助訓練目標
總損失 = Policy Loss + Value Loss +
Score Loss + Ownership Loss + ...
輔助目標讓網路更快收斂
2. 全局特徵
# 全局池化層
global_features = global_avg_pool(conv_features)
# 與局部特徵結合
combined = concat(conv_features, broadcast(global_features))
3. Playout Cap 隨機化
傳統:每次搜索固定 N 次
KataGo:N 從某個分布隨機取樣
讓網路學會在各種搜索深度下都表現良好
4. 漸進式棋盤大小
if training_step < 1000000:
board_size = random.choice([9, 13, 19])
else:
board_size = 19
效率比較
| 指標 | AlphaZero | KataGo |
|---|---|---|
| 達到超人水平的 GPU 天 | 5000 | 100 |
| 效率提升 | 基準 | 50 倍 |
6. 延伸論文
MuZero(2020)
標題:Mastering Atari, Go, Chess and Shogi by Planning with a Learned Model
貢獻:學習環境動態模型,不需要遊戲規則
EfficientZero(2021)
標題:Mastering Atari Games with Limited Data
貢獻:樣本效率大幅提升
Gumbel AlphaZero(2022)
標題:Policy Improvement by Planning with Gumbel
貢獻:改進的策略改進方法
論文閱讀建議
入門順序
1. AlphaGo (2016) - 理解基本架構
2. AlphaGo Zero (2017) - 理解自我對弈
3. KataGo (2019) - 理解實作細節
進階順序
4. AlphaZero (2017) - 通用化
5. MuZero (2020) - 學習世界模型
6. MCTS 原始論文 - 理解基礎
閱讀技巧
- 先看摘要和結論:快速掌握核心貢獻
- 看圖表:理解整體架構
- 看方法部分:理解技術細節
- 看附錄:找實作細節和超參數
資源連結
論文 PDF
| 論文 | 連結 |
|---|---|
| AlphaGo | Nature |
| AlphaGo Zero | Nature |
| AlphaZero | Science |
| KataGo | arXiv |
開源實作
| 專案 | 連結 |
|---|---|
| KataGo | GitHub |
| Leela Zero | GitHub |
| MiniGo | GitHub |
延伸閱讀
- 神經網路架構詳解 — 深入理解網路設計
- MCTS 實作細節 — 搜索演算法實作
- KataGo 訓練機制解析 — 訓練流程詳解