JOVANA
Explore Library Glossary Getting Started Three Levels Fields How it works Mission
Join the mission
All guides

攻克遊戲:從 Atari 到 AlphaZero 自我對弈

遊戲帶給強化學習最有名的勝利。看看為何它們是完美的試驗場、像素代理人如何征服 Atari,以及自我對弈如何讓機器從零開始打敗大師。

為何遊戲是完美的試驗場

遊戲對強化學習研究者有著致命吸引力,而且並非偶然。強化學習用於遊戲提供俐落的獎勵(分數,或勝負)、無限又便宜的資料(再玩一次就好)、完美的可重現性,以及清楚的人類標竿。一場遊戲就是一個自成一體的馬可夫決策過程(MDP),你可以一夜跑上百萬次。

這讓遊戲成為新點子的壓力測試場:在有人敢把它們用到機器人或電網之前,先在遊戲裡淬鍊。你在別處遇到的許多技術——經驗回放、目標網路、搜尋加學習——都是先在遊戲上鍛造出來的。

最简单的游戏式试验场:观看 Q-learning 通过试错找到制胜策略——新的强化学习想法正是在这种干净的舞台上首次得到验证。

可交互的网格世界,Q-learning 智能体通过试错学习动作价值以抵达目标。

從原始像素征服 Atari

宣告深度強化學習到來的突破,是一個網路直接從畫面玩許多 街機學習環境遊戲。一個 深度 Q 網路(Deep Q-Network, DQN)看著數張堆疊的像素影格,學會哪個搖桿動作能最大化未來分數——沒有任何針對特定遊戲的特徵,同一套架構橫跨數十款遊戲。Atari 基準因此成了「達到人類水準」的共用尺規。

从原始像素征服 Atari:深度 Q 网络通过卷积流水线读取屏幕画面,并将其转化为动作价值。

卷积网络流水线:图像→卷积→池化→特征→输出。

自我對弈:沒有老師的學習

圍棋、西洋棋這類棋盤遊戲,擁有天文數字般龐大的狀態空間,又沒有明顯的特徵提示。攻破它們的躍進是自我對弈(self-play):代理人對抗自己的複本,因此對手永遠剛好跟自己同等級。它一進步,對手也同步進步——形成一套永遠不會太簡單也不會太難的自動課程(curriculum)

AlphaZero 把自我對弈與蒙地卡羅樹搜尋(Monte Carlo Tree Search, MCTS)結合起來:一個神經網路提出有希望的著手、並估計誰佔上風,搜尋再用這些猜測往前看。搜尋改良後的結果回過頭成為網路的訓練目標,網路又引導出更好的搜尋——一個良性循環。它只從規則出發、別無其他,就在圍棋、西洋棋與將棋上超越了最強的先前程式

蒙特卡洛树搜索不断展开有希望的着法——这正是AlphaZero与其神经网络搭配使用的搜索。

一棵不断生长的搜索树,将模拟集中在最有希望的着法上。

while training:
    game = new_game()
    while not game.over():
        move = mcts_search(net, game)   # look ahead, guided by net
        game.play(move)
    z = game.outcome()                  # +1 win / 0 draw / -1 loss
    replay.add(states, search_policies, z)
    net.train(replay)                   # learn move-probs and value
AlphaZero 式迴圈:用搜尋下棋、以最終勝負為每個局面標註、訓練、重複。唯一的監督訊號就是「誰贏了」。

遊戲能告訴我們什麼、又不能告訴我們什麼

遊戲證明了強化學習能在巨大的決策空間中達到超越人類的水準。但遊戲給你一個完美的模擬器、免費的重置,以及規則直接奉上的獎勵。大多數真實應用一樣奢侈品都沒有——而這正是本軌道接下來要談的鴻溝。

自我對弈與「搜尋加學習」的迴響遠不止於棋盤遊戲:它們驅動著即時戰略遊戲中的代理人,而「靠跟自己對戰來產生資料」這個想法,如今也形塑著大型模型在推理上的訓練方式。遊戲依然是強化學習聲量最大的概念驗證。