近年來,隨著深度強化學習在諸多復雜的博弈對抗、序貫決策等問題中取得巨大突破,人工智能儼然成為當今社會的關注焦點。而棋類游戲在人工智能發(fā)展中一直占據(jù)著重要地位。2016年,AlphaGo戰(zhàn)勝李世石引起了社會各界的廣泛關注,大量的報道與文獻爭相介紹了有關AlphaGo在圍棋領域的發(fā)展狀況,這些都使得人們對其背后的奧秘產(chǎn)生了前所未有的學習熱情,也讓越來越多的人對人工智能技術抱有新的期望。人工智能被稱為第四次科技革命,人工智能技術已成為世界各國角逐的技術高地。未來人工智能產(chǎn)業(yè)必將成為經(jīng)濟發(fā)展和產(chǎn)業(yè)變革的重要驅動力量。
本書主要內容
本書可視為一本以解決實際問題為導向的書籍,非常適合具備一定數(shù)學基礎和Python基礎的讀者學習。讀者可以在短時間內掌握本書中介紹的所有算法。
全書共分為三大部分,共有10章。
第一部分介紹計算機圍棋的基礎知識和傳統(tǒng)的智能算法,包括第1~3章。第1章圍棋: 黑白的世界,包括什么是圍棋、圍棋的規(guī)則、圍棋的勝負判定方法以及圍棋棋手棋力的介紹。第2章實現(xiàn)一個圍棋軟件,包括本書使用的應用軟件版本、圍棋軟件建模概述、佐布里斯特散列算法、實踐圍棋智能體、實踐圍棋棋盤、實踐圍棋規(guī)則判定和實踐完整的圍棋軟件。第3章傳統(tǒng)的棋類智能,包括極小化極大算法的原理和應用舉例、AlphaBeta剪枝算法的原理和應用舉例、棋類局面評估、蒙特卡羅模擬的原理和應用舉例、傳統(tǒng)監(jiān)督學習的簡要介紹以及對傳統(tǒng)方法的討論。
第二部分介紹基于神經(jīng)網(wǎng)絡的機器學習,包括第4~6章。第4章機器學習入門,包括人工神經(jīng)網(wǎng)絡的基礎知識介紹、優(yōu)化神經(jīng)網(wǎng)絡和對其他人工智能方法的簡介。第5章第一個圍棋智能體,包括對計算機圍棋棋譜的介紹、對HDF5大數(shù)據(jù)存儲文件格式的介紹、圍棋智能體的數(shù)據(jù)模型、如何獲取訓練樣本以及應用示例代碼的演示。第6章通用化圍棋智能體程序,包括如何搭建自己的圍棋對弈網(wǎng)絡平臺、如何讓圍棋智能體支持第三方圍棋程序的調用,如何讓圍棋智能體在公開的網(wǎng)絡平臺上下棋。
第三部分介紹強化學習,包括第7~10章。第7章策略梯度,包括原理、應用舉例,并以此為基礎實踐圍棋智能體。第8章深度價值網(wǎng)絡,包括傳統(tǒng)QLearning、Sarsa及Sarsaλ算法的原理、應用舉例,并以此為基礎實踐圍棋智能體。第9章ActorCritic算法,包括算法原理及如何實踐圍棋智能體。第10章AlphaGo和AlphaZero,包括AlphaGo算法和AlphaZero算法原理,指導實踐深度強化學習與蒙特卡羅樹搜索相結合的算法。
本書特色
(1) 問題驅動,由淺入深。
本書通過分解問題,由淺入深,逐步地對如何實踐超越人類大師級水平的計算機棋類智能體的重要概念及原理進行講解與探究,為讀者更好地掌握其背后的計算機強化學習原理提供便利和支持。
(2) 突出重點,強化理解。
本書結合作者多年的教學與實踐經(jīng)驗,針對應用型本科的教學要求和學生特點,突出重點,深入分析,同時在內容方面全面兼顧知識的系統(tǒng)化要求。
(3) 注重理論,聯(lián)系實際。
本書為重要的知識點均配備了代碼講解,采用Python語言結合Keras和PyTorch工具庫,通過對圍棋智能體的代碼實踐,加深讀者對機器學習,特別是強化學習的再認識。
(4) 風格簡潔,使用方便。
本書風格簡潔明快,對于非重點的內容不做長篇論述,以便讀者在學習過程中明確內容之間的邏輯關系,更好地掌握深度強化學習的內容。
配套資源
為便于教與學,本書配有微課視頻(280分鐘)、源代碼、軟件安裝包。
(1) 獲取微課視頻方式: 讀者可以先掃描本書封底的文泉云盤防盜碼,再掃描書中相應的視頻二維碼,觀看視頻。
(2) 獲取源代碼、軟件安裝包、彩色圖片和全書網(wǎng)址方式: 先掃描本書封底的文泉云盤防盜碼,再掃描下方二維碼,即可獲取。
源代碼
軟件安裝包
彩色圖片
全書網(wǎng)址
(3) 其他配套資源可以掃描本書封底的書圈二維碼,關注后回復本書書號,即可下載。
讀者對象
本書主要面向廣大從事數(shù)據(jù)分析、機器學習、數(shù)據(jù)挖掘或深度學習的專業(yè)人員,從事高等教育的專任教師,高等學校的在讀學生以及相關領域的廣大科研人員。
作者在編寫本書過程中,參考了諸多相關資料,在此對相關資料的作者表示衷心的感謝。限于個人水平和時間倉促,書中難免存在疏漏之處,歡迎廣大讀者批評指正。
作者2023年1月
第一部分計算機圍棋的基礎知識和傳統(tǒng)的智能算法
第1章圍棋: 黑白的世界
1.1什么是圍棋
1.2圍棋的規(guī)則
1.3勝負的判定
1.4圍棋棋手的棋力
1.5計算機眼中的圍棋
1.5.1SGF文件
1.5.2GTP
第2章實現(xiàn)一個圍棋軟件
2.1軟件版本
2.2圍棋軟件的組成
2.3佐布里斯特散列
2.4圍棋智能體
2.5圍棋的棋盤
2.6引入裁判
2.7讓智能體下棋
第3章傳統(tǒng)的棋類智能
3.1極小化極大算法
3.2AlphaBeta剪枝算法
3.3棋類局面評估
3.4蒙特卡羅模擬
3.4.1蒙特卡羅算法
3.4.2蒙特卡羅樹搜索
3.4.3蒙特卡羅算法改進
3.4.4需要注意的問題
3.5監(jiān)督學習
3.6傳統(tǒng)方法的討論
第二部分基于神經(jīng)網(wǎng)絡的機器學習
第4章機器學習入門
4.1人工神經(jīng)網(wǎng)絡
4.1.1神經(jīng)元
4.1.2常見的激活函數(shù)
4.1.3多層感知器
4.1.4卷積神經(jīng)網(wǎng)絡
4.1.5反向傳播算法
4.1.6小批量訓練法
4.1.7殘差網(wǎng)絡
4.1.8多層感知器的應用示例
4.1.9卷積網(wǎng)絡對圖片進行多分類的應用示例
4.2優(yōu)化神經(jīng)網(wǎng)絡
4.2.1訓練集、驗證集、測試集以及交叉驗證
4.2.2欠擬合與過擬合
4.2.3損失函數(shù)的正則化
4.2.4精確率和召回率的權衡
4.3其他人工智能方法簡介
4.3.1K近鄰算法
4.3.2樸素貝葉斯法
4.3.3決策樹
4.3.4Boosting算法/Bagging算法
4.3.5支持向量機
4.3.6隨機場算法
4.3.7傳統(tǒng)智能算法所面臨的挑戰(zhàn)
第5章第一個圍棋智能體
5.1電子圍棋棋譜
5.2HDF5文件結構
5.3數(shù)據(jù)模型
5.4獲取訓練樣本
5.5代碼演示
第6章通用化圍棋智能體程序
6.1在網(wǎng)絡上發(fā)布圍棋智能體
6.2本地對戰(zhàn)
6.2.1計算機的圍棋語言
6.2.2圍棋的對弈圖形界面
6.2.3圍棋引擎
6.3讓圍棋智能體自己去網(wǎng)上下棋
第三部分強化學習
第7章策略梯度
第8章深度價值網(wǎng)絡
8.1傳統(tǒng)的QLearning算法
8.1.1原始版QLearning
8.1.2原始版QLearning計算時的優(yōu)化
8.1.3QLearning的變種Sarsa
8.1.4Sarsa的進化Sarsaλ
8.2在神經(jīng)網(wǎng)絡上應用DQN
第9章ActorCritic算法
第10章AlphaGo和AlphaZero
10.1AlphaGo的結構和訓練流程
10.2AlphaZero的結構與訓練流程
10.3可行的優(yōu)化
附錄AKeras入門
附錄BPyTorch入門
附錄C反向傳播算法
C.1命名約定
C.2正文
C.3進一步討論
C.4拓展
附錄D不同地區(qū)的圍棋規(guī)則
D.1中國規(guī)則
D.2日本規(guī)則
D.3應氏規(guī)則
D.4新西蘭規(guī)則
D.5美國規(guī)則
D.6智運會規(guī)則
D.7TrompTaylor規(guī)則