楊薛鈺,陳建平,傅啟明1,,5,陸 悠1,,5,吳宏杰1,,5
1.蘇州科技大學(xué) 電子與信息工程學(xué)院,江蘇 蘇州 215009
2.蘇州科技大學(xué) 江蘇省建筑智慧節(jié)能重點實驗室,江蘇 蘇州 215009
3.蘇州科技大學(xué) 蘇州市移動網(wǎng)絡(luò)技術(shù)與應(yīng)用重點實驗室,江蘇 蘇州 215009
4.珠海米棗智能科技有限公司,廣東 珠海 519000
5.蘇州科技大學(xué) 蘇州市虛擬現(xiàn)實智能交互與應(yīng)用技術(shù)重點實驗室,江蘇 蘇州 215009
強化學(xué)習(xí)是機器學(xué)習(xí)的一個重要分支,強化學(xué)習(xí)的基本思想就是學(xué)習(xí)如何將場景映射到動作,以獲得最大的數(shù)值獎賞信號,從而學(xué)習(xí)完成目標(biāo)的最優(yōu)策略[1]。具體而言,就是智能體處在一個環(huán)境中,每個狀態(tài)為智能體對當(dāng)前環(huán)境的感知,智能體通過動作來影響環(huán)境,當(dāng)智能體執(zhí)行一個動作后,會使得環(huán)境按照某種概率轉(zhuǎn)移到另外一種狀態(tài);同時,環(huán)境會根據(jù)潛在的獎賞函數(shù)反饋給智能體一個獎賞。強化學(xué)習(xí)中主要包括四個要素:狀態(tài)、動作、轉(zhuǎn)移概率以及獎賞函數(shù)。目前強化學(xué)習(xí)在游戲博弈,工業(yè)領(lǐng)域中均得到很好的應(yīng)用[2]。
深度學(xué)習(xí)是機器學(xué)習(xí)的另一個重要的分支,是一種以人工神經(jīng)網(wǎng)絡(luò)為架構(gòu),對數(shù)據(jù)進行表征學(xué)習(xí)的算法,它是從數(shù)據(jù)中學(xué)習(xí)表示的一種新方法[3]。強調(diào)從連續(xù)的層中進行學(xué)習(xí),這些層對應(yīng)于越來越有意義的表示。至今為止已有數(shù)種深度學(xué)習(xí)框架,如深度神經(jīng)網(wǎng)絡(luò)、卷積神經(jīng)網(wǎng)絡(luò)和深度置信網(wǎng)絡(luò)等。最近幾年,深度學(xué)習(xí)在實踐中也取得了革命性的進展,在計算機視覺、語音識別、自然語言處理等領(lǐng)域取得了顯著的成果[4]。
目前,越來越多的任務(wù)當(dāng)中是以高維數(shù)據(jù)為輸入,以此來求得最優(yōu)策略。而當(dāng)狀態(tài)動作空間為高維連續(xù)的時候,單純的強化學(xué)習(xí)將不再適用。谷歌的Deep-Mind 團隊將強化學(xué)習(xí)和深度學(xué)習(xí)相結(jié)合,提出了深度強化學(xué)習(xí)的算法,在2016 年的人機大戰(zhàn)中,Alpha Go[5]以4∶1戰(zhàn)勝了韓國的圍棋世界冠軍李世石。其后不久,Alpha Zero[6]利用了深度強化學(xué)習(xí)的方法,在無需借助外部力量的情況下,僅利用深度強化學(xué)習(xí)進行自我博弈,最終以100∶0 的戰(zhàn)績戰(zhàn)勝了Alpha Go。近些年來,深度強化學(xué)習(xí)的研究取得了重要的進展,在各個領(lǐng)域得到了實際的應(yīng)用。目前,深度強化學(xué)習(xí)的研究已經(jīng)成為人工智能領(lǐng)域的一個研究熱點。谷歌DeepMind團隊將卷積神經(jīng)網(wǎng)絡(luò)和強化學(xué)習(xí)中的Q 學(xué)習(xí)[7]算法相結(jié)合,提出了深度Q 學(xué)習(xí)算法(Deep Q-Network,DQN)。該算法已在多種Atari游戲中達到或者超過了人類水平的表現(xiàn),從那時候起,很多擴展性的方法不斷被提了出來。深度強化學(xué)習(xí)的算法主要有Double DQN[8]、dueling DQN[9]、Noisy DQN[10]等,以上這些算法各自都可以提升DQN 性能的各個方面。但是,DQN 在解決高維連續(xù)的動作空間問題的時候,只能將連續(xù)動作離散化,這將會導(dǎo)致離散動作的數(shù)量隨著動作維度的增加而呈指數(shù)型的增長,同時在將連續(xù)的動作離散化的過程之中,將會使動作域的結(jié)構(gòu)發(fā)生改變[11]。然而在大部分情況下,動作域的結(jié)構(gòu)對于實際問題的求解是至關(guān)重要的。目前,DQN算法以及其他改進的算法并不能夠很好地解決現(xiàn)實問題中連續(xù)動作的問題。在解決連續(xù)性動作的問題之中,通常采用策略梯度的方法。策略梯度方法不采用迂回的方式更新策略,而是直接計算策略可能更新的方向,他不通過誤差進行反向傳播,而是直接通過觀測到的信息選出一個行為進行反向傳播,沒有誤差,通過獎賞值的大小對選擇動作的可能性進行增強或減弱,好的動作下次被選中的概率將增大,不好的動作下次被選擇的概率將減小。與DQN算法以及各種改進的算法相比較,策略梯度能直接適用高維或者連續(xù)行為動作空間的強化學(xué)習(xí)情景。在2014年提出了DPG確定性策略梯度算法(Deterministic Policy Gradient)[12],DPG 算法的每一步行為通過函數(shù)μ直接獲得確定的值,Policy Gradient 其本質(zhì)是一個隨機的策略,而確定性策略梯度能夠得到一個確定的動作。DPG算法的動作是確定值,而不是概率分布。與PG算法相比較,具有更好的策略優(yōu)化效果。其后Lillicrap 等人[13]將DPG(Deterministic Policy Gradient)算法[14]與DQN 算法相結(jié)合,提出了DDPG(Deep Deterministic Policy Gradient)算法。DDPG 算法吸收了Actor-Critic 算法讓Policy Gradient 單步更新的優(yōu)點,同時吸收了DQN算法的精華,合并成同一種算法。DDPG算法在連續(xù)性動作上能夠更有效的學(xué)習(xí),相比于DQN 算法,DDPG 在求解最優(yōu)策略的過程中需要的時間步更低,但是DDPG算法在尋找最優(yōu)策略的過程中,所需的樣本數(shù)據(jù)量巨大,并且算法的收斂速度還需要提高。
本文在DDPG算法的基礎(chǔ)之上結(jié)合隨機方差減小梯度方法提出了隨機方差減小確定性策略梯度(Stochastic Variance Reduction-Deep Deterministic Policy Gradient,SVR-DDPG)算法。針對原有DDPG 算法訓(xùn)練不穩(wěn)定,樣本利用率差,收斂速度慢的缺點,結(jié)合隨機方差減小梯度方法,通過減小梯度估計中的方差,優(yōu)化了DDPG算法,通過實驗結(jié)果證明,與DDPG 算法相比較,SVRDDPG算法具有更快的收斂速度和更好的穩(wěn)定性。
當(dāng)強化學(xué)習(xí)的任務(wù)滿足馬爾可夫性質(zhì)的時候,一般被稱為馬爾可夫決策過程(Markov Decision Process)[15],通常強化學(xué)習(xí)的問題可以建模成一個馬爾可夫決策過程。在馬爾可夫決策過程中,將它用一個元組來表示,S表示決策過程之中的狀態(tài)集合,P表示狀態(tài)之間的轉(zhuǎn)移概率,R表示采取某一動作到達下一狀態(tài)的時候的回報值,γ表示折扣因子。
強化學(xué)習(xí)算法的目的是尋找最優(yōu)策略,并且運用這個策略進行動作的選擇,以期待該動作能獲得最大的獎賞值,在強化學(xué)習(xí)當(dāng)中,策略用字母π表示,π(s,a)表示在狀態(tài)s下選擇動作a的概率。
強化學(xué)習(xí)的算法是基于估計值函數(shù)的,所以在強化學(xué)習(xí)中,運用值函數(shù)來對策略的好壞進行評估,可以分為基于動作值函數(shù)Q(π)和基于狀態(tài)值函數(shù)V(π)的。Q(π)表示狀態(tài)動作對(s,a)由策略π得到的累計期望獎賞。V(π)表示在狀態(tài)s由策略π得到的累計期望獎賞。通常采用動作值函數(shù)來評估策略的好壞,即:

