本書特色:
❑風格偏向口語化,透過此種交流方式,實現一對一的訓練效果。讀者可將本書想像成自己的私人家教!
❑不將數學基礎單獨列出,而是在章節內容中,對應地介紹演算法設計和分析的數學基礎。即使沒有高深數學功力的讀者也可學習。而針對有基礎者,透過將兩者加以結合,更可提升數學的應用能力!
❑每部分都包含「理論說明」、「程式說明」與「直觀解釋」三項內容。強化學習演算法之應用性相當強大,大多讀者的學習目的是用來解決實際問題。一邊學理論、一邊寫程式,過程中同步提升理論研究與解決問題的能力!
❑涵蓋內容相當豐富,從最基礎到目前最先進的強化學習演算法都有所涉獵!
-------------------------------------------------------------------------
適用:本書既適合零基礎之強化學習初學者,亦適合相關領域之從業人員與大學、研究所師生。
作者序
前言
2017年5月,AlphaGo擊敗世界圍棋冠軍柯潔,標誌著人工智慧進入一個新的階段。AlphaGo背後的核心演算法——深度強化學習——成為繼深度學習之後廣泛受人關注的前端熱點。與深度學習相比,深度強化學習具有更寬泛的應用背景,可應用於機器人、遊戲、自然語言處理、影像處理、視訊處理等領域。深度強化學習演算法被認為是最有可能實現通用人工智慧計算的方法。不過,由於深度強化學習演算法融合了深度學習、統計、資訊學、運籌學、機率論、最佳化等多個學科的內容,因此強化學習的入門門檻比較高,並且,到目前為止,市面上沒有一本零基礎全面介紹強化學習演算法的書籍。
本書是筆者在南開大學電腦與控制工程學院做博士後期間,每週在課題組內說明強化學習知識的講義合集。在學習強化學習基本理論的時候,我深深地感受到強化學習理論中的很多概念和公式都很難了解。經過大量資料和文獻的查閱並終於了解一個全新的概念時,內心湧現的那種喜悅和興奮,鼓動著我將這些知識分享給大家。為此,我在知乎開闢了《強化學習知識大講堂》專欄,並基本保持了每週一次更新的速度。該專欄獲得大家的關注,很多知友反映受益良多,本書的雛形正是來自此。在成書時,考慮到書的邏輯性和完整性,又增加了很多數學基礎和實例說明。希望本書能幫助更多的人入門強化學習,開啟自己的人工智慧之旅。
在寫作過程中,博士後合作導師方勇純教授給了大量的建議,包含書的整體結構、每一章的說明方式,甚至每個標題的選擇。寫作後,方老師細緻地審稿了全文,列出了詳細的批註,並多次當面指導書稿的修改。正是因為方老師的耐心指導與辛勤付出,本書才得以順利完成。
同時,非常感謝組內的所究所學生丁傑、朱威和趙銘慧三位同學,透過與他們的交流,我學會了如何更明晰地說明一個概念。本書的很多說明方式都是在與他們的交流中產生的。
本書在寫作過程中參考了很多文獻資料,這些文獻資料是無數科學研究工作者們日日夜夜奮鬥的成果。本書對這些成果進行加工並形成了一套自成系統的原理入門教學。可以說沒有這些科學研究工作者們的豐碩成果,就沒有今日蓬勃發展的人工智慧,也就沒有這本書,在此對這些科學工作者們表示由衷的敬意。
本書前六章的內容及組織想法很大部分參考了David Silver的網路課程,同時參考了強化學習鼻祖Richard S. Sutton等人所著的Reinforcement Learning: An Introduction,在此向Silver和Sutton致敬。
本書第8章介紹了置信域強化學習演算法,主要參考了John Shulman的博士論文,在此向John Shulman博士及其導師Pieter Abbeel致敬。第10章主要介紹了Sergey Levine博士的工作,在此對其表示感謝。在強化學習前端部分,本書介紹了最近一年該領域很優秀的研究工作,如Donoghue的組合策略梯度和Qlearning方法,Tamar的值反覆運算網路,Deisenroth的PILCO方法和McAllister的PILCO擴充方法,在此對這些作者表示感謝。當然,本書還介紹了很多其他科學研究工作者的工作,在此對他們一併致謝。
本書說明的主要是前人提出的強化學習演算法的基本理論,並沒有介紹筆者個人的工作,但在此仍然要感謝目前我負責的兩項基金的支援:中國國家自然科學基金青年基金(61603200)和中國博士後基金面上專案(2016M601256)。這兩個專案都和強化學習有關,本書也可看成是這兩個專案的前期研究和累積。關於更多筆者個人的工作,留待以後再與大家分享。
由於個人水準有限,書稿中難免有錯誤,歡迎各位同行和讀者批評指正。我的個人電子郵件是guoxiansia@163.com,如有疑問,歡迎諮詢。
最後,感謝我的家人,感謝我的內人王凱女士,感謝她長時間對我的了解和支援,沒有她的幫助,我一無所有,一事無成。這本書獻給她。
郭憲
前言
2017年5月,AlphaGo擊敗世界圍棋冠軍柯潔,標誌著人工智慧進入一個新的階段。AlphaGo背後的核心演算法——深度強化學習——成為繼深度學習之後廣泛受人關注的前端熱點。與深度學習相比,深度強化學習具有更寬泛的應用背景,可應用於機器人、遊戲、自然語言處理、影像處理、視訊處理等領域。深度強化學習演算法被認為是最有可能實現通用人工智慧計算的方法。不過,由於深度強化學習演算法融合了深度學習、統計、資訊學、運籌學、機率論、最佳化等多個學科的內容,因此強化學習的入門門檻比較高,並且,到目前為止,市面上沒有一本零基...
目錄
Chapter 01 緒論
1.1 這是一本什麼書
1.2 強化學習可以解決什麼問題
1.3 強化學習如何解決問題
1.4 強化學習演算法分類及發展趨勢
1.5 強化學習模擬環境建置
1.6 本書主要內容及安排
Chapter 02 馬可夫決策過程
2.1 馬可夫決策過程理論說明
2.2 MDP中的機率學基礎說明
2.3 以gym為基礎的MDP實例說明
2.4 習題
Chapter 03 以模型為基礎的動態規劃方法
3.1 以模型為基礎的動態規劃方法理論
3.2 動態規劃中的數學基礎說明
3.3 以gym為基礎的程式設計實例
3.4 最佳控制與強化學習比較
3.5 習題
Chapter 04 以蒙地卡羅為基礎的強化學習方法
4.1 以蒙地卡羅方法為基礎的理論
4.2 統計學基礎知識
4.3 以Python為基礎的程式設計實例
4.4 習題
Chapter 05 以時間差分為基礎的強化學習方法
5.1 基於時間差分強化學習演算法理論說明
5.2 以Python和gym為基礎的程式設計實例
5.3 習題
Chapter 06 以值函數逼近為基礎的強化學習方法
6.1 以值函數逼近為基礎的理論說明
6.2 DQN及其變種
6.3 函數逼近方法
6.4 習題
Chapter 07 以策略梯度為基礎的強化學習方法
7.1 以策略梯度為基礎的強化學習方法理論說明
7.2 以gym和TensorFlow為基礎的策略梯度演算法實現
7.3 習題
Chapter 08 以置信域策略最佳化為基礎的強化學習方法
8.1 理論基礎
8.2 TRPO中的數學知識
8.3 習題
Chapter 09 以確定性策略搜索為基礎的強化學習方法
9.1 理論基礎
9.2 習題
Chapter 10 以啟動策略搜索為基礎的強化學習方法
10.1 理論基礎
10.2 GPS中有關的數學基礎
10.3 習題
Chapter 11 逆向強化學習
11.1 概述
11.2 以最大邊際為基礎的逆向強化學習
11.3 以最大熵為基礎的逆向強化學習
11.4 習題
Chapter 12 組合策略梯度和值函數方法
Chapter 13 值反覆運算網路
13.1 為什麼要提出值反覆運算網路
13.2 值反覆運算網路
Chapter 14 以模型為基礎的強化學習方法:PILCO及其擴充
14.1 概述
14.2 PILCO
14.3 濾波PILCO和探索PILCO
14.4 深度PILCO
A 後記
B 參考文獻
Chapter 01 緒論
1.1 這是一本什麼書
1.2 強化學習可以解決什麼問題
1.3 強化學習如何解決問題
1.4 強化學習演算法分類及發展趨勢
1.5 強化學習模擬環境建置
1.6 本書主要內容及安排
Chapter 02 馬可夫決策過程
2.1 馬可夫決策過程理論說明
2.2 MDP中的機率學基礎說明
2.3 以gym為基礎的MDP實例說明
2.4 習題
Chapter 03 以模型為基礎的動態規劃方法
3.1 以模型為基礎的動態規劃方法理論
3.2 動態規劃中的數學基礎說明
3.3 以gym為基礎的程式設計實例
3.4 最佳控制與強化學習比較
3.5 習題
Chapter 04 以蒙地卡羅...