2017年5月,AlphaGo擊敗世界圍棋冠軍柯潔,標(biāo)志著人工智能進(jìn)入一個(gè)新的階段。AlphaGo背后的核心算法深度強(qiáng)化學(xué)習(xí)成為繼深度學(xué)習(xí)之后廣泛受人關(guān)注的前沿?zé)狳c(diǎn)。與深度學(xué)習(xí)相比,深度強(qiáng)化學(xué)習(xí)具有更寬泛的應(yīng)用背景,可應(yīng)用于機(jī)器人、游戲、自然語言處理、圖像處理、視頻處理等領(lǐng)域。深度強(qiáng)化學(xué)習(xí)算法被認(rèn)為是最有可能實(shí)現(xiàn)通用人工智能計(jì)算的方法。不過,由于深度強(qiáng)化學(xué)習(xí)算法融合了深度學(xué)習(xí)、統(tǒng)計(jì)、信息學(xué)、運(yùn)籌學(xué)、概率論、優(yōu)化等多個(gè)學(xué)科的內(nèi)容,因此強(qiáng)化學(xué)習(xí)的入門門檻比較高,并且,到目前為止,市面上沒有一本零基礎(chǔ)全面介紹強(qiáng)化學(xué)習(xí)算法的書籍。
本書是筆者在南開大學(xué)計(jì)算機(jī)與控制工程學(xué)院做博士后期間,每周在課題組內(nèi)講解強(qiáng)化學(xué)習(xí)知識的講義合集。在學(xué)習(xí)強(qiáng)化學(xué)習(xí)基本理論的時(shí)候,我深深地感受到強(qiáng)化學(xué)習(xí)理論中的很多概念和公式都很難理解。經(jīng)過大量資料和文獻(xiàn)的查閱并終于理解一個(gè)全新的概念時(shí),內(nèi)心涌現(xiàn)的那種喜悅和興奮,鼓動著我將這些知識分享給大家。為此,我在知乎開辟了《強(qiáng)化學(xué)習(xí)知識大講堂》專欄,并基本保持了每周一次更新的速度。該專欄得到大家的關(guān)注,很多知友反映受益良多,本書的雛形正是來源于此。在成書時(shí),考慮到書的邏輯性和完整性,又添加了很多數(shù)學(xué)基礎(chǔ)和實(shí)例講解。希望本書能幫助更多的人入門強(qiáng)化學(xué)習(xí),開啟自己的人工智能之旅。
在寫作過程中,博士后合作導(dǎo)師方勇純教授給了大量的建議,包括書的整體結(jié)構(gòu)、每一章的講述方式,甚至每個(gè)標(biāo)題的選擇。寫作后,方老師細(xì)致地審閱了全文,給出了詳細(xì)的批注,并多次當(dāng)面指導(dǎo)書稿的修改。正是因?yàn)榉嚼蠋煹哪托闹笇?dǎo)與辛勤付出,本書才得以順利完成。
同時(shí),非常感謝組內(nèi)的研究生丁杰、朱威和趙銘慧三位同學(xué),通過與他們的交流,我學(xué)會了如何更明晰地講解一個(gè)概念。本書的很多講解方式都是在與他們的交流中產(chǎn)生的。
本書在寫作過程中參考了很多文獻(xiàn)資料,這些文獻(xiàn)資料是無數(shù)科研工作者們?nèi)杖找挂箠^斗的成果。本書對這些成果進(jìn)行加工并形成了一套自成體系的原理入門教程?梢哉f沒有這些科研工作者們的豐碩成果就沒有今天蓬勃發(fā)展的人工智能,也就沒有這本書,在此對這些科學(xué)工作者們表示由衷的敬意。
本書前六章的內(nèi)容及組織思路很大部分參考了David Silver的網(wǎng)絡(luò)課程,同時(shí)參考了強(qiáng)化學(xué)習(xí)鼻祖 Richard S. Sutton等人所著的Reinforcement
Learning: An Introduction,在此向Silver和Sutton致敬。
本書第8章介紹了置信域強(qiáng)化學(xué)習(xí)算法,主要參考了John
Shulman的博士論文,在此向John Shulman博士及其導(dǎo)師Pieter Abbeel致敬。第10章主要介紹了Sergey Levine博士的工作,在此對其表示感謝。在強(qiáng)化學(xué)習(xí)前沿部分,本書介紹了最近一年該領(lǐng)域很優(yōu)秀的研究工作,如Donoghue的組合策略梯度和Qlearning方法,Tamar的值迭代網(wǎng)絡(luò),Deisenroth的PILCO方法和McAllister的PILCO擴(kuò)展方法,在此對這些作者表示感謝。當(dāng)然,本書還介紹了很多其他科研工作者的工作,在此對他們一并致謝。
本書闡述的主要是前人提出的強(qiáng)化學(xué)習(xí)算法的基本理論,并沒有介紹筆者個(gè)人的工作,但在此仍然要感謝目前我負(fù)責(zé)的兩項(xiàng)基金的支持:國家自然科學(xué)基金青年基金(61603200)和中國博士后基金面上項(xiàng)目(2016M601256)。這兩個(gè)項(xiàng)目都和強(qiáng)化學(xué)習(xí)有關(guān),本書也可看成是這兩個(gè)項(xiàng)目的前期調(diào)研和積累。關(guān)于更多筆者個(gè)人的工作,留待以后再與大家分享。
由于個(gè)人水平有限,書稿中難免有錯(cuò)誤,歡迎各位同行和讀者批評指正。
感謝我的家人,感謝我的愛人王凱女士,感謝她長時(shí)間對我的理解和支持,沒有她的幫助,我一無所有,一事無成。這本書獻(xiàn)給她。
郭憲
2017年11月
郭憲,南開大學(xué)計(jì)算機(jī)與控制工程學(xué)院博士后。2009 年畢業(yè)于華中科技大學(xué)機(jī)械設(shè)計(jì)制造及自動化專業(yè),同年保送到中國科學(xué)院沈陽自動化研究所碩博連讀,主攻機(jī)器人動力學(xué)建模與控制,并于 2016 年 1 月獲得工學(xué)博士學(xué)位;期間在國內(nèi)外知名雜志和會議發(fā)表論文數(shù) 10 篇。2016 年以來,郭博士主攻方向?yàn)闄C(jī)器人智能感知和智能決策,目前主持兩項(xiàng)國家級課題,內(nèi)容涉及深度學(xué)習(xí)、深度強(qiáng)化學(xué)習(xí)等智能算法在機(jī)器人領(lǐng)域中的應(yīng)用。
1 緒論 1
1.1 這是一本什么書 1
1.2 強(qiáng)化學(xué)習(xí)可以解決什么問題 2
1.3 強(qiáng)化學(xué)習(xí)如何解決問題 4
1.4 強(qiáng)化學(xué)習(xí)算法分類及發(fā)展趨勢 5
1.5 強(qiáng)化學(xué)習(xí)仿真環(huán)境構(gòu)建 7
1.5.1 gym安裝及簡單的demo示例 8
1.5.2 深入剖析gym環(huán)境構(gòu)建 10
1.6 本書主要內(nèi)容及安排 12
第一篇 強(qiáng)化學(xué)習(xí)基礎(chǔ) 17
2 馬爾科夫決策過程 18
2.1 馬爾科夫決策過程理論講解 18
2.2 MDP中的概率學(xué)基礎(chǔ)講解 26
2.3 基于gym的MDP實(shí)例講解 29
2.4 習(xí)題 34
3 基于模型的動態(tài)規(guī)劃方法 36
3.1 基于模型的動態(tài)規(guī)劃方法理論 36
3.2 動態(tài)規(guī)劃中的數(shù)學(xué)基礎(chǔ)講解 47
3.2.1 線性方程組的迭代解法 47
3.2.2 壓縮映射證明策略評估的收斂性 49
3.3 基于gym的編程實(shí)例 52
3.4 最優(yōu)控制與強(qiáng)化學(xué)習(xí)比較 54
3.5 習(xí)題 56
第二篇 基于值函數(shù)的強(qiáng)化學(xué)習(xí)方法 57
4 基于蒙特卡羅的強(qiáng)化學(xué)習(xí)方法 58
4.1 基于蒙特卡羅方法的理論 58
4.2 統(tǒng)計(jì)學(xué)基礎(chǔ)知識 67
4.3 基于Python的編程實(shí)例 71
4.4 習(xí)題 74
5 基于時(shí)間差分的強(qiáng)化學(xué)習(xí)方法 75
5.1 基于時(shí)間差分強(qiáng)化學(xué)習(xí)算法理論講解 75
5.2 基于Python和gym的編程實(shí)例 83
5.3 習(xí)題 87
6 基于值函數(shù)逼近的強(qiáng)化學(xué)習(xí)方法 88
6.1 基于值函數(shù)逼近的理論講解 88
6.2 DQN及其變種 94
6.2.1 DQN方法 94
6.2.2 Double DQN 100
6.2.3 優(yōu)先回放(Prioritized Replay) 102
6.2.4 Dueling DQN 104
6.3 函數(shù)逼近方法 105
6.3.1 基于非參數(shù)的函數(shù)逼近 105
6.3.2 基于參數(shù)的函數(shù)逼近 111
6.3.3 卷積神經(jīng)網(wǎng)絡(luò) 117
6.4 習(xí)題 123
第三篇 基于直接策略搜索的強(qiáng)化學(xué)習(xí)方法 125
7 基于策略梯度的強(qiáng)化學(xué)習(xí)方法 126
7.1 基于策略梯度的強(qiáng)化學(xué)習(xí)方法理論講解 126
7.2 基于gym和TensorFlow的策略梯度算法實(shí)現(xiàn) 134
7.2.1 安裝Tensorflow 135
7.2.2 策略梯度算法理論基礎(chǔ) 135
7.2.3 Softmax策略及其損失函數(shù) 136
7.2.4 基于TensorFlow的策略梯度算法實(shí)現(xiàn) 138
7.2.5 基于策略梯度算法的小車倒立擺問題 141
7.3 習(xí)題 141
8 基于置信域策略優(yōu)化的強(qiáng)化學(xué)習(xí)方法 142
8.1 理論基礎(chǔ) 143
8.2 TRPO中的數(shù)學(xué)知識 153
8.2.1 信息論 153
8.2.2 優(yōu)化方法 155
8.3 習(xí)題 164
9 基于確定性策略搜索的強(qiáng)化學(xué)習(xí)方法 165
9.1 理論基礎(chǔ) 165
9.2 習(xí)題 170
10 基于引導(dǎo)策略搜索的強(qiáng)化學(xué)習(xí)方法 171
10.1 理論基礎(chǔ) 171
10.2 GPS中涉及的數(shù)學(xué)基礎(chǔ) 178
10.2.1 監(jiān)督相LBFGS優(yōu)化方法 178
10.2.2 ADMM算法 179
10.2.3 KL散度與變分推理 183
10.3 習(xí)題 184
第四篇 強(qiáng)化學(xué)習(xí)研究及前沿 185
11 逆向強(qiáng)化學(xué)習(xí) 186
11.1 概述 186
11.2 基于最大邊際的逆向強(qiáng)化學(xué)習(xí) 187
11.3 基于最大熵的逆向強(qiáng)化學(xué)習(xí) 194
11.4 習(xí)題 201
12 組合策略梯度和值函數(shù)方法 202
13 值迭代網(wǎng)絡(luò) 207
13.1 為什么要提出值迭代網(wǎng)絡(luò) 207
13.2 值迭代網(wǎng)絡(luò) 210
14 基于模型的強(qiáng)化學(xué)習(xí)方法:PILCO及其擴(kuò)展 214
14.1 概述 214
14.2 PILCO 216
14.3 濾波PILCO和探索PILCO 226
14.3.1 濾波PILCO算法 227
14.3.2 有向探索PILCO算法 230
14.4 深度PILCO 232
后記 235
參考文獻(xiàn) 237