稱為bellman方程。
強化學(xué)習(xí)當(dāng)中,通過Q*來表示最優(yōu)策略,相對應(yīng)的Q*(s,a)表示為:

式(2)被稱為最優(yōu)bellman公式。
DDPG算法是以Actor-Critic算法為框架[16],同時結(jié)合了DPG算法以及DQN算法的優(yōu)點。在DPG算法中,其策略梯度可以表示為如下公式:

在隨機策略方法中,策略的梯度由狀態(tài)和動作同時決定,而在確定性策略方法中,策略梯度主要由狀態(tài)決定,所以DPG方法收斂所需要的樣本較少。
而DDPG 算法中,行動者部分利用公式(3)進行參數(shù)更新,而在評論家部分利用公式(4)進行更新,但是在利用公式(4)對評論家網(wǎng)絡(luò)直接進行更新的時候會出現(xiàn)網(wǎng)絡(luò)的震蕩,因此在更新過程中,會同時計算相應(yīng)的目標(biāo)值,即公式(5)中的yt。

為了解決網(wǎng)絡(luò)震蕩帶來的問題,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ò),來更新目標(biāo)參數(shù),其更新規(guī)則為該更新方法可以有效提高算法的穩(wěn)定性。與此同時,DDPG算法中引入了DQN中的經(jīng)驗回放機制,打破經(jīng)驗池中樣本關(guān)聯(lián)性,提高了參數(shù)更新的有效性。
在DDPG算法中,為了增加agent對環(huán)境的探索,引入了隨機噪聲U,使動作選擇具有一定隨機性,以此完成策略探索,具體公式如下:

