圍繞著MDP模型,闡述動態(tài)規(guī)劃、蒙特卡羅、動態(tài)規(guī)劃等有窮表格式強化學習方法。在深度強化學習框架PyTorch下,闡述DQN,DDDPG,A3C等算法。本書以實例為導向,深度淺出地講解相關(guān)算法。全書采用完整的數(shù)學體系,各章內(nèi)容循序漸進,嚴謹?shù)刂v授強化學習的理論基礎(chǔ),主要定理均給出證明過程;诶碚撝v解強化學習算法,覆蓋了所有主流強化學習算法,包括資格跡等經(jīng)典算法和深度確定性梯度策略等深度強化學習算法。適合本科以上的人工智能相關(guān)專業(yè)學生及工程人員。
強化學習是目前機器學習領(lǐng)域最熱門的方向之一,本書經(jīng)多年的實踐教學經(jīng)驗的積累,形成了一套完整的教學體系。并結(jié)合流行的深度學習框架PyTorch,該書在理論和應(yīng)用上都是較先進的。本書理論結(jié)合實踐,深入淺出地講解相關(guān)算法和實例。
近年來,強化學習和深度學習相結(jié)合形成的深度強化學習方法已經(jīng)是人工智能領(lǐng)域中新的研究熱點。在許多需要智能體(Agent)同時具備感知和決策能力的場景中,深度強化學習方法具備了與人類相媲美的智能。其中深度學習(Deep Learning,DL)和強化學習(Reinforcement Learning,RL)是機器學習領(lǐng)域中最重要的兩個研究方向。深度學習方法側(cè)重于對事物的感知與表達,其基本思想是面向高維數(shù)據(jù),通過多層的網(wǎng)絡(luò)結(jié)構(gòu)和非線性變換,組合低層特征,形成抽象的、易于區(qū)分的高層表示,以發(fā)現(xiàn)數(shù)據(jù)的分布式特征表示。深度學習已經(jīng)在圖像識別與理解、智能語音、機器翻譯等領(lǐng)域取得了非凡的成果。強化學習與基于監(jiān)督訓練的深度學習不同,更加側(cè)重于學習解決問題的策略,其基本思想是智能體通過試錯的機制與環(huán)境進行不斷地交互,從而最大化智能體從環(huán)境中獲得的累計獎賞值。強化學習已經(jīng)廣泛應(yīng)用于游戲博弈、機器人操控、參數(shù)優(yōu)化等領(lǐng)域。傳統(tǒng)的強化學習算法主要針對輸入狀態(tài)規(guī)模較小的決策問題,這種小規(guī)模強化學習算法可通過表格式的存儲方式來評價每個狀態(tài)或者狀態(tài)動作對的好壞。然而當狀態(tài)或動作空間維度很高時(例如圖片或視頻數(shù)據(jù)),傳統(tǒng)的強化學習方法會因缺乏感知和泛化高維輸入數(shù)據(jù)的能力而導致算法性能急劇下降。
隨著人類社會的飛速發(fā)展,未來的人工智能系統(tǒng)不僅需要具備很強的感知與表達能力,而且需要擁有一定的決策能力。因此,人們將具有感知能力的深度學習和具有決策能力的強化學習相結(jié)合,形成直接從輸入原始數(shù)據(jù)到輸出動作控制的完整智能系統(tǒng),這就是深度強化學習(Deep Reinforcement Learning,DRL)方法。該方法從本質(zhì)上解決了傳統(tǒng)強化學習智能體缺乏感知和泛化高維度輸入數(shù)據(jù)能力的問題,從而適用于一系列大規(guī)模的決策任務(wù)。例如,谷歌旗下的DeepMind公司將深度學習中的卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network,CNN)和強化學習中Q學習算法(QLearning)相結(jié)合,提出深度Q網(wǎng)絡(luò)(Deep QNetwork,DQN)模型。該模型可直接將原始的游戲視頻畫面作為輸入狀態(tài),游戲得分作為強化學習中的獎賞信號,并通過深度Q學習算法進行訓練。最終該模型在許多Atari 2600視頻游戲上的表現(xiàn)已經(jīng)趕上甚至超過了專業(yè)人類玩家的水平。該項研究工作是深度強化學習方法形成的重要標志。此后,DeepMind團隊又開發(fā)出一款被稱為AlphaGo的圍棋算法。該算法一方面利用深度學習通過有信號的監(jiān)督來模擬人類玩家的走子方式,另一方面利用強化學習來進行自我對抗,從而進一步提高智能體取勝的概率。最終AlphaGo以懸殊的比分先后擊敗當時的歐洲圍棋冠軍和世界圍棋冠軍。深度強化學習的基本思想可以描述為: 利用深度學習的強大感知能力來提取大規(guī)模輸入數(shù)據(jù)的抽象特征,并以此特征為依據(jù)進行自我激勵的強化學習,直至求解出問題的最優(yōu)策略。AlphaGo事件正式將深度強化學習技術(shù)推向了一個高峰。隨著國內(nèi)外對于深度強化學習理論和應(yīng)用的不斷完善,目前深度強化學習技術(shù)已經(jīng)在游戲、機器人操控、自動駕駛、自然語言處理、參數(shù)優(yōu)化等領(lǐng)域得到了廣泛的應(yīng)用。此外,深度強化學習也被認為是實現(xiàn)通用人工智能(General Artificial Intelligence,GAI)的一個重要途徑。
本書深入淺出、內(nèi)容翔實全面,全書配有PPT和視頻講解,對相關(guān)算法和實例配有代碼程序。本書既適合強化學習零基礎(chǔ)的本科生、研究生入門學習,也適合相關(guān)科研人員研究參考。
本書作者多年來一直從事強化學習的研究和教學工作,在國家自然科學基金、博士后基金、教育部科學研究重點項目、軟件新技術(shù)與產(chǎn)業(yè)化協(xié)同創(chuàng)新中心、江蘇高校優(yōu)勢學科建設(shè)工程資助項目、江蘇省高校自然科學基金項目、蘇州大學研究生精品課程項目等的資助下,提出了一些深度強化學習理論,解決了一系列核心技術(shù),并將這些理論和方法用于解決實際問題。
本書總體設(shè)計、修改和審定由劉全完成,參加撰寫的有黃志剛、翟建偉、吳光軍、徐平安、歐陽震、寇俊強、郝少璞、李曉牧、顧子賢、葉倩等,對以上作者付出的艱辛勞動表示感謝!本書的撰寫參考了國內(nèi)外有關(guān)研究成果,他們的豐碩成果和貢獻是本書學術(shù)思想的重要來源,在此對涉及的專家和學者表示誠摯的謝意。本書也得到了蘇州大學計算機學院及智能計算與認知軟件課題組部分老師和同學們的大力支持和協(xié)助,在此一并表示感謝。他們是: 朱斐、凌興宏、伏玉琛、章宗長、章曉芳、徐云龍、陳冬火、王輝、金海東、王浩、曹家慶、張立華、徐進、梁斌、姜玉斌、閆巖、胡智慧、陳紅名、吳金金、李斌、何斌、時圣苗、張琳琳、范靜宇、傲天宇、李洋、張建行、代珊珊、申怡、王逸勉、徐亞鵬、栗軍偉、烏蘭、王卓、楊皓麟、施眉龍、張雄振等。
機器學習是一個快速發(fā)展、多學科交叉的研究方向,其理論及應(yīng)用均存在大量的亟待解決的問題。限于作者的水平,書中難免有不妥和錯誤之處,敬請同行專家和讀者指正。
劉全
2021年1月
劉全,蘇州大學教授,博士生導師。 吉林大學博士, 南京大學軟件新技術(shù)國家重點實驗室博士后。蘇州市人工智能學會常務(wù)理事、秘書長。2006年開始從事強化學習
領(lǐng)域的教學和科研工作。主講研究生、本科生《強化學習》及相關(guān)課程16次。主持“深度強化學習方法研究”、“部分感知強化學習理論及方法”、“基于tableau的邏輯強化學習研究”等國家、省部級項目10余項。目前主要研究方向為:深度強化學習。
2012年獲江蘇省教工委優(yōu)秀共產(chǎn)黨員稱號。2011年、2012年入選江蘇省“六大人才”、江蘇省“333”人才培養(yǎng)計劃。
第一部分: 預(yù)備知識及環(huán)境安裝
第1章深度強化學習概述
1.1引言
1.2深度學習
1.3強化學習
1.4深度強化學習
1.5小結(jié)
1.6習題
第2章環(huán)境的配置
2.1PyTorch簡介
2.2PyTorch和TensorFlow
2.3強化學習的開發(fā)環(huán)境
2.3.1Anaconda環(huán)境搭建
2.3.2Anaconda環(huán)境管理
2.3.3PyTorch的安裝
2.3.4Jupyter Notebook的安裝
2.3.5Jupyter Notebook的使用
2.3.6Gym的安裝
2.3.7Gym案例
2.4小結(jié)
2.5習題
第二部分: 表格式強化學習
第3章數(shù)學建模
3.1馬爾可夫決策過程
3.2基于模型與無模型
3.3求解強化學習任務(wù)
3.3.1策略
3.3.2獎賞與回報
3.3.3值函數(shù)與貝爾曼方程
3.3.4最優(yōu)策略與最優(yōu)值函數(shù)
3.4探索與利用
3.5小結(jié)
3.6習題
第4章動態(tài)規(guī)劃法
4.1策略迭代
4.1.1策略評估
4.1.2策略迭代
4.2值迭代
4.3廣義策略迭代
4.4小結(jié)
4.5習題
第5章蒙特卡洛法
5.1蒙特卡洛法的基本概念
5.1.1MC的核心要素
5.1.2MC的特點
5.2蒙特卡洛預(yù)測
5.3蒙特卡洛評估
5.4蒙特卡洛控制
5.4.1基于探索始點的蒙特卡洛控制
5.4.2同策略蒙特卡洛控制
5.4.3異策略與重要性采樣
5.4.4蒙特卡洛中的增量式計算
5.4.5異策略蒙特卡洛控制
5.5小結(jié)
5.6習題
第6章時序差分法
6.1時序差分預(yù)測
6.2時序差分控制
6.2.1Sarsa算法
6.2.2QLearning算法
6.2.3期望Sarsa算法
6.3最大化偏差與Double QLearning
6.3.1最大化偏差
6.3.2Double Learning
6.3.3Double QLearning
6.4DP、MC和TD算法的關(guān)系
6.4.1窮舉式遍歷與軌跡采樣
6.4.2期望更新與采樣更新
6.5小結(jié)
6.6習題
第7章n步時序差分法
7.1n步TD預(yù)測及資格跡
7.1.1n步TD預(yù)測
7.1.2前向TD(λ)算法
7.1.3后向TD(λ)算法
7.2n步TD控制及其資格跡實現(xiàn)
7.2.1同策略n步Sarsa算法
7.2.2Sarsa(λ)算法
7.2.3異策略n步Sarsa算法
7.2.4n步Tree Backup算法
7.3小結(jié)
7.4習題
第8章規(guī)劃和蒙特卡洛樹搜索
8.1模型、學習與規(guī)劃
8.1.1模型
8.1.2學習
8.1.3規(guī)劃
8.2DynaQ結(jié)構(gòu)及其算法改進
8.2.1DynaQ架構(gòu)
8.2.2優(yōu)先遍歷
8.2.3模擬模型的錯誤性
8.3決策時間規(guī)劃
8.3.1啟發(fā)式搜索
8.3.2預(yù)演算法
8.3.3蒙特卡洛樹搜索
8.4小結(jié)
8.5習題
第三部分: 深度強化學習
第9章深度學習
9.1傳統(tǒng)神經(jīng)網(wǎng)絡(luò)
9.1.1感知器神經(jīng)元
9.1.2激活函數(shù)
9.2反向傳播算法
9.2.1前向傳播
9.2.2權(quán)重調(diào)整
9.2.3BP算法推導
9.3卷積神經(jīng)網(wǎng)絡(luò)
9.3.1卷積神經(jīng)網(wǎng)絡(luò)核心思想
9.3.2卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)
9.4小結(jié)
9.5習題
第10章PyTorch與神經(jīng)網(wǎng)絡(luò)
10.1PyTorch中的Tensor
10.1.1直接構(gòu)造法
10.1.2間接轉(zhuǎn)換法
10.1.3Tensor的變換
10.2自動梯度計算
10.2.1標量對標量的自動梯度計算
10.2.2向量對向量的自動梯度計算
10.2.3標量對向量(或矩陣)的自動梯度計算
10.3神經(jīng)網(wǎng)絡(luò)的模型搭建和參數(shù)優(yōu)化
10.3.1模型的搭建
10.3.2激活函數(shù)
10.3.3常用的損失函數(shù)
10.3.4模型的保存和重載
10.4小結(jié)
10.5習題
第11章深度Q網(wǎng)絡(luò)
11.1DQN算法
11.1.1核心思想
11.1.2訓練算法
11.1.3實驗結(jié)果與分析
11.2Double DQN算法
11.2.1核心思想
11.2.2實驗結(jié)果與分析
11.3Prioritized DQN
11.3.1核心思想
11.3.2訓練算法
11.3.3實驗結(jié)果與分析
11.4Dueling DQN
11.4.1訓練算法
11.4.2實驗結(jié)果與分析
11.5小結(jié)
11.6習題
第12章策略梯度法
12.1隨機策略梯度法
12.1.1梯度上升算法
12.1.2策略梯度法與值函數(shù)逼近法的比較
12.2策略優(yōu)化方法
12.2.1情節(jié)式策略目標函數(shù)
12.2.2連續(xù)式策略目標函數(shù)
12.2.3策略梯度定理
12.3策略表達形式
12.3.1離散動作空間策略參數(shù)化
12.3.2連續(xù)動作空間策略參數(shù)化
12.4蒙特卡洛策略梯度法
12.4.1REINFORCE
12.4.2REINFORCE算法的實驗結(jié)果與分析
12.4.3帶基線的REINFORCE
12.4.4帶基線的REINFORCE算法的實驗結(jié)果與分析
12.5行動者評論家
12.6確定性策略梯度定理
12.7小結(jié)
12.8習題
第13章基于確定性策略梯度的深度強化學習
13.1DDPG算法
13.1.1算法背景
13.1.2核心思想
13.1.3DDPG算法
13.2DDPG算法的實驗結(jié)果與分析
13.2.1DDPG算法網(wǎng)絡(luò)結(jié)構(gòu)與超參數(shù)設(shè)置
13.2.2實驗環(huán)境
13.2.3實驗結(jié)果與分析
13.3雙延遲確定性策略梯度算法
13.3.1過高估計問題解決方案
13.3.2累計誤差問題解決方案
13.3.3TD3算法
13.3.4實驗結(jié)果與分析
13.4小結(jié)
13.5習題
第14章基于AC框架的深度強化學習
14.1行動者評論家框架
14.2A3C算法
14.2.1算法的核心思想
14.2.2異步1步Q學習算法
14.2.3A3C算法
14.2.4實驗結(jié)果與分析
14.3A2C算法
14.3.1A2C算法
14.3.2實驗結(jié)果與分析
14.4小結(jié)
14.5習題
參考文獻