陳建平,周 鑫,傅啟明,高 振,付保川,吳宏杰
(蘇州科技大學(xué) a.電子與信息工程學(xué)院; b.江蘇省建筑智慧節(jié)能重點實驗室,江蘇 蘇州 215009)
強(qiáng)化學(xué)習(xí)(Reinforcement Learning,RL)是一種通過與環(huán)境交互將狀態(tài)映射到動作以獲取最大累積獎賞值的方法[1]。該方法設(shè)計思想來源于條件反射理論和動物學(xué)習(xí)理論,是一類重要的機(jī)器學(xué)習(xí)算法。自20世紀(jì)80年代被提出以來,經(jīng)過不斷發(fā)展,強(qiáng)化學(xué)習(xí)已經(jīng)在工程設(shè)計、模式識別、圖像處理、網(wǎng)絡(luò)優(yōu)化等方面得到了廣泛應(yīng)用[2]。由于強(qiáng)化學(xué)習(xí)方法特有的學(xué)習(xí)和計算方式,其在解決一些大規(guī)模或連續(xù)的狀態(tài)空間任務(wù)時,狀態(tài)空間的大小隨著特征數(shù)量的增加而呈指數(shù)級增長趨勢,所需計算量和存儲空間也指數(shù)級增長,導(dǎo)致“維數(shù)災(zāi)難”[3]問題,因此,傳統(tǒng)的強(qiáng)化學(xué)習(xí)方法無法滿足大狀態(tài)空間或者連續(xù)狀態(tài)空間的任務(wù)需求。目前,解決“維數(shù)災(zāi)難”問題的主要方法是狀態(tài)抽象和函數(shù)逼近。其中,函數(shù)逼近可以有效減少狀態(tài)的存儲空間,并且在大規(guī)模數(shù)據(jù)的訓(xùn)練中具備一定的泛化特性。
在解決大規(guī)模狀態(tài)空間的強(qiáng)化學(xué)習(xí)問題時引入深度學(xué)習(xí)(Deep Learning,DL)[4-5]可實現(xiàn)復(fù)雜函數(shù)的逼近。深度學(xué)習(xí)的概念源于對人工神經(jīng)網(wǎng)絡(luò)的研究,其通過學(xué)習(xí)一種深層的非線性網(wǎng)絡(luò)結(jié)構(gòu),擬合數(shù)據(jù)與標(biāo)簽之間的非線性關(guān)系,從而學(xué)習(xí)數(shù)據(jù)的本質(zhì)特征[6],實現(xiàn)復(fù)雜函數(shù)的逼近。谷歌的DeepMind團(tuán)隊在此基礎(chǔ)上創(chuàng)新性地將具有決策能力的強(qiáng)化學(xué)習(xí)與具有感知能力的深度學(xué)習(xí)相結(jié)合,提出了深度強(qiáng)化學(xué)習(xí)(Deep Reinforcement Learning,DRL)[7]的概念。此后,DeepMind構(gòu)造了人類專家級別的Agent,其對自身知識的構(gòu)建與學(xué)習(xí)都來源于原始輸入信號,無需任何人工編碼和領(lǐng)域知識,充分體現(xiàn)了DRL是一種端到端的感知與控制系統(tǒng),具有很強(qiáng)的通用性[8]。此后,深度強(qiáng)化學(xué)習(xí)被廣泛應(yīng)用于各種問題,如AlphaGo[9]、對抗網(wǎng)絡(luò)架構(gòu)[10]、機(jī)器人控制[11-12]等。
在深度強(qiáng)化學(xué)習(xí)概念出現(xiàn)之前,研究者主要將神經(jīng)網(wǎng)絡(luò)用于復(fù)雜高維數(shù)據(jù)的降維,以便于處理強(qiáng)化學(xué)習(xí)問題。文獻(xiàn)[13]結(jié)合淺層神經(jīng)網(wǎng)絡(luò)與強(qiáng)化學(xué)習(xí)解決視覺信號輸入問題,控制機(jī)器人完成推箱子等任務(wù)。文獻(xiàn)[14]提出視覺動作學(xué)習(xí)的概念,將高效的深度自動編碼器應(yīng)用于視覺學(xué)習(xí)控制中,使智能體具有與人相似的感知和決策能力。文獻(xiàn)[15]通過結(jié)合神經(jīng)演化方法與強(qiáng)化學(xué)習(xí),在賽車游戲TORCS中實現(xiàn)了賽車的自動駕駛。文獻(xiàn)[16]將深度置信網(wǎng)絡(luò)引入到強(qiáng)化學(xué)習(xí)中,用深度置信網(wǎng)絡(luò)替代傳統(tǒng)的值函數(shù)逼近器,成功應(yīng)用于車牌圖像的字符分割任務(wù)。文獻(xiàn)[17]采用Q學(xué)習(xí)構(gòu)建誤差函數(shù),利用深度神經(jīng)網(wǎng)絡(luò)優(yōu)化蜂窩系統(tǒng)的傳輸速率。文獻(xiàn)[18]將卷積神經(jīng)網(wǎng)絡(luò)與傳統(tǒng)RL中的Q學(xué)習(xí)[19]算法相結(jié)合,構(gòu)建深度Q網(wǎng)絡(luò)(Deep Q-Network,DQN)模型用于處理視覺感知的控制任務(wù)。此后,DeepMind團(tuán)隊結(jié)合DQN模型與目標(biāo)Q網(wǎng)絡(luò)模型對原始的DQN模型進(jìn)行改進(jìn),進(jìn)一步提升其處理視覺感知任務(wù)的能力[20]。文獻(xiàn)[21]提出基于時序差分(Temporal Difference,TD)誤差自適應(yīng)校正的DQN主動采樣方法,估計樣本池中樣本的真實優(yōu)先級,提高了算法的學(xué)習(xí)速度。
本文針對原始DQN算法因過估計導(dǎo)致穩(wěn)定性差的問題,提出一種基于二階TD誤差的雙網(wǎng)絡(luò)DQN算法(Second-order TD-based Double Deep Q-learning Network,STDE-DDQN)。通過構(gòu)造2個相同的DQN結(jié)構(gòu)協(xié)同更新網(wǎng)絡(luò)參數(shù),并且基于二階TD誤差重構(gòu)損失函數(shù),從而增強(qiáng)學(xué)習(xí)過程中值函數(shù)估計的穩(wěn)定性。
馬爾科夫決策過程(Markov Decision Process,MDP)可以用來解決序貫決策問題,而強(qiáng)化學(xué)習(xí)任務(wù)是一個典型的貫序決策過程。因此,利用馬爾科夫決策過程對強(qiáng)化學(xué)習(xí)問題進(jìn)行建模,可以有效解決強(qiáng)化學(xué)習(xí)任務(wù)。
在強(qiáng)化學(xué)習(xí)中,通過估計動作值函數(shù)可以衡量Agent在某一策略π下動作選擇的優(yōu)劣程度,其中,優(yōu)劣程度根據(jù)可以利用的未來累積獎賞進(jìn)行評估。策略π是指在狀態(tài)s下采取動作a的概率,可以表示為π(s,a)。動作值函數(shù)Qπ的定義如式(1)所示:
Qπ(s,a)=Eπ{Rt|st=s,at=a}=
(1)
其中,γ是折扣率,決定著未來獎賞的當(dāng)前價值。如果當(dāng)前策略是最優(yōu)策略,則所對應(yīng)的動作值函數(shù)即為最優(yōu)動作值函數(shù)Q*,定義如式(2)所示:
(2)
時序差分(TD)學(xué)習(xí)結(jié)合了蒙特卡洛和動態(tài)規(guī)劃思想,能夠從原始的經(jīng)驗中學(xué)習(xí),是一種模型無關(guān)的強(qiáng)化學(xué)習(xí)方法。
TD方法對狀態(tài)值函數(shù)進(jìn)行評估,可以利用經(jīng)驗樣本解決預(yù)測問題。通過判斷學(xué)習(xí)過程中行為策略與目標(biāo)策略是否一致,可以將TD學(xué)習(xí)分為兩類:在策略學(xué)習(xí)與離策略學(xué)習(xí)。Q學(xué)習(xí)算法是一種經(jīng)典的離策略算法,行為策略一般使用ε-greedy策略。此外,基于Q學(xué)習(xí)對動作值函數(shù)進(jìn)行評估,可以用于解決控制問題。Q學(xué)習(xí)中的Q值函數(shù)更新公式如式(3)所示:
Q(st,at)←Q(st,at)+β[rt+1+
(3)
其中,β是學(xué)習(xí)率,rt+1是立即獎賞,γ是折扣率。在這種情況下,學(xué)到的動作值函數(shù)Q直接逼近最優(yōu)動作值函數(shù)Q*,且不依賴于其行為策略。
DQN算法將深度學(xué)習(xí)與強(qiáng)化學(xué)習(xí)相結(jié)合,直接從高維的輸入學(xué)習(xí)控制策略,實現(xiàn)“端到端”的學(xué)習(xí)。該算法模型利用神經(jīng)網(wǎng)絡(luò)逼近動作值函數(shù),通過經(jīng)驗回放解決數(shù)據(jù)相關(guān)性及非靜態(tài)分布問題,并使用目標(biāo)網(wǎng)絡(luò)解決模型穩(wěn)定性問題。相較于其他模型,DQN具有較強(qiáng)的通用性,可用于解決不同類型的問題。
在DQN算法中包含兩個相同的網(wǎng)絡(luò):目標(biāo)網(wǎng)絡(luò)和估值網(wǎng)絡(luò)。初始化時,兩個網(wǎng)絡(luò)的權(quán)值相同。在訓(xùn)練過程中,對估值網(wǎng)絡(luò)進(jìn)行訓(xùn)練更新,通過直接賦值的方式對目標(biāo)網(wǎng)絡(luò)進(jìn)行權(quán)值更新。
在每一次的迭代更新過程中,從經(jīng)驗池中隨機(jī)抽取小批量樣本(st,at,rt,at+1),將st輸入估值網(wǎng)絡(luò),輸出在狀態(tài)st下每一個動作的Q值,即估值網(wǎng)絡(luò)的預(yù)測值Q(st,at)。在訓(xùn)練過程中,通過求解標(biāo)簽值對估值網(wǎng)絡(luò)進(jìn)行權(quán)值更新。在計算標(biāo)簽值時,將st+1輸入目標(biāo)網(wǎng)絡(luò),輸出在st+1狀態(tài)下每個動作對應(yīng)的最大Q值,即Q*(st+1,at+1),使得累積折扣獎賞最大。同時,每訓(xùn)練N步,則將估值網(wǎng)絡(luò)的權(quán)值賦值給目標(biāo)網(wǎng)絡(luò),進(jìn)行一次更新。
DQN模型通過Q學(xué)習(xí)中的TD誤差構(gòu)造如下?lián)p失函數(shù):
(4)
然而,利用式(4)求解損失函數(shù)時,目標(biāo)網(wǎng)絡(luò)Q值的迭代過程采用max操作。由式(5)可知,對Q值進(jìn)行max操作后,其比優(yōu)先計算目標(biāo)Q值期望后進(jìn)行max操作的值大。因此,在原始DQN算法中,利用目標(biāo)網(wǎng)絡(luò)最大Q值替代目標(biāo)網(wǎng)絡(luò)Q值期望值的計算,會導(dǎo)致目標(biāo)Q值的計算存在過估計,從而造成算法收斂性能的不穩(wěn)定。
E(max(Q1,Q2))≥max(E(Q1),E(Q2))
(5)
在原始DQN模型中,目標(biāo)Q值的計算存在過估計,會導(dǎo)致?lián)p失函數(shù)的計算出現(xiàn)偏差,降低算法收斂穩(wěn)定性。針對該問題,本文提出一種基于二階TD誤差的雙網(wǎng)絡(luò)DQN算法。在DQN模型的基礎(chǔ)上增加一個相同的值函數(shù)網(wǎng)絡(luò),并提出二階TD誤差的概念,構(gòu)建二階TD誤差模型與新的損失函數(shù)更新公式。通過兩輪值函數(shù)的學(xué)習(xí),降低目標(biāo)Q值最大化的影響,克服單一目標(biāo)Q值計算存在過估計的問題,有效減小模型的計算誤差,提高算法中值函數(shù)估計的穩(wěn)定性。
針對DQN算法由于過估計導(dǎo)致收斂性差的問題,結(jié)合TD誤差階的定義,在DQN的基礎(chǔ)上增加一個相同的值函數(shù)網(wǎng)絡(luò)模型,從而提高算法的收斂性能,改進(jìn)后的結(jié)構(gòu)模型如圖1所示。
圖1 基于二階TD誤差的雙網(wǎng)絡(luò)DQN模型結(jié)構(gòu)
在圖1中,為保證二階TD誤差雙網(wǎng)絡(luò)結(jié)構(gòu)的穩(wěn)定性,設(shè)置DQN_1與DQN_2結(jié)構(gòu)中的初始化權(quán)重參數(shù)θ相同。在二階TD模型中,DQN_2的估值網(wǎng)絡(luò)與環(huán)境交互,將得到的數(shù)據(jù)存入經(jīng)驗池,同時自動更新參數(shù),將估值網(wǎng)絡(luò)中的參數(shù)傳遞給DQN_1中的估值網(wǎng)絡(luò)。在DQN_2與環(huán)境第1輪交互后,DQN_1與環(huán)境交互,Agent進(jìn)行第2輪的學(xué)習(xí)。
在第2輪學(xué)習(xí)結(jié)束后,Agent在前兩輪學(xué)習(xí)的基礎(chǔ)上,通過DQN_1目標(biāo)網(wǎng)絡(luò)中的動作值函數(shù)與DQN_2結(jié)構(gòu)中估值網(wǎng)絡(luò)和目標(biāo)網(wǎng)絡(luò)中的動作值函數(shù),構(gòu)建新的損失函數(shù),利用梯度下降對權(quán)重進(jìn)行求解,以逼近真實目標(biāo)Q值。之后,在DQN_2上進(jìn)行第3輪學(xué)習(xí),直至所有的情節(jié)結(jié)束。此外,每間隔N步,DQN_1與DQN_2模型中的估值網(wǎng)絡(luò)都會將權(quán)重參數(shù)復(fù)制給各自的目標(biāo)網(wǎng)絡(luò)。
在任意第m次迭代計算中,任意時刻t,當(dāng)前狀態(tài)動作對為(st,at),Q學(xué)習(xí)以前一輪對(st,at)的估計差值作為TD誤差,如式(6)所示:
TDEm(st,at)=βt[rt+1(st,at)+
γmaxQm-1(st+1,at+1)-Qm-1(st,at)]
(6)
其中,TDEm(st,at)是在第m輪中t時刻狀態(tài)動作對的TD誤差,βt是學(xué)習(xí)率,rt+1(st,at)是該狀態(tài)動作對的立即獎賞值,γ是折扣率,Qm-1(st+1,at+1)是m-1輪中t+1時刻的狀態(tài)動作對的估值,Qm-1(st,at)是m-1輪中t時刻的狀態(tài)動作對的估值。在式(6)中,當(dāng)前狀態(tài)動作值的估值是基于后續(xù)狀態(tài)動作對估值的最大值,即利用后續(xù)狀態(tài)動作對的Q值的極值,代替狀態(tài)動作對的真實極值,進(jìn)而計算TD誤差。
定義1(N階TD誤差) 在第m輪,任意時刻t,立即獎賞為rt+1,記Q值為:
Qm(st,at)=rt+1+γmaxQm(st+1,at+1)
(7)
其中,Qm(st+1,at+1)是第m輪對t+1時刻狀態(tài)動作對的估值。N階TD誤差的定義如式(8)所示,記為TDE(n),并且n≥1,n為階數(shù)。當(dāng)n為2時,稱為二階TD誤差,記為TDE(2),如式(9)所示:
(1-αm){αm[Qm-n(st,at)-Qm-1(st,at)]+
(8)
(1-αm)[Qm-1(st,at)-Qm-2(st,at)]
(9)
算法的實際輸出與期望輸出差值越大,即損失函數(shù)的值越大,算法的收斂效果越差。本文針對算法收斂穩(wěn)定性問題,構(gòu)造兩個相同的DQN結(jié)構(gòu),引入二階TD誤差的概念重構(gòu)新的損失函數(shù),達(dá)到提升算法收斂性能的目的。
在DQN模型的學(xué)習(xí)過程中,從經(jīng)驗池隨機(jī)選擇樣本數(shù)據(jù),通過梯度下降的方式進(jìn)行參數(shù)更新。在二階TD誤差雙網(wǎng)絡(luò)DQN結(jié)構(gòu)中,利用經(jīng)驗回放進(jìn)行隨機(jī)采樣,通過二階TD誤差函數(shù)進(jìn)行學(xué)習(xí),并更新權(quán)重參數(shù)θ。二階TD誤差計算公式如式(10)所示:
(α-1)[Qm-1(st,at;θ4)-Qm-2(st,at;θ2)]
(10)
其中,θ2為DQN_1模型目標(biāo)網(wǎng)絡(luò)的參數(shù),θ3與θ4分別為DQN_2模型中估值網(wǎng)絡(luò)和目標(biāo)網(wǎng)絡(luò)的參數(shù)。在模型訓(xùn)練的每一步參數(shù)更新過程如下:將DQN_2中估值網(wǎng)絡(luò)的參數(shù)傳遞給DQN_1中的估值網(wǎng)絡(luò),且同時保持自身的更新,即θ3=θ1,θ3=θ3,其中θ3表示DQN_2中估值網(wǎng)絡(luò)下一狀態(tài)的權(quán)重參數(shù),每間隔N步,將DQN_1中的估值網(wǎng)絡(luò)參數(shù)傳遞給目標(biāo)網(wǎng)絡(luò),即θ2=θ1,同時將DQN_2中的估值網(wǎng)絡(luò)參數(shù)傳遞給目標(biāo)網(wǎng)絡(luò),即θ4=θ3。
由此得到改進(jìn)后的損失函數(shù)如式(11)所示:
L(θ)=Es,a,r,s′{[(1-α)(TQ2-TQ1)-
α(TQ1-BQ2)]2}
(11)
其中,損失函數(shù)是兩個網(wǎng)絡(luò)參數(shù)值的方差,并受參數(shù)α的影響,網(wǎng)絡(luò)結(jié)構(gòu)的目標(biāo)值與估計值也取決于網(wǎng)絡(luò)權(quán)重參數(shù)。在訓(xùn)練時,要保持當(dāng)前目標(biāo)網(wǎng)絡(luò)權(quán)重參數(shù)的固定,防止算法收斂不穩(wěn)定。對損失函數(shù)式(11)求解權(quán)重導(dǎo)數(shù),得到權(quán)重梯度如式(12)所示:
(12)
根據(jù)上文介紹,給出基于二階TD誤差雙網(wǎng)絡(luò)DQN算法流程,如算法1所示。
算法1基于二階TD誤差的雙網(wǎng)絡(luò)DQN算法
2.For episode=1,M do
3.初始化狀態(tài)s1;
4.For t=1,T do
5.采用ε-greedy策略選擇動作;
6.得到執(zhí)行動作at后的獎勵r,以及下一時刻的狀態(tài)st+1;
7.將數(shù)據(jù)(st,at,rt,st+1)存入到D中;
8.隨機(jī)從D中取出樣本(st,at,rt,st+1)進(jìn)行訓(xùn)練;
9.判斷狀態(tài)是否為中止?fàn)顟B(tài),若是則目標(biāo)為rT,否則計算目標(biāo)值;
10.利用式(11)計算損失函數(shù);
11.利用式(12)更新權(quán)重參數(shù)θ1與θ3;
12.每N步迭代后,θ2=θ1,θ4=θ3;
13.End for
14.End for
3.1.1 實驗描述
為驗證本文算法的性能,將本文提出的基于二階TD誤差雙網(wǎng)絡(luò)DQN算法與原始DQN算法應(yīng)用于經(jīng)典控制Mountain Car問題進(jìn)行比較。
Mountain Car問題示意圖如圖2所示,其中一輛車在一維軌道上,位于兩座“山”之間,即帶有坡面的谷底,目標(biāo)是把車開到右邊的山上(圖2中小旗的位置)。然而,小車由于動力不足,不能一次通過山體,因此小車必須借助前后加速的慣性才能通過山頂。Mountain Car實驗的狀態(tài)是兩維的,其中一維表示位置,另一維表示速度。其中,小車的位置區(qū)間為[-1.2,0.6],速度的區(qū)間為[-0.07,0.07]。動作空間有3個離散動作,分別表示向左、向右、無動作。在情節(jié)開始時,給定小車一個隨機(jī)的位置和速度,然后在模擬環(huán)境中進(jìn)行學(xué)習(xí)。當(dāng)小車到達(dá)目標(biāo)位置(圖2中小旗的位置)時,情節(jié)結(jié)束,并開始一個新的情節(jié)。
圖2 Mountain Car問題示意圖
當(dāng)小車到達(dá)目標(biāo)位置時,立即獎賞是1,其他情況下立即獎賞與位置有關(guān)。獎賞函數(shù)如式(13)所示:
(13)
3.1.2 實驗設(shè)置
本文的實驗環(huán)境是Open AI Gym,神經(jīng)網(wǎng)絡(luò)參數(shù)的優(yōu)化器是RMSprop,隱藏層使用的線性修正單元為ReLU。
實驗中的具體參數(shù)設(shè)置為:學(xué)習(xí)率β為0.001,ε-greedy策略中ε的值為0.9,其迭代的速率為0.000 2,迭代間隔為300,經(jīng)驗池的數(shù)量為3 000,情節(jié)數(shù)量設(shè)置為500,訓(xùn)練中mini-batch的值為32。
3.1.3 實驗分析
在α不同取值情況下,比較二階TD誤差雙網(wǎng)絡(luò)DQN算法和傳統(tǒng)DQN算法應(yīng)用于Mountain Car問題的性能表現(xiàn),如圖3所示(每個實驗執(zhí)行500個獨立情節(jié))。其中,α分別取值0.1、0.3、0.5和0.7。在實驗過程中,每個算法都被獨立執(zhí)行20次,求出平均值。
圖3 2種算法求解Mountain Car問題的性能對比
從圖3(a)可以看出,α取0.1時,在第40個情節(jié)處的平均步數(shù)降至最低,之后緩慢收斂至穩(wěn)定值,第70個情節(jié)后穩(wěn)定在200步左右。從圖3(b)可以看出,α取值為0.3時,算法在前400個情節(jié)的實驗過程中都有大幅度的振蕩,效果較差,第400個情節(jié)之后的性能與DQN算法性能相似。從圖3(c)可以看出,α取值為0.5時,二階TD誤差雙網(wǎng)絡(luò)DQN算法的實驗效果與DQN算法的收斂效果相似,符合上文的理論推導(dǎo)。從圖3(d)可以看出,當(dāng)α取值為0.7時,算法的實驗效果在500個情節(jié)內(nèi)有3個明顯的振蕩高峰,收斂效果變差。由此看出,α取值逐漸變大時,振蕩幅度變大,算法的收斂性能越差。這是由于雙網(wǎng)絡(luò)DQN算法在TD誤差的基礎(chǔ)上引入了二階TD的概念,使得算法能夠在兩個同構(gòu)值函數(shù)網(wǎng)絡(luò)的學(xué)習(xí)基礎(chǔ)上進(jìn)行新一輪的迭代學(xué)習(xí),減小了算法模型的計算誤差,進(jìn)一步提高了算法的收斂穩(wěn)定性。因此,二階TD誤差雙網(wǎng)絡(luò)DQN算法的前期收斂速度比DQN更快,振蕩較少且更接近收斂值。綜上,當(dāng)α取值為0.1時,算法的收斂效果最好。
圖4是在α=0.1的條件下,選取不同學(xué)習(xí)率β的算法效果對比。可以看出:β取0.001時,算法前20個情節(jié)學(xué)習(xí)的效果與其他取值情況相似,第20個~第70個情節(jié)時學(xué)習(xí)效果較好,第100個情節(jié)處有一個較大幅度的振蕩,第240個~第270個情節(jié)處有較高幅度的振蕩,之后算法逐漸穩(wěn)定至收斂值;β取0.002時,前期學(xué)習(xí)效果較差,第50個~第120個情節(jié)時有較大幅度的振蕩,第120個~第500個情節(jié)時都有較小幅度的振蕩;β取0.005時,算法在第50個情節(jié)~第100個情節(jié)處有較小幅度的振蕩,之后的情節(jié)中有小幅度的振蕩,相比其他取值情況,收斂效果較好。因此,根據(jù)實驗結(jié)果與實驗分析,學(xué)習(xí)率β的值選擇0.005效果最好。由此看出,面對離散動作問題時,學(xué)習(xí)率并非越小越好,學(xué)習(xí)率的選擇需要根據(jù)具體問題分析。
圖4 不同β取值下本文算法的學(xué)習(xí)性能
Fig.4 Learning performance of the proposed algorithm under differentβvalues
在學(xué)習(xí)率β取0.005且α=0.1的情況下,針對不同ε-greedy最大取值對學(xué)習(xí)效果的影響進(jìn)行對比,如圖5所示,其中,ε的最大值分別取0.90、0.95以及0.99,且每次動作選擇后,每一次的迭代值為0.000 2??梢钥闯?ε最大值取0.90時,算法前期逐步收斂,收斂效果相比其他取值較好,第400個~第460個情節(jié)處有輕微振蕩;ε最大值取0.95時,算法前期振蕩明顯,第160個情節(jié)之后逐漸穩(wěn)定至收斂值;ε最大值取0.99時,算法在前150個情節(jié)振蕩幅度巨大,之后的情節(jié)中振蕩幅度逐漸降低。原因是算法的前期需要積極探索更有效的策略,當(dāng)ε取值較大時,前期每個情節(jié)探索最優(yōu)動作的概率較大,經(jīng)過多個情節(jié),ε的值就會降低到最小,導(dǎo)致前100個情節(jié)震蕩幅度較大,難以收斂。因此,綜合上述分析,ε取值為0.9時效果最好。
圖5 不同ε取值下本文算法求解Mountain Car問題的性能
Fig.5 Performance of solving Mountain Car problem by the proposed algorithm under differentεvalues
3.2.1 實驗描述
為進(jìn)一步驗證二階TD誤差雙網(wǎng)絡(luò)DQN算法的性能,將其與原始DQN算法應(yīng)用于空間狀態(tài)更為復(fù)雜的平衡桿(Cart Pole)問題進(jìn)行性能比較。
Cart Pole問題示意圖如圖6所示,其中一根桿由一個非驅(qū)動的接頭連接到一輛小車上,小車沿著無摩擦的軌道運行。
圖6 Cart Pole問題示意圖
該系統(tǒng)的狀態(tài)是四維的,可以表示為:Ssate={x,xdot,T,Tdot};動作是一維的,有2個離散動作:向左或向右。系統(tǒng)中通過施加一個+1或-1的力來控制小車,且當(dāng)鐘擺處于直立狀態(tài)時,Agent的目標(biāo)是阻止它倒下。當(dāng)Agent控制操作桿走一步,且桿子保持垂直時,環(huán)境給予Agent一個立即獎賞,當(dāng)桿子與垂直方向的角度超過15°,或者小車從中心移動超過2.4個單位時,游戲結(jié)束。為使獎賞函數(shù)更合理有效,設(shè)置獎賞函數(shù)如式(14)所示:
(14)
3.2.2 實驗設(shè)置
本文的實驗環(huán)境是Open AI Gym,神經(jīng)網(wǎng)絡(luò)參數(shù)的優(yōu)化器是RMSprop,隱藏層使用的線性修正單元為ReLU。
實驗中的具體參數(shù)設(shè)置為:學(xué)習(xí)率β為0.01,ε-greedy策略中ε的值為0.9,ε迭代的速率為0.001,迭代間隔N為100,經(jīng)驗池的數(shù)量為2 000,情節(jié)數(shù)量設(shè)置為3 000,訓(xùn)練中mini-batch的值為32。
3.2.3 實驗分析
在α不同取值情況下,比較二階TD誤差雙網(wǎng)絡(luò)DQN算法和傳統(tǒng)DQN算法應(yīng)用于經(jīng)典Cart Pole問題的性能表現(xiàn),如圖7所示(實驗中每個算法都獨立執(zhí)行3 000個情節(jié))。針對α的取值設(shè)計實驗,驗證算法的收斂性能與α值設(shè)置的關(guān)聯(lián)性,其中,α分別取值0.1、0.3、0.5和0.7。
圖7 2種算法求解Cart Pole問題的性能對比
從圖7可以看出,原始DQN算法約在第60個情節(jié)處開始學(xué)習(xí),到750個情節(jié)時趨于穩(wěn)定值400,在之后的情節(jié)中仍有較高幅度的振蕩,并且算法在第2 000個情節(jié)左右獲得最低獎賞值。從圖7(a)可以看出,α取0.1時,二階TD誤差雙網(wǎng)絡(luò)DQN算法也在60個情節(jié)左右開始學(xué)習(xí),在第250個情節(jié)處接近穩(wěn)定值500,之后的情節(jié)中有輕微振蕩,第1 800個~第2 000個情節(jié)時有較大波動,最終能夠穩(wěn)定收斂并且取得比DQN算法更高的獎賞值。從圖7(b)可以看出,α取0.3時,二階TD誤差雙網(wǎng)絡(luò)DQN算法在第250個~第1 700個情節(jié)性能表現(xiàn)較好,之后的情節(jié)中振蕩較大,收斂性能較差。從圖7(c)可以看出,α取0.5時,算法的收斂性能與DQN算法相似,滿足上文的理論推導(dǎo)。從圖7(d)可以看出,α取0.7時,算法的振蕩幅度較大,沒有明顯的收斂表現(xiàn)。通過對比分析可以得出結(jié)論:當(dāng)α取0.1時,算法的收斂效果最好,穩(wěn)定性最強(qiáng)。比較不同取值情況下α的取值可知,STDE-DDQN算法由于引入二階TD誤差,其通過相同值函數(shù)網(wǎng)絡(luò)的迭代學(xué)習(xí)可降低模型的學(xué)習(xí)誤差,具有更好的收斂穩(wěn)定性。
圖8是二階TD誤差雙網(wǎng)絡(luò)DQN算法在α取0.1時不同學(xué)習(xí)率下的收斂效果對比,其中分別設(shè)置學(xué)習(xí)率β為0.01、0.005以及0.002。可以看出:β取0.01時,在第250個情節(jié)時開始收斂,收斂穩(wěn)定值為520,第1 750個~第2 000個情節(jié)處收斂性能下降,之后在收斂值附近振蕩,且振蕩幅度較大;β取0.005時,與其他取值情況相比,前期收斂較慢,且在收斂值左右振蕩,從第300個情節(jié)處開始,一直在收斂值左右輕微振蕩,整體性能表現(xiàn)較好;β取0.002時,算法學(xué)習(xí)率較低,學(xué)習(xí)緩慢,但初期學(xué)習(xí)效果較好,第200個情節(jié)處開始收斂,在第2 000個~3 000個情節(jié)處算法的振蕩幅度較大,收斂效果較差。由此可知:當(dāng)學(xué)習(xí)率較大時,算法收斂較快,但振蕩幅度較大,容易陷入局部最優(yōu)的問題,難以收斂;當(dāng)學(xué)習(xí)率較小時,學(xué)習(xí)效果較好,但算法學(xué)習(xí)速率較慢,收斂情況不穩(wěn)定。因此,綜合上述分析,學(xué)習(xí)率β的值選擇為0.005時,算法的性能最好。
圖8 不同β取值下本文算法求解Cart Pole問題的性能
Fig.8 Performance of solving Cart Pole problem by the proposed algorithm under differentβvalues
圖9是在保證α與學(xué)習(xí)率β的情況下,選取不同ε-greedy策略二階TD誤差雙網(wǎng)絡(luò)DQN算法的收斂效果對比??梢钥闯?ε取0.90時,算法收斂較慢,在第400個情節(jié)處開始收斂,并在之后的情節(jié)中一直以較小的振蕩幅度維持在收斂穩(wěn)定值左右;ε取0.95時,算法在第300個情節(jié)處開始收斂,且收斂速度較快,振蕩幅度較小;ε取0.99時,算法的平均獎賞較高,達(dá)到650左右,但是算法不易收斂,振蕩幅度較大,原因是ε-greedy策略取值較大,前期Agent探索概率大,易找到最優(yōu)策略與最優(yōu)值,但后期動作選擇時,ε的值過小,缺少探索,不易收斂。因此,ε取值為0.95時效果最好。
圖9 不同ε取值下本文算法求解Cart Pole問題的性能
Fig.9 Performance of solving Cart Pole problem by the proposed algorithm under differentεvalues
本文通過引入N階TD誤差的概念,提出一種基于二階TD誤差的雙網(wǎng)絡(luò)DQN算法。構(gòu)建兩個同構(gòu)的值函數(shù)網(wǎng)絡(luò)分別表示先后兩輪的值函數(shù),并重構(gòu)損失函數(shù),使Agent能夠在先后兩輪值函數(shù)的基礎(chǔ)上進(jìn)行學(xué)習(xí),減小學(xué)習(xí)誤差,提高算法的收斂穩(wěn)定性。此外,還通過對比實驗探索收斂效果更好的參數(shù)取值?;贕ym實驗平臺的Mountain Car和Cart Pole求解實驗結(jié)果表明,該算法能夠有效提高值函數(shù)估計的穩(wěn)定性,具有較好的收斂性能。本文工作通過引入二階TD誤差設(shè)計改進(jìn)的DQN算法,下一步將針對更高階的情況對算法收斂性能進(jìn)行優(yōu)化。