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ī)器人、游戲、自然語(yǔ)言處理、圖像處理、視頻處理等領(lǐng)域。深度強(qiáng)化學(xué)習(xí)算法被認(rèn)為是最有可能實(shí)現(xiàn)通用人工智能計(jì)算的方法。不過(guò),由于深度強(qiáng)化學(xué)習(xí)算法融合了深度學(xué)習(xí)、統(tǒng)計(jì)、信息學(xué)、運(yùn)籌學(xué)、概率論、優(yōu)化等多個(gè)學(xué)科的內(nèi)容,因此強(qiáng)化學(xué)習(xí)的入門(mén)門(mén)檻比較高,并且,到目前為止,市面上沒(méi)有一本零基礎(chǔ)全面介紹強(qiáng)化學(xué)習(xí)算法的書(shū)籍。
本書(shū)是筆者在南開(kāi)大學(xué)計(jì)算機(jī)與控制工程學(xué)院做博士后期間,每周在課題組內(nèi)講解強(qiáng)化學(xué)習(xí)知識(shí)的講義合集。在學(xué)習(xí)強(qiáng)化學(xué)習(xí)基本理論的時(shí)候,我深深地感受到強(qiáng)化學(xué)習(xí)理論中的很多概念和公式都很難理解。經(jīng)過(guò)大量資料和文獻(xiàn)的查閱并終于理解一個(gè)全新的概念時(shí),內(nèi)心涌現(xiàn)的那種喜悅和興奮,鼓動(dòng)著我將這些知識(shí)分享給大家。為此,我在知乎開(kāi)辟了《強(qiáng)化學(xué)習(xí)知識(shí)大講堂》專(zhuān)欄,并基本保持了每周一次更新的速度。該專(zhuān)欄得到大家的關(guān)注,很多知友反映受益良多,本書(shū)的雛形正是來(lái)源于此。在成書(shū)時(shí),考慮到書(shū)的邏輯性和完整性,又添加了很多數(shù)學(xué)基礎(chǔ)和實(shí)例講解。希望本書(shū)能幫助更多的人入門(mén)強(qiáng)化學(xué)習(xí),開(kāi)啟自己的人工智能之旅。
在寫(xiě)作過(guò)程中,博士后合作導(dǎo)師方勇純教授給了大量的建議,包括書(shū)的整體結(jié)構(gòu)、每一章的講述方式,甚至每個(gè)標(biāo)題的選擇。寫(xiě)作后,方老師細(xì)致地審閱了全文,給出了詳細(xì)的批注,并多次當(dāng)面指導(dǎo)書(shū)稿的修改。正是因?yàn)榉嚼蠋煹哪托闹笇?dǎo)與辛勤付出,本書(shū)才得以順利完成。
同時(shí),非常感謝組內(nèi)的研究生丁杰、朱威和趙銘慧三位同學(xué),通過(guò)與他們的交流,我學(xué)會(huì)了如何更明晰地講解一個(gè)概念。本書(shū)的很多講解方式都是在與他們的交流中產(chǎn)生的。
本書(shū)在寫(xiě)作過(guò)程中參考了很多文獻(xiàn)資料,這些文獻(xiàn)資料是無(wú)數(shù)科研工作者們?nèi)杖找挂箠^斗的成果。本書(shū)對(duì)這些成果進(jìn)行加工并形成了一套自成體系的原理入門(mén)教程。可以說(shuō)沒(méi)有這些科研工作者們的豐碩成果就沒(méi)有今天蓬勃發(fā)展的人工智能,也就沒(méi)有這本書(shū),在此對(duì)這些科學(xué)工作者們表示由衷的敬意。
本書(shū)前六章的內(nèi)容及組織思路很大部分參考了David Silver的網(wǎng)絡(luò)課程,同時(shí)參考了強(qiáng)化學(xué)習(xí)鼻祖 Richard S. Sutton等人所著的Reinforcement
Learning: An Introduction,在此向Silver和Sutton致敬。
本書(shū)第8章介紹了置信域強(qiáng)化學(xué)習(xí)算法,主要參考了John
Shulman的博士論文,在此向John Shulman博士及其導(dǎo)師Pieter Abbeel致敬。第10章主要介紹了Sergey Levine博士的工作,在此對(duì)其表示感謝。在強(qiáng)化學(xué)習(xí)前沿部分,本書(shū)介紹了最近一年該領(lǐng)域很優(yōu)秀的研究工作,如Donoghue的組合策略梯度和Qlearning方法,Tamar的值迭代網(wǎng)絡(luò),Deisenroth的PILCO方法和McAllister的PILCO擴(kuò)展方法,在此對(duì)這些作者表示感謝。當(dāng)然,本書(shū)還介紹了很多其他科研工作者的工作,在此對(duì)他們一并致謝。
本書(shū)闡述的主要是前人提出的強(qiáng)化學(xué)習(xí)算法的基本理論,并沒(méi)有介紹筆者個(gè)人的工作,但在此仍然要感謝目前我負(fù)責(zé)的兩項(xiàng)基金的支持:國(guó)家自然科學(xué)基金青年基金(61603200)和中國(guó)博士后基金面上項(xiàng)目(2016M601256)。這兩個(gè)項(xiàng)目都和強(qiáng)化學(xué)習(xí)有關(guān),本書(shū)也可看成是這兩個(gè)項(xiàng)目的前期調(diào)研和積累。關(guān)于更多筆者個(gè)人的工作,留待以后再與大家分享。
由于個(gè)人水平有限,書(shū)稿中難免有錯(cuò)誤,歡迎各位同行和讀者批評(píng)指正。
感謝我的家人,感謝我的愛(ài)人王凱女士,感謝她長(zhǎng)時(shí)間對(duì)我的理解和支持,沒(méi)有她的幫助,我一無(wú)所有,一事無(wú)成。這本書(shū)獻(xiàn)給她。
郭憲
2017年11月
郭憲,南開(kāi)大學(xué)計(jì)算機(jī)與控制工程學(xué)院博士后。2009 年畢業(yè)于華中科技大學(xué)機(jī)械設(shè)計(jì)制造及自動(dòng)化專(zhuān)業(yè),同年保送到中國(guó)科學(xué)院沈陽(yáng)自動(dòng)化研究所碩博連讀,主攻機(jī)器人動(dòng)力學(xué)建模與控制,并于 2016 年 1 月獲得工學(xué)博士學(xué)位;期間在國(guó)內(nèi)外知名雜志和會(huì)議發(fā)表論文數(shù) 10 篇。2016 年以來(lái),郭博士主攻方向?yàn)闄C(jī)器人智能感知和智能決策,目前主持兩項(xiàng)國(guó)家級(jí)課題,內(nèi)容涉及深度學(xué)習(xí)、深度強(qiáng)化學(xué)習(xí)等智能算法在機(jī)器人領(lǐng)域中的應(yīng)用。
1 緒論 1
1.1 這是一本什么書(shū) 1
1.2 強(qiáng)化學(xué)習(xí)可以解決什么問(wèn)題 2
1.3 強(qiáng)化學(xué)習(xí)如何解決問(wèn)題 4
1.4 強(qiáng)化學(xué)習(xí)算法分類(lèi)及發(fā)展趨勢(shì) 5
1.5 強(qiáng)化學(xué)習(xí)仿真環(huán)境構(gòu)建 7
1.5.1 gym安裝及簡(jiǎn)單的demo示例 8
1.5.2 深入剖析gym環(huán)境構(gòu)建 10
1.6 本書(shū)主要內(nèi)容及安排 12
第一篇 強(qiáng)化學(xué)習(xí)基礎(chǔ) 17
2 馬爾科夫決策過(guò)程 18
2.1 馬爾科夫決策過(guò)程理論講解 18
2.2 MDP中的概率學(xué)基礎(chǔ)講解 26
2.3 基于gym的MDP實(shí)例講解 29
2.4 習(xí)題 34
3 基于模型的動(dòng)態(tài)規(guī)劃方法 36
3.1 基于模型的動(dòng)態(tài)規(guī)劃方法理論 36
3.2 動(dòng)態(tài)規(guī)劃中的數(shù)學(xué)基礎(chǔ)講解 47
3.2.1 線(xiàn)性方程組的迭代解法 47
3.2.2 壓縮映射證明策略評(píng)估的收斂性 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ǔ)知識(shí) 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 基于策略梯度算法的小車(chē)倒立擺問(wèn)題 141
7.3 習(xí)題 141
8 基于置信域策略?xún)?yōu)化的強(qiáng)化學(xué)習(xí)方法 142
8.1 理論基礎(chǔ) 143
8.2 TRPO中的數(shù)學(xué)知識(shí) 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