Adam[17]算法是對隨機梯度下降算法的一個擴展,被廣泛運用于深度學(xué)習(xí)模型中。Adam算法是一種基于一階梯度信息迭代更新網(wǎng)絡(luò)參數(shù)權(quán)值的有效隨機方法,一旦有了目標(biāo)函數(shù)的梯度,Adam 算法可以自適應(yīng)的估計梯度的第一矩和第二矩,并進一步計算自適應(yīng)學(xué)習(xí)率。
Adam 算法是一種被廣泛使用的隨機優(yōu)化算法,并且在一系列具有挑戰(zhàn)性的任務(wù)中表現(xiàn)優(yōu)異,但是也存在不足,它的參數(shù)更新規(guī)則僅僅是基于隨機批次樣本的一階梯度信息,由于隨機抽樣將會引起方差,因此這種更新規(guī)則在更新過程中存在錯誤,梯度更新將會不準(zhǔn)確。
近似梯度誤差是代價函數(shù)f(ω)的梯度方向估計誤差,ω是該函數(shù)的超參數(shù),往往更新時會使用梯度下降法進行迭代優(yōu)化,從而使得算法運算過程中損失最小。通常在給定經(jīng)驗緩沖區(qū)中保留一定的學(xué)習(xí)樣本的情況下,理想的損失函數(shù)梯度估計利用這些學(xué)習(xí)樣本提供的當(dāng)前信息給出準(zhǔn)確的學(xué)習(xí)方向,從而使Agent能夠通過優(yōu)化超參數(shù)快速收斂到策略的最優(yōu)梯度方向。但在DDPG 算法進行梯度估計過程中會出現(xiàn)近似梯度誤差。近似梯度估計誤差是由很多原因引起的:首先由于極小化的精確度不高,導(dǎo)致了當(dāng)前超參數(shù)ω的次優(yōu)性,其次,用來推導(dǎo)梯度的樣本的有限的表示數(shù)。另外,由于經(jīng)驗回放緩沖區(qū)的有限存儲導(dǎo)致了不可見的狀態(tài)轉(zhuǎn)移和策略,從而出現(xiàn)錯誤。近似梯度估計誤差會導(dǎo)致梯度估計的失真,從而使得Agent 的策略選擇變得更糟,會導(dǎo)致算法性能的很大變化,使得算法的收斂速度變慢。因此為了發(fā)展快速的隨機一階方法,必須保證迭代越接近最優(yōu)時,隨機更新方向的方差越小。
在許多機器學(xué)習(xí)問題中,都將有限和優(yōu)化問題歸結(jié)為:

