基于策略梯度的強化學習方法研究_第1頁
基于策略梯度的強化學習方法研究_第2頁
基于策略梯度的強化學習方法研究_第3頁
基于策略梯度的強化學習方法研究_第4頁
基于策略梯度的強化學習方法研究_第5頁
免費預覽已結束,剩余16頁可下載查看

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、目 錄摘 要(1)前 言(3)第1章 緒 論(4)第1.1節 研究背景(4)第1.2節 主要工作(4)第1.3節 本文結構(5)第2章 基于策略梯度的強化學習方法(6)第2.1節 強化學習(6)第2.1.1節 強化學習原理(6)第2.1.2節 馬爾科夫決策過程(7)第2.2節 基于策略梯度的強化學習方法(8)第2.3節 本章小結(9)第3章 幾種常見的基于策略梯度的強化學習方法(10)第3.1節 信賴域策略優化的強化學習方法(11)第3.2節 深度確定性策略梯度的強化學習方法(11)第3.3節 異步優勢行動者-評論家強化學習方法(12)第3.4節 本章小結(12)第4章 幾種策略梯度方法性能比

2、較(14)第4.1節 DDPG(14)第4.2節 A3C(15)第4.3節 TRPO(16)第4.4節 本章小結(17)第5章 總 結(18)參考文獻(19)致 謝(20)摘 要 強化學習目前已經成為計算機領域中研究熱點之一,很多計算機研究者也投身于該領域中尋求最優的強化學習算法來解決現實生活中的問題。目前有許多有關于尋求最優的強化學習的方法,有基于模型的動態規劃法,也有無模型的強化學習方法。而基于策略梯度的強化學習方法也是學者們深入了解學習的方法之一。本文主要是在理解策略搜索方法的基礎上學習策略梯度方法,之后研究了解幾種基于策略梯度的強化學習方法,這里舉例了TRPO、DDPG和A3

3、C這三種策略梯度的方法,研究分析這三種方法,通過實驗來對他們的性能進行比較。 關鍵詞: 強化學習;策略搜索;策略梯度;TRPO;DDPG;A3CAbstractReinforcement learning has become a hot topic in the field of computer,many computer researchers have also devoted themselves to finding the best reinforcement learning algorithm in this field to solve real life problems

4、. At present, there are many methods for seeking optimal reinforcement learning. There are model-based dynamic programming methods and model-free reinforcement learning methods. The policy gradient reinforcement learning method is also one of the methods for scholars to deeply understand learning. T

5、his article is mainly in understanding the search method on the basis of learning policy gradient method, then study to understand several reinforcement learning method based on policy gradient, here, for example the TRPO, DDPG and A3C these three gradient method, we will analyze these three methods

6、 by comparing their performance.Keywords: Reinforcement learning;Policy search;Policy gradient;TRPO;DDPG;A3C20前 言在機器學習的領域中,根據反饋的不同,學習技術可以分為監督學習、非監督學習和強化學習這三大類。其中強化學習作為一種以環境反饋作為輸入的、特殊的、適應環境的機械學習方法,被認為是設計智能Agent的核心技術之一。近年來,隨著高性能計算、大數據和深度學習技術的發展,強化學習算法也得到了廣泛的關注和快速發展,成為目前機器學習領域的研究熱點之一1。所謂的強化學習是從環境狀態學習到動

7、作的映射,它的目的是通過環境行動獲得的累積獎勵值最大化。對于監督學習和非監督學習,它們是通過正例和反例來了解要采取什么行動,這些例子都是確定的、已知的,根據這些例子來采取相對較好的行動;強化學習它是一個互動的過程,需要在不斷的嘗試與測試的過程中找到最佳的動作,這個過程需要大量的搜集數據,通過分析這些數據來獲取最佳的策略。強化學習通常涉及兩個方面的問題:一方面是怎么樣來進行強化學習,另一個是解決怎么樣強化學習的方法或技術。強化學習的方法可以以策略為中心和以值函數最優為中心分為兩大類,分別是策略優化方法和動態規劃方法,策略優化的方法根據是否利用模型可以分為無模型的策略搜索方法和基于模型的策略搜索方

