本書介紹強(qiáng)化學(xué)習(xí)理論及其Python實(shí)現(xiàn)。第1章: 從零開(kāi)始介紹強(qiáng)化學(xué)習(xí)的背景知識(shí), 介紹環(huán)境庫(kù)Gym的使用。第2-15章: 基于折扣獎(jiǎng)勵(lì)離散時(shí)間Markov決策過(guò)程模型, 介紹強(qiáng)化學(xué)習(xí)的主干理論和常見(jiàn)算法。采用數(shù)學(xué)語(yǔ)言推導(dǎo)強(qiáng)化學(xué)習(xí)的基礎(chǔ)理論, 進(jìn)而在理論的基礎(chǔ)上講解算法。Python實(shí)現(xiàn)和算法講解一一對(duì)應(yīng), 針對(duì)深度強(qiáng)化學(xué)習(xí)算法還給出了基于TensorFlow 2和PyTorch 1的對(duì)照實(shí)現(xiàn)。第16章: 介紹其他強(qiáng)化學(xué)習(xí)模型, 包括平均獎(jiǎng)勵(lì)模型、連續(xù)時(shí)間模型、非齊次模型, 半Markov模型、部分可觀測(cè)模型等, 以便更好了解強(qiáng)化學(xué)習(xí)研究的全貌。
攜七大優(yōu)勢(shì),帶你一書學(xué)透強(qiáng)化學(xué)習(xí),掌握ChatGPT背后的關(guān)鍵技術(shù)。
1)內(nèi)容完備:完整地介紹了主流強(qiáng)化學(xué)習(xí)理論,全面覆蓋主流強(qiáng)化學(xué)習(xí)算法,包括了資格跡等經(jīng)典算法和MuZero等深度強(qiáng)化學(xué)習(xí)算法,且給出主要定理的證明過(guò)程。讓你參透ChatGPT背后的關(guān)鍵技術(shù)。
2)表述一致:全書采用統(tǒng)一的數(shù)學(xué)符號(hào),并兼容主流強(qiáng)化學(xué)習(xí)教程。
3)配套豐富:每章都配有知識(shí)點(diǎn)總結(jié)、代碼和習(xí)題。
4)環(huán)境全面:既有Gym的內(nèi)置環(huán)境,也有在Gym基礎(chǔ)上進(jìn)一步擴(kuò)展的第三方環(huán)境,還帶領(lǐng)讀者一起實(shí)現(xiàn)了自定義的環(huán)境。
5)兼容廣泛:所有代碼均可在Windows、macOS、Linux上運(yùn)行,提供安裝和配置方法。同時(shí),為深度強(qiáng)化學(xué)習(xí)相關(guān)算法提供了TensorFlow和PyTorch的對(duì)照實(shí)現(xiàn),學(xué)習(xí)方案任你選擇。
6)硬件要求低:所有代碼均可在沒(méi)有GPU的個(gè)人計(jì)算機(jī)上運(yùn)行,也可以在線查閱運(yùn)行結(jié)果。
7)版權(quán)輸出:本書內(nèi)容受到國(guó)際知名出版社Springer和評(píng)審專家認(rèn)可,英文版同步輸出,以饗讀者。
為什么要寫作本書
強(qiáng)化學(xué)習(xí)正在改變?nèi)祟惿鐣?huì)的方方面面:基于強(qiáng)化學(xué)習(xí)的游戲AI已經(jīng)在圍棋、《星際爭(zhēng)霸》等游戲上全面碾壓人類頂尖選手,基于強(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ù)設(shè)置下能解決多個(gè)看起來(lái)毫無(wú)關(guān)聯(lián)的問(wèn)題,因此強(qiáng)化學(xué)習(xí)常被認(rèn)為是邁向通用人工智能的重要途徑。
本書特色
本書完整地介紹了主流強(qiáng)化學(xué)習(xí)理論。
選用現(xiàn)代強(qiáng)化學(xué)習(xí)理論體系,突出主干,主要定理均給出證明過(guò)程。基于理論講解強(qiáng)化學(xué)習(xí)算法,全面覆蓋主流強(qiáng)化學(xué)習(xí)算法,包括資格跡等經(jīng)典算法和MuZero等深度強(qiáng)化學(xué)習(xí)算法。
全書采用完整的數(shù)學(xué)體系各章內(nèi)容循序漸進(jìn)。全書采用一致的數(shù)學(xué)符號(hào),并兼容主流強(qiáng)化學(xué)習(xí)教程。
本書各章均提供Python代碼,實(shí)戰(zhàn)性強(qiáng)。
簡(jiǎn)潔易懂:全書代碼統(tǒng)一規(guī)范,簡(jiǎn)約完備,與算法講解直接對(duì)應(yīng)。
查閱、運(yùn)行方便:所有代碼及運(yùn)行結(jié)果均在GitHub上展示,既可以在瀏覽器上查閱,也可以下載到本地運(yùn)行。各算法實(shí)現(xiàn)放在單獨(dú)的文件里,可單獨(dú)查閱和運(yùn)行。
環(huán)境全面:既有Gym的內(nèi)置環(huán)境,也有在Gym基礎(chǔ)上進(jìn)一步擴(kuò)展的第三方環(huán)境,還帶領(lǐng)讀者一起實(shí)現(xiàn)自定義的環(huán)境。
兼容性好:所有代碼在三大操作系統(tǒng)(Windows、macOS、Linux)上均可運(yùn)行,書中給出了環(huán)境的安裝和配置方法。深度強(qiáng)化學(xué)習(xí)代碼還提供了TensorFlow 2和PyTorch對(duì)照代碼。讀者可任選其一。
版本新:全書代碼基于最新版本的Python及其擴(kuò)展庫(kù)。作者會(huì)在GitHub上更新代碼以適應(yīng)版本升級(jí)。
硬件要求低:所有代碼均可在沒(méi)有GPU的個(gè)人計(jì)算機(jī)上運(yùn)行。
本書主要內(nèi)容
本書介紹強(qiáng)化學(xué)習(xí)理論及其Python實(shí)現(xiàn)。
第1章:從零開(kāi)始介紹強(qiáng)化學(xué)習(xí)的背景知識(shí),以及環(huán)境庫(kù)Gym的使用。
第2~15章:基于折扣獎(jiǎng)勵(lì)離散時(shí)間Markov決策過(guò)程模型,介紹強(qiáng)化學(xué)習(xí)的主干理論和常見(jiàn)算法。采用數(shù)學(xué)語(yǔ)言推導(dǎo)強(qiáng)化學(xué)習(xí)的基礎(chǔ)理論,進(jìn)而在理論的基礎(chǔ)上講解算法,并為算法提供配套代碼實(shí)現(xiàn)。基礎(chǔ)理論的講解突出主干部分,算法講解全面覆蓋主流的強(qiáng)化學(xué)習(xí)算法,包括經(jīng)典的非深度強(qiáng)化學(xué)習(xí)算法和近年流行的深度強(qiáng)化學(xué)習(xí)算法。Python實(shí)現(xiàn)和算法講解一一對(duì)應(yīng),對(duì)于深度強(qiáng)化學(xué)習(xí)算法還給出了基于TensorFlow 2和PyTorch的對(duì)照實(shí)現(xiàn)。
第16章:介紹其他強(qiáng)化學(xué)習(xí)模型,包括平均獎(jiǎng)勵(lì)模型、連續(xù)時(shí)間模型、非齊次模型、半Markov模型、部分可觀測(cè)模型等,以便讓讀者更好地了解強(qiáng)化學(xué)習(xí)研究的全貌。
勘誤與支持
本書配套GitHub倉(cāng)庫(kù)https://github.com/zhiqingxiao/rlbook提供勘誤、代碼、習(xí)題答案、本書涉及的參考資料的具體信息、讀者交流群等資源。我會(huì)在GitHub上不定期更新內(nèi)容。
作者的電子郵箱是:xzqxiaozhiqing@gmailcom。
致謝
在此感謝為本書出版做出貢獻(xiàn)的所有工作人員。本書還采納了童崢巖、趙永進(jìn)、黃永杰、李偉、馬云龍、黃俊峰、李岳鑄、李柯、龍濤、陳慶虎等專家的意見(jiàn)。向他們表示感謝。
特別要感謝我父母的無(wú)私支持,感謝我的上司與同事對(duì)本書出版的關(guān)心和支持。
感謝你選擇本書。祝學(xué)習(xí)快樂(lè)!
肖智清
肖智清
強(qiáng)化學(xué)習(xí)一線研發(fā)人員,清華大學(xué)工學(xué)博士。在國(guó)內(nèi)外出版多本人工智能專著,在知名期刊和會(huì)議上發(fā)表多篇第一作者論文。他是開(kāi)源項(xiàng)目Gym的源碼貢獻(xiàn)者,并在國(guó)內(nèi)外多項(xiàng)程序設(shè)計(jì)和數(shù)據(jù)科學(xué)競(jìng)賽上獲得冠軍。
目錄
數(shù)學(xué)符號(hào)表
前言
第1章初識(shí)強(qiáng)化學(xué)習(xí)111強(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按算法分類8
1.5強(qiáng)化學(xué)習(xí)算法的性能指標(biāo)9
1.6案例:基于Gym庫(kù)的智能體/環(huán)境接口10
1.6.1安裝Gym庫(kù)11
1.6.2使用Gym庫(kù)11
1.6.3小車上山13
1.7本章小結(jié)18
1.8練習(xí)與模擬面試19
第2章Markov決策過(guò)程2121Markov決策過(guò)程模型21
2.1.1離散時(shí)間Markov決策過(guò)程21
2.1.2環(huán)境與動(dòng)力24
2.1.3策略26
2.1.4帶折扣的回報(bào)26
2.2價(jià)值27
2.2.1價(jià)值的定義28
2.2.2價(jià)值的性質(zhì)28
2.2.3策略的偏序和改進(jìn)34
2.3帶折扣的分布35
2.3.1帶折扣的分布的定義35
2.3.2帶折扣的分布的性質(zhì)37
2.3.3帶折扣的分布和策略的等價(jià)性39
2.3.4帶折扣的分布下的期望40
2.4最優(yōu)策略與最優(yōu)價(jià)值41
2.4.1從最優(yōu)策略到最優(yōu)價(jià)值41
2.4.2最優(yōu)策略的存在性42
2.4.3最優(yōu)價(jià)值的性質(zhì)與Bellman
最優(yōu)方程43
2.4.4用線性規(guī)劃法求解最優(yōu)價(jià)值48
2.4.5用最優(yōu)價(jià)值求解最優(yōu)策略51
2.5案例:懸崖尋路52
2.5.1使用環(huán)境52
2.5.2求解策略價(jià)值53
2.5.3求解最優(yōu)價(jià)值54
2.5.4求解最優(yōu)策略55
2.6本章小結(jié)55
2.7練習(xí)與模擬面試57
第3章有模型數(shù)值迭代5931Bellman算子及其性質(zhì)59
3.2有模型策略迭代64
3.2.1策略評(píng)估65
3.2.2策略改進(jìn)66
3.2.3策略迭代67
3.3價(jià)值迭代68
3.4自益與動(dòng)態(tài)規(guī)劃69
3.5案例:冰面滑行70
3.5.1使用環(huán)境71
3.5.2有模型策略迭代求解73
3.5.3有模型價(jià)值迭代求解76
3.6本章小結(jié)76
3.7練習(xí)與模擬面試77
第4章回合更新價(jià)值迭代78
4.1同策回合更新79
4.1.1同策回合更新策略評(píng)估79
4.1.2帶起始探索的同策回合更新84
4.1.3基于柔性策略的同策回合更新86
4.2異策回合更新89
4.2.1重要性采樣89
4.2.2異策回合更新策略評(píng)估92
4.2.3異策回合更新最優(yōu)策略求解93
4.3實(shí)驗(yàn):21點(diǎn)游戲94
4.3.1使用環(huán)境94
4.3.2同策策略評(píng)估96
4.3.3同策最優(yōu)策略求解98
4.3.4異策策略評(píng)估101
4.3.5異策最優(yōu)策略求解102
4.4本章小結(jié)103
4、5練習(xí)與模擬面試104
第5章時(shí)序差分價(jià)值迭代10651時(shí)序差分目標(biāo)106
5.2同策時(shí)序差分更新109
5.2.1時(shí)序差分更新策略評(píng)估109
5.2.2SARSA算法113
5.2.3期望SARSA算法115
5.3異策時(shí)序差分更新117
5.3.1基于重要性采樣的異策算法117
5.3.2Q學(xué)習(xí)119
5.3.3雙重Q學(xué)習(xí)120
5.4資格跡121
5.4.1λ回報(bào)122
5.4.2TD(λ)算法123
5.5案例:的士調(diào)度125
5.5.1使用環(huán)境126
5.5.2同策時(shí)序差分學(xué)習(xí)127
5.5.3異策時(shí)序差分學(xué)習(xí)130
5.5.4資格跡學(xué)習(xí)132
56本章小結(jié)134
57練習(xí)與模擬面試135
第6章函數(shù)近似方法137
6.1函數(shù)近似原理138
6.2基于梯度的參數(shù)更新139
6.2.1隨機(jī)梯度下降139
6.2.2半梯度下降141
6.2.3帶資格跡的半梯度下降142
6.3函數(shù)近似的收斂性144
6.3.1收斂的條件144
6.3.2Baird反例145
6.4深度Q網(wǎng)絡(luò)147
6.4.1經(jīng)驗(yàn)回放148
6.4.2目標(biāo)網(wǎng)絡(luò)151
6.4.3雙重深度Q網(wǎng)絡(luò)152
6.4.4決斗深度Q網(wǎng)絡(luò)153
6.5案例:小車上山154
6.5.1使用環(huán)境155
6.5.2用線性近似求解最優(yōu)策略156
6.5.3用深度Q網(wǎng)絡(luò)求解最優(yōu)策略161
6.6本章小結(jié)172
6.7練習(xí)與模擬面試172
第7章回合更新策略梯度方法17471策略梯度算法的原理174
7.1.1函數(shù)近似策略174
7.1.2策略梯度定理175
7.1.3策略梯度和極大似然估計(jì)的關(guān)系179
7.2同策回合更新策略梯度算法179
7.2.1簡(jiǎn)單的策略梯度算法180
7.2.2帶基線的簡(jiǎn)單策略梯度算法180
7.3異策回合更新策略梯度算法182
7.4案例:車桿平衡183
7.4.1用同策策略梯度算法求解最優(yōu)策略184
7.4.2用異策策略梯度算法求解最優(yōu)策略189
7.5本章小結(jié)195
7.6練習(xí)與模擬面試196
第8章執(zhí)行者/評(píng)論者197
8.1執(zhí)行者/評(píng)論者方法197
8.2同策執(zhí)行者/評(píng)論者算法198
8.2.1動(dòng)作價(jià)值執(zhí)行者/評(píng)論者算法198
8.2.2優(yōu)勢(shì)執(zhí)行者/評(píng)論者算法199
8.2.3帶資格跡的執(zhí)行者/評(píng)論者算法200
8.3基于代理優(yōu)勢(shì)的同策算法201
8.3.1性能差別引理201
8.3.2代理優(yōu)勢(shì)202
8.3.3鄰近策略優(yōu)化203
8.4自然梯度和信賴域算法205
8.4.1KL散度與Fisher信息矩陣206
8.4.2代理優(yōu)勢(shì)的信賴域208
8.4.3自然策略梯度算法209
8.4.4信賴域策略優(yōu)化212
8.5重要性采樣異策執(zhí)行者/評(píng)論者算法213
8.6案例:雙節(jié)倒立擺214
8.6.1用同策執(zhí)行者/評(píng)論者算法求解最優(yōu)策略216
8.6.2用基于代理優(yōu)勢(shì)的同策算法求解最優(yōu)策略226
8.6.3用自然策略梯度和信賴域算法求解最優(yōu)策略230
8.6.4用重要性采樣異策執(zhí)行者/評(píng)論者算法求解最優(yōu)策略242
8.7本章小結(jié)246
8.8練習(xí)與模擬面試247
第9章連續(xù)動(dòng)作空間的確定性策略248
9.1確定性策略梯度定理248
9.2同策確定性算法250
9.3異策確定性算法251
9.3.1基本的異策確定性執(zhí)行者/評(píng)論者算法251
9.3.2深度確定性策略梯度算法253
9.3.3雙重延遲深度確定性策略梯度算法254
9.4探索過(guò)程255
9.5案例:倒立擺的控制256
9.5.1用深