令ω*=arg minω f(ω)為方程(7)的最優(yōu)解,許多研究者都是為了找出ω的最優(yōu)解使得f(ω)-f(ω*)≤ε。為了解決以上述形式出現(xiàn)的問題的時候,通常使用隨機化方差減少一階方法,因其每次迭代代價低而特別有效。
在DDPG 算法中對在線網(wǎng)絡(luò)進行更新的時候通常使用Adam 優(yōu)化器。在應(yīng)用梯度信息進行迭代更新的時候,為了減小計算量,避免全梯度的計算難度,通常從N個樣本中按照一定的比例重新采樣一個大小為n的樣本集{x1,x2,…,xn},用這個樣本集的平均梯度來指導(dǎo)算法更新過程中的下降方向,而真正對下降方向起到指導(dǎo)作用的是全梯度,在Adam算法的更新過程中只是用樣本集n的平均梯度來近似全梯度。在更新過程中初始參數(shù)為θ,從訓(xùn)練集中采集樣本n{x1,x2,…,xn},對應(yīng)目標(biāo)為yi,因此更新過程中全梯度無偏估計如下:

那么采樣過程中隨機變量{x1,x2,…,xn}的期望E即:

由此可得在更新過程中全梯度近似的方差如下:

式(10)中E也是采樣過程中隨機變量的期望,而在算法更新過程中,為了減小計算量,利用全梯度的無偏估計代替全梯度時,當(dāng)隨機采樣樣本集大小n與N存在差異時方差將會出現(xiàn),此時方差的大小將會對算法的收斂速度,穩(wěn)定性產(chǎn)生影響。
為了解決DDPG算法更新過程中,由近似梯度誤差所帶來的收斂速度變慢的問題,減小隨機更新方向的方差,本文將SVRG算法運用到隨機一階方法當(dāng)中。
隨機方差減小梯度方法是一種不需要梯度存儲的隨機梯度下降的顯示方差縮減方法,該方法利用變量控制,具有非常快的收斂速度,適用于神經(jīng)網(wǎng)絡(luò)訓(xùn)練等復(fù)雜問題。
SVRG 算法在更新過程中將會保存每一次迭代接近最優(yōu)解ω*的,該算法將預(yù)先計算好一個平均梯度作為一個錨點,n是訓(xùn)練樣本的子集,
在孔子的思想中,智、仁、勇是君子應(yīng)當(dāng)具備的三種德行,《中庸》有“知(智)、仁、勇三者,天下之達德也”。“仁”作為儒家思想的核心,既為行武的前提,又是行武的目的。“驥不稱其力,稱其德也”[4](P157),“子曰:‘善人為邦百年,亦可以勝殘去殺矣。’誠哉是言也!”[4](P144)“智”是行武的重要品質(zhì),而“勇”在《論語》中較之“智”則占據(jù)了更重要的位置,實是春秋后期的動蕩社會好勇斗狠風(fēng)氣漸長時,孔子有針對性的闡發(fā)。孔子說“君子無所爭”“其爭也君子”,他所說的“爭”為“君子之爭”,所主張的“強”是“君子之強”。
SVRG算法更新公式如下:

