基于策略梯度的強化學(xué)習(xí)方法研究_第1頁
基于策略梯度的強化學(xué)習(xí)方法研究_第2頁
基于策略梯度的強化學(xué)習(xí)方法研究_第3頁
基于策略梯度的強化學(xué)習(xí)方法研究_第4頁
基于策略梯度的強化學(xué)習(xí)方法研究_第5頁
已閱讀5頁,還剩16頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)

文檔簡介

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

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

3、C這三種策略梯度的方法,研究分析這三種方法,通過實驗來對他們的性能進行比較。 關(guān)鍵詞: 強化學(xué)習(xí);策略搜索;策略梯度;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前 言在機器學(xué)習(xí)的領(lǐng)域中,根據(jù)反饋的不同,學(xué)習(xí)技術(shù)可以分為監(jiān)督學(xué)習(xí)、非監(jiān)督學(xué)習(xí)和強化學(xué)習(xí)這三大類。其中強化學(xué)習(xí)作為一種以環(huán)境反饋作為輸入的、特殊的、適應(yīng)環(huán)境的機械學(xué)習(xí)方法,被認(rèn)為是設(shè)計智能Agent的核心技術(shù)之一。近年來,隨著高性能計算、大數(shù)據(jù)和深度學(xué)習(xí)技術(shù)的發(fā)展,強化學(xué)習(xí)算法也得到了廣泛的關(guān)注和快速發(fā)展,成為目前機器學(xué)習(xí)領(lǐng)域的研究熱點之一1。所謂的強化學(xué)習(xí)是從環(huán)境狀態(tài)學(xué)習(xí)到動

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

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

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

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

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

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

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

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

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

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

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

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

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

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

21、的行動方針,以我個人的觀點意思就是為了實現(xiàn)某個目的而做出的一些方法的集合,舉例來講就是一個人需要投資理財,而業(yè)務(wù)員提供的許多投資理財?shù)姆桨妇褪遣呗裕欢荻仁且粋€數(shù)學(xué)名詞,它表示某一函數(shù)求導(dǎo)后可以得到某個點沿著它的方向的最大值,數(shù)學(xué)里一般用表示。所以策略梯度的意思就是求策略所提供的方案集合中的最優(yōu)解。策略梯度的方法是最先在策略搜索方法里提出來的,策略搜索講的是將策略參數(shù)化,根據(jù)馬爾科夫決策過程可以將策略表示為(s|a),這樣來強化學(xué)習(xí)的意思就是找到最好的參數(shù)使得策略最優(yōu),從而求得的回報期望也就越大。這樣的話,策略搜索就變成了一個優(yōu)化的問題,而策略梯度就是解決優(yōu)化問題的一種方法,也就是最速下降法。

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

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

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

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

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

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

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

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

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

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

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

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

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

35、.1節(jié) DDPG根據(jù)之前的介紹,DDPG采用深度神經(jīng)網(wǎng)絡(luò)的異策略Actor-Critic算法,給出偽代碼:1、隨機初始化評論家網(wǎng)絡(luò)Q(s,a|Q)和行動者(s| )權(quán)重Q和2、初始化目標(biāo)網(wǎng)絡(luò)Q和的權(quán)重QQ ,3、初始化回復(fù)緩沖區(qū)R4、For episode=1,M do5、初始化一個隨機過程N進行動作探索6、獲得初始觀察狀態(tài)s17、For t=1,T do8、選擇動作at=(st|)+Nt用于動作探索9、執(zhí)行行動at,并且觀察獎勵rt和觀察新狀態(tài)st+110、儲存轉(zhuǎn)換(st,at,rt,st+1)放入R11、隨機從R中采樣N個轉(zhuǎn)換的小批次(st,at,rt,st+1)12、設(shè)置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、更新目標(biāo)網(wǎng)絡(luò):QQ+(1-) Q +(1-) 結(jié)束結(jié)束因為DDPG采用的深度神經(jīng)網(wǎng)絡(luò),這個方法就要用到經(jīng)驗回放和獨立的目標(biāo)網(wǎng)絡(luò)技術(shù),為代碼的第1、2兩步是對兩個目標(biāo)actor和critic兩個進行獨立網(wǎng)絡(luò)處理;第3步是設(shè)置緩沖區(qū),主要用來儲存經(jīng)驗回放得到的數(shù)據(jù);第8步at=(st|)+Nt的公式是將行動策略設(shè)置成隨機策略;第9、10兩步是實現(xiàn)經(jīng)驗回放,而第11步y(tǒng)i=ri

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

38、t,v 當(dāng)非終端為st/從最后一個狀態(tài)引導(dǎo)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執(zhí)行異步更新使用d和v使用dvuntil T>Tmax從偽代碼分析第1、2步是設(shè)置參數(shù)和計步器;第3步初始化計步器;第4步重啟梯度;第5步同步線程的參數(shù);第8步到第11步是訓(xùn)練數(shù)據(jù)(s,a,r)序列的生成;第13步采用的是TD方式梯度下降更新狀態(tài)值參數(shù)。實驗結(jié)果為:第4.3節(jié) TRPOTRPO算法的偽代碼:/保證非遞

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

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

溫馨提示

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

評論

0/150

提交評論