跳至主要内容

關鍵論文導讀

本文整理圍棋 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%
訓練 GPU176
對局 GPU48 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 的差異

面向AlphaGoAlphaGo 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)

核心貢獻

通用化:同一演算法應用於圍棋、西洋棋、將棋。

通用架構

輸入編碼(遊戲特定)→ 殘差網路(通用)→ 雙頭輸出(通用)

跨遊戲適應

遊戲輸入平面動作空間訓練時間
圍棋1736240 天
西洋棋11946729 小時
將棋3621125912 小時

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

效率比較

指標AlphaZeroKataGo
達到超人水平的 GPU 天5000100
效率提升基準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 原始論文 - 理解基礎

閱讀技巧

  1. 先看摘要和結論:快速掌握核心貢獻
  2. 看圖表:理解整體架構
  3. 看方法部分:理解技術細節
  4. 看附錄:找實作細節和超參數

資源連結

論文 PDF

論文連結
AlphaGoNature
AlphaGo ZeroNature
AlphaZeroScience
KataGoarXiv

開源實作

專案連結
KataGoGitHub
Leela ZeroGitHub
MiniGoGitHub

延伸閱讀