白辰甲 劉 鵬 趙 巍 唐降龍
(哈爾濱工業(yè)大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院模式識(shí)別與智能系統(tǒng)研究中心 哈爾濱 150001)
強(qiáng)化學(xué)習(xí)[1](reinforcement learning, RL)是機(jī)器學(xué)習(xí)的重要分支.智能體在與環(huán)境的交互過(guò)程中根據(jù)當(dāng)前狀態(tài)選擇動(dòng)作,執(zhí)行動(dòng)作后轉(zhuǎn)移到下一個(gè)狀態(tài)并獲得獎(jiǎng)勵(lì).從智能體執(zhí)行動(dòng)作到獲得獎(jiǎng)勵(lì)的過(guò)程產(chǎn)生了一條“經(jīng)驗(yàn)”,智能體從大量經(jīng)驗(yàn)中學(xué)習(xí),不斷改進(jìn)策略,最大化累計(jì)獎(jiǎng)勵(lì).傳統(tǒng)強(qiáng)化學(xué)習(xí)方法適用于離散狀態(tài)空間,不能有效處理高維連續(xù)狀態(tài)空間中的問(wèn)題.線性值函數(shù)近似或非線性值函數(shù)近似法將狀態(tài)與值函數(shù)之間的關(guān)系進(jìn)行參數(shù)化表示[2],可以處理高維狀態(tài)空間中的問(wèn)題.其中,線性值函數(shù)近似有良好的收斂性保證,但往往需要人為提取狀態(tài)特征,且模型表達(dá)能力有限;非線性值函數(shù)近似沒有嚴(yán)格的收斂性證明,但具有強(qiáng)大的模型表達(dá)能力.Tesauro[3-4]將時(shí)序差分法(temporal difference, TD)與非線性值函數(shù)近似相結(jié)合,提出了TD-Gammon算法.該算法用前饋神經(jīng)網(wǎng)絡(luò)對(duì)狀態(tài)值函數(shù)進(jìn)行估計(jì),在西洋雙陸棋中達(dá)到了人類頂尖水平.
近年來(lái),深度學(xué)習(xí)[5-6]與強(qiáng)化學(xué)習(xí)相結(jié)合[7]的非線性值函數(shù)近似方法在大規(guī)模強(qiáng)化學(xué)習(xí)中表現(xiàn)出良好性能.谷歌DeepMind團(tuán)隊(duì)提出了“深度Q網(wǎng)絡(luò)”[8-9](deep Q-network, DQN),DQN以圖像序列作為輸入,輸出對(duì)動(dòng)作值函數(shù)的估計(jì),策略表示為卷積神經(jīng)網(wǎng)絡(luò)的參數(shù).DQN在Atari 2600的大多數(shù)視頻游戲上的性能超過(guò)了人類專家水平.
對(duì)經(jīng)驗(yàn)樣本的存儲(chǔ)和采樣是DQN的關(guān)鍵問(wèn)題.DQN在訓(xùn)練中使用誤差梯度反向傳播算法,只有訓(xùn)練樣本集合滿足或近似滿足獨(dú)立同分布時(shí)才能正常收斂[10].然而,智能體與環(huán)境交互產(chǎn)生的樣本前后具有強(qiáng)相關(guān)性.為了消除樣本相關(guān)性,DQN使用經(jīng)驗(yàn)池來(lái)存儲(chǔ)和管理樣本,在訓(xùn)練中從經(jīng)驗(yàn)池中隨機(jī)取樣.DQN需要容量巨大的經(jīng)驗(yàn)池(約106),為了填充經(jīng)驗(yàn)池,智能體需要頻繁地與環(huán)境進(jìn)行交互.然而,智能體與環(huán)境交互的代價(jià)非常昂貴的,不僅表現(xiàn)在時(shí)間的消耗上,更表現(xiàn)在安全性、可控性、可恢復(fù)性等諸多方面[11].因此,研究如何對(duì)樣本進(jìn)行高效采樣、減少智能體與環(huán)境的交互次數(shù)、改善智能體的學(xué)習(xí)效果,對(duì)深度強(qiáng)化學(xué)習(xí)研究有重要意義.
目前針對(duì)DQN樣本采樣問(wèn)題的研究主要有2個(gè)方面:1)并行采樣和訓(xùn)練.使用多個(gè)智能體并行采樣和訓(xùn)練,用異步梯度法更新Q網(wǎng)絡(luò)[12-13],其思想是通過(guò)并行采樣和訓(xùn)練來(lái)打破樣本之間的相關(guān)性.2)主動(dòng)采樣.強(qiáng)調(diào)樣本之間的差異性[14],為每個(gè)樣本設(shè)定優(yōu)先級(jí),按優(yōu)先級(jí)進(jìn)行采樣.Schaul等人[11]提出了優(yōu)先經(jīng)驗(yàn)回放法(prioritized experience replay, PER),經(jīng)驗(yàn)池中樣本被采樣的概率與樣本的存儲(chǔ)優(yōu)先級(jí)成正比,存儲(chǔ)優(yōu)先級(jí)由經(jīng)驗(yàn)池中樣本上次參與訓(xùn)練的TD-error決定.TD-error是樣本在使用TD算法更新時(shí)目標(biāo)值函數(shù)與當(dāng)前狀態(tài)值函數(shù)的差值,其中目標(biāo)值函數(shù)是立即獎(jiǎng)勵(lì)與下一個(gè)狀態(tài)值函數(shù)之和.盡管PER算法在一定程度上提高了樣本的利用效率,但在包含大量樣本的經(jīng)驗(yàn)池中,每個(gè)時(shí)間步僅有少量樣本可以參與Q網(wǎng)絡(luò)迭代,其余樣本無(wú)法參與訓(xùn)練,這些樣本的TD-error沒有跟隨Q網(wǎng)絡(luò)的更新而變化,導(dǎo)致樣本的存儲(chǔ)優(yōu)先級(jí)無(wú)法準(zhǔn)確反映經(jīng)驗(yàn)池中TD-error的真實(shí)分布.
為了進(jìn)一步提高樣本的采樣效率,應(yīng)當(dāng)以更準(zhǔn)確的采樣優(yōu)先級(jí)在經(jīng)驗(yàn)池中選擇樣本.本文研究發(fā)現(xiàn),經(jīng)驗(yàn)池中樣本距離上次被采樣的時(shí)間間隔越長(zhǎng),樣本的存儲(chǔ)TD-error偏離真實(shí)值越遠(yuǎn).由于長(zhǎng)時(shí)間未被采樣的樣本數(shù)量巨大,導(dǎo)致存儲(chǔ)優(yōu)先級(jí)與真實(shí)優(yōu)先級(jí)的偏差較大.本文提出一種基于TD-error自適應(yīng)校正的主動(dòng)采樣模型(active sampling method based on adaptive TD-error correction, ATDC-PER).該模型基于樣本回放周期和網(wǎng)絡(luò)狀態(tài)在樣本與優(yōu)先級(jí)偏差之間建立映射關(guān)系,實(shí)現(xiàn)對(duì)存儲(chǔ)優(yōu)先級(jí)的校正,在Q網(wǎng)絡(luò)每次訓(xùn)練中都使用校正后的優(yōu)先級(jí)在經(jīng)驗(yàn)池中選擇樣本.本文提出的偏差模型參數(shù)是自適應(yīng)的,在訓(xùn)練中模型始終跟隨Q網(wǎng)絡(luò)的變化,對(duì)采樣優(yōu)先級(jí)的估計(jì)更為合理.實(shí)驗(yàn)結(jié)果表明,校正后的優(yōu)先級(jí)符合經(jīng)驗(yàn)池中樣本TD-error的分布,利用校正后的優(yōu)先級(jí)選擇樣本提高了樣本的利用效率,減少了智能體與環(huán)境的交互,同時(shí)改善了智能體的學(xué)習(xí)效果,獲得了更大的累計(jì)獎(jiǎng)勵(lì).
強(qiáng)化學(xué)習(xí)的目標(biāo)是最大化累計(jì)獎(jiǎng)勵(lì).智能體通過(guò)從經(jīng)驗(yàn)中學(xué)習(xí),不斷優(yōu)化狀態(tài)與動(dòng)作之間的映射關(guān)系,最終找到最優(yōu)策略(policy).智能體與環(huán)境的交互過(guò)程可以用馬爾可夫決策過(guò)程[15](Markov decision processes, MDP)來(lái)建模.在周期型任務(wù)中,MDP包括一系列離散的時(shí)間步0,1,2,…,t,…,T,其中T為終止時(shí)間步.在時(shí)間步t,智能體觀察環(huán)境得到狀態(tài)的表示St,根據(jù)現(xiàn)有策略π選擇動(dòng)作At并執(zhí)行.執(zhí)行動(dòng)作后MDP到達(dá)下一個(gè)時(shí)間步t+1,智能體收到獎(jiǎng)勵(lì)Rt+1并轉(zhuǎn)移到下一個(gè)狀態(tài)St+1.回報(bào)定義為折扣獎(jiǎng)勵(lì)之和,智能體通過(guò)調(diào)整策略來(lái)最大化回報(bào).動(dòng)作狀態(tài)值函數(shù)是指智能體處于狀態(tài)s時(shí)執(zhí)行動(dòng)作a,隨后按照策略π與環(huán)境交互直到周期結(jié)束所獲得的期望回報(bào),記為Qπ(s,a).
最優(yōu)策略求解一般遵循“廣泛策略迭代”的思想,包含策略評(píng)價(jià)和策略提升[1].策略評(píng)價(jià)是已知策略計(jì)算值函數(shù)的過(guò)程,策略提升是已知值函數(shù)選擇最優(yōu)動(dòng)作的過(guò)程.策略評(píng)價(jià)中值函數(shù)Qπ(s,a)的求解可以使用貝爾曼方程[15]轉(zhuǎn)換為遞歸形式
其中,r是立即獎(jiǎng)勵(lì),γ是折扣因子.值函數(shù)定義了在策略空間上的偏序關(guān)系,存在最優(yōu)策略π*優(yōu)于(或等同于)其他所有策略.
深度Q網(wǎng)絡(luò)[9](DQN)遵循Q-learning算法的更新法則,與線性值函數(shù)近似的不同之處在于DQN使用Q網(wǎng)絡(luò)來(lái)表示動(dòng)作值函數(shù),進(jìn)而表示策略.Q網(wǎng)絡(luò)是由卷積層和全連接層組成的卷積神經(jīng)網(wǎng)絡(luò)(CNN).DQN的主要特點(diǎn)有2個(gè):
1) 使用2個(gè)獨(dú)立的Q網(wǎng)絡(luò).分別使用θ和θ-代表Q網(wǎng)絡(luò)和目標(biāo)Q網(wǎng)絡(luò)的參數(shù),每隔L個(gè)時(shí)間步將Q網(wǎng)絡(luò)的參數(shù)復(fù)制到目標(biāo)Q網(wǎng)絡(luò)中,即θ-←θ,隨后θ-在L個(gè)時(shí)間步內(nèi)保持不變.DQN中TD-error定義為
(1)
2) 使用經(jīng)驗(yàn)池存儲(chǔ)和管理樣本,使用經(jīng)驗(yàn)回放[25]選擇樣本.樣本存儲(chǔ)于經(jīng)驗(yàn)池中,從經(jīng)驗(yàn)池中隨機(jī)抽取批量樣本訓(xùn)練Q網(wǎng)絡(luò).使用經(jīng)驗(yàn)回放可以消除樣本之間的相關(guān)性,使參與訓(xùn)練的樣本滿足或近似滿足獨(dú)立同分布.
在DQN的基礎(chǔ)上,Hasselt等人[26-27]指出,DQN在計(jì)算TD-error時(shí)使用相同的Q網(wǎng)絡(luò)來(lái)選擇動(dòng)作和計(jì)算值函數(shù)會(huì)導(dǎo)致值函數(shù)的過(guò)高估計(jì),進(jìn)而提出了DDQN(double DQN)算法.該算法用Q網(wǎng)絡(luò)來(lái)選擇動(dòng)作,用目標(biāo)Q網(wǎng)絡(luò)來(lái)估計(jì)值函數(shù),從而消除了對(duì)值函數(shù)的過(guò)高估計(jì),并提升了智能體的累計(jì)獎(jiǎng)勵(lì).DDQN中TD-error由式(2)計(jì)算:
(2)
此外,一些研究從不同角度提出了DQN的改進(jìn)方法,主要思路可以分為:1)從探索和利用的角度[28-31],將傳統(tǒng)強(qiáng)化學(xué)習(xí)中使用的探索與利用策略擴(kuò)展到深度強(qiáng)化學(xué)習(xí)中,改進(jìn)DQN中的ε-貪心策略.2)從網(wǎng)絡(luò)結(jié)構(gòu)的角度,使用競(jìng)爭(zhēng)式網(wǎng)絡(luò)結(jié)構(gòu)[32],分別估計(jì)動(dòng)作值函數(shù)和優(yōu)勢(shì)函數(shù).3)從并行訓(xùn)練的角度[12-13],消除樣本之間的相關(guān)性,同時(shí)加速訓(xùn)練.4)從減少訓(xùn)練中獎(jiǎng)勵(lì)方差的角度[33],使用多個(gè)迭代步的延遲估計(jì)Q值,使其更加穩(wěn)定.5)從模型之間知識(shí)遷移和多任務(wù)學(xué)習(xí)的角度[34-35],擴(kuò)展DQN的使用范圍.6)從視覺注意力的角度,使智能體在訓(xùn)練中將注意力集中于有價(jià)值的圖像區(qū)域[36].7)從主動(dòng)采樣,減少與環(huán)境交互次數(shù)的角度[11],使用基于TD-error的優(yōu)先經(jīng)驗(yàn)回放來(lái)提高樣本的利用效率.
Fig. 1 The main architecture of ATDC-PER model 圖1 本文方法(ATDC-PER)的總體結(jié)構(gòu)
優(yōu)先經(jīng)驗(yàn)回放是一種有效的管理經(jīng)驗(yàn)池的方法.原始的DQN算法在訓(xùn)練時(shí)不考慮經(jīng)驗(yàn)池中樣本之間的差異,隨機(jī)抽取樣本進(jìn)行訓(xùn)練,導(dǎo)致樣本的利用效率較低,智能體需要頻繁地與環(huán)境進(jìn)行交互.針對(duì)這一問(wèn)題,Schaul等人[11]提出了優(yōu)先經(jīng)驗(yàn)回放法(PER)來(lái)估計(jì)每個(gè)樣本的優(yōu)先級(jí),按照優(yōu)先級(jí)選擇樣本訓(xùn)練Q網(wǎng)絡(luò).樣本優(yōu)先級(jí)由樣本的TD-error分布決定.樣本的TD-error絕對(duì)值越大,在訓(xùn)練中造成的Q網(wǎng)絡(luò)損失越大,表明該樣本給Q網(wǎng)絡(luò)帶來(lái)的信息量越大,在Q網(wǎng)絡(luò)后續(xù)迭代中應(yīng)“優(yōu)先”選擇該樣本參與訓(xùn)練.PER算法的主要特點(diǎn)有3個(gè):
1) 樣本優(yōu)先級(jí)基于樣本上次參與訓(xùn)練時(shí)的TD-error值.長(zhǎng)時(shí)間未參與訓(xùn)練的樣本在經(jīng)驗(yàn)池中存儲(chǔ)的TD-error長(zhǎng)時(shí)間未更新,這些樣本的TD-error無(wú)法跟隨Q網(wǎng)絡(luò)的變化.只有上一個(gè)時(shí)間步參與訓(xùn)練的批量樣本的TD-error值被更新,然而這部分樣本僅占經(jīng)驗(yàn)池中樣本的少數(shù).
2) 采樣時(shí)在優(yōu)先級(jí)的基礎(chǔ)上引入隨機(jī)性.完全按照優(yōu)先級(jí)進(jìn)行采樣會(huì)降低樣本的多樣性,因此PER算法中引入隨機(jī)性,使樣本被抽取的概率與優(yōu)先級(jí)成正比,同時(shí)所有樣本都有機(jī)會(huì)被采樣.
3) 優(yōu)先級(jí)的引入相對(duì)于均勻抽樣改變了樣本的分布,引入了誤差.PER算法使用重要性采樣權(quán)重對(duì)誤差進(jìn)行補(bǔ)償.在計(jì)算損失函數(shù)梯度時(shí),需在原有梯度的基礎(chǔ)上乘以重要性采樣權(quán)重,按補(bǔ)償后的梯度進(jìn)行更新.
PER算法[11]具有高度的靈活性,可與離策略的深度強(qiáng)化學(xué)習(xí)方法進(jìn)行廣泛結(jié)合.例如,文獻(xiàn)[37-38]將PER算法和策略梯度法結(jié)合,提高了確定性策略梯度算法[39-40](deep deterministic policy gradient, DDPG)在仿真機(jī)器人控制中的數(shù)據(jù)利用效率;PER算法與深度Q學(xué)習(xí)的結(jié)合提高了經(jīng)驗(yàn)池中樣本的利用效率,顯著減少了智能體與環(huán)境的交互次數(shù),提升了智能體的最優(yōu)策略得分[11].
PER算法的問(wèn)題在于,經(jīng)驗(yàn)池中存儲(chǔ)的TD-error值相對(duì)于Q網(wǎng)絡(luò)來(lái)說(shuō)更新不及時(shí),無(wú)法準(zhǔn)確反映樣本的優(yōu)先級(jí).在每次迭代中Q網(wǎng)絡(luò)都會(huì)更新自身參數(shù),而經(jīng)驗(yàn)池僅可更新參與訓(xùn)練的批量樣本的TD-error值,此類樣本的數(shù)量約占經(jīng)驗(yàn)池容量的0.1%.這導(dǎo)致大多數(shù)樣本的存儲(chǔ)TD-error無(wú)法跟隨Q網(wǎng)絡(luò)的變化,并進(jìn)一步導(dǎo)致樣本在經(jīng)驗(yàn)池中的存儲(chǔ)優(yōu)先級(jí)與“真實(shí)”優(yōu)先級(jí)之間存在偏差.本文分析了這種偏差對(duì)學(xué)習(xí)的影響,并闡述了依據(jù)真實(shí)或逼近真實(shí)的TD-error分布產(chǎn)生的優(yōu)先級(jí)來(lái)選擇樣本能夠使深度Q網(wǎng)絡(luò)以更高的效率收斂到最優(yōu)策略.
本文提出基于TD-error自適應(yīng)校正的主動(dòng)采樣模型(ATDC-PER)來(lái)校正樣本的存儲(chǔ)優(yōu)先級(jí),使用校正后的優(yōu)先級(jí)分布進(jìn)行主動(dòng)采樣,能夠提高經(jīng)驗(yàn)池中樣本的利用效率.圖1是本文方法ATDC-PER的總體結(jié)構(gòu),主要包括“偏差模型”和“優(yōu)先級(jí)校正”兩部分.其中,優(yōu)先級(jí)校正需在所有時(shí)間步進(jìn)行,偏差模型則每隔D個(gè)時(shí)間步更新1次.2.1節(jié)使用引例說(shuō)明TD-error及樣本優(yōu)先級(jí)分布對(duì)學(xué)習(xí)的作用,2.2節(jié)闡述ATDC-PER的建模過(guò)程,2.3節(jié)給出算法描述和復(fù)雜度分析.
本節(jié)用強(qiáng)化學(xué)習(xí)中的經(jīng)典問(wèn)題平衡車[41](CartPole)為引例①https:gym.openai.comenvsCartpole-v0,說(shuō)明PER算法中經(jīng)驗(yàn)池的存儲(chǔ)TD-error與真實(shí)TD-error之間存在偏差,并分析TD-error分布對(duì)學(xué)習(xí)的作用.
CartPole的狀態(tài)表示為4維向量,包括桿的角度、桿運(yùn)動(dòng)的角速度、車的位置和車運(yùn)動(dòng)的速度,如圖2所示:
Fig. 2 The state of CartPole圖2 倒立擺的狀態(tài)表示
智能體通過(guò)向小車施加+1或-1的力來(lái)盡力保持桿的平衡.在時(shí)間步t,如果桿與垂直方向的角度不超過(guò)15度且小車與中心的距離不超過(guò)2.4個(gè)單元,則獎(jiǎng)勵(lì)為+1,否則獎(jiǎng)勵(lì)為-1同時(shí)周期結(jié)束.設(shè)1個(gè)周期的時(shí)間步不超過(guò)200步,則智能體在1個(gè)周期內(nèi)所獲得的最大獎(jiǎng)勵(lì)不超過(guò)200.用基于DDQN的PER算法來(lái)訓(xùn)練Q網(wǎng)絡(luò),Q網(wǎng)絡(luò)是包含64個(gè)隱含層節(jié)點(diǎn)的3層全連接網(wǎng)絡(luò),經(jīng)驗(yàn)池容量為50 000.
PER算法中經(jīng)驗(yàn)池用樣本集合E={e(1),e(2),…,e(m)}表示,其中序號(hào)為i的樣本e(i)=s(i),a(i),r(i),s′(i)∈E.PER算法在每次迭代時(shí)抽取E中的1個(gè)批量樣本進(jìn)行訓(xùn)練.本文將樣本e(i)上次參與訓(xùn)練的TD-error值稱為樣本的存儲(chǔ)TD-error,記為δ(i).設(shè)當(dāng)前時(shí)間步為t,e(i)上次參與訓(xùn)練的時(shí)間步為t-τ(i),則δ(i)由式(3)計(jì)算[27]:
(3)
由式(3)可知,存儲(chǔ)TD-error計(jì)算中使用的參數(shù)θt-τ(i)不是當(dāng)前Q網(wǎng)絡(luò)參數(shù),而是τ(i)個(gè)時(shí)間步之前的參數(shù).在τ(i)個(gè)時(shí)間步內(nèi)Q網(wǎng)絡(luò)經(jīng)歷了τ(i)次參數(shù)迭代,而存儲(chǔ)TD-error值卻保持不變.這導(dǎo)致樣本的存儲(chǔ)TD-error與當(dāng)前Q網(wǎng)絡(luò)不匹配,且τ(i)的值越大,這種不匹配程度越高.新樣本加入經(jīng)驗(yàn)池時(shí)τ(i)=1,每經(jīng)歷1個(gè)時(shí)間步,參與該時(shí)間步訓(xùn)練的樣本τ(i)置1,未參與該時(shí)間步訓(xùn)練的樣本τ(i)加1.由于經(jīng)驗(yàn)池滿后新樣本會(huì)覆蓋老樣本,因此所有樣本τ(i)的取值范圍均在1到經(jīng)驗(yàn)池樣本總量之間.圖3顯示了CartPole在訓(xùn)練周期為420時(shí)經(jīng)驗(yàn)池樣本的τ(i)的分布,樣本按τ(i)由小到大排序,經(jīng)驗(yàn)池中樣本總數(shù)為50 000.圖3表明,經(jīng)驗(yàn)池中有大量樣本的τ(i)值較大,這些樣本長(zhǎng)期沒有參與訓(xùn)練,δ(i)長(zhǎng)期未更新.因此,存儲(chǔ)優(yōu)先級(jí)與當(dāng)前Q網(wǎng)絡(luò)的不匹配程度較高.
Fig. 3 Distribution of τ(i) in experience memory when training episode is 420圖3 訓(xùn)練周期為420時(shí)經(jīng)驗(yàn)池中樣本的τ(i)的分布
(4)
p(i)=(|δ(i)|+ε)α,
(5)
(6)
其中ε和α均為常數(shù).樣本TD-error的絕對(duì)值越大,在采樣中樣本的優(yōu)先級(jí)就越高.
Fig. 4 Distribution of p(i) and in CartPole training when training episode is 180圖4 CartPole訓(xùn)練周期為180時(shí)p(i)和分布圖
(7)
圖5顯示了優(yōu)先級(jí)偏差的絕對(duì)值|Δp(i)|的分布,樣本仍按照p(i)由大到小排序.
Fig. 5 Distribution of |Δp(i)| in CartPole training when training episode is 180圖5 CartPole訓(xùn)練周期為180時(shí)|Δp(i)|的分布圖
圖4和圖5表明,PER算法中使用基于δ(i)的存儲(chǔ)優(yōu)先級(jí)進(jìn)行主動(dòng)采樣存在2個(gè)問(wèn)題:
2)δ(i)的分布不能準(zhǔn)確反映經(jīng)驗(yàn)池的真實(shí)情況.其中,當(dāng)|δ(i)|較大時(shí),樣本被抽取的概率高,τ(i)值較小,期間Q網(wǎng)絡(luò)變化不明顯,優(yōu)先級(jí)偏差較小,此時(shí)可以使用存儲(chǔ)優(yōu)先級(jí)作為真實(shí)優(yōu)先級(jí)的近似估計(jì);但當(dāng)|δ(i)|較小時(shí),τ(i)值較大,Q網(wǎng)絡(luò)在τ(i)個(gè)時(shí)間步內(nèi)參數(shù)變化較大,導(dǎo)致存儲(chǔ)優(yōu)先級(jí)偏離真實(shí)優(yōu)先級(jí)的分布,此時(shí)基于δ(i)的存儲(chǔ)優(yōu)先級(jí)不能準(zhǔn)確反映經(jīng)驗(yàn)池的情況.
Fig. 6 Training curve comparison using experience replay with p(i) and 圖6 使用p(i)和作為優(yōu)先級(jí)的訓(xùn)練曲線對(duì)比
真實(shí)優(yōu)先級(jí)和存儲(chǔ)優(yōu)先級(jí)的偏差分布具有穩(wěn)定性,所以ATDC-PER方法對(duì)偏差模型更新周期D的選取是不敏感的.真實(shí)優(yōu)先級(jí)與存儲(chǔ)優(yōu)先級(jí)的不同之處在于計(jì)算時(shí)使用的Q網(wǎng)絡(luò)參數(shù)不同,真實(shí)優(yōu)先級(jí)使用時(shí)刻t的Q網(wǎng)絡(luò)參數(shù),而存儲(chǔ)優(yōu)先級(jí)使用t-τ(i)時(shí)刻的Q網(wǎng)絡(luò)參數(shù),二者的區(qū)別在于τ(i)的分布.如圖3所示,τ(i)在經(jīng)驗(yàn)池中呈現(xiàn)長(zhǎng)尾分布,最小值為1,最大值為經(jīng)驗(yàn)池樣本總量.在訓(xùn)練中經(jīng)驗(yàn)池填充滿后容量不再發(fā)生變化,τ(i)分布具有穩(wěn)定性,因此偏差模型不需要頻繁更新.
ATDC-PER算法在訓(xùn)練過(guò)程中偏差模型分段更新的示意圖如圖7所示,橫軸代表訓(xùn)練時(shí)間步,縱軸代表智能體在周期內(nèi)的累計(jì)獎(jiǎng)勵(lì).偏差模型更新后的D個(gè)時(shí)間步內(nèi)均使用該模型進(jìn)行優(yōu)先級(jí)校正,可以極大地減少時(shí)間開銷.
Fig. 7 Interval update policy in ATDC-PER algorithm圖7 ATDC-PER算法的分段更新策略示意圖
2.2.1 偏差模型
從經(jīng)驗(yàn)池中提取的樣本特征是偏差模型的輸入,真實(shí)優(yōu)先級(jí)和存儲(chǔ)優(yōu)先級(jí)之間的優(yōu)先級(jí)偏差作為樣本標(biāo)簽,是偏差模型的輸出.使用線性回歸模型對(duì)樣本特征與樣本標(biāo)簽之間的關(guān)系進(jìn)行建模,通過(guò)最小化平方損失函數(shù)來(lái)求解模型參數(shù)w.
1) 樣本特征.樣本特征是針對(duì)單個(gè)樣本而言的.特征在訓(xùn)練中的經(jīng)驗(yàn)池中保存且與優(yōu)先級(jí)偏差相關(guān).樣本特征包括:
(8)
(9)
(10)
(11)
Atari游戲Pong①https:gym.openai.comenvsPong-v0和Breakout②https:gym.openai.comenvsBreakout-v0在訓(xùn)練時(shí)間步為105時(shí)經(jīng)驗(yàn)池中所有樣本的樣本特征,和樣本標(biāo)簽Δ的分布如圖8所示,樣本按照存儲(chǔ)優(yōu)先級(jí)排序,具體的設(shè)置將在實(shí)驗(yàn)部分介紹.圖8表明,樣本的存儲(chǔ)優(yōu)先級(jí)和回放周期都與優(yōu)先級(jí)偏差Δ密切相關(guān).
Fig. 8 Distribution of feature , and label Δ in Pong and Breakout when t=105圖8 Pong和Breakout在t=105時(shí)樣本特征,和樣本標(biāo)簽Δ的分布
3) 偏差模型參數(shù)求解.使用回歸模型來(lái)對(duì)樣本特征和樣本標(biāo)簽之間的關(guān)系進(jìn)行建模.由于樣本特征與樣本標(biāo)簽之間的關(guān)系明顯,因此使用線性回歸模型.同時(shí),線性回歸模型在當(dāng)前的輸入輸出條件下存在閉式解,不需要使用梯度法迭代求解,時(shí)間開銷很小.
權(quán)重向量w的維度與特征x(i)的維度相同.根據(jù)線性回歸模型的定義,假設(shè)函數(shù)hw(x(i))表示為
(13)
設(shè)當(dāng)前經(jīng)驗(yàn)池中樣本數(shù)為m,則全體樣本組成的特征矩陣X∈m×6,表示為
(14)
(15)
損失函數(shù)為平方誤差損失,記為J(w).經(jīng)驗(yàn)池中所有樣本的平均損失表示為
(16)
參數(shù)向量w為使得損失J(w)取最小值的解.由于特征矩陣X的元素均大于0,w存在閉式解.經(jīng)推導(dǎo)可得,最小化損失函數(shù)J(w)的w的解為
w=(XTX)-1XTy.
(17)
2.2.2 優(yōu)先級(jí)校正
(18)
(19)
Fig. 9 Distribution of , and at step t=107 in Breakout training圖9 Breakout訓(xùn)練中t=107時(shí),和分布
2.3.1 算法描述
ATDC-PER的算法流程如算法1所示.
算法1. ATDC-PER算法.
輸入:偏差模型特征階數(shù)K、偏差模型更新周期D、獎(jiǎng)勵(lì)折扣因子γ、樣本批量大小k、學(xué)習(xí)率η、經(jīng)驗(yàn)池容量N、偏差模型參數(shù)α、重要性權(quán)重β、訓(xùn)練終止時(shí)間步T、目標(biāo)Q網(wǎng)絡(luò)更新頻率L;
輸出:Q網(wǎng)絡(luò)參數(shù);
初始化:經(jīng)驗(yàn)池為空,批量梯度Δ=0,初始化Q網(wǎng)絡(luò)和目標(biāo)Q網(wǎng)絡(luò)參數(shù)為θ和θ-.
① 根據(jù)初始狀態(tài)S0,以ε-貪心選擇動(dòng)作A0~πθ(S0);
② fort=1 toTdo
③ 觀察到狀態(tài)St并獲得獎(jiǎng)勵(lì)Rt;
④ 將經(jīng)驗(yàn)序列(St-1,At-1,Rt,St)存儲(chǔ)到經(jīng)驗(yàn)池中,并賦予當(dāng)前經(jīng)驗(yàn)池中最大的優(yōu)先級(jí);
⑤ ift%D==0
⑥ 樣本特征提取,構(gòu)造如式(14)所示的特征矩陣X;
⑧ 偏差模型求解,將偏差模型參數(shù)更新為w=(XTX)-1XTy;
⑨ end if
Q(Sj-1,Aj-1);
其中行⑤~⑨是偏差模型更新的過(guò)程,需在t,t+D,t+2D,…等時(shí)間步計(jì)算經(jīng)驗(yàn)池的樣本特征和優(yōu)先級(jí)偏差進(jìn)行訓(xùn)練,求解模型參數(shù)w.行⑩是優(yōu)先級(jí)校正的過(guò)程,通過(guò)偏差模型得到樣本真實(shí)優(yōu)先級(jí)的估計(jì).行在優(yōu)先級(jí)的基礎(chǔ)上加入隨機(jī)性,樣本被采樣的概率與優(yōu)先級(jí)成正比,同時(shí)所有樣本都有機(jī)會(huì)被采樣.行~計(jì)算損失函數(shù)的梯度,計(jì)算梯度時(shí)需在TD-error的基礎(chǔ)上乘以重要性權(quán)重(importance sampling weight)系數(shù)[42],原因是按照優(yōu)先級(jí)采樣與均勻采樣相比會(huì)給梯度的計(jì)算帶來(lái)誤差,因此使用采樣概率的比值φ進(jìn)行補(bǔ)償[11],并使用全部樣本的φ的最大值進(jìn)行規(guī)約,如式(20)所示.
φj=(N×P(j))-β,
(20)
其中,k=1,2,…,N,N為經(jīng)驗(yàn)池容量,β是一個(gè)常數(shù),P(j)為樣本e(j)的采樣優(yōu)先級(jí)在全體樣本中所占的比例,如式(21)所示.
(21)
2.3.2 復(fù)雜度分析
ATDC-PER算法包括偏差模型和優(yōu)先級(jí)校正兩部分.根據(jù)分段更新策略,在執(zhí)行D次優(yōu)先級(jí)校正的同時(shí)會(huì)執(zhí)行一次偏差模型更新.由于偏差模型更新的時(shí)間復(fù)雜度較高,而優(yōu)先級(jí)校正僅執(zhí)行矩陣乘法和加法,時(shí)間復(fù)雜度低,所以分段更新策略可以使復(fù)雜度高的部分以極低的頻率執(zhí)行,從而減少時(shí)間開銷.
1) 偏差模型的復(fù)雜度分析.偏差模型更新包括樣本特征提取、樣本標(biāo)簽提取和模型求解3個(gè)階段,分析如下:
① 樣本特征提取.原始的樣本特征維度為2,提取K階多項(xiàng)式后的特征向量x(i)∈,特征矩陣X∈.其中,m的值不超過(guò)經(jīng)驗(yàn)池總?cè)萘浚以诮?jīng)驗(yàn)池填充滿之后不再變化,是一個(gè)常數(shù).因此特征提取的時(shí)間復(fù)雜度和空間復(fù)雜度均為O(K2).
③ 偏差模型求解.模型求解階段的時(shí)間消耗集中在式(17)中對(duì)參數(shù)向量w的求解上.XTX∈,在此基礎(chǔ)上求逆的時(shí)間復(fù)雜度為Ο(K6),空間復(fù)雜度為Ο(K2).
2) 優(yōu)先級(jí)校正的復(fù)雜度分析.優(yōu)先級(jí)校正階段在提取樣本特征Xt后與參數(shù)向量w執(zhí)行矩陣乘法,時(shí)間復(fù)雜度為Ο(K4),空間復(fù)雜度為Ο(K2).
由于ATDC-EPR算法中間隔D個(gè)時(shí)間步偏差模型才更新一次,D的取值較大,其余時(shí)間步都僅執(zhí)行優(yōu)先級(jí)校正的操作,因此總體時(shí)間復(fù)雜度為Ο(K4),空間復(fù)雜度為Ο(K2).另外,一般K=2時(shí)偏差模型就可以很好地估計(jì)優(yōu)先級(jí)偏差,此時(shí)求解參數(shù)w所需的逆矩陣(XTX)-1∈6×6,規(guī)模較小,可以快速求解.
經(jīng)過(guò)復(fù)雜度分析,本文提出的ATDC-PER算法以極小的時(shí)間和空間代價(jià)就可以在Q網(wǎng)絡(luò)每次迭代中校正經(jīng)驗(yàn)池中樣本的存儲(chǔ)優(yōu)先級(jí),使用校正后的優(yōu)先級(jí)選擇樣本.
本節(jié)首先介紹實(shí)驗(yàn)平臺(tái)和環(huán)境,隨后介紹ATDC-PER算法的參數(shù)選擇,通過(guò)對(duì)比實(shí)驗(yàn)說(shuō)明參數(shù)對(duì)性能的影響,最后從智能體的學(xué)習(xí)速度和最優(yōu)策略的質(zhì)量2方面對(duì)實(shí)驗(yàn)結(jié)果進(jìn)行分析.
實(shí)驗(yàn)使用基于Atari 2600游戲平臺(tái)Arcade Learning Environment(ALE)[43]的OpenAI集成環(huán)境[44].ALE平臺(tái)包含數(shù)十個(gè)視頻游戲,并對(duì)外提供接口.ALE平臺(tái)的挑戰(zhàn)在于游戲種類和數(shù)量豐富,包含益智類、體育類、策略類、射擊類、搏斗類等多種類型的游戲,需多個(gè)游戲中使用同一算法,在超參數(shù)固定的情況下,僅以原始屏幕圖像作為輸入進(jìn)行學(xué)習(xí)和訓(xùn)練.
本文選擇ALE平臺(tái)中的19個(gè)游戲進(jìn)行實(shí)驗(yàn),游戲的簡(jiǎn)要介紹列于表1,各游戲界面如圖10所示.可以看出,游戲類型多樣,游戲的界面風(fēng)格不同,在訓(xùn)練中Q網(wǎng)絡(luò)的輸入不同.同時(shí),每個(gè)游戲中智能體需完成的任務(wù)不同,即最終學(xué)習(xí)的策略也不同.
Table 1 A Brief Introduction to 19 Atari Games表1 19個(gè)Atari游戲的簡(jiǎn)要介紹
Fig. 10 State representations of 19 Atari games圖10 19個(gè)Atari游戲的狀態(tài)表示
本文使用的計(jì)算平臺(tái)為戴爾PowerEdge T630塔式工作站,工作站配置2顆Intel Xeon E5-2609 CPU、4塊NVIDIA GTX-1080Ti顯卡(GPU)和64 GB內(nèi)存,每個(gè)游戲使用單獨(dú)的一塊顯卡進(jìn)行訓(xùn)練.卷積神經(jīng)網(wǎng)絡(luò)基于Tensorflow[45]開源庫(kù)實(shí)現(xiàn),本文核心代碼、實(shí)驗(yàn)結(jié)果和測(cè)試視頻均可下載①http:pr-ai.hit.edu.cn20180510c1049a207703page.htm.
ATDC-PER算法在全部游戲中使用相同的超參數(shù)集合,以驗(yàn)證模型的通用性.ATDC-PER算法在PER算法的基礎(chǔ)上增加了2個(gè)超參數(shù),分別是偏差模型更新周期D和偏差模型特征階數(shù)K,其余參數(shù)的設(shè)置與PER算法的設(shè)置相同.狀態(tài)表示為原始圖像預(yù)處理并疊加4幀組成的84×84×4的矩陣;Q網(wǎng)絡(luò)為3層卷積神經(jīng)網(wǎng)絡(luò),輸出每個(gè)動(dòng)作的值函數(shù),目標(biāo)Q網(wǎng)絡(luò)的更新頻率設(shè)為40 000;鑒于不同游戲的分值計(jì)算方式不同,使用符號(hào)函數(shù)對(duì)獎(jiǎng)勵(lì)進(jìn)行規(guī)約;為了使訓(xùn)練更加穩(wěn)定,對(duì)回傳的梯度進(jìn)行限制,使其不超過(guò)10.使用基于平方誤差損失的Adam優(yōu)化器進(jìn)行訓(xùn)練,批量大小k=32,學(xué)習(xí)率設(shè)為10-4,折扣因子γ=0.99;探索因子在前400萬(wàn)幀從1.0線性遞減至0.1,在隨后的時(shí)間步內(nèi)以之前速度的110線性遞減至0.01后保持不變;經(jīng)驗(yàn)池容量設(shè)為106;優(yōu)先級(jí)計(jì)算中使用的參數(shù)α=0.6;重要性權(quán)重計(jì)算中使用的參數(shù)β初始值設(shè)為0.4,在訓(xùn)練中線性增加至1.0.
3.2.1 偏差模型更新周期
通過(guò)在Alien,Breakout,Pong的訓(xùn)練過(guò)程中使用不同的偏差模型更新周期D來(lái)測(cè)試參數(shù)D對(duì)Q網(wǎng)絡(luò)學(xué)習(xí)的影響.在訓(xùn)練過(guò)程中的時(shí)刻t訓(xùn)練偏差模型得偏差模型參數(shù)wt,使用不同的參數(shù)D,測(cè)試模型wt在位于時(shí)刻t+D的經(jīng)驗(yàn)池樣本的平均損失,損失的計(jì)算如式(16)所示.不同的偏差模型更新周期D下的平均損失對(duì)比列如表2所示:
Table 2 Average Loss of Bias Model Trained in t Steps and Tested in t+D Steps Under Different D Values表2 比較不同D值下時(shí)刻t訓(xùn)練的偏差模型在時(shí)刻t+D測(cè)試的平均損失
由表2可知,隨著偏差模型更新周期D的增加,損失總體升高.但從數(shù)值上看,損失的升高并不明顯,特別是在105個(gè)時(shí)間步內(nèi),因此實(shí)驗(yàn)中將D的值設(shè)置為105.表2數(shù)據(jù)表明本文提出的偏差模型具有較強(qiáng)的泛化能力,對(duì)偏差模型更新周期D的選擇不敏感,偏差模型可以在訓(xùn)練后較長(zhǎng)的時(shí)間步內(nèi)適用,同時(shí)也驗(yàn)證了圖7所示的分段更新策略的合理性.
3.2.2 偏差模型特征階數(shù)
偏差模型的特征階數(shù)K越大,模型復(fù)雜度越高,訓(xùn)練誤差越小,但計(jì)算復(fù)雜度也隨之升高,同時(shí)可能引起過(guò)擬合.通過(guò)在游戲Alien,Breakout,Pong的訓(xùn)練過(guò)程中進(jìn)行粗搜索來(lái)選擇K的值.實(shí)驗(yàn)使用不同的K值進(jìn)行訓(xùn)練,記錄多個(gè)位于偏差模型更新周期中心的經(jīng)驗(yàn)池樣本,比較經(jīng)驗(yàn)池樣本的平均損失,結(jié)果列于表3.表3中數(shù)據(jù)表明,隨著K值的增加,損失總體下降,但在K>2時(shí)損失的變化已經(jīng)不顯著,同時(shí)在Alien中K>3時(shí)有過(guò)擬合的趨勢(shì).因此,綜合考慮損失和計(jì)算消耗,本文實(shí)驗(yàn)將多項(xiàng)式特征的階數(shù)設(shè)為K=2.
Table 3 Average Loss at the Center of Renewal Period of Correction Model Under Different K Values表3 比較不同K值下處于偏差模型更新周期中心的經(jīng)驗(yàn)池平均損失
本文選擇2個(gè)基線算法進(jìn)行對(duì)比,分別為DDQN[27]和優(yōu)先經(jīng)驗(yàn)回放[11](PER).其中,DDQN算法中樣本沒有優(yōu)先級(jí),在訓(xùn)練時(shí)從經(jīng)驗(yàn)池中隨機(jī)取樣;PER算法在DDQN的基礎(chǔ)上為每個(gè)樣本設(shè)置存儲(chǔ)優(yōu)先級(jí),存儲(chǔ)優(yōu)先級(jí)與樣本上次參與訓(xùn)練時(shí)的TD-error絕對(duì)值成正比,在采樣時(shí)根據(jù)存儲(chǔ)優(yōu)先級(jí)依概率選擇樣本.本文通過(guò)偏差模型對(duì)存儲(chǔ)優(yōu)先級(jí)進(jìn)行校正,用校正后的真實(shí)優(yōu)先級(jí)的估計(jì)進(jìn)行采樣,提高了樣本的利用效率.
算法的評(píng)價(jià)標(biāo)準(zhǔn)包括智能體的學(xué)習(xí)速度和智能體學(xué)習(xí)到的最優(yōu)策略的質(zhì)量.
3.3.1 智能體的學(xué)習(xí)速度
圖11顯示了19個(gè)Atari游戲的訓(xùn)練曲線,橫軸代表時(shí)間步,每個(gè)時(shí)間步智能體與ALE環(huán)境交互一次,ALE環(huán)境會(huì)產(chǎn)生一幀新的圖像.縱軸代表智能體在周期內(nèi)獲得的累計(jì)獎(jiǎng)勵(lì).在訓(xùn)練開始后,隨著迭代的進(jìn)行,智能體的水平不斷提高,獎(jiǎng)勵(lì)值不斷增大,達(dá)到峰值后神經(jīng)網(wǎng)絡(luò)的訓(xùn)練可能趨于過(guò)擬合,因此訓(xùn)練后期獎(jiǎng)勵(lì)值可能會(huì)有波動(dòng).
ATDC-PER算法在19個(gè)游戲中的15個(gè)游戲收斂速度更快,能夠以更少的交互次數(shù)達(dá)到最大獎(jiǎng)勵(lì),如圖11所示.特別是在Breakout,DoubleDunk,Enduro,Pong,Robotank,UpNDown這6個(gè)游戲中
Fig. 11 Comparison of our method with PER [11] and DDQN [27] algorithms in training curve of 19 Atari games圖11 本文方法在19個(gè)Atari游戲中與PER[11]和DDQN[27]算法的訓(xùn)練曲線對(duì)比
速度提升明顯,分別如圖11(f)(j)(k)(m)(q)(s)所示,在訓(xùn)練的相同時(shí)間步,ATDC-PER算法中智能體的得分水平總體優(yōu)于DDQN和PER算法.圖11中的曲線表明,本文提出的ATDC-PER算法通過(guò)在訓(xùn)練中校正經(jīng)驗(yàn)池樣本的存儲(chǔ)優(yōu)先級(jí),提高了經(jīng)驗(yàn)池樣本的利用效率,提升了智能體的學(xué)習(xí)速度,減少了智能體與環(huán)境的交互次數(shù),使智能體以更少的迭代步收斂.
3.3.2 最優(yōu)策略的質(zhì)量
最優(yōu)策略反映智能體最終的學(xué)習(xí)結(jié)果,訓(xùn)練結(jié)束后使用最優(yōu)策略可以指導(dǎo)智能體在ALE環(huán)境中獲得良好表現(xiàn).ATDC-PER算法中策略表示為Q網(wǎng)絡(luò)參數(shù),訓(xùn)練結(jié)束后智能體可以得到完整可復(fù)用的策略.訓(xùn)練過(guò)程中保存每個(gè)時(shí)間步所在周期的獎(jiǎng)勵(lì)值,同時(shí)每隔105個(gè)時(shí)間步保存一次Q網(wǎng)絡(luò)參數(shù),訓(xùn)練結(jié)束后選擇獎(jiǎng)勵(lì)曲線平滑后處于峰值點(diǎn)的Q網(wǎng)絡(luò)參數(shù)作為最優(yōu)策略,通過(guò)測(cè)試最優(yōu)策略的質(zhì)量對(duì)學(xué)習(xí)效果進(jìn)行評(píng)價(jià).
最優(yōu)策略的評(píng)價(jià)方法與DDQN[27]中相同,首先,周期開始時(shí)智能體與環(huán)境隨機(jī)進(jìn)行1~31次無(wú)動(dòng)作交互,為測(cè)試提供隨機(jī)的初始狀態(tài).隨后,智能體按照最優(yōu)策略的ε-貪心策略選擇動(dòng)作,探索因子為0.05.每個(gè)周期智能體與環(huán)境最多進(jìn)行18 000個(gè)時(shí)間步的交互,策略的最終得分為100個(gè)測(cè)試周期得分的平均值.鑒于每個(gè)游戲的分值計(jì)算方式不同,使用式(22)在實(shí)際得分的基礎(chǔ)上計(jì)算規(guī)約得分.
(22)
其中,scorerandom為隨機(jī)智能體的得分,scorehuman為人類專家的得分,規(guī)約后的分值大于100%表明智能體的水平已經(jīng)超過(guò)了人類專家水平.
19個(gè)Atari游戲總體的最優(yōu)策略評(píng)價(jià)結(jié)果比較列于表4,單個(gè)游戲的評(píng)價(jià)結(jié)果列于表5.表5中隨機(jī)智能體(random)、人類專家(human)和DDQN算法的得分來(lái)源于文獻(xiàn)[27],PER算法的得分來(lái)源于文獻(xiàn)[11].
Table 4 Summary of Normalized Score on All Games 表4 全部游戲的規(guī)約得分評(píng)價(jià)表 %
Table 5 Raw Scores and Normalized Scores on All Games表5 全部游戲的實(shí)際得分和規(guī)約得分表
3.3.3 綜合評(píng)價(jià)
表6顯示了19個(gè)Atari游戲中智能體學(xué)習(xí)速度和最優(yōu)策略質(zhì)量的綜合評(píng)價(jià).結(jié)果表明,本文使用偏差模型校正后的真實(shí)優(yōu)先級(jí)的估計(jì)來(lái)選擇樣本能夠在訓(xùn)練中提升智能體的學(xué)習(xí)速度,同時(shí)提高最優(yōu)策略的質(zhì)量.本文算法在2種評(píng)價(jià)指標(biāo)下都取得最好成績(jī)的游戲達(dá)1419個(gè),其中在1519個(gè)游戲中提升了智能體的學(xué)習(xí)速度,減少了智能體與環(huán)境的交互次數(shù);在1519個(gè)游戲中改善了智能體的學(xué)習(xí)效果,提升了最優(yōu)策略的質(zhì)量.Boxing游戲比較簡(jiǎn)單,3種算法均能收斂到接近最大獎(jiǎng)勵(lì)值,本文算法和PER算法的收斂速度均略低于DDQN算法,但本文方法的最優(yōu)策略得分優(yōu)于其余2種算法,如圖11(e)所示.BeamRider,NameThisGame這2個(gè)游戲不同方法的訓(xùn)練曲線交錯(cuò)上升,最后各算法達(dá)到的最優(yōu)策略質(zhì)量相似,均明顯超過(guò)了人類專家水平.RoadRunner中本文方法的收斂速度優(yōu)于DDQN和PER算法,最優(yōu)策略得分略低于PER算法.PrivateEye游戲較難,3種算法的最優(yōu)策略得分均不足人類專家得分的1%,均沒有得到較好的結(jié)果.
Table 6 Comprehensive Evaluation on All Games表6 全部游戲的綜合評(píng)價(jià)表
Note: ■ shows this method is the best among all of the comparison methods.
由表4和表5數(shù)據(jù)可知,ATDC-PER算法能夠在全部19個(gè)游戲中的15個(gè)游戲獲得更好的最優(yōu)策略.最優(yōu)策略規(guī)約得分的中位數(shù)相對(duì)于PER算法[11]提高12%,平均數(shù)提高83.3%.實(shí)驗(yàn)結(jié)果表明,本文方法通過(guò)提高經(jīng)驗(yàn)池中樣本的采樣效率,可以改善智能體的最終學(xué)習(xí)效果,使智能體收斂到更好的最優(yōu)策略.
深度Q學(xué)習(xí)中,基于優(yōu)先經(jīng)驗(yàn)回放的方法在訓(xùn)練中樣本的存儲(chǔ)優(yōu)先級(jí)不能跟隨Q網(wǎng)絡(luò)迭代而更新,存儲(chǔ)優(yōu)先級(jí)不能準(zhǔn)確反映經(jīng)驗(yàn)池中樣本TD-error分布的真實(shí)情況,從而降低了大量樣本的利用效率.使用樣本的真實(shí)優(yōu)先級(jí)對(duì)經(jīng)驗(yàn)池樣本進(jìn)行采樣能夠明顯提高經(jīng)驗(yàn)池樣本的利用效率和學(xué)習(xí)的效果.
本文提出的基于TD-error自適應(yīng)校正的主動(dòng)采樣方法,利用樣本的回放周期和Q網(wǎng)絡(luò)狀態(tài)能夠校正樣本的優(yōu)先級(jí)偏差,得到樣本真實(shí)優(yōu)先級(jí)的估計(jì)值,以極小的代價(jià)逼近真實(shí)優(yōu)先級(jí)的分布.偏差模型在訓(xùn)練過(guò)程中分段更新,且對(duì)更新周期不敏感,偏差模型特征階數(shù)較小時(shí)就可以很好地估計(jì)優(yōu)先級(jí)偏差,分段更新策略顯著降低了本文方法的計(jì)算復(fù)雜度.在Q網(wǎng)絡(luò)迭代的每個(gè)時(shí)間步使用校正后的優(yōu)先級(jí)進(jìn)行采樣,能夠提升Q網(wǎng)絡(luò)訓(xùn)練中經(jīng)驗(yàn)池樣本的利用效率.在Atari 2600中的實(shí)驗(yàn)結(jié)果表明,使用本文方法進(jìn)行主動(dòng)采樣提升了智能體的學(xué)習(xí)速度,減少了智能體與環(huán)境的交互次數(shù),同時(shí)改善了智能體的學(xué)習(xí)效果,提升了最優(yōu)策略的質(zhì)量.