TensorFlow 1.13
4.2 驗證方法比較
表 4 深度優先搜尋與組合列舉驗證節點數比較
3路 4路 5路
DFS 332043 約2.092279e+13 約1.551121e+25 組合列舉 5919 10152908 161989830925
比例 56.09 2060768.19 9.5754221e+13
4.3 六貫棋3路盤面驗證
在3路棋盤中經由計算所有組合數,總共所有的合法盤面為5919種不重 複的盤面,當中另有3053盤的盤面所有的走步均屬於必勝或是必敗的盤面 不進行驗證,最後留下共2866種盤面作為驗證模型的盤面資料。
在3路 的 模 型 中 , 共 使 用 了5個 Residual block。 總 共 訓 練 了100個 iteration,每個 iteration 都會進行自我對下共50盤。每一次自我對下的走步 中 總 共 會 進 行 蒙 地 卡 羅 樹 搜 索50次 , 在 搜 索 的 過 程 中 在 根 節 點 加 入 Dirichlet noise,隨機比重 α 為0.3,如表5所示。
表 5 模型的訓練參數
iteration 100
episodes 100
模擬次數 50
Dirichlet noise 0.3
𝐶𝑝𝑢𝑐𝑡 1
在驗證原始的模型過程中可以發現,在某些盤面下的表現相當不好,
甚至越訓練表現越差,即使增加搜尋時的模擬次數對於表現的提升也有限。
在這些選出錯誤走步的盤面,當中必有其中一手是落在非必勝路徑上的棋
種模式。也因為對於遊戲的認知有所偏差導致即使用了100次的模擬產生出
4.2.2 Dirichlet noise
由於可能是因為在 AI 選擇走步時,於根節點的亂度不夠,因此希望藉 由提升Dirichlet noise 的比例來增加訓練時的亂度,希望可以藉此來引導 AI 自我對下時能夠走出平時不會出現的盤面。表7為使用模擬次數50次來進行 驗證的結果。
在表中可以看到在 Dirichlet noise 增加,對於盤面的驗證似乎影響不太 大,甚至在原始的α=0.3時表現較 α=1和 α=2,還來得較佳。在 α=0.7時有比 較好的效果,但效果仍舊有限,如表7與圖26所示。
表 7 各個 Dirichlet noise 時的失誤數
Dirichlet noise 比較
4.2.3 增加𝐶𝑝𝑢𝑐𝑡
由於在4.2.2當中發現增加 Dirichlet noise 下效果並不顯著,在訓練上還 是會有越訓練越差的情形,考慮到可能是因為𝐶𝑝𝑢𝑐𝑡的值不夠大,而導致 UCT 公式中,UCB 對於整體的挑選影響不夠大,導致 Dirichlet noise 的影響 相對較小。因此藉由加大𝐶𝑝𝑢𝑐𝑡的權重來讓UCT 的搜索策略中仰賴 Q 值來挑
圖 27 不同𝐶𝑝𝑢𝑐𝑡下的折線圖(x 軸為 iteration 數,y 軸為失誤數)
表 9 模型在訓練至200代時,各代的表現
4.4 六貫棋4路盤面驗證
由於在進行4路的驗證時,所需要驗證的盤面數較3路高出許多,若要 全部完整驗證,需要花上一天的時間,所需花的時間成本太高,因此在驗 證盤面時用隨機挑選盤面的方式來驗證模型,使用的參數見表11。
表 11 4路六貫棋模型所使用的參數
iteration 400
episodes 100
模擬次數 100
Dirichlet noise 0.3
𝐶𝑝𝑢𝑐𝑡 5
在有了3路實驗的經驗後採用了𝐶𝑝𝑢𝑐𝑡為5的模型來進行訓練,驗證採用 隨機抽取5000盤來進行驗證,可能是由於4路的遊戲較3路複雜上許多,而 訓練時間不足模型尚未收斂的關係,使得相較於3路的表現上,略為遜色,
在第50代之後的模型表現上失誤率上約在1%左右,如表12與圖28所示。
表 12 4路六貫棋中模型的表現
4.4 快贏策略驗證
表 14 快贏策略的表現
第五章 結論與未來方向
由於時間不足的因素,目前只有對於3路的盤面進行驗證。而4路的實 驗中模型尚未能夠對於所有的盤面完美破解,在參數上可能還需要進行調 整。而對於更高路數的盤面的驗證以及各個參數如Dirichlet noise 與𝐶𝑝𝑢𝑐𝑡的 調整,則期望在未來有更多計算資源及時間再來實現。
而在快贏策略的部分對於深度函數的設計上可能還有其他可能性,還 有許多其他函數擁有類似指數函數可以向0收斂的特性,也可以再加以嘗試。
參考文獻
[1]. suragnair/alpha-zero-general,
https://github.com/suragnair/alpha-zero-general。
[2]. David Silver, Julian Schrittwieser, Karen Simonyan, Ioannis Antonoglou, Aja Huang, Arthur Guez, Thomas Hubert, Lucas Baker, Matthew Lai, Adrian Bolton, Yutian Chen, Timothy Lillicrap, Fan Hui, Laurent Sifre, George van den Driessche, Thore Graepe & Demis Hassabis, “Mastering the game of Go without human knowledge”,Nature volume 550, pages 354–359 (19 October 2017).
[3]. Jakub Pawlewicz, Ryan Hayward, Philip Henderson, and Broderick Arneson,
“Stronger Virtual Connections in Hex”.
[4]. Broderick Arneson, Ryan B. Hayward, Philip Henderson, “Monte Carlo Tree Search in Hex”.
[5]. Kaiming He Xiangyu Zhang Shaoqing Ren Jian Sun, “Deep Residual Learning for Image Recognition”.
[6]. 徐讚昇, 許舜欽, 陳志昌, 蔣益庭, 陳柏年, 劉雲青, 張紘睿, 蔡數真, 林庭羽, 范 綱宇,電腦對局概論。2017,國立臺灣大學出版中心。
[7]. 維基百科:六貫棋介紹,
https://en.wikipedia.org/wiki/ Hex_(board_game)。
[8]. TensorFlow, https://www.tensorflow.org/。
[9]. 維基百科:深藍,
[10]. 林大貴,TensorFlow+Keras 深度學習人工智慧實務應用,博碩出版社。
[11]. Ryan B. Hayward, Noah Weninger, “Hex 2017: MoHex wins the 11x11 and 13x13 tournaments”.
[12]. H. J. van den Herik, J.W.H.M. Uiterwijk, and J.V. Rijswijck, “Games solved: Now and in the future,” Artificial Intelligence, Vol. 134, 2002, pp. 277–311.
[13]. 小 狐 狸 事 務 所-使 用 Keras 卷 積 神 經 網 路 (CNN) 辨 識 手 寫 數 字 ,
http://yhhuang1966.blogspot.com/2018/04/keras-cnn.html。
[14]. Hexy plays Hex,http://vanshel.com/Hexy/。
[15]. 昌爸工作坊,http://www.mathland.idv.tw/fun/nashgame.htm。
[16]. Broderick Arneson, Ryan B. Hayward, Philip Henderson, “Solving Hex: Beyond Humans”.
[17]. Jacek Ma´ndziuk, “MCTS/UCT in solving real-life problems”.
[18]. Sabyasachi Sahoo, “Residual blocks - Building blocks of ResNet”.
[19]. Kazuki Yoshizoe, Akihiro Kishimoto, Martin Muller, “Lambda Depth-first Proof Number Search and its Application to Go”.