8、法。其中無模型的策略搜索方法根據策略是否隨機,分為隨機性策略強化學習和確定性策略強化學習。本文介紹的策略梯度的強化學習方法屬于策略優化方法的一種,它在策略搜索方法中最先發展起來。第1章 緒 論第1.1節 研究背景強化學習目前已經成為計算機領域中研究熱點之一。廣大的計算機研究者也投身于該領域中尋求更好的、效率更高的強化學習算法來解決現實生活中的問題。強化學習的方法可以以策略為中心和以值函數最優為中心分為兩大類,分別是策略優化方法和動態規劃方法,策略優化的方法根據是否利用模型可以分為無模型的策略搜索方法和基于模型的策略搜索方法, 強化學習的大型應用需要使用廣義函數逼近,如神經網絡,決策樹或基于實例

9、的方法。過去十年的主導的方法是價值函數方法,其中所有函數逼近努力進入估計價值函數,動作選擇策略隱含地表示為估計值的“貪婪”策略(例如,在每個狀態中選擇具有最高估計值的動作的策略)。價值函數方法在許多應用程序中運行良好,但有一些限制。首先,它的目標是尋找確定性策略,而最優策略往往是隨機的, Singh,Jaakkola和Jordan在1994提出了這個想法2 :選擇具有特定概率的不同行為。其次,行動的估計價值發生細微的變化都有可能導致它被選中或不被選擇。這種不連續的變化已被確定為建立價值函數法后的保證算法收斂的關鍵障礙。例如,Q-Iearning,動態規劃方法都被證明無法收斂到簡單的MDP和簡單

10、的函數逼近。即使在改變策略之前的每個步驟中發現最佳近似值,以及“最佳”的概念是平均誤差意義還是略微不同的剩余梯度,時間差的意義,以及動態編程方法。因此學者們提出了一種策略搜索的方法,即策略梯度算法,這種算法受到許多學者的歡迎,它也逐步成為強化學習的研究熱點之一。第1.2節 主要工作本文主要是研究基于策略梯度的強化學習方法,要了解策略梯度的算法,首先要對強化學習的基本原理要有所了解,在了解強化學習的基本原理后要知道現有的學習框架是什么,本文會介紹馬爾科夫決策過程,這是經過無數學者不斷的研究所提供的一套最好的學習框架。最后通過對幾種策略梯度算法的研究,來分析他們的差異性,并且通過實驗來比較他們的性

11、能。本文的主要工作如下:(1)了解什么是強化學習,知道強化學習的原理是什么;強化學習的框架是馬爾科夫決策過程,介紹馬爾科夫決策過程,只有在理解的基本的基礎知識后,再對策略梯度的算法進行介紹,了解什么是策略梯度。(2)在理解策略梯度的強化學習方法之后,通過對基于策略梯度的幾種方法進行研究分析,分析它們之間有何差異,所采用的方法有何不同,為后面的實驗分析提供理論知識(3)完成實驗代碼,了解這些代碼所對應控制的是哪部分,通過實驗結果來比較它們的性能。(4)整理總結,對上面的幾種算法比較進行總結,對整篇文章進行分析以及提出自己的想法。第1.3節 本文結構本文共分為五章,各章內容安排如下:第1章:緒論。

12、本章介紹了課題的研究背景、本文的主要工作,最后介紹了本文的組織結構。 第2章:策略梯度的強化學習方法。本章第一部分簡單介紹了強化學習方法,以及馬爾科夫決策過程,為后面介紹策略梯度的強化學習方法提供了基礎的知識依據;第二部分主要是介紹本文主題,就是策略梯度的強化學習方法,了解什么是策略,什么是梯度。第3章:幾種常見的基于策略梯度的強化學習方法。主要介紹了幾種策略梯度的強化學習方法,有信賴域策略優化的強化學習方法、深度確定性策略梯度的強化學習方法和異步優勢行動者-評論家的強化學習方法,通過對這些算法的介紹,可以看出這些算法具體體現在哪里不同以及這些不同地方的介紹。第4章:幾種策略梯度方法性能比較。

