第一章 緒論
1.2 研究目的
當開發者欲使用 Alpha-zero-general 專案更進一步提升對局能 力時,會增加對局過程中每一步 MCTS 搜尋次數,或是增加類神
贏的走步,並實驗以 AlphaZero 為設計精神的人工智慧,對弈時 是否因為選擇了更快獲勝的棋局走向,而有效增強棋力。
在高水準的五子棋對弈當中,獲勝的一方通常更能掌握迫著 的運用。在精心設計的走步中,埋藏致勝的目的,控制對手的走 步,在必要時也懂得防守以預防後患。為了有效在有限的資源中,
達到上述的訓練效果,就需要增加必要的迫著資訊,讓類神經網 路減少摸索的時間。
因此為了要讓人工智慧縮短變強所需的漫長訓練時間,本研 究亦導入了迫著空間,實驗讓人工智慧在初期訓練時,就加入迫 著空間資訊,並觀察人工智慧是否能透過這些資訊,學會如何運 用迫著來攻擊與防守,在較短時間內就能以設計迫著的手段,在 五子棋遊戲中取得勝利。
1.3 研究意義
本 研 究 將 在 五 子 棋 遊 戲 上 進 行 實 驗 , 將 使 用 Alpha-zero-general 框架的開源設計為框架來實現 AlphaZero 演算法。
研究將主要聚焦於如何讓電腦在對局時,除了將贏的結果作 為目標訓練外,也能注重贏的速度和品質,並且在資源有限的情 況下,縮短訓練所需時間,讓人工智慧的對弈能力更強韌,也更 貼近真正對弈時應具有的戰略心理。
Quick Win 的精神就在於選擇了維持勝率下最快贏的走步,來 減低對手可能翻盤或努力打平的機會;迫著搜尋則在於縮短訓練 的時間,讓AI 在相同訓練時間內變得更強。
第二章 文獻探討
2.1 類神經網路
類神經網路的出現最早是在1943年,McCulloch 與 Pitts 因試 圖以電子迴路來模擬人類腦神經的運作模式,而發展出來腦神經 知 識 與 電 路 結 合 的 研 究 [8]。1949年 , Hebb 在 其 著 作 The Organization of Behavior 中提出著名的赫布型學習理論,說明兩個
神經元突觸若對彼此激發越多次,則兩者之間的連結就會增強得 更緊密,讓研究人員對大腦神經元的理解更進一步 [9]。到了1954 年,Farley 與 Clark 兩人第一次使用電腦,成功地模擬出基於赫布 型學習理論的赫布網路 [10]。1958年 ,Rosenblatt 發明了感知器 演算法,類神經網路自此能夠對數據進行基本的分類 [11]。隔年 1959年, Widrow 與 Hoff 依據 McCulloch 與 Pitts 提出的神經元,
發 展 出 ADALINE (ADAptive LINear Element) 與 MADALINE (Multiple ADAptive LINear Elements) 的線性類神經網路模型,此 模型不但能夠接收多個輸入以及誤差,並且能成功應用在噪音的 過濾上 [12]。然而1969年時,由 Minsky 與 Papert 提出疑慮,指出 類神經網路因為是線性分類的緣故,所以無法進行XOR 問題的分 類 [13]。直到1975年,Werbos 發明的反向傳播演算法,終於有效 地解決了XOR 的問題,也因此使得訓練多層類神經網路變得更加
容易[14]。至1986年,Rumelhart 發明了多層感知器的反向傳播演 算法,使得類神經網路能夠建構得較深層,並用來處理更加複雜 的分類問題 [15],接著 LeCun 在 1989 年將反向傳播演算法應用於 手寫辨識,獲得極大的成功 [16]。然而,當時硬體尚未發展成熟,
類神經網路的發展受到限制,自此開始消聲匿跡。直至近十年,
隨著硬體運算能力的提高,圖形處理器的問世,類神經網路有了 硬體的加速,以及圖形識別上的巨大成就,而再次備受世界重視。
2.2 AlphaZero
2017年 AlphaGo Zero 的強化式學習框架以圍棋證明,過往監 督式學習系統中,人工智慧模仿人類專家做決策的方式,已不再 Probabilities),而 V 值表示當前玩家在該盤面下的贏率(Value)。因 為有來自類神經網路的 P 值與 V 值,而使蒙地卡羅樹搜索法在搜
圖 1 修改原 AlphaZero 論文中 Self-play 與 training 的示意圖
蒙地卡羅樹搜索法自我對下後的盤面,會被標記出走步與勝
負,成為類神經網路訓練時的資料。類神經網路以巨量資料進行 於卷積類神經網路(Convolutional Neural Networks)的殘差類神經網 路(Residual Neural Network)建構而成 [17]。將輸入的盤面視為二 維平面圖,卷積類神經網路會於此二維平面中的向量之間找尋特
殘差類神經網路改良自卷積類神經網路,目的是為了解決卷 積類神經網路中神經元過多而導致效率不彰,以及層數加深時梯 度消失、難以計算的問題。殘差類神經網路由多個殘差模塊組成,
如下圖2所示,每個殘差模塊中含有兩層卷積層,並在輸入處連 接一條捷徑到輸出處,且輸入與輸出的資料皆是保持同一個維度,
不致使參數暴漲。殘差類神經網路因為在架構上有捷徑的關係,
讓參數可以直接從輸入處傳遞到輸出處,所以不會有梯度消失的 問題,並能將參數繼續傳輸到下一層網路。
圖 2 殘差模塊示意圖
2.3 五子棋
1. 對局者是兩位,使用15路棋盤,每局遊戲時間為雙方 各20分鐘。
2. 黑棋為先手,白棋為後手,黑方第一手只能下在棋 盤外環2路,除此之外沒有禁手。
3. 不論縱向、橫向或斜向,先做出連五的一方獲勝。
4. 雙方都做不出連五則為和棋。
本研究以外圍開局五子棋之規則為主。
2.4 Quick Win
AlphaZero 的核心技術,是由蒙地卡羅樹搜索法以及類神經網 路交互協作而成的,然而當蒙地卡羅樹搜索法執行搜尋時,會把 展開後的所有子節點之 V 值做平均,故在評估節點優劣時容易誤 判及錯失機會。Quick Win 最早由 Chih-Hung Chen 與 Wei-Lin Wu 等人提出 [21],以此來改善驟死賽(Sudden Death Games)中,傳統 蒙地卡羅樹搜索法的平均獎賞機制下,所造成的降低決定性走步 機率的問題。
2019年,吳天宇利用 Quick Win 於 Breakthrough 遊戲中,也 同樣試圖要解決人工智慧在遊戲明顯可贏時,卻選擇了平均勝率
圖 3 Breakthrough 中非最優勝利走步
此實驗同樣也在 AlphaZero 的架構中實作,分別針對類神經 網路與蒙地卡羅樹搜索法作修改,測試 AlphaZero 經修改後是否 有更好的成效。其中,針對類神經網路導入 Quick Win 思維時,
類神經網路除了輸出一組(P, V)策略值外,另增加輸出一個 D 值,
用來預測距離遊戲結束尚餘多少步,並與 V 值結合增加權重成為 V’值,最終輸出給自我對下時的蒙地卡羅樹搜索法,使策略值變 成(P, V’),期望類神經網路因融合了 Quick Win,便可以訓練出更 精確的策略值,達到快贏目的。
為了取得 D 值,在遊戲結束時,需要對盤面標記距離勝利的 剩餘走步(StepToEnd),使 D 值在越接近獲勝盤面時值越大,以線
性遞增,並能影響贏的速度。
最終得到產生D 值的公式如公式(1)所示:
𝐷 = {𝑟 ∗𝑡−𝑆𝑡𝑒𝑝𝑠𝑇𝑜𝐸𝑛𝑑
𝑡 , 𝑡 ≥ 𝑆𝑡𝑒𝑝𝑠𝑇𝑜𝐸𝑛𝑑
0 , 𝑡 < 𝑆𝑡𝑒𝑝𝑠𝑇𝑜𝐸𝑛𝑑
(1)
此公式中,r 為勝負結果(Result),在贏的時候為1,輸的時候 為0,故 D 值只會在贏的盤面下進行標記。t 為步數門檻值,如設 t=20,表示在最後20步開始紀錄 D 值資料,若尚未進入20步的臨 界值,則D 值均標記為0,不會有負數產生。
吳天宇以此增加D 值的方法訓練,希望在棋局將贏之時 AI 能 選擇較好的走步,但實驗結果並未明顯讓類神經網路有能力預測 遊戲即將結束。然而,其中 Quick Win 的精神仍有學習之處,固 本研究部分實驗亦將延續吳天宇的思路,進行實驗方法的改良,
嘗試增加改良過的 D 值資訊給 Z 值,觀察是否對 AI 訓練成果有 效。
2.5 迫著搜尋
迫著搜尋(Threat-space Search)最早由 Allis 提出[23],並實作 在五子棋上。所謂迫著,是指有利於完成己方勝利條件、並強迫 對手只能以防守來阻擋的走步,如圖4範例所示,黑子以連續3或 4子來產生迫著,單迫著表示只有一處可防守,雙迫著則表示有 兩處可防守。在五子棋中,連四的棋型造成的迫著通常具有高攻 擊性,脅迫對手必須立即採取防守行動。
單迫著
雙迫著
圖 4 五子棋迫著
迫著的重要性以五子棋為例,如下圖5(a),目前盤面上白棋 已三迫著,且輪黑棋落子,是一個對白方必勝的盤面,此時類神 經網路的 V 值預估都相當接近1,表示即將勝利。黑方若以圖5(b) 的方式擋住白棋的連四單迫著,則白棋會繼續追四。圖5(c)顯示
黑子在白方設計的多迫著棋局中,已經沒有招架之力,此局白方 因為迫著的攻擊而獲勝,可知迫著策略若運用得宜,可以有效幫 助快速獲得勝利。
(a)
(b) (c)
圖 5 (a)白棋必勝盤面 (b)黑棋擋四、白棋追四 (c)白棋獲勝
迫著搜尋會找到一條以連續的迫著攻擊來達到勝利的路徑,
搜尋己方可形成迫著的走步之外,也要讓遊戲樹展開對方的防守 步,確保路徑經過幾輪攻防後依然獲得勝利。當迫著搜尋失敗時,
表示不存在依靠連續迫著攻擊得勝的路徑,此時比起攻擊,可能
1 2
3
4
更迫切需要防守對方的攻擊。
過去有許多使用迫著搜尋結合其他演算法的成功例子,例如 在迫著搜尋結束後,交由審局函數做評估,選擇出最佳攻擊走步 [24]。甚至迫著搜尋也能應用在 k 子棋上,結合防禦性策略,達到 最佳防禦效果[25]。
迫著搜尋因為只針對雙方能造成迫著的走步進行搜尋,縮減 可走步的數目,不需要對所有可走步進行搜索,故能有效減少搜 尋的時間與空間,加速獲得勝利。
第三章 方法與步驟
本研究在重現 AlphaZero 演算法時,會以 Alpha-zero-general 為實作的程式原型,因為 Alpha-zero-general 架構分明的程式碼,
修改功能與後續維護都非常容易,詳細模組介紹會在本章第一節
在原版 AlphaZero 中,並沒有考慮到如何快速結束棋局,這 是由於蒙地卡羅樹搜索法會對其展開的所有子節點之 V 值做平均 計算,故 在評估節點優劣 時會有 不準確之 虞,所以才要使用 Quick Win 策略來改良此情況。並且,為了讓 AI 在訓練初期就能 學會運用迫著技巧,就需要在原版 AlphaZero 框架中結合迫著空 間,讓AI 盡早在五子棋遊戲中學會使用迫著獲勝,以縮短訓練時 長。
此章節將依序對構想與實驗方法深入探討。主要有兩類作法,
一是藉由增加類神經網路對於剩餘步數的資訊,為 Z 值加權,來 調整面臨必勝走步時的選擇;二是導入迫著搜尋,期望使類神經