強(qiáng)化學(xué)習(xí):原理與Python實(shí)現(xiàn)
定 價(jià):89 元
叢書(shū)名:智能系統(tǒng)與技術(shù)叢書(shū)
- 作者:肖智清
- 出版時(shí)間:2019/7/1
- ISBN:9787111631774
- 出 版 社:機(jī)械工業(yè)出版社
- 中圖法分類:TP181
- 頁(yè)碼:
- 紙張:膠版紙
- 版次:
- 開(kāi)本:16開(kāi)
本書(shū)理論完備,涵蓋主流非深度強(qiáng)化學(xué)習(xí)算法和深度強(qiáng)化學(xué)習(xí)算法;實(shí)戰(zhàn)性強(qiáng),基于Python、Gym、TensorFlow 2等構(gòu)建,并有AlphaZero等綜合案例。全書(shū)共12章,主要內(nèi)容如下。
第1章:介紹強(qiáng)化學(xué)習(xí)的基礎(chǔ)知識(shí)與強(qiáng)化學(xué)習(xí)環(huán)境庫(kù)Gym的使用,并給出完整的編程實(shí)例。
第2~9章:介紹強(qiáng)化學(xué)習(xí)的理論知識(shí)。以Markov決策過(guò)程為基礎(chǔ)模型,覆蓋了所有主流強(qiáng)化學(xué)習(xí)理論和算法,包括資格跡等經(jīng)典算法和深度確定性梯度策略等深度強(qiáng)化學(xué)習(xí)算法。所有章節(jié)都提供了與算法配套的Python程序,使讀者完全掌握強(qiáng)化學(xué)習(xí)算法的原理與應(yīng)用。
第10~12章:介紹了多個(gè)熱門(mén)綜合案例,包括電動(dòng)游戲、棋盤(pán)游戲和自動(dòng)駕駛。算法部分涵蓋了在《自然》《科學(xué)》等權(quán)威期刊上發(fā)表的多個(gè)深度強(qiáng)化學(xué)習(xí)明星算法,包括AlphaGo的*改進(jìn)版AlphaZero。
1)強(qiáng)化學(xué)習(xí)一線研發(fā)人員撰寫(xiě),涵蓋主流強(qiáng)化學(xué)習(xí)算法和多個(gè)綜合案例
2)在理論基礎(chǔ)、算法設(shè)計(jì)、性能分析等多個(gè)角度全面覆蓋強(qiáng)化學(xué)習(xí)的原理,并逐章配套Python代碼。
強(qiáng)化學(xué)習(xí)正在改變?nèi)祟惿鐣?huì)的方方面面:基于強(qiáng)化學(xué)習(xí)的游戲AI已經(jīng)在圍棋、星際爭(zhēng)霸等游戲上戰(zhàn)勝人類頂尖選手,基于強(qiáng)化學(xué)習(xí)的控制算法已經(jīng)運(yùn)用于機(jī)器人、無(wú)人機(jī)等設(shè)備,基于強(qiáng)化學(xué)習(xí)的交易算法已經(jīng)部署在金融平臺(tái)上并取得超額收益。由于同一套強(qiáng)化學(xué)習(xí)代碼在使用同一套參數(shù)的情況下能解決多個(gè)看起來(lái)毫無(wú)關(guān)聯(lián)的問(wèn)題,所以強(qiáng)化學(xué)習(xí)常被認(rèn)為是邁向通用人工智能的重要途徑。在此誠(chéng)邀相關(guān)專業(yè)人士研究強(qiáng)化學(xué)習(xí),以立于人工智能的時(shí)代之巔。
內(nèi)容梗概
本書(shū)介紹強(qiáng)化學(xué)習(xí)理論及其Python實(shí)現(xiàn),全書(shū)分為三個(gè)部分。
第1章:介紹強(qiáng)化學(xué)習(xí)的基礎(chǔ)知識(shí)與環(huán)境庫(kù)Gym的使用,并給出一個(gè)完整的編程實(shí)例。
第2~9章:介紹強(qiáng)化學(xué)習(xí)的理論和算法。采用嚴(yán)謹(jǐn)?shù)臄?shù)學(xué)語(yǔ)言,推導(dǎo)強(qiáng)化學(xué)習(xí)的基本理論,進(jìn)而在理論的基礎(chǔ)上講解算法,并為算法提供配套的Python實(shí)現(xiàn)。算法的講解和Python實(shí)現(xiàn)逐一對(duì)應(yīng),覆蓋了所有主流的強(qiáng)化學(xué)習(xí)算法。
第10~12章:介紹多個(gè)綜合案例,包括電動(dòng)游戲、棋盤(pán)游戲和自動(dòng)駕駛。環(huán)境部分涵蓋Gym庫(kù)的完整安裝和自定義擴(kuò)展,也包括Gym庫(kù)以外的環(huán)境。算法部分涵蓋了《自然》 《科學(xué)》等權(quán)威期刊發(fā)表的多個(gè)深度強(qiáng)化學(xué)習(xí)明星算法。
本書(shū)特色
本書(shū)完整地介紹了主流的強(qiáng)化學(xué)習(xí)理論。
全書(shū)采用完整的數(shù)學(xué)體系,各章內(nèi)容循序漸進(jìn),嚴(yán)謹(jǐn)?shù)刂v授強(qiáng)化學(xué)習(xí)的理論基礎(chǔ),主要定理均給出證明過(guò)程;诶碚撝v解強(qiáng)化學(xué)習(xí)算法,覆蓋了所有主流強(qiáng)化學(xué)習(xí)算法,包括資格跡等經(jīng)典算法和深度確定性梯度策略等深度強(qiáng)化學(xué)習(xí)算法。
全書(shū)采用一致的數(shù)學(xué)符號(hào),并且與權(quán)威強(qiáng)化學(xué)習(xí)教程(如R. Sutton等的《Reinforce-ment Learning: An Introduction(第2版)》和D. Silver的視頻課程)完美兼容。
本書(shū)各章均提供Python代碼,實(shí)戰(zhàn)性強(qiáng)。
全書(shū)代碼統(tǒng)一規(guī)范,基于最新的Python 3.7(兼容Python 3.6)、Gym 0.12和TensorFlow 2(兼容TensorFlow 1)實(shí)現(xiàn)強(qiáng)化學(xué)習(xí)算法。所有代碼在Windows、macOS和Linux三大操作系統(tǒng)上均可運(yùn)行,書(shū)中給出了環(huán)境的安裝和配置方法。
涉及環(huán)境全面。第1~9章提供算法的配套實(shí)現(xiàn),強(qiáng)化學(xué)習(xí)環(huán)境只依賴于Gym的最小安裝,使理論學(xué)習(xí)免受環(huán)境安裝困擾;第10~12章的綜合案例既涵蓋Gym庫(kù)的完整安裝和自定義擴(kuò)展,還包括Gym庫(kù)以外的環(huán)境,讓讀者體驗(yàn)更加復(fù)雜的強(qiáng)化學(xué)習(xí)任務(wù)。
全書(shū)實(shí)現(xiàn)對(duì)硬件配置要求低。第1~9章代碼在沒(méi)有GPU的計(jì)算機(jī)上也可運(yùn)行;第10~12章代碼在配置普通GPU的計(jì)算機(jī)上即可運(yùn)行。
代碼下載和技術(shù)支持
本書(shū)代碼下載地址為:http://github.com/zhiqingxiao/rl-book。筆者會(huì)不定期更新代碼,以適應(yīng)軟件版本的升級(jí)。
在此推薦你加入本書(shū)學(xué)習(xí)交流QQ群:935702193。如果有任何意見(jiàn)、建議或經(jīng)過(guò)網(wǎng)絡(luò)搜索仍不能解決的問(wèn)題,可以在QQ群里提問(wèn)。筆者的郵箱是:xzq.xiaozhiqing@gmail.com。
致謝
在此感謝為本書(shū)出版做出貢獻(xiàn)的所有工作人員。其中,機(jī)械工業(yè)出版社的高婧雅女士是本書(shū)的責(zé)任編輯,她對(duì)本書(shū)的寫(xiě)作提出了很多建設(shè)性意見(jiàn)。同時(shí),還要感謝機(jī)械工業(yè)出版社的其他編輯為提升本書(shū)質(zhì)量所做的大量工作,與他們合作是一個(gè)愉快的過(guò)程。我要特別感謝我的父親肖林進(jìn)和母親許麗平,他們也參與了本書(shū)的編寫(xiě)。同時(shí),還要感謝我的上級(jí)、同事和其他親友,他們?cè)诒緯?shū)寫(xiě)作期間給予我極大的支持。
感謝你選擇本書(shū)。祝你學(xué)習(xí)快樂(lè)!
肖智清
強(qiáng)化學(xué)習(xí)一線研發(fā)人員,清華大學(xué)工學(xué)博士,現(xiàn)就職于全球知名投資銀行。擅長(zhǎng)概率統(tǒng)計(jì)和機(jī)器學(xué)習(xí),近5年發(fā)表SCI/EI論文十余篇,是多個(gè)國(guó)際性知名期刊和會(huì)議審稿人。在國(guó)內(nèi)外多項(xiàng)程序設(shè)計(jì)和數(shù)據(jù)科學(xué)競(jìng)賽上獲得冠軍。
?
前言
第1章 初識(shí)強(qiáng)化學(xué)習(xí) 1
1.1 強(qiáng)化學(xué)習(xí)及其關(guān)鍵元素 1
1.2 強(qiáng)化學(xué)習(xí)的應(yīng)用 3
1.3 智能體/環(huán)境接口 4
1.4 強(qiáng)化學(xué)習(xí)的分類 6
1.4.1 按任務(wù)分類 6
1.4.2 按算法分類 7
1.5 如何學(xué)習(xí)強(qiáng)化學(xué)習(xí) 8
1.5.1 學(xué)習(xí)路線 9
1.5.2 學(xué)習(xí)資源 9
1.6 案例:基于Gym庫(kù)的智能體/環(huán)境交互 9
1.6.1 安裝Gym庫(kù) 10
1.6.2 使用Gym庫(kù) 10
1.6.3 小車上山 12
1.7 本章小結(jié) 14
第2章 Markov決策過(guò)程 16
2.1 Markov決策過(guò)程模型 16
2.1.1 離散時(shí)間Markov決策過(guò)程 16
2.1.2 環(huán)境與動(dòng)力 18
2.1.3 智能體與策略 19
2.1.4 獎(jiǎng)勵(lì)、回報(bào)與價(jià)值函數(shù) 19
2.2 Bellman期望方程 21
2.3 最優(yōu)策略及其性質(zhì) 25
2.3.1 最優(yōu)策略與最優(yōu)價(jià)值函數(shù) 25
2.3.2 Bellman最優(yōu)方程 25
2.3.3 用Bellman最優(yōu)方程求解最優(yōu)策略 29
2.4 案例:懸崖尋路 31
2.4.1 實(shí)驗(yàn)環(huán)境使用 31
2.4.2 求解Bellman期望方程 32
2.4.3 求解Bellman最優(yōu)方程 33
2.5 本章小結(jié) 35
第3章 有模型數(shù)值迭代 37
3.1 度量空間與壓縮映射 37
3.1.1 度量空間及其完備性 37
3.1.2 壓縮映射與Bellman算子 38
3.1.3 Banach不動(dòng)點(diǎn)定理 39
3.2 有模型策略迭代 40
3.2.1 策略評(píng)估 40
3.2.2 策略改進(jìn) 42
3.2.3 策略迭代 44
3.3 有模型價(jià)值迭代 45
3.4 動(dòng)態(tài)規(guī)劃 46
3.4.1 從動(dòng)態(tài)規(guī)劃看迭代算法 46
3.4.2 異步動(dòng)態(tài)規(guī)劃 47
3.5 案例:冰面滑行 47
3.5.1 實(shí)驗(yàn)環(huán)境使用 48
3.5.2 有模型策略迭代求解 49
3.5.3 有模型價(jià)值迭代求解 51
3.6 本章小結(jié) 52
第4章 回合更新價(jià)值迭代 54
4.1 同策回合更新 54
4.1.1 同策回合更新策略評(píng)估 54
4.1.2 帶起始探索的同策回合更新 58
4.1.3 基于柔性策略的同策回合更新 60
4.2 異策回合更新 62
4.2.1 重要性采樣 62
4.2.2 異策回合更新策略評(píng)估 64
4.2.3 異策回合更新最優(yōu)策略求解 65
4.3 案例:21點(diǎn)游戲 66
4.3.1 實(shí)驗(yàn)環(huán)境使用 66
4.3.2 同策策略評(píng)估 67
4.3.3 同策最優(yōu)策略求解 70
4.3.4 異策策略評(píng)估 72
4.3.5 異策最優(yōu)策略求解 73
4.4 本章小結(jié) 74
第5章 時(shí)序差分價(jià)值迭代 76
5.1 同策時(shí)序差分更新 76
5.1.1 時(shí)序差分更新策略評(píng)估 78
5.1.2 SARSA算法 81
5.1.3 期望SARSA算法 83
5.2 異策時(shí)序差分更新 85
5.2.1 基于重要性采樣的異策算法 85
5.2.2 Q學(xué)習(xí) 86
5.2.3 雙重Q學(xué)習(xí) 87
5.3 資格跡 89
5.3.1 λ回報(bào) 89
5.3.2 TD(λ) 90
5.4 案例:出租車調(diào)度 92
5.4.1 實(shí)驗(yàn)環(huán)境使用 93
5.4.2 同策時(shí)序差分學(xué)習(xí)調(diào)度 94
5.4.3 異策時(shí)序差分學(xué)習(xí)調(diào)度 97
5.4.4 資格跡學(xué)習(xí)調(diào)度 99
5.5 本章小結(jié) 100
第6章 函數(shù)近似方法 101
6.1 函數(shù)近似原理 101
6.1.1 隨機(jī)梯度下降 101
6.1.2 半梯度下降 103
6.1.3 帶資格跡的半梯度下降 105
6.2 線性近似 107
6.2.1 精確查找表與線性近似的關(guān)系 107
6.2.2 線性最小二乘策略評(píng)估 107
6.2.3 線性最小二乘最優(yōu)策略求解 109
6.3 函數(shù)近似的收斂性 109
6.4 深度Q學(xué)習(xí) 110
6.4.1 經(jīng)驗(yàn)回放 111
6.4.2 帶目標(biāo)網(wǎng)絡(luò)的深度Q學(xué)習(xí) 112
6.4.3 雙重深度Q網(wǎng)絡(luò) 114
6.4.4 對(duì)偶深度Q網(wǎng)絡(luò) 114
6.5 案例:小車上山 115
6.5.1 實(shí)驗(yàn)環(huán)境使用 116
6.5.2 用線性近似求解最優(yōu)策略 117
6.5.3 用深度Q學(xué)習(xí)求解最優(yōu)策略 120
6.6 本章小結(jié) 123
第7章 回合更新策略梯度方法 125
7.1 策略梯度算法的原理 125
7.1.1 函數(shù)近似與動(dòng)作偏好 125
7.1.2 策略梯度定理 126
7.2 同策回合更新策略梯度算法 128
7.2.1 簡(jiǎn)單的策略梯度算法 128
7.2.2 帶基線的簡(jiǎn)單策略梯度算法 129
7.3 異策回合更新策略梯度算法 131
7.4 策略梯度更新和極大似然估計(jì)的關(guān)系 132
7.5 案例:車桿平衡 132
7.5.1 同策策略梯度算法求解最優(yōu)策略 133
7.5.2 異策策略梯度算法求解最優(yōu)策略 135
7.6 本章小結(jié) 137
第8章 執(zhí)行者/評(píng)論者方法 139
8.1 同策執(zhí)行者/評(píng)論者算法 139
8.1.1 動(dòng)作價(jià)值執(zhí)行者/評(píng)論者算法 140
8.1.2 優(yōu)勢(shì)執(zhí)行者/評(píng)論者算法 141
8.1.3 帶資格跡的執(zhí)行者/評(píng)論者算法 143
8.2 基于代理優(yōu)勢(shì)的同策算法 143
8.2.1 代理優(yōu)勢(shì) 144
8.2.2 鄰近策略優(yōu)化 145
8.3 信任域算法 146
8.3.1 KL散度 146
8.3.2 信任域 147
8.3.3 自然策略梯度算法 148
8.3.4 信任域策略優(yōu)化 151
8.3.5 Kronecker因子信任域執(zhí)行者/評(píng)論者算法 152
8.4 重要性采樣異策執(zhí)行者/評(píng)論者算法 153
8.4.1 基本的異策算法 154
8.4.2 帶經(jīng)驗(yàn)回放的異策算法 154
8.5 柔性執(zhí)行者/評(píng)論者算法 157
8.5.1 熵 157
8.5.2 獎(jiǎng)勵(lì)工程和帶熵的獎(jiǎng)勵(lì) 158
8.5.3 柔性執(zhí)行者/評(píng)論者的網(wǎng)絡(luò)設(shè)計(jì) 159
8.6 案例:雙節(jié)倒立擺 161
8.6.1 同策執(zhí)行者/評(píng)論者算法求解最優(yōu)策略 162
8.6.2 異策執(zhí)行者/評(píng)論者算法求解最優(yōu)策略 168
8.7 本章小結(jié) 170
第9章 連續(xù)動(dòng)作空間的確定性策略 172
9.1 同策確定性算法 172
9.1.1 策略梯度定理的確定性版本 172
9.1.2 基本的同策確定性執(zhí)行者/評(píng)論者算法 174
9.2 異策確定性算法 176
9.2.1 基本的異策確定性執(zhí)行者/評(píng)論者算法 177
9.2.2 深度確定性策略梯度算法 177
9.2.3 雙重延遲深度確定性策略梯度算法 178
9.3 案例:倒立擺的控制 180
9.3.1 用深度確定性策略梯度算法求解 181
9.3.2 用雙重延遲深度確定性算法求解 184
9.4 本章小結(jié) 187
第10章 綜合案例:電動(dòng)游戲 188
10.1 Atari游戲環(huán)境 188
10.1.1 Gym庫(kù)的完整安裝 188
10.1.2 游戲環(huán)境使用 190
10.2 基于深度Q學(xué)習(xí)的游戲AI 191
10.2.1 算法設(shè)計(jì) 192
10.2.2 智能體的實(shí)現(xiàn) 193
10.2.3 智能體的訓(xùn)練和測(cè)試 197
10.3 本章小結(jié) 198
第11章 綜合案例:棋盤(pán)游戲 200
11.1 雙人確定性棋盤(pán)游戲 200
11.1.1 五子棋和井字棋 200
11.1.2 黑白棋 201
11.1.3 圍棋 202
11.2 AlphaZero算法 203
11.2.1 回合更新樹(shù)搜索 203
11.2.2 深度殘差網(wǎng)絡(luò) 206
11.2.3 自我對(duì)弈 208
11.2.4 算法流程 210
11.3 棋盤(pán)游戲環(huán)境boardgame2 210
11.3.1 為Gym庫(kù)擴(kuò)展自定義環(huán)境 211
11.3.2 boardgame2設(shè)計(jì) 211
11.3.3 Gym環(huán)境接口的實(shí)現(xiàn) 214
11.3.4 樹(shù)搜索接口的實(shí)現(xiàn) 216
11.4 AlphaZero算法實(shí)現(xiàn) 218
11.4.1 智能體類的實(shí)現(xiàn) 218
11.4.2 自我對(duì)弈的實(shí)現(xiàn) 223
11.4.3 訓(xùn)練智能體 224
11.5 本章小結(jié) 225
第12章 綜合案例:自動(dòng)駕駛 226
12.1 AirSim開(kāi)發(fā)環(huán)境使用 226
12.1.1 安裝和運(yùn)行AirSim 226
12.1.2 用Python訪問(wèn)AirSim 228
12.2 基于強(qiáng)化學(xué)習(xí)的自動(dòng)駕駛 229
12.2.1 為自動(dòng)駕駛設(shè)計(jì)強(qiáng)化學(xué)習(xí)環(huán)境 230
12.2.2 智能體設(shè)計(jì)和實(shí)現(xiàn) 235
12.2.3 智能體的訓(xùn)練和測(cè)試 237
12.3 本章小結(jié) 239