13、主要通過pycharm軟件,利用實驗代碼來更加直觀的看出這幾種策略梯度強化學習方法之間性能的差異,對上一章介紹的幾種算法有更好的理解。第5章:總結。對整個文章進行整理匯總。第2章 基于策略梯度的強化學習方法第2.1節 強化學習第2.1.1節 強化學習原理所謂的強化學習是從環境狀態學習到動作的映射,它是通過環境和行動的不斷交互來獲得的累積獎勵值,使得獎勵值最大化。這種方法不同于監督學習和非監督學習,通過正例和反例來決定要采取什么行動,但它需要通過試驗和錯誤來找到最佳的行為策略。強化學習通常涉及兩個方面:一個是將強化學習視為一類問題,另一個是解決這類問題的技術。當強化學習是一類問題時,當前的學習技

14、術大致分為兩類:一類是搜索Agent的行為空間以發現Agent的最佳行為,通常是用遺傳算法等搜索技術實現。另一類是統計技術和動態規劃方法被用來估計環境條件行為的函數值。研究人員特別稱這種學習技術為強化學習技術。監督學習和非監督學習的數據是靜態的,不需要與環境進行交互,比如圖像識別,只要給足夠的差異樣本將數據輸入到深度網絡中進行訓練,就能夠實現圖像的識別。然而,強化學習是個動態的學習過程,動作行為需要不斷地與環境進行交互,所需要的數據也是通過與環境不斷地交互產生的。所以,與監督學習和非監督學習相比,強化學習所需要涉及到的對象更多,比如動作、環境、狀態轉移概率和回報函數等。動作A環境智能體(Age

15、nt)新的回報狀態S 圖1如圖1所示,智能體(Agent)想要達到某種目標,首先智能體(Agent)向環境做出一個動作A,在動作A和環境的交互下,智能體會根據動作A的作用下產生一個新的狀態S,同時環境會給智能體(Agent)一個回報。智能體(Agent)通過不斷的改變動作,而動作又與環境進行不斷地交互從而使得智能體(Agent)獲得更多的數據。強化學習算法是智能體(Agent)利用對這些大量的數據進行分析,找到相對于目標來說最佳的動作,變成新的狀態,之后再發出新的動作與環境交互,收集新的狀態時產生的新的數據,并對這些新的數據進行分析從而知道自己應該采取怎樣的動作才是最佳的,經過數次反復這樣的學

16、習后,智能體(Agent)能最終達到相應的目標。舉個例子,設定一個場景,兩個圍棋高手在下棋,而圍棋高手就相當于這里的智能體(Agent),在圍棋高手決定出哪步的時候,他在思考如何下才能贏,他在想當下這步時對方會下哪步來做出應對,通過反推得到這個圍棋高手應該下哪步是最好的選擇,這里思考的過程相當于動作A與環境交互的過程,圍棋高手(智能體)根據思考反推得到的具體下哪步,這就是強化學習所需要的最優解。強化學習是一個比較復雜的研究方向,高陽2等人曾在自己發表的文章中將強化學習領域所涉及的分支和算法進行了整理和匯總,總結了TD算法、Q-Learning算法、Sarsa算法、最佳搜索強化學習方法和經驗強化

17、型強化學習算法等,另外還涉及到多Agent強化學習、動態規劃、部分感知、函數估計、符號學習和強化學習偏差等方面知識,學習環境還引進了馬爾科夫型環境,采取馬爾科夫決策過程。第2.1.2節 馬爾科夫決策過程通過無數學者幾十年的不斷努力研究,他們提出了一套框架,用于解決大部分的強化學習問題,這個框架就是馬爾科夫決策過程。要了解馬爾科夫決策過程,可以分為三步來了解馬爾科夫決策過程,第一步是了解馬爾科夫性,第二步了解馬爾科夫過程,最后一步了解馬爾科夫決策過程。馬爾科夫性指的是下一個狀態St+1僅僅與當前的狀態St有關,與之前的狀態沒有關系。它的定義為:狀態St如果是馬爾科夫的,那么PSt+1|St= P

18、St+1| S1,···,St。從定義里我們可以看出,當前狀態St包含了之前所有的狀態S1 ,S2···,但是對于狀態St+1來講的話,之前的狀態S1 ,S2···跟St+1沒有關系,它只跟St有關系。馬爾科夫性描述的是每個狀態的性質,但是強化學習是一個過程,它要描述的是一個狀態序列,所以學者提出了馬爾科夫過程這個概念,它可以描述一個狀態序列,只要保證狀態序列的每個狀態都具有馬爾科夫性就行。馬爾科夫過程的定義為:馬爾科夫是一個二元組為(S,P),二元組中S是有限狀態集合,P是狀態轉移概率。但是強化學習算法