在更新過程中,方差將會縮減,并且會找到更加精確的梯度更新方向。在DDPG算法中,對在線網(wǎng)絡(luò)更新的時候通常采用Adam優(yōu)化器。本次改進將SVRG算法和Adam 算法相結(jié)合,利用SVRG 算法在小隨機訓(xùn)練子集的基礎(chǔ)上找到更加精確的梯度方向。并將優(yōu)化后的一階信息傳播給Adam優(yōu)化器。
本文所提出的SVR-DDPG 算法如下所示,該算法將隨機方差減小的方法用于DDPG 算法的參數(shù)更新當(dāng)中,算法其具體實施如下:
算法1SVR-DDPG算法


算法在開始更新在線網(wǎng)絡(luò)參數(shù)的時候,從整個訓(xùn)練樣本中抽取樣本,形成訓(xùn)練樣本集Ns,然后把它固定在整個優(yōu)化過程的外循環(huán)中,使用樣本集Ns中的樣本計算平均梯度來構(gòu)造當(dāng)前錨點,以此解決優(yōu)化問題。在內(nèi)循環(huán)迭代中,通過從樣本集Ns中隨機抽取的小批量樣本nt的平均值來減小梯度,并通過更新公式(11)來更新參數(shù),因為所使用的個別訓(xùn)練樣本具有較大的方差,并且計算效率低下,為了充分利用樣本集Ns中樣本的信息,以便尋找到最優(yōu)的梯度估計更新方向。小批量樣本集的大小n和SVRG內(nèi)部循環(huán)迭代次數(shù)m,需滿足約束條件n×m≥N。
經(jīng)過SVRG 方差減小過程之后,得到更新參數(shù)θm和之前存儲的。計算出的估計方差減小梯度gs等于θm-。由于Adam 算法計算過程中有效步長不隨梯度的大小而變化,因此無需重新調(diào)整gs,在計算出gs后,遵循標(biāo)準(zhǔn)的Adam算法流程來構(gòu)建經(jīng)偏置校正的第一矩估計和第二階原始矩估計,并進一步確定這個訓(xùn)練迭代的更新參數(shù),計算更精確的梯度估計方向。以此來更準(zhǔn)確快速的更新在線網(wǎng)絡(luò)參數(shù)。


3.1.1 實驗描述
為了驗證本文算法的有效性,將DDPG算法與改經(jīng)后的SVR-DDPG 算法運用于Mountain Car 問題當(dāng)中,問題示意圖如圖1所示。

圖1 Mountain Car示意圖Fig.1 Diagram of Mountain Car
圖中有一帶坡度的山體,小車此時處于坡底,因為重力以及自身動力不足的原因,小車無法直接通過加速到達右側(cè)五角星所在的位置,必須通過前后加速借助慣性的方法到達坡頂,在每一個情節(jié)中,小車到達坡頂則實驗結(jié)束,小車的狀態(tài)s是二維的,一維是位置信息,用p表示,另一維是小車的速度,用v表示。

實驗中獎賞設(shè)置為,當(dāng)小車到達右側(cè)星星目標(biāo)位置后,立即獎賞100,當(dāng)小車處于其他狀態(tài)時,立即獎賞表示為:

3.1.2 實驗設(shè)置
本次實驗基于OpenAI Gym,實驗參數(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 個情節(jié)之后,將α修改為1.1α。每個情節(jié)中最大時間步數(shù)是1 000。在相同的實驗環(huán)境下,對兩種算法進行重復(fù)實驗,取實驗結(jié)果平均值來比較算法的性能。
3.1.3 實驗結(jié)果分析
將DDPG 算法與SVR-DDPG 算法運用于Mountain Car 實驗當(dāng)中,實驗當(dāng)中,SVR-DDPG 算法的收斂速度明顯優(yōu)于原始DDPG 算法。其實驗結(jié)果如圖2 所示,圖中橫坐標(biāo)表示情節(jié)數(shù),縱坐標(biāo)表示算法執(zhí)行20次之后的回報均值。從圖2中可以看出,原始DDPG算法在200個情節(jié)是已經(jīng)取得了較高的回報值,但是還未完全收斂,一直到800 個情節(jié)左右時才收斂,而改進后的SVR-DDPG算法在220個情節(jié)左右時基本完全收斂,未出現(xiàn)明顯震蕩,與原始DDPG算法比較更加快速穩(wěn)定。

圖2 算法性能比較Fig.2 Performance comparision of different algorithms
如圖3 是SVR-DDPG 算法在Mountain Car 實驗中的實際方差減小效果圖,如圖所示橫坐標(biāo)代表了情節(jié)數(shù),縱坐標(biāo)代表了算法實驗中的方差。由圖3可以看出SVR-DDPG 算法在Mountain Car 實驗中具有一定的方差減小效果。而且當(dāng)η取0.01 時方差的減小效果明顯優(yōu)于當(dāng)η取0.005的時候,即當(dāng)η的取值越大的時候,方差減小效果越好。

圖3 不同η 的SVR-DDPG方差比較Fig.3 Comparison of SVR-DDPG variance with different η
如圖4 表示不同的學(xué)習(xí)率的SVR-DDPG 算法收斂速度的比較圖,其他參數(shù)設(shè)置均不改變,橫、縱坐標(biāo)分別表示情節(jié)數(shù)和每個情節(jié)的回報值,算法單獨執(zhí)行20次,取平均值。學(xué)習(xí)率分別取值為0.001、0.005、0.01,從圖3中可以看出隨著η值的增大,方差減小性能越來越優(yōu)秀,因此算法的性能也得到了提高,從圖4中可以看出,隨著學(xué)習(xí)率的增加,算法收斂效果越來越好。綜上所述當(dāng)設(shè)置學(xué)習(xí)率為0.01時,算法的收斂效率最好。

圖4 不同η 的SVR-DDPG算法Mountain Car性能對比Fig.4 Performance comparision of SVR-DDPG with different η on Mountain Car
3.2.1 實驗描述
為了進一步驗證改進算法的有效性,再一次將SVR-DDPG算法應(yīng)用于倒立擺控制問題當(dāng)中,并與傳統(tǒng)的DDPG算法進行比較分析,問題示意如圖5所示。

圖5 倒立擺Fig.5 Inverted pendulum
圖5中有一個倒立的鐘擺,鐘擺擺桿繞著轉(zhuǎn)軸隨機擺動。Agent 主要目的是為了尋找一個最優(yōu)策略,使得鐘擺擺桿一直處于豎直狀態(tài)。該實驗是在OpenAI Gym的實驗環(huán)境下完成的,鐘擺的狀態(tài)是二維的,分別為鐘擺的位置和鐘擺的速度。
鐘擺狀態(tài)可表示為:

鐘擺的動作表示對鐘擺的作用力,是一維的,取值范圍為[-2,2] 。動作表示如下:

其中,r等于式(12)的計算值的概率為0.1,等于0 的概率為0.9。
3.2.2 實驗設(shè)置
本次實驗基于OpenAI Gym,實驗參數(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 個情節(jié)之后,將α修改為1.1α。每個情節(jié)中最大時間步數(shù)是1 000。在相同的實驗環(huán)境下,對兩種算法進行重復(fù)實驗,取實驗結(jié)果平均值來比較算法的性能。
3.2.3 實驗結(jié)果分析
本次實驗將DDPG 算法及SVR-DDPG 算法運用于倒立擺控制問題,兩種算法在倒立擺問題中算法執(zhí)行10次的平均獎賞如圖6所示。

圖6 算法性能比較Fig.6 Performance comparison of different algorithms
如圖6 所示,橫坐標(biāo)表示情節(jié)數(shù),縱坐標(biāo)表示獎賞值。比較兩個算法的表現(xiàn),SVR-DDPG算法在300個情節(jié)時已經(jīng)基本收斂,未出現(xiàn)較大波動,平均獎賞基本保持穩(wěn)定,而原始的DDPG算法從400個情節(jié)以后才逐漸從震蕩中開始收斂,到800 個情節(jié)的時候才基本收斂。其中主要是應(yīng)為在原始的Adam 優(yōu)化算法基礎(chǔ)之上引入了梯度方差減小方法,減小了方差,加快了算法的收斂速度。此外還可以看出改經(jīng)后的DDPG 算法獎賞值的震蕩幅度明顯小于原始DDPG 算法,以此證明SVRDDPG算法性能以及穩(wěn)定性比DDPG算法更好。
如圖7 是SVR-DDPG 算法在倒立擺實驗中的實際方差減小效果圖,圖7 橫坐標(biāo)代表了情節(jié)數(shù),縱坐標(biāo)代表了算法實驗中的方差。由圖可以看出,改進后算法在倒立擺實驗中,方差得到了明顯減小,進一步說明了算法的方差減小效果,由圖中可以看出當(dāng)η取0.01時方差的減小效果明顯優(yōu)于當(dāng)η取0.005 的時候,即η的取值越大的時候,方差減小效果越好。

圖7 不同η 的SVR-DDPG方差比較Fig.7 Comparison of SVR-DDPG variance with different η
如圖8 所示不同的學(xué)習(xí)率的SVR-DDPG 算法收斂速度的比較圖,其他參數(shù)設(shè)置均不改變,橫、縱坐標(biāo)分別表示情節(jié)數(shù)和每個情節(jié)的回報值,算法單獨執(zhí)行20次,取平均值。學(xué)習(xí)率分別取值為0.001、0.005、0.01。從圖中可以看出,隨著學(xué)習(xí)率的增加,算法收斂效果越來越快。在實際操作過程中經(jīng)過多次實驗當(dāng)N=512,n=32,m=32,η=0.01 時,算法獲得最優(yōu)的收斂效果。

圖8 不同η 的SVR-DDPG算法倒立擺性能對比Fig.8 Performance comparison of SVR-DDPG with different η on inverted pendulum
本文針對原始DDPG 算法在應(yīng)用Adam 優(yōu)化器的過程中,會存在迭代曲線的震蕩、出現(xiàn)方差、收斂性能慢等問題,提出了一種基于隨機方差減小方法的DDPG算法SVR-DDPG算法。該方法將隨機方差減小方法SVRG 算法與Adam 算法相結(jié)合運用于DDPG 算法優(yōu)化當(dāng)中,通過減小方差,以此提升算法的收斂速度。將算法運用于Mountain Car 實驗以及倒立擺實驗當(dāng)中,比較驗證改進算法的性能。實驗結(jié)果表明,SVRDDPG 算法收斂速度以及穩(wěn)定性均優(yōu)于原始DDPG 算法。在未來的研究中,計劃研究高級約束優(yōu)化的影響,并探索與其他技術(shù)的潛在協(xié)同作用,并將算法運用于更大規(guī)模的連續(xù)狀態(tài)空間問題中,使得算法可以運用于實際問題中。