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