楊薛鈺,陳建平,傅啟明1,,5,陸 悠1,,5,吳宏杰1,,5
1.蘇州科技大學(xué) 電子與信息工程學(xué)院,江蘇 蘇州 215009
2.蘇州科技大學(xué) 江蘇省建筑智慧節(jié)能重點(diǎn)實(shí)驗(yàn)室,江蘇 蘇州 215009
3.蘇州科技大學(xué) 蘇州市移動(dòng)網(wǎng)絡(luò)技術(shù)與應(yīng)用重點(diǎn)實(shí)驗(yàn)室,江蘇 蘇州 215009
4.珠海米棗智能科技有限公司,廣東 珠海 519000
5.蘇州科技大學(xué) 蘇州市虛擬現(xiàn)實(shí)智能交互與應(yīng)用技術(shù)重點(diǎn)實(shí)驗(yàn)室,江蘇 蘇州 215009
強(qiáng)化學(xué)習(xí)是機(jī)器學(xué)習(xí)的一個(gè)重要分支,強(qiáng)化學(xué)習(xí)的基本思想就是學(xué)習(xí)如何將場(chǎng)景映射到動(dòng)作,以獲得最大的數(shù)值獎(jiǎng)賞信號(hào),從而學(xué)習(xí)完成目標(biāo)的最優(yōu)策略[1]。具體而言,就是智能體處在一個(gè)環(huán)境中,每個(gè)狀態(tài)為智能體對(duì)當(dāng)前環(huán)境的感知,智能體通過(guò)動(dòng)作來(lái)影響環(huán)境,當(dāng)智能體執(zhí)行一個(gè)動(dòng)作后,會(huì)使得環(huán)境按照某種概率轉(zhuǎn)移到另外一種狀態(tài);同時(shí),環(huán)境會(huì)根據(jù)潛在的獎(jiǎng)賞函數(shù)反饋給智能體一個(gè)獎(jiǎng)賞。強(qiáng)化學(xué)習(xí)中主要包括四個(gè)要素:狀態(tài)、動(dòng)作、轉(zhuǎn)移概率以及獎(jiǎng)賞函數(shù)。目前強(qiáng)化學(xué)習(xí)在游戲博弈,工業(yè)領(lǐng)域中均得到很好的應(yīng)用[2]。
深度學(xué)習(xí)是機(jī)器學(xué)習(xí)的另一個(gè)重要的分支,是一種以人工神經(jīng)網(wǎng)絡(luò)為架構(gòu),對(duì)數(shù)據(jù)進(jìn)行表征學(xué)習(xí)的算法,它是從數(shù)據(jù)中學(xué)習(xí)表示的一種新方法[3]。強(qiáng)調(diào)從連續(xù)的層中進(jìn)行學(xué)習(xí),這些層對(duì)應(yīng)于越來(lái)越有意義的表示。至今為止已有數(shù)種深度學(xué)習(xí)框架,如深度神經(jīng)網(wǎng)絡(luò)、卷積神經(jīng)網(wǎng)絡(luò)和深度置信網(wǎng)絡(luò)等。最近幾年,深度學(xué)習(xí)在實(shí)踐中也取得了革命性的進(jìn)展,在計(jì)算機(jī)視覺(jué)、語(yǔ)音識(shí)別、自然語(yǔ)言處理等領(lǐng)域取得了顯著的成果[4]。
目前,越來(lái)越多的任務(wù)當(dāng)中是以高維數(shù)據(jù)為輸入,以此來(lái)求得最優(yōu)策略。而當(dāng)狀態(tài)動(dòng)作空間為高維連續(xù)的時(shí)候,單純的強(qiáng)化學(xué)習(xí)將不再適用。谷歌的Deep-Mind 團(tuán)隊(duì)將強(qiáng)化學(xué)習(xí)和深度學(xué)習(xí)相結(jié)合,提出了深度強(qiáng)化學(xué)習(xí)的算法,在2016 年的人機(jī)大戰(zhàn)中,Alpha Go[5]以4∶1戰(zhàn)勝了韓國(guó)的圍棋世界冠軍李世石。其后不久,Alpha Zero[6]利用了深度強(qiáng)化學(xué)習(xí)的方法,在無(wú)需借助外部力量的情況下,僅利用深度強(qiáng)化學(xué)習(xí)進(jìn)行自我博弈,最終以100∶0 的戰(zhàn)績(jī)戰(zhàn)勝了Alpha Go。近些年來(lái),深度強(qiáng)化學(xué)習(xí)的研究取得了重要的進(jìn)展,在各個(gè)領(lǐng)域得到了實(shí)際的應(yīng)用。目前,深度強(qiáng)化學(xué)習(xí)的研究已經(jīng)成為人工智能領(lǐng)域的一個(gè)研究熱點(diǎn)。谷歌DeepMind團(tuán)隊(duì)將卷積神經(jīng)網(wǎng)絡(luò)和強(qiáng)化學(xué)習(xí)中的Q 學(xué)習(xí)[7]算法相結(jié)合,提出了深度Q 學(xué)習(xí)算法(Deep Q-Network,DQN)。該算法已在多種Atari游戲中達(dá)到或者超過(guò)了人類水平的表現(xiàn),從那時(shí)候起,很多擴(kuò)展性的方法不斷被提了出來(lái)。深度強(qiáng)化學(xué)習(xí)的算法主要有Double DQN[8]、dueling DQN[9]、Noisy DQN[10]等,以上這些算法各自都可以提升DQN 性能的各個(gè)方面。但是,DQN 在解決高維連續(xù)的動(dòng)作空間問(wèn)題的時(shí)候,只能將連續(xù)動(dòng)作離散化,這將會(huì)導(dǎo)致離散動(dòng)作的數(shù)量隨著動(dòng)作維度的增加而呈指數(shù)型的增長(zhǎng),同時(shí)在將連續(xù)的動(dòng)作離散化的過(guò)程之中,將會(huì)使動(dòng)作域的結(jié)構(gòu)發(fā)生改變[11]。然而在大部分情況下,動(dòng)作域的結(jié)構(gòu)對(duì)于實(shí)際問(wèn)題的求解是至關(guān)重要的。目前,DQN算法以及其他改進(jìn)的算法并不能夠很好地解決現(xiàn)實(shí)問(wèn)題中連續(xù)動(dòng)作的問(wèn)題。在解決連續(xù)性動(dòng)作的問(wèn)題之中,通常采用策略梯度的方法。策略梯度方法不采用迂回的方式更新策略,而是直接計(jì)算策略可能更新的方向,他不通過(guò)誤差進(jìn)行反向傳播,而是直接通過(guò)觀測(cè)到的信息選出一個(gè)行為進(jìn)行反向傳播,沒(méi)有誤差,通過(guò)獎(jiǎng)賞值的大小對(duì)選擇動(dòng)作的可能性進(jìn)行增強(qiáng)或減弱,好的動(dòng)作下次被選中的概率將增大,不好的動(dòng)作下次被選擇的概率將減小。與DQN算法以及各種改進(jìn)的算法相比較,策略梯度能直接適用高維或者連續(xù)行為動(dòng)作空間的強(qiáng)化學(xué)習(xí)情景。在2014年提出了DPG確定性策略梯度算法(Deterministic Policy Gradient)[12],DPG 算法的每一步行為通過(guò)函數(shù)μ直接獲得確定的值,Policy Gradient 其本質(zhì)是一個(gè)隨機(jī)的策略,而確定性策略梯度能夠得到一個(gè)確定的動(dòng)作。DPG算法的動(dòng)作是確定值,而不是概率分布。與PG算法相比較,具有更好的策略優(yōu)化效果。其后Lillicrap 等人[13]將DPG(Deterministic Policy Gradient)算法[14]與DQN 算法相結(jié)合,提出了DDPG(Deep Deterministic Policy Gradient)算法。DDPG 算法吸收了Actor-Critic 算法讓Policy Gradient 單步更新的優(yōu)點(diǎn),同時(shí)吸收了DQN算法的精華,合并成同一種算法。DDPG算法在連續(xù)性動(dòng)作上能夠更有效的學(xué)習(xí),相比于DQN 算法,DDPG 在求解最優(yōu)策略的過(guò)程中需要的時(shí)間步更低,但是DDPG算法在尋找最優(yōu)策略的過(guò)程中,所需的樣本數(shù)據(jù)量巨大,并且算法的收斂速度還需要提高。
本文在DDPG算法的基礎(chǔ)之上結(jié)合隨機(jī)方差減小梯度方法提出了隨機(jī)方差減小確定性策略梯度(Stochastic Variance Reduction-Deep Deterministic Policy Gradient,SVR-DDPG)算法。針對(duì)原有DDPG 算法訓(xùn)練不穩(wěn)定,樣本利用率差,收斂速度慢的缺點(diǎn),結(jié)合隨機(jī)方差減小梯度方法,通過(guò)減小梯度估計(jì)中的方差,優(yōu)化了DDPG算法,通過(guò)實(shí)驗(yàn)結(jié)果證明,與DDPG 算法相比較,SVRDDPG算法具有更快的收斂速度和更好的穩(wěn)定性。
當(dāng)強(qiáng)化學(xué)習(xí)的任務(wù)滿足馬爾可夫性質(zhì)的時(shí)候,一般被稱為馬爾可夫決策過(guò)程(Markov Decision Process)[15],通常強(qiáng)化學(xué)習(xí)的問(wèn)題可以建模成一個(gè)馬爾可夫決策過(guò)程。在馬爾可夫決策過(guò)程中,將它用一個(gè)元組來(lái)表示,S表示決策過(guò)程之中的狀態(tài)集合,P表示狀態(tài)之間的轉(zhuǎn)移概率,R表示采取某一動(dòng)作到達(dá)下一狀態(tài)的時(shí)候的回報(bào)值,γ表示折扣因子。
強(qiáng)化學(xué)習(xí)算法的目的是尋找最優(yōu)策略,并且運(yùn)用這個(gè)策略進(jìn)行動(dòng)作的選擇,以期待該動(dòng)作能獲得最大的獎(jiǎng)賞值,在強(qiáng)化學(xué)習(xí)當(dāng)中,策略用字母π表示,π(s,a)表示在狀態(tài)s下選擇動(dòng)作a的概率。
強(qiáng)化學(xué)習(xí)的算法是基于估計(jì)值函數(shù)的,所以在強(qiáng)化學(xué)習(xí)中,運(yùn)用值函數(shù)來(lái)對(duì)策略的好壞進(jìn)行評(píng)估,可以分為基于動(dòng)作值函數(shù)Q(π)和基于狀態(tài)值函數(shù)V(π)的。Q(π)表示狀態(tài)動(dòng)作對(duì)(s,a)由策略π得到的累計(jì)期望獎(jiǎng)賞。V(π)表示在狀態(tài)s由策略π得到的累計(jì)期望獎(jiǎng)賞。通常采用動(dòng)作值函數(shù)來(lái)評(píng)估策略的好壞,即:
稱為bellman方程。
強(qiáng)化學(xué)習(xí)當(dāng)中,通過(guò)Q*來(lái)表示最優(yōu)策略,相對(duì)應(yīng)的Q*(s,a)表示為:
式(2)被稱為最優(yōu)bellman公式。
DDPG算法是以Actor-Critic算法為框架[16],同時(shí)結(jié)合了DPG算法以及DQN算法的優(yōu)點(diǎn)。在DPG算法中,其策略梯度可以表示為如下公式:
在隨機(jī)策略方法中,策略的梯度由狀態(tài)和動(dòng)作同時(shí)決定,而在確定性策略方法中,策略梯度主要由狀態(tài)決定,所以DPG方法收斂所需要的樣本較少。
而DDPG 算法中,行動(dòng)者部分利用公式(3)進(jìn)行參數(shù)更新,而在評(píng)論家部分利用公式(4)進(jìn)行更新,但是在利用公式(4)對(duì)評(píng)論家網(wǎng)絡(luò)直接進(jìn)行更新的時(shí)候會(huì)出現(xiàn)網(wǎng)絡(luò)的震蕩,因此在更新過(guò)程中,會(huì)同時(shí)計(jì)算相應(yīng)的目標(biāo)值,即公式(5)中的yt。
為了解決網(wǎng)絡(luò)震蕩帶來(lái)的問(wèn)題,DDPG 算法采用了DQN 中的目標(biāo)網(wǎng)絡(luò),但是并非直接的將權(quán)重參數(shù)復(fù)制到目標(biāo)網(wǎng)絡(luò)中去,而是采用soft 的方式更新參數(shù),在DDPG算法中,創(chuàng)建新的actor-critic網(wǎng)絡(luò),來(lái)更新目標(biāo)參數(shù),其更新規(guī)則為該更新方法可以有效提高算法的穩(wěn)定性。與此同時(shí),DDPG算法中引入了DQN中的經(jīng)驗(yàn)回放機(jī)制,打破經(jīng)驗(yàn)池中樣本關(guān)聯(lián)性,提高了參數(shù)更新的有效性。
在DDPG算法中,為了增加agent對(duì)環(huán)境的探索,引入了隨機(jī)噪聲U,使動(dòng)作選擇具有一定隨機(jī)性,以此完成策略探索,具體公式如下:
Adam[17]算法是對(duì)隨機(jī)梯度下降算法的一個(gè)擴(kuò)展,被廣泛運(yùn)用于深度學(xué)習(xí)模型中。Adam算法是一種基于一階梯度信息迭代更新網(wǎng)絡(luò)參數(shù)權(quán)值的有效隨機(jī)方法,一旦有了目標(biāo)函數(shù)的梯度,Adam 算法可以自適應(yīng)的估計(jì)梯度的第一矩和第二矩,并進(jìn)一步計(jì)算自適應(yīng)學(xué)習(xí)率。
Adam 算法是一種被廣泛使用的隨機(jī)優(yōu)化算法,并且在一系列具有挑戰(zhàn)性的任務(wù)中表現(xiàn)優(yōu)異,但是也存在不足,它的參數(shù)更新規(guī)則僅僅是基于隨機(jī)批次樣本的一階梯度信息,由于隨機(jī)抽樣將會(huì)引起方差,因此這種更新規(guī)則在更新過(guò)程中存在錯(cuò)誤,梯度更新將會(huì)不準(zhǔn)確。
近似梯度誤差是代價(jià)函數(shù)f(ω)的梯度方向估計(jì)誤差,ω是該函數(shù)的超參數(shù),往往更新時(shí)會(huì)使用梯度下降法進(jìn)行迭代優(yōu)化,從而使得算法運(yùn)算過(guò)程中損失最小。通常在給定經(jīng)驗(yàn)緩沖區(qū)中保留一定的學(xué)習(xí)樣本的情況下,理想的損失函數(shù)梯度估計(jì)利用這些學(xué)習(xí)樣本提供的當(dāng)前信息給出準(zhǔn)確的學(xué)習(xí)方向,從而使Agent能夠通過(guò)優(yōu)化超參數(shù)快速收斂到策略的最優(yōu)梯度方向。但在DDPG 算法進(jìn)行梯度估計(jì)過(guò)程中會(huì)出現(xiàn)近似梯度誤差。近似梯度估計(jì)誤差是由很多原因引起的:首先由于極小化的精確度不高,導(dǎo)致了當(dāng)前超參數(shù)ω的次優(yōu)性,其次,用來(lái)推導(dǎo)梯度的樣本的有限的表示數(shù)。另外,由于經(jīng)驗(yàn)回放緩沖區(qū)的有限存儲(chǔ)導(dǎo)致了不可見(jiàn)的狀態(tài)轉(zhuǎn)移和策略,從而出現(xiàn)錯(cuò)誤。近似梯度估計(jì)誤差會(huì)導(dǎo)致梯度估計(jì)的失真,從而使得Agent 的策略選擇變得更糟,會(huì)導(dǎo)致算法性能的很大變化,使得算法的收斂速度變慢。因此為了發(fā)展快速的隨機(jī)一階方法,必須保證迭代越接近最優(yōu)時(shí),隨機(jī)更新方向的方差越小。
在許多機(jī)器學(xué)習(xí)問(wèn)題中,都將有限和優(yōu)化問(wèn)題歸結(jié)為:
令ω*=arg minω f(ω)為方程(7)的最優(yōu)解,許多研究者都是為了找出ω的最優(yōu)解使得f(ω)-f(ω*)≤ε。為了解決以上述形式出現(xiàn)的問(wèn)題的時(shí)候,通常使用隨機(jī)化方差減少一階方法,因其每次迭代代價(jià)低而特別有效。
在DDPG 算法中對(duì)在線網(wǎng)絡(luò)進(jìn)行更新的時(shí)候通常使用Adam 優(yōu)化器。在應(yīng)用梯度信息進(jìn)行迭代更新的時(shí)候,為了減小計(jì)算量,避免全梯度的計(jì)算難度,通常從N個(gè)樣本中按照一定的比例重新采樣一個(gè)大小為n的樣本集{x1,x2,…,xn},用這個(gè)樣本集的平均梯度來(lái)指導(dǎo)算法更新過(guò)程中的下降方向,而真正對(duì)下降方向起到指導(dǎo)作用的是全梯度,在Adam算法的更新過(guò)程中只是用樣本集n的平均梯度來(lái)近似全梯度。在更新過(guò)程中初始參數(shù)為θ,從訓(xùn)練集中采集樣本n{x1,x2,…,xn},對(duì)應(yīng)目標(biāo)為yi,因此更新過(guò)程中全梯度無(wú)偏估計(jì)如下:
那么采樣過(guò)程中隨機(jī)變量{x1,x2,…,xn}的期望E即:
由此可得在更新過(guò)程中全梯度近似的方差如下:
式(10)中E也是采樣過(guò)程中隨機(jī)變量的期望,而在算法更新過(guò)程中,為了減小計(jì)算量,利用全梯度的無(wú)偏估計(jì)代替全梯度時(shí),當(dāng)隨機(jī)采樣樣本集大小n與N存在差異時(shí)方差將會(huì)出現(xiàn),此時(shí)方差的大小將會(huì)對(duì)算法的收斂速度,穩(wěn)定性產(chǎn)生影響。
為了解決DDPG算法更新過(guò)程中,由近似梯度誤差所帶來(lái)的收斂速度變慢的問(wèn)題,減小隨機(jī)更新方向的方差,本文將SVRG算法運(yùn)用到隨機(jī)一階方法當(dāng)中。
隨機(jī)方差減小梯度方法是一種不需要梯度存儲(chǔ)的隨機(jī)梯度下降的顯示方差縮減方法,該方法利用變量控制,具有非常快的收斂速度,適用于神經(jīng)網(wǎng)絡(luò)訓(xùn)練等復(fù)雜問(wèn)題。
SVRG 算法在更新過(guò)程中將會(huì)保存每一次迭代接近最優(yōu)解ω*的,該算法將預(yù)先計(jì)算好一個(gè)平均梯度作為一個(gè)錨點(diǎn),n是訓(xùn)練樣本的子集,
在孔子的思想中,智、仁、勇是君子應(yīng)當(dāng)具備的三種德行,《中庸》有“知(智)、仁、勇三者,天下之達(dá)德也”。“仁”作為儒家思想的核心,既為行武的前提,又是行武的目的?!绑K不稱其力,稱其德也”[4](P157),“子曰:‘善人為邦百年,亦可以勝殘去殺矣?!\(chéng)哉是言也!”[4](P144)“智”是行武的重要品質(zhì),而“勇”在《論語(yǔ)》中較之“智”則占據(jù)了更重要的位置,實(shí)是春秋后期的動(dòng)蕩社會(huì)好勇斗狠風(fēng)氣漸長(zhǎng)時(shí),孔子有針對(duì)性的闡發(fā)。孔子說(shuō)“君子無(wú)所爭(zhēng)”“其爭(zhēng)也君子”,他所說(shuō)的“爭(zhēng)”為“君子之爭(zhēng)”,所主張的“強(qiáng)”是“君子之強(qiáng)”。
SVRG算法更新公式如下:
在更新過(guò)程中,方差將會(huì)縮減,并且會(huì)找到更加精確的梯度更新方向。在DDPG算法中,對(duì)在線網(wǎng)絡(luò)更新的時(shí)候通常采用Adam優(yōu)化器。本次改進(jìn)將SVRG算法和Adam 算法相結(jié)合,利用SVRG 算法在小隨機(jī)訓(xùn)練子集的基礎(chǔ)上找到更加精確的梯度方向。并將優(yōu)化后的一階信息傳播給Adam優(yōu)化器。
本文所提出的SVR-DDPG 算法如下所示,該算法將隨機(jī)方差減小的方法用于DDPG 算法的參數(shù)更新當(dāng)中,算法其具體實(shí)施如下:
算法1SVR-DDPG算法
算法在開始更新在線網(wǎng)絡(luò)參數(shù)的時(shí)候,從整個(gè)訓(xùn)練樣本中抽取樣本,形成訓(xùn)練樣本集Ns,然后把它固定在整個(gè)優(yōu)化過(guò)程的外循環(huán)中,使用樣本集Ns中的樣本計(jì)算平均梯度來(lái)構(gòu)造當(dāng)前錨點(diǎn),以此解決優(yōu)化問(wèn)題。在內(nèi)循環(huán)迭代中,通過(guò)從樣本集Ns中隨機(jī)抽取的小批量樣本nt的平均值來(lái)減小梯度,并通過(guò)更新公式(11)來(lái)更新參數(shù),因?yàn)樗褂玫膫€(gè)別訓(xùn)練樣本具有較大的方差,并且計(jì)算效率低下,為了充分利用樣本集Ns中樣本的信息,以便尋找到最優(yōu)的梯度估計(jì)更新方向。小批量樣本集的大小n和SVRG內(nèi)部循環(huán)迭代次數(shù)m,需滿足約束條件n×m≥N。
經(jīng)過(guò)SVRG 方差減小過(guò)程之后,得到更新參數(shù)θm和之前存儲(chǔ)的。計(jì)算出的估計(jì)方差減小梯度gs等于θm-。由于Adam 算法計(jì)算過(guò)程中有效步長(zhǎng)不隨梯度的大小而變化,因此無(wú)需重新調(diào)整gs,在計(jì)算出gs后,遵循標(biāo)準(zhǔn)的Adam算法流程來(lái)構(gòu)建經(jīng)偏置校正的第一矩估計(jì)和第二階原始矩估計(jì),并進(jìn)一步確定這個(gè)訓(xùn)練迭代的更新參數(shù),計(jì)算更精確的梯度估計(jì)方向。以此來(lái)更準(zhǔn)確快速的更新在線網(wǎng)絡(luò)參數(shù)。
3.1.1 實(shí)驗(yàn)描述
為了驗(yàn)證本文算法的有效性,將DDPG算法與改經(jīng)后的SVR-DDPG 算法運(yùn)用于Mountain Car 問(wèn)題當(dāng)中,問(wèn)題示意圖如圖1所示。
圖1 Mountain Car示意圖Fig.1 Diagram of Mountain Car
圖中有一帶坡度的山體,小車此時(shí)處于坡底,因?yàn)橹亓σ约白陨韯?dòng)力不足的原因,小車無(wú)法直接通過(guò)加速到達(dá)右側(cè)五角星所在的位置,必須通過(guò)前后加速借助慣性的方法到達(dá)坡頂,在每一個(gè)情節(jié)中,小車到達(dá)坡頂則實(shí)驗(yàn)結(jié)束,小車的狀態(tài)s是二維的,一維是位置信息,用p表示,另一維是小車的速度,用v表示。
實(shí)驗(yàn)中獎(jiǎng)賞設(shè)置為,當(dāng)小車到達(dá)右側(cè)星星目標(biāo)位置后,立即獎(jiǎng)賞100,當(dāng)小車處于其他狀態(tài)時(shí),立即獎(jiǎng)賞表示為:
3.1.2 實(shí)驗(yàn)設(shè)置
本次實(shí)驗(yàn)基于OpenAI Gym,實(shí)驗(yàn)參數(shù)設(shè)置如下:actor網(wǎng)絡(luò)以及critic網(wǎng)絡(luò)的參數(shù)學(xué)習(xí)率分別為10-4、10-3、L2權(quán)重縮減速率是10-2,折扣因子是0.99。目標(biāo)網(wǎng)絡(luò)中的更新參數(shù)設(shè)置α=0.001,每隔300 個(gè)情節(jié)之后,將α修改為1.1α。每個(gè)情節(jié)中最大時(shí)間步數(shù)是1 000。在相同的實(shí)驗(yàn)環(huán)境下,對(duì)兩種算法進(jìn)行重復(fù)實(shí)驗(yàn),取實(shí)驗(yàn)結(jié)果平均值來(lái)比較算法的性能。
3.1.3 實(shí)驗(yàn)結(jié)果分析
將DDPG 算法與SVR-DDPG 算法運(yùn)用于Mountain Car 實(shí)驗(yàn)當(dāng)中,實(shí)驗(yàn)當(dāng)中,SVR-DDPG 算法的收斂速度明顯優(yōu)于原始DDPG 算法。其實(shí)驗(yàn)結(jié)果如圖2 所示,圖中橫坐標(biāo)表示情節(jié)數(shù),縱坐標(biāo)表示算法執(zhí)行20次之后的回報(bào)均值。從圖2中可以看出,原始DDPG算法在200個(gè)情節(jié)是已經(jīng)取得了較高的回報(bào)值,但是還未完全收斂,一直到800 個(gè)情節(jié)左右時(shí)才收斂,而改進(jìn)后的SVR-DDPG算法在220個(gè)情節(jié)左右時(shí)基本完全收斂,未出現(xiàn)明顯震蕩,與原始DDPG算法比較更加快速穩(wěn)定。
圖2 算法性能比較Fig.2 Performance comparision of different algorithms
如圖3 是SVR-DDPG 算法在Mountain Car 實(shí)驗(yàn)中的實(shí)際方差減小效果圖,如圖所示橫坐標(biāo)代表了情節(jié)數(shù),縱坐標(biāo)代表了算法實(shí)驗(yàn)中的方差。由圖3可以看出SVR-DDPG 算法在Mountain Car 實(shí)驗(yàn)中具有一定的方差減小效果。而且當(dāng)η取0.01 時(shí)方差的減小效果明顯優(yōu)于當(dāng)η取0.005的時(shí)候,即當(dāng)η的取值越大的時(shí)候,方差減小效果越好。
圖3 不同η 的SVR-DDPG方差比較Fig.3 Comparison of SVR-DDPG variance with different η
如圖4 表示不同的學(xué)習(xí)率的SVR-DDPG 算法收斂速度的比較圖,其他參數(shù)設(shè)置均不改變,橫、縱坐標(biāo)分別表示情節(jié)數(shù)和每個(gè)情節(jié)的回報(bào)值,算法單獨(dú)執(zhí)行20次,取平均值。學(xué)習(xí)率分別取值為0.001、0.005、0.01,從圖3中可以看出隨著η值的增大,方差減小性能越來(lái)越優(yōu)秀,因此算法的性能也得到了提高,從圖4中可以看出,隨著學(xué)習(xí)率的增加,算法收斂效果越來(lái)越好。綜上所述當(dāng)設(shè)置學(xué)習(xí)率為0.01時(shí),算法的收斂效率最好。
圖4 不同η 的SVR-DDPG算法Mountain Car性能對(duì)比Fig.4 Performance comparision of SVR-DDPG with different η on Mountain Car
3.2.1 實(shí)驗(yàn)描述
為了進(jìn)一步驗(yàn)證改進(jìn)算法的有效性,再一次將SVR-DDPG算法應(yīng)用于倒立擺控制問(wèn)題當(dāng)中,并與傳統(tǒng)的DDPG算法進(jìn)行比較分析,問(wèn)題示意如圖5所示。
圖5 倒立擺Fig.5 Inverted pendulum
圖5中有一個(gè)倒立的鐘擺,鐘擺擺桿繞著轉(zhuǎn)軸隨機(jī)擺動(dòng)。Agent 主要目的是為了尋找一個(gè)最優(yōu)策略,使得鐘擺擺桿一直處于豎直狀態(tài)。該實(shí)驗(yàn)是在OpenAI Gym的實(shí)驗(yàn)環(huán)境下完成的,鐘擺的狀態(tài)是二維的,分別為鐘擺的位置和鐘擺的速度。
鐘擺狀態(tài)可表示為:
鐘擺的動(dòng)作表示對(duì)鐘擺的作用力,是一維的,取值范圍為[-2,2] 。動(dòng)作表示如下:
其中,r等于式(12)的計(jì)算值的概率為0.1,等于0 的概率為0.9。
3.2.2 實(shí)驗(yàn)設(shè)置
本次實(shí)驗(yàn)基于OpenAI Gym,實(shí)驗(yàn)參數(shù)設(shè)置如下:actor網(wǎng)絡(luò)以及critic網(wǎng)絡(luò)的參數(shù)學(xué)習(xí)率分別為10-4、10-3、L2權(quán)重縮減速率是10-2,折扣因子是0.99。目標(biāo)網(wǎng)絡(luò)中的更新參數(shù)設(shè)置α=0.001,每隔300 個(gè)情節(jié)之后,將α修改為1.1α。每個(gè)情節(jié)中最大時(shí)間步數(shù)是1 000。在相同的實(shí)驗(yàn)環(huán)境下,對(duì)兩種算法進(jìn)行重復(fù)實(shí)驗(yàn),取實(shí)驗(yàn)結(jié)果平均值來(lái)比較算法的性能。
3.2.3 實(shí)驗(yàn)結(jié)果分析
本次實(shí)驗(yàn)將DDPG 算法及SVR-DDPG 算法運(yùn)用于倒立擺控制問(wèn)題,兩種算法在倒立擺問(wèn)題中算法執(zhí)行10次的平均獎(jiǎng)賞如圖6所示。
圖6 算法性能比較Fig.6 Performance comparison of different algorithms
如圖6 所示,橫坐標(biāo)表示情節(jié)數(shù),縱坐標(biāo)表示獎(jiǎng)賞值。比較兩個(gè)算法的表現(xiàn),SVR-DDPG算法在300個(gè)情節(jié)時(shí)已經(jīng)基本收斂,未出現(xiàn)較大波動(dòng),平均獎(jiǎng)賞基本保持穩(wěn)定,而原始的DDPG算法從400個(gè)情節(jié)以后才逐漸從震蕩中開始收斂,到800 個(gè)情節(jié)的時(shí)候才基本收斂。其中主要是應(yīng)為在原始的Adam 優(yōu)化算法基礎(chǔ)之上引入了梯度方差減小方法,減小了方差,加快了算法的收斂速度。此外還可以看出改經(jīng)后的DDPG 算法獎(jiǎng)賞值的震蕩幅度明顯小于原始DDPG 算法,以此證明SVRDDPG算法性能以及穩(wěn)定性比DDPG算法更好。
如圖7 是SVR-DDPG 算法在倒立擺實(shí)驗(yàn)中的實(shí)際方差減小效果圖,圖7 橫坐標(biāo)代表了情節(jié)數(shù),縱坐標(biāo)代表了算法實(shí)驗(yàn)中的方差。由圖可以看出,改進(jìn)后算法在倒立擺實(shí)驗(yàn)中,方差得到了明顯減小,進(jìn)一步說(shuō)明了算法的方差減小效果,由圖中可以看出當(dāng)η取0.01時(shí)方差的減小效果明顯優(yōu)于當(dāng)η取0.005 的時(shí)候,即η的取值越大的時(shí)候,方差減小效果越好。
圖7 不同η 的SVR-DDPG方差比較Fig.7 Comparison of SVR-DDPG variance with different η
如圖8 所示不同的學(xué)習(xí)率的SVR-DDPG 算法收斂速度的比較圖,其他參數(shù)設(shè)置均不改變,橫、縱坐標(biāo)分別表示情節(jié)數(shù)和每個(gè)情節(jié)的回報(bào)值,算法單獨(dú)執(zhí)行20次,取平均值。學(xué)習(xí)率分別取值為0.001、0.005、0.01。從圖中可以看出,隨著學(xué)習(xí)率的增加,算法收斂效果越來(lái)越快。在實(shí)際操作過(guò)程中經(jīng)過(guò)多次實(shí)驗(yàn)當(dāng)N=512,n=32,m=32,η=0.01 時(shí),算法獲得最優(yōu)的收斂效果。
圖8 不同η 的SVR-DDPG算法倒立擺性能對(duì)比Fig.8 Performance comparison of SVR-DDPG with different η on inverted pendulum
本文針對(duì)原始DDPG 算法在應(yīng)用Adam 優(yōu)化器的過(guò)程中,會(huì)存在迭代曲線的震蕩、出現(xiàn)方差、收斂性能慢等問(wèn)題,提出了一種基于隨機(jī)方差減小方法的DDPG算法SVR-DDPG算法。該方法將隨機(jī)方差減小方法SVRG 算法與Adam 算法相結(jié)合運(yùn)用于DDPG 算法優(yōu)化當(dāng)中,通過(guò)減小方差,以此提升算法的收斂速度。將算法運(yùn)用于Mountain Car 實(shí)驗(yàn)以及倒立擺實(shí)驗(yàn)當(dāng)中,比較驗(yàn)證改進(jìn)算法的性能。實(shí)驗(yàn)結(jié)果表明,SVRDDPG 算法收斂速度以及穩(wěn)定性均優(yōu)于原始DDPG 算法。在未來(lái)的研究中,計(jì)劃研究高級(jí)約束優(yōu)化的影響,并探索與其他技術(shù)的潛在協(xié)同作用,并將算法運(yùn)用于更大規(guī)模的連續(xù)狀態(tài)空間問(wèn)題中,使得算法可以運(yùn)用于實(shí)際問(wèn)題中。