19、不僅僅要描述一個狀態序列,它同時也要滿足通過動作與環境的交互,從環境中獲得回報,但是馬爾科夫過程不存在動作和回報獎勵,滿足不了描述強化學習,所以學者們將動作和回報獎勵考慮在內的馬爾科夫過程稱為馬爾科夫決策過程。馬爾科夫決策過程定義為:它由一個五元組(S,A,P,R,)組成,其中S是有限狀態集合;A為有限動作集合;P為狀態轉移概率;R為回報函數;為折扣因子,用來計算累計獎賞。因此強化學習的目標是給定一個馬爾科夫決策過程,尋找最優策略。策略是指狀態到動作的映射,策略常用符號表示,它是指在給定了狀態S時,動作集合A上的一個分布,即: (a|s)=pA=a|S=s這個公式的意思是當前狀態為s時,如果要

20、到下個狀態s+1,執行動作a的狀態轉移概率,而狀態為s,執行動作a的策略就是一個概率的分布,所以當相同狀態s時執行不同的動作,從而可以得到這些動作的策略。而強化學習就是分析這些策略,找到最優策略能夠使得期望最大,這里的期望可以表示為:Ek=0kRk+1|S=s,A=a其中k=0k Rk+1是計算的累計獎賞,所以強化學習的目標是當狀態為s,執行動作a根據得到的策略計算最大期望。第2.2節 基于策略梯度的強化學習方法這節內容主要介紹策略梯度,要了解策略梯度的方法,我們可以先從字面的意思來了解。首先將策略梯度分開為策略和梯度兩個部分,策略在網上查的定義為可以實現目標的方案集合,或根據形勢的發展而指定

21、的行動方針,以我個人的觀點意思就是為了實現某個目的而做出的一些方法的集合,舉例來講就是一個人需要投資理財,而業務員提供的許多投資理財的方案就是策略;而梯度是一個數學名詞,它表示某一函數求導后可以得到某個點沿著它的方向的最大值,數學里一般用表示。所以策略梯度的意思就是求策略所提供的方案集合中的最優解。策略梯度的方法是最先在策略搜索方法里提出來的,策略搜索講的是將策略參數化,根據馬爾科夫決策過程可以將策略表示為(s|a),這樣來強化學習的意思就是找到最好的參數使得策略最優,從而求得的回報期望也就越大。這樣的話,策略搜索就變成了一個優化的問題,而策略梯度就是解決優化問題的一種方法,也就是最速下降法。

