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