22、根據上面講的策略梯度可以表示為(s|a),而回報期望就能夠表示為:Et=0tlogP(St,At|(St|At)R(St,At)參數的更新表示方式可以為:new=old + (s|a)其中表示步長,對于步長的理解的話,簡單舉個例子:對于c+的一段代碼for(i=0;i<10;i+),這個中的i+就表示步長為1,從i=0時逐漸增長。步長影響著參數,并且能夠加快優化的速度。但是步長的更新在這里是不能穩定的控制,不過John Schulman提出了一種算法TRPO7,它能夠解決這個問題,在第三章節中本文會介紹這種算法。第2.3節 本章小結本章主要簡單介紹了強化學習方法,了解什么是強化學習,之后

23、又介紹了強化學習所需要的最常用的一種框架,馬爾科夫決策過程,為后續將策略梯度的方法的理解提供基礎理論依據,方便理解介紹的策略梯度方法,策略梯度的強化學習方法本章主要是介紹了什么是策略梯度的方法,即最速下降法,用于求解策略搜索方法(優化問題)。第3章 幾種常見的基于策略梯度的強化學習方法第3.1節 信賴域策略優化的強化學習方法TRPO的英文單詞為Trust Region Policy Optimization,中文可以翻譯成信賴域策略優化,它是由John Schulman提出的。說到TRPO算法,首先要講一下策略梯度的缺點,上一章我們大概介紹了策略梯度,知道了策略梯度的參數更新方程式為:new=

24、old + (s|a)策略梯度算法的缺點就在與更新步長,即步長選取的問題。如果步長選取太長的話,策略就容易發散;如果太短的話,收斂的速度就很慢。這時需要合適的步長,它是指策略更新后,所得到的回報函數的值不能更差,就是說新的策略應使得新的回報函數的指單調增或者說單調不減,而TRPO算法就是解決這個問題。2002年Sham Kakade3提出了一個想法:為了保證新的策略(這里用表示新的策略)單調不減,就可以把新的策略寫成舊的策略(這里用表示舊的策略)加上其他項,只要保證其他項大于等于零,那么所得到的新的策略就能保證大于等于舊策略,這樣就能實現單調不減。那么就有這么一個等式()= ()+Es0,a0

25、··· t=0tA(st,at)其中()表示回報期望,A(st,at)這里指的是優勢函數,那這里的優勢函數可以理解為狀態st的動作at對應的值函數與狀態st的所有動作值函數的平均值的差值,意思是如果這個優勢函數的值大于等于零,那么在狀態st的動作at優于st的所有動作的平均動作,或者說不比平均動作差;反之,如果這個優勢函數值小于零,那么在狀態st的動作at比所有動作的平均動作差。因為TRPO算法主要是對梯度的步長進行控制,所以強化學習的回報期望就是上面講的策略梯度的期望E t=0tlogP(St,At|(St|At)R(St,At)TRPO保證步長在一個安全的區域

26、內更新,這樣來保證新的策略最優使得回報函數期望最大。第3.2節 深度確定性策略梯度的強化學習方法DDPG的英文為Deep Deterministic Policy Gradient,中文可以翻譯為深度確定性策略梯度算法,這個算法我們可以把它分為兩部分深度和確定性策略梯度來理解。首先我們先了解一下確定性策略,上面提到的TRPO算法它的策略是隨機的,而本節講到的DDPG,它的策略是確定性的。我們提到的隨機策略可以用公式表示為:(a|s)=Pa|s;它的含義是在狀態為s時,動作a符合參數的概率分布。而確定性策略的公式表示為:=(s),因為策略是確定的,所以在狀態為s時,動作是唯一的、確定的。比較一下

27、隨機策略與確定性策略的優缺點,隨機策略的優點是可以將探索和改善集中在一起放在同一個策略中,而確定性策略的優點是它需要采樣的數據不多,算法效率比隨機策略要高很多。因為在求期望時,需要對狀態和動作分布求積分,這就要求對狀態空間和動作空間進行大量的數據采樣,這樣所得的數據進行求平均值才能得到近似的期望。而確定性策略的動作是確定的,所以策略梯度不需要對動作空間進行數據的采樣積分,相比于隨機策略,確定性策略的效率要高很多。但是由于確定性策略,對于狀態S和策略參數已知時,那么所對應的動作也是固定的,也就是說如果采用的是確定性策略,它所產生的軌跡永遠是固定的,不會改變。而我們所說的強化學習是通過Agent與

28、環境的不斷交互來學習,做出相對于比較好的動作,所以DDPG采用了異策略的學習方法,異策略(off-policy)就是行動策略和評估策略不是用的同一個策略而是分開的。其中動作采用的是隨機策略而評估采用的是確定性策略,對于整個確定性策略,我們采用的是Actor-Critic算法,我們可以稱為行動者-評論家算法。行動者-評論家算法就是利用行動者(指的是行動策略)來調整參數,而評論家(評估策略)采用逼近函數的方法,使得到的回報期望最大9。根據上文策略梯度的講解可知行動策略梯度為隨機策略可以表示為:(s,a),而評估策略為確定性策略可以表示為1(s,a| 1=(s)((s)是已知的)。所以強化學習的期望

29、可以表示為Et=0slogPSt,AtsaRSt,At|1=s上面介紹的異策略行動者-評論家方法就是確定性策略梯度強化學習方法,簡稱DPG,而DDPG最前面的D為deep,字面翻譯就是深度,這是指的是采用深度神經網絡,利用它來逼近動作值函數和評估策略。DDPG采用了經驗回放和獨立的目標網絡,經驗回放的方法是智能體(Agent)在強化學習的過程中將數據儲存在一個數據庫中,然后再通過隨機采樣的手段來訓練神經網絡,因為神經網絡訓練的數據是獨立的,而強化學習要求的數據之間是存在一定的關聯性,所以能在一定程度上保證神經網絡的穩定性。而獨立的目標網絡是對待逼近的參數與行動策略的參數進行單獨的更新。第3.3

30、節 異步優勢行動者-評論家強化學習方法A3C的英文全稱為:Asynchronous Methods for Deep Reinforcement Learning10,中文可以翻譯為異步優勢行動者-評論家強化學習方法。利用神經網絡的方法時時常不穩定,不能保證它的穩定性,上節介紹的DDPG算法也同樣運用了神經網絡,但是它是運用了經驗回訪的技術來消除這種不穩定性,然而經驗回放技術要考慮到兩個問題:第一個問題是智能體(Agent)與環境的每次交互都需要耗費很多的內存和計算力,這大大的影響到了算法的效率;第二個問題是如果用了經驗回放技術,那么算法的策略應該采用異策略(off-policy)方法來進行學

31、習,但是根據DDPG算法的介紹,異策略是根據舊的策略所產生的數據進行更新;此外DRL(深度強化學習)的訓練都依賴與計算機的圖形處理器(如GPU),所以異步優勢行動者-評論家強化學習方法采用了異步優勢的方法,即異步同時執行多個智能體(Agent),通過這些智能體(Agent)所經歷的不同狀態來消除訓練過程中產生的狀態轉移樣本之間的關聯性,而且這種方法只需要一個標準的多核CPU就可以實現算法,這就使得使用這種算法可以節省大量的時間和資源,并且也大大地提升了效率。而A3C算法也是用了Actor-Critic算法利用行動者(指的是行動策略)來調整參數,而評論家(評估策略)采用逼近函數的方法,使得到的回

32、報期望最大。第3.4節 本章小結本章主要簡單介紹三種基于策略梯度的強化學習方法,他們分別是TRPO、DDPG、A3C這三種方法,其中TRPO是無模型的策略搜索方法并且它的策略是隨機的,這個算法主要是在策略梯度的基礎上彌補了由于步長而導致的算法缺陷,它提供的新策略能夠保證步長能夠單調不減,這就能保證算法得到的回報函數的值不會越來越差導致后面的數據崩潰;而DDPG算法也是無模型的策略搜索方法,但是它采用的策略是異策略(off-policy),就是說動作部分采用了隨機策略,這樣就能夠保證強化學習說的動作與環境能夠交互,畢竟如果是確定性策略,那么動作的值是固定的,這就不能體現強化學習交互的方面,所以動

33、作部分采用隨機策略,而回報部分采用的是確定性策略,這個確定性策略的學習框架采用的是Actor-Critic算法,利用函數逼近的方法計算估計值函數,這樣利用深度神經網絡(經驗回放和獨立的目標網絡)進行動作函數和回報函數值的逼近實現算法;最后介紹的A3C算法采用的是異步優勢策略方法,它不同于異策略(off-policy),這里指的是異步執行多個智能體(Agent),根據每個智能體(Agent)所經歷的不同狀態,消除它們在訓練過程中產生的狀態轉移樣本之間的關聯性。了解了這些算法的基本內容之后,我們下章節通過pycharm完成實驗來比較它們的性能。第4章 幾種策略梯度方法性能比較這章主要是通過實驗來比

34、較這三種基于策略梯度的強化學習方法的性能,本文是想通過比較算法訓練的時間來比較他們的性能,設置相同的epochs(訓練次數)這里設置500,看最后強化學習運行完的整個訓練所需的時間,通過比較最后得到的時間來比較它們的性能。這里采用的是python來寫的代碼,主要計算程序運行時間的代碼如下:import datetimestarttime = datetime.datetime.now()···endtime = datetime.datetime.now()print( total runtime:,(endtime - starttime).seconds)第4

35、.1節 DDPG根據之前的介紹,DDPG采用深度神經網絡的異策略Actor-Critic算法,給出偽代碼:1、隨機初始化評論家網絡Q(s,a|Q)和行動者(s| )權重Q和2、初始化目標網絡Q和的權重QQ ,3、初始化回復緩沖區R4、For episode=1,M do5、初始化一個隨機過程N進行動作探索6、獲得初始觀察狀態s17、For t=1,T do8、選擇動作at=(st|)+Nt用于動作探索9、執行行動at,并且觀察獎勵rt和觀察新狀態st+110、儲存轉換(st,at,rt,st+1)放入R11、隨機從R中采樣N個轉換的小批次(st,at,rt,st+1)12、設置yi=ri+Q(

36、si+1,(si+1| )| Q)13、通過減少損失來更新評論家:L=1Ni0(yiQ(si,ai|Q)2) 14、使用采樣的梯度更新行動者策略:|st1NiaQ(s,a|Q)|s= st,a=(st) (s| )|st15、更新目標網絡:QQ+(1-) Q +(1-) 結束結束因為DDPG采用的深度神經網絡,這個方法就要用到經驗回放和獨立的目標網絡技術,為代碼的第1、2兩步是對兩個目標actor和critic兩個進行獨立網絡處理;第3步是設置緩沖區,主要用來儲存經驗回放得到的數據;第8步at=(st|)+Nt的公式是將行動策略設置成隨機策略;第9、10兩步是實現經驗回放,而第11步yi=ri

37、+Q(si+1,(si+1| )| Q)的公式是設置目標網絡;第13、14兩步是運用了AC算法;最后15步是對目標網絡的參數進行更新。通過偽代碼寫出python,經過pycharm的運行得到的實驗結果為:第4.2節 A3C A3C算法的偽代碼為:1、/假設全局共享參數向量和v,并且全局共享計數器T=02、/假設線程特定的參數和v3、初始化線程計步器t1重復4、重啟梯度:d0和dv05、 同步線程特定的參數=和v =v6、tstart=t7、獲得狀態st重復8、按照策略(at|st;)9、tt+110、TT+111、直到終端為st或者t- tstart=tmax12、R=0 當終端狀態為stVs

38、t,v 當非終端為st/從最后一個狀態引導13、For it-1,···,tstart doRri+R積累梯度wrt :dd+log(ai | si; )(R-V(si; v)積累梯度wrt :dvdv+(R-V(si; v)2/vEnd for執行異步更新使用d和v使用dvuntil T>Tmax從偽代碼分析第1、2步是設置參數和計步器;第3步初始化計步器;第4步重啟梯度;第5步同步線程的參數;第8步到第11步是訓練數據(s,a,r)序列的生成;第13步采用的是TD方式梯度下降更新狀態值參數。實驗結果為:第4.3節 TRPOTRPO算法的偽代碼:/保證非遞

39、減期望返回的策略迭代算法初始化0For i=0,1,2···until 收斂 do計算所有優勢值Ai(s,a)解決約束優化問題i+1=argmaxLi()CDmaxKL(i,)Where C=4/(1-)2And Li()=(i)+si(s)a(a|s)Ai(s,a)End for通過求平均KL散度代替最大KL散度,從而保證能夠使訓練單調的增長。實驗結果為:第4.4節 本章小結從上面的實驗結果可以看出,在相同的條件下,A3C的算法效率明顯比其他兩種要高,這里可以得出,采用異步優勢的方法,算法效率明顯比傳統的策略梯度算法效率要好;通過比較TRPO和DDPG的實驗結果

40、可以看出,DDPG的效率比TRPO的效率要高,可以看出因為確定性策略采樣收集數據比隨機策略要少,因此在算法效率上要提高好多。第5章 總 結本文主要介紹基于策略梯度的強化學習方法,首先主要說明了一下強化學習的背景以及策略梯度的一些簡單介紹,之后介紹了強化學習基本原理,簡單的說就是智能體為了達到某種目標,而強化學習就是在這個過程中提供最佳的路徑能夠達到這個目標。而強化學習方法的具體表現采用了馬爾科夫決策過程這個框架,它描述的是一組狀態序列,下一個狀態受當前狀態的影響,但是與之前狀態沒有關系,根據動作和回報函數,通過求目標期望的方法來體現強化學習。有了這些強化學習的理解基礎后,再對策略梯度進行介紹,策略梯度就是將策略參數化,通過梯度的求解方式求得最優策略從而使得目標期望最大。最后介紹了幾種策略梯度的算法,TRPO主要是對策略梯度進行了一些改進,因為策略梯度不能保證影響參數的步長能夠穩定更新,所以這個算法主要是控制步長在安全區域來保證策略單調不減,從而使得期望更好;DDPG算法采用的是深度神經網絡,采用異策略AC的算法,異策略就是行動策略是隨機策略而評估是確定性策略;而A3C是采用異步優勢AC算法,異步執行多個Agent,通過不同狀態來消除狀態轉移樣本之間的關聯性。最后通過實驗來比較這三個算法的性能。由于本人能力和研究時

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論