趙英男 劉 鵬 趙 巍 唐降龍
強(qiáng)化學(xué)習(xí)是解決序貫決策問(wèn)題的一種途徑[1].智能體在環(huán)境中做出動(dòng)作,得到環(huán)境的獎(jiǎng)勵(lì),根據(jù)獎(jiǎng)勵(lì)值調(diào)整自己的策略,目的是最大化累積回報(bào).智能體通過(guò)這樣不斷與環(huán)境進(jìn)行交互,學(xué)習(xí)到最優(yōu)策略.從與環(huán)境的交互中學(xué)習(xí)是自然界有機(jī)生物體主要學(xué)習(xí)方式之一[2].智能體通過(guò)強(qiáng)化學(xué)習(xí)方式,在極少先驗(yàn)知識(shí)條件下可習(xí)得最優(yōu)策略.
強(qiáng)化學(xué)習(xí)主要包含兩類(lèi)算法[3?4],一類(lèi)是基于值函數(shù)估計(jì)的方法,如Q-learning[5]和SARSA[6]等,在智能體與環(huán)境的不斷交互中得到最優(yōu)值函數(shù).這類(lèi)方法的好處是過(guò)程簡(jiǎn)單,易于實(shí)現(xiàn),但是無(wú)法解決連續(xù)動(dòng)作空間的問(wèn)題.另外一類(lèi)是基于策略表示的方法,也稱(chēng)為策略梯度法[7],其中典型方法包括REINFORCE 方法[7]、Actor critic 方法[8]等,其主要思想是將參數(shù)化策略與累積回報(bào)聯(lián)系起來(lái),不斷優(yōu)化得到最優(yōu)策略.這類(lèi)方法可以解決連續(xù)動(dòng)作空間的問(wèn)題,但是容易收斂到局部最優(yōu)解中.這兩類(lèi)算法是強(qiáng)化學(xué)習(xí)的經(jīng)典算法,僅能夠解決一些小規(guī)模問(wèn)題,在面對(duì)現(xiàn)實(shí)世界中大規(guī)模,復(fù)雜的問(wèn)題時(shí)往往束手無(wú)策[3],這限制了強(qiáng)化學(xué)習(xí)的發(fā)展.
強(qiáng)化學(xué)習(xí)與神經(jīng)網(wǎng)絡(luò)的首次結(jié)合可以追溯到1994 年,Tesauro[9]利用神經(jīng)網(wǎng)絡(luò)將近似值函數(shù)應(yīng)用到了Backgammon 游戲上,并取得了很好的效果.近年來(lái),深度神經(jīng)網(wǎng)絡(luò)與強(qiáng)化學(xué)習(xí)相結(jié)合,形成了深度強(qiáng)化學(xué)習(xí)方法.利用深度神經(jīng)網(wǎng)絡(luò)[10?11]的泛化能力,特征提取能力,在許多領(lǐng)域取得了突破[12].在人機(jī)對(duì)抗領(lǐng)域,結(jié)合深度強(qiáng)化學(xué)習(xí)和蒙特卡羅樹(shù)搜索方法[13]的圍棋智能體AlphaGo[14?16]先后戰(zhàn)勝了世界圍棋冠軍李世石、柯潔;將動(dòng)作值函數(shù)用深度神經(jīng)網(wǎng)絡(luò)的方式近似,同時(shí)使用Q-learning 更新規(guī)則來(lái)迭代動(dòng)作值函數(shù)的方法稱(chēng)為深度Q 學(xué)習(xí).實(shí)現(xiàn)深度Q 學(xué)習(xí)的一種方式是深度Q 網(wǎng)絡(luò).使用深度Q 網(wǎng)絡(luò)[17?18]訓(xùn)練的智能體在視頻游戲上的表現(xiàn)達(dá)到或者超過(guò)了人類(lèi)專(zhuān)家的水平;在自動(dòng)導(dǎo)航領(lǐng)域,深度強(qiáng)化學(xué)習(xí)中的A3C 方法結(jié)合輔助任務(wù)來(lái)幫助智能體更快實(shí)現(xiàn)在未知地圖中的導(dǎo)航[19],其中輔助任務(wù)包括深度預(yù)測(cè)和環(huán)形檢測(cè),由循環(huán)神經(jīng)網(wǎng)絡(luò)[20]實(shí)現(xiàn);在機(jī)器翻譯領(lǐng)域,文獻(xiàn)[21]提出了一種對(duì)偶學(xué)習(xí)機(jī)制,結(jié)合強(qiáng)化學(xué)習(xí)中的策略梯度法,提升了翻譯模型的性能;在機(jī)器人控制領(lǐng)域,文獻(xiàn)[22?23]將深度學(xué)習(xí)與策略梯度結(jié)合提出了深度確定性策略梯度法,解決了連續(xù)動(dòng)作空間的控制問(wèn)題.
目前仍存在一些因素制約深度強(qiáng)化學(xué)習(xí)的應(yīng)用:1)智能體不具備不同任務(wù)之間的泛化能力[24],在面對(duì)全新的任務(wù)時(shí),需要重新進(jìn)行訓(xùn)練.2)模型穩(wěn)定性和收斂性難以得到保證[25].3)智能體為了能夠適應(yīng)環(huán)境往往需要與環(huán)境進(jìn)行大量交互,每次交互除了會(huì)增加時(shí)間和成本,還會(huì)帶來(lái)風(fēng)險(xiǎn).如何減少交互次數(shù)是本文要研究的問(wèn)題.
減少智能體與環(huán)境的交互次數(shù)的一種思想是高效地利用已有的樣本.具體方式有:1)采用遷移學(xué)習(xí)的方式[26],復(fù)用訓(xùn)練樣本[27]或策略[28],將源任務(wù)中的樣本或策略遷移到目標(biāo)任務(wù)中,這種方法的挑戰(zhàn)在于難以衡量源任務(wù)和目標(biāo)任務(wù)的相似性,盲目遷移反而會(huì)降低效率.2)根據(jù)已經(jīng)采樣得到的樣本對(duì)環(huán)境進(jìn)行建模[29?30],然后利用建立的模型產(chǎn)生樣本,減少智能體與環(huán)境交互次數(shù).這種方法對(duì)環(huán)境模型的準(zhǔn)確性要求較高.3)在智能體訓(xùn)練時(shí)主動(dòng)選擇[31?33]那些對(duì)訓(xùn)練有促進(jìn)作用的樣本,典型方法有優(yōu)先經(jīng)驗(yàn)回放[31],利用樣本訓(xùn)練產(chǎn)生的誤差(Temporal difference error,TD-error)作為優(yōu)先級(jí),提高已采集樣本的利用效率,加快收斂.
哪些樣本對(duì)訓(xùn)練有更大的促進(jìn)作用,如何從已采集的樣本中選擇這樣的樣本是本文研究的問(wèn)題.智能體執(zhí)行一系列動(dòng)作,得到回報(bào),形成經(jīng)驗(yàn),從經(jīng)驗(yàn)中選擇樣本訓(xùn)練智能體的強(qiáng)化學(xué)習(xí)采樣方法稱(chēng)作經(jīng)驗(yàn)回放法[33].在強(qiáng)化學(xué)習(xí)中,智能體從失敗的或效果不好的經(jīng)驗(yàn)中選擇樣本與從成功的或效果好的經(jīng)驗(yàn)中選擇樣本都能得到優(yōu)化的策略,但是從成功的或效果好的經(jīng)驗(yàn)中選擇樣本可以加速學(xué)習(xí)的過(guò)程.本文在分析樣本所在序列獲得的累積回報(bào)對(duì)深度強(qiáng)化學(xué)習(xí)效果影響的基礎(chǔ)上,提出了二次主動(dòng)采樣方法.首先,計(jì)算經(jīng)驗(yàn)池中序列的累積回報(bào),根據(jù)序列累積回報(bào)的分布對(duì)序列進(jìn)行優(yōu)先采樣,然后,在被采樣的序列中以TD-error 的分布對(duì)樣本進(jìn)行優(yōu)先采樣.兩次采樣在分別考量累積回報(bào)大的序列中的樣本對(duì)學(xué)習(xí)的促進(jìn)作用和TD-error 大的樣本對(duì)Q網(wǎng)絡(luò)的收斂加速作用的同時(shí),在經(jīng)驗(yàn)池中累積回報(bào)小的序列中的樣本和TD-error 值小的樣本以較小的概率被采樣,從而保證了訓(xùn)練樣本的多樣性.在Atari 2600 視頻游戲平臺(tái)上進(jìn)行驗(yàn)證,實(shí)驗(yàn)結(jié)果表明,本文方法加快了深度Q 網(wǎng)絡(luò)(Deep Q-network,DQN)的收斂速度,提高了經(jīng)驗(yàn)池中樣本的利用效率,也提升了最優(yōu)策略的質(zhì)量.
強(qiáng)化學(xué)習(xí)解決的是序貫決策問(wèn)題,整個(gè)過(guò)程可以用馬爾科夫決策過(guò)程(Markov decision process,MDP)來(lái)進(jìn)行建模:智能體在離散時(shí)間步t=1,2,3,···內(nèi)與環(huán)境進(jìn)行交互,在每個(gè)時(shí)間步t,智能體得到環(huán)境狀態(tài)的表示St ∈S,其中S是所有狀態(tài)的集合,基于當(dāng)前狀態(tài)表示St選擇一個(gè)動(dòng)作At ∈A(St),A(St)是狀態(tài)St可采取動(dòng)作的集合.一個(gè)時(shí)間步后,智能體得到了一個(gè)標(biāo)量獎(jiǎng)勵(lì)Rt+1∈R,并且到達(dá)一個(gè)新的狀態(tài)St+1.這個(gè)過(guò)程一直持續(xù)下去,直到智能體轉(zhuǎn)移到終止?fàn)顟B(tài)[1].智能體從初始狀態(tài)轉(zhuǎn)移到終止?fàn)顟B(tài)這一系列狀態(tài)轉(zhuǎn)移可以被描述成-這樣一個(gè)序列,這樣一個(gè)序列在強(qiáng)化學(xué)習(xí)中被稱(chēng)為一個(gè)周期(Episode).從t時(shí)刻開(kāi)始,到T時(shí)刻終止,智能體在一個(gè)周期中獲得的累積回報(bào)為:
其中,0≤γ ≤1,稱(chēng)為折扣因子,折扣因子的作用是對(duì)不同時(shí)間步獲得的獎(jiǎng)勵(lì)賦予不同的權(quán)重,使得距離當(dāng)前時(shí)間步越遠(yuǎn)的獎(jiǎng)勵(lì)權(quán)重越小,強(qiáng)化學(xué)習(xí)的任務(wù)是找到一個(gè)策略使得Gt的值最大.定義動(dòng)作值函數(shù)為:
式(2)表示智能體處于狀態(tài)s,采用動(dòng)作a,然后執(zhí)行策略π可以獲得的累積期望回報(bào),定義動(dòng)作值函數(shù)更新公式為:
利用式(3)不斷迭代,最終q(s,a)將收斂到q?(s,a),即最優(yōu)動(dòng)作值函數(shù)[6].通過(guò)迭代式(3)來(lái)得到最優(yōu)動(dòng)作值函數(shù)的方法被稱(chēng)為Q-learning.為了使其具有泛化能力,擴(kuò)大其應(yīng)用范圍,將深度神經(jīng)網(wǎng)絡(luò)和Q-learning 結(jié)合起來(lái),形成深度Q 網(wǎng)絡(luò)[18].
深度Q 網(wǎng)絡(luò)(Deep Q-networks,DQN)是一種典型的深度Q 學(xué)習(xí)方法[34].DQN 的特點(diǎn)有:1)DQN 充分發(fā)揮了深度神經(jīng)網(wǎng)絡(luò)強(qiáng)大的特征提取能力和強(qiáng)化學(xué)習(xí)適應(yīng)未知環(huán)境的能力,實(shí)現(xiàn)了一種端到端的訓(xùn)練方式,同時(shí)僅僅需要極少的先驗(yàn)知識(shí),便能夠在很多復(fù)雜任務(wù)中表現(xiàn)出色.2)利用經(jīng)驗(yàn)回放和目標(biāo)網(wǎng)絡(luò)兩個(gè)技術(shù)保證了在使用非線性函數(shù)逼近器的情況下,動(dòng)作值函數(shù)的收斂.3)使用相同的超參數(shù),網(wǎng)絡(luò)結(jié)構(gòu)和算法能夠在多個(gè)不同的任務(wù)中表現(xiàn)出色,算法具有較強(qiáng)通用性.
經(jīng)驗(yàn)回放[28]是DQN 訓(xùn)練的一種典型方法.經(jīng)驗(yàn)回放方法打破了訓(xùn)練樣本間的相關(guān)性,保證了值函數(shù)的收斂.該方法將智能體與環(huán)境交互產(chǎn)生的樣本保存下來(lái),形成一個(gè)經(jīng)驗(yàn)池,每次訓(xùn)練時(shí)隨機(jī)從經(jīng)驗(yàn)池中選擇若干個(gè)樣本訓(xùn)練Q-網(wǎng)絡(luò),每個(gè)樣本是四元組,利用這個(gè)樣本,定義與該樣本對(duì)應(yīng)的第i次迭代的目標(biāo)動(dòng)作值函數(shù)為:
其中,θ?代表目標(biāo)值函數(shù)網(wǎng)絡(luò)的參數(shù).此時(shí)當(dāng)前神經(jīng)網(wǎng)絡(luò)計(jì)算出來(lái)的動(dòng)作值函數(shù)為q(St,At;θ).定義損失函數(shù)Li(θ)=(yi ?q(St,At;θ))2,利用梯度下降法不斷更新權(quán)重θ,完成DQN 的訓(xùn)練,得到最優(yōu)動(dòng)作值函數(shù).
文獻(xiàn)[35]中提出了Double DQN,解決了DQN中對(duì)動(dòng)作值函數(shù)過(guò)估計(jì)的問(wèn)題;文獻(xiàn)[36]中提出對(duì)偶神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu),將對(duì)動(dòng)作值函數(shù)的估計(jì)分解成狀態(tài)值函數(shù)估計(jì)和優(yōu)勢(shì)值函數(shù)估計(jì)兩個(gè)部分,能夠?qū)W習(xí)到更好的策略;文獻(xiàn)[31]針對(duì)等概率從經(jīng)驗(yàn)池中抽取樣本的操作提出了改進(jìn),利用每個(gè)樣本訓(xùn)練產(chǎn)生的TD-error,即目標(biāo)值和估計(jì)值的誤差,來(lái)表示樣本的重要性,為經(jīng)驗(yàn)池中樣本賦予不同的優(yōu)先級(jí),提升了DQN 算法的表現(xiàn).
在深度強(qiáng)化學(xué)習(xí)算法訓(xùn)練過(guò)程中,為了減少訓(xùn)練樣本間的相關(guān)性,常采用經(jīng)驗(yàn)回放的方法,將智能體產(chǎn)生的樣本存儲(chǔ)起來(lái),在訓(xùn)練時(shí)隨機(jī)選擇若干樣本進(jìn)行訓(xùn)練,提高了算法的收斂性和穩(wěn)定性.經(jīng)驗(yàn)池中樣本數(shù)量龐大,如何從經(jīng)驗(yàn)池中選擇樣本來(lái)提高深度強(qiáng)化學(xué)習(xí)的收斂速度是主動(dòng)采樣問(wèn)題.
文獻(xiàn)[31]中提出了優(yōu)先經(jīng)驗(yàn)回放方法,將每個(gè)樣本訓(xùn)練產(chǎn)生的TD-error 作為樣本的優(yōu)先級(jí),優(yōu)先級(jí)越大,樣本被選擇的概率就越大.該方法可以更有效率地回放樣本,而且能夠提升最優(yōu)策略的表現(xiàn).但是該算法僅從加速深度神經(jīng)網(wǎng)絡(luò)收斂速度的角度出發(fā),考慮樣本的TD-error 對(duì)訓(xùn)練的影響,忽略了樣本所在序列的累積回報(bào)對(duì)強(qiáng)化學(xué)習(xí)的作用.
本文提出二次主動(dòng)采樣方法.首先根據(jù)經(jīng)驗(yàn)池中序列的累積回報(bào)分布,以更大的概率選擇累積回報(bào)大的序列.然后,在被選擇的序列中根據(jù)TDerror 分布選擇樣本來(lái)訓(xùn)練Q 網(wǎng)絡(luò).該方法從累積回報(bào)的作用和深度神經(jīng)網(wǎng)絡(luò)誤差梯度兩個(gè)方面加速DQN 的學(xué)習(xí)過(guò)程.強(qiáng)化學(xué)習(xí)的目的是獲得最優(yōu)策略使累積回報(bào)最大化.從累積回報(bào)小的序列中選擇樣本會(huì)使智能體以更大的概率避免錯(cuò)誤,而從累積回報(bào)大的序列中選擇樣本會(huì)使智能體以更大的概率獲得更大的累積回報(bào),這與強(qiáng)化學(xué)習(xí)的目的一致.本文方法并沒(méi)有完全放棄對(duì)累積回報(bào)小的序列中樣本的采樣,只是這類(lèi)樣本被采樣的概率小,從而保證了樣本的多樣性.在Atari 2600 視頻游戲上的實(shí)驗(yàn)表明,本文提出的方法提高了經(jīng)驗(yàn)池中樣本的利用效率,同時(shí)也改善了最優(yōu)策略的質(zhì)量.
本文提出的方法建立在累積回報(bào)大的序列中的樣本以更大的概率對(duì)DQN 學(xué)習(xí)有促進(jìn)作用的基礎(chǔ)之上.首先,在經(jīng)驗(yàn)池中按序列組織樣本,然后,根據(jù)各序列累積回報(bào)的分布生成序列采樣優(yōu)先級(jí),依據(jù)優(yōu)先級(jí)在經(jīng)驗(yàn)池中對(duì)序列采樣.最后,在已選擇的序列中根據(jù)TD-error 分布生成樣本采樣優(yōu)先級(jí),在序列中選擇樣本,訓(xùn)練DQN.
在優(yōu)先經(jīng)驗(yàn)回放方法中[21],算法以樣本訓(xùn)練產(chǎn)生的TD-error 作為優(yōu)先級(jí),并沒(méi)有考慮到樣本所在序列取得的累積回報(bào).事實(shí)上,在樣本選擇時(shí)考慮樣本所在序列的累積回報(bào)是十分必要的.強(qiáng)化學(xué)習(xí)是包括人類(lèi)在內(nèi)的高級(jí)智能體的一種基于行為的學(xué)習(xí)方式.智能體產(chǎn)生的每一個(gè)序列是為了完成某件事做出的一次嘗試,回報(bào)就是對(duì)一系列行為取得結(jié)果的評(píng)價(jià).在智能體再次面對(duì)相同或者相似的任務(wù)時(shí),首先會(huì)回憶以前的經(jīng)歷,如果能夠搜索到達(dá)到目的的經(jīng)歷,那么只要按照相同的策略再執(zhí)行一次即可.如果沒(méi)有搜索到達(dá)到目的的經(jīng)歷,也會(huì)更傾向于學(xué)習(xí)(嘗試)那些較為接近目的的經(jīng)歷.這表明在成功的經(jīng)驗(yàn)中,智能體在更多狀態(tài)下都采用了有效動(dòng)作,這樣只需要經(jīng)過(guò)少量的改進(jìn),就能達(dá)到目的.本文提出的方法也源于此思想[37],成功的或者接近成功的序列,其中含有有效動(dòng)作的樣本就越多,就應(yīng)該被更多地回放,從而提高DQN 的學(xué)習(xí)速度,提升學(xué)習(xí)到的策略的質(zhì)量.
平衡桿(Cartpole)問(wèn)題是強(qiáng)化學(xué)習(xí)中的經(jīng)典問(wèn)題.如圖1 所示,平衡桿由兩部分構(gòu)成,方塊是一個(gè)小車(chē),上面連接著一個(gè)桿,假設(shè)不存在摩擦力,平衡桿的目的是通過(guò)施加給小車(chē)向左或者向右的力維持上面桿的平衡.每次做出動(dòng)作,桿子如果沒(méi)有倒下,就會(huì)獲得值為1 的獎(jiǎng)勵(lì).平衡桿問(wèn)題動(dòng)作空間大小為2,狀態(tài)空間是無(wú)限的,適合用來(lái)驗(yàn)證DQN 算法.接下來(lái)在Cartpole 中進(jìn)行兩個(gè)說(shuō)明性實(shí)驗(yàn)來(lái)驗(yàn)證假設(shè).
1)累積回報(bào)與有效動(dòng)作數(shù)量的關(guān)系
本文提出的方法基于一個(gè)假設(shè):獲得累積回報(bào)越大的序列,其中含有有效動(dòng)作的樣本數(shù)量越多.為了驗(yàn)證這一假設(shè),首先訓(xùn)練出一個(gè)已經(jīng)收斂的網(wǎng)絡(luò)模型M?,即輸入狀態(tài),可以輸出最優(yōu)動(dòng)作,作為有效動(dòng)作.然后利用DQN 算法訓(xùn)練另外一個(gè)網(wǎng)絡(luò)模型M,訓(xùn)練過(guò)程中將智能體產(chǎn)生的序列保存下來(lái),同時(shí)記錄下每個(gè)序列得到的累積回報(bào).在某一時(shí)刻對(duì)序列進(jìn)行采樣,按照累積回報(bào)從小到大的順序?qū)π蛄羞M(jìn)行排序.第一次從后50% 的序列中進(jìn)行采樣,也就是從累積回報(bào)較大的序列中選擇樣本,第二次從前50% 的序列中進(jìn)行采樣,也就是從累積回報(bào)較小的序列中選擇樣本.兩次采樣的樣本數(shù)量相同,均為500 000.遍歷每一個(gè)樣本-,將狀態(tài)s輸入到M?中,得到有效動(dòng)作a?,判斷樣本中的動(dòng)作a和有效動(dòng)作a?是否相同.
實(shí)驗(yàn)結(jié)果表明,在累積回報(bào)大的序列中取得的500 000 個(gè)樣本中,含有有效動(dòng)作的樣本的數(shù)量為297 428 個(gè),在累積回報(bào)小的序列中取得的樣本中,含有有效動(dòng)作的樣本的數(shù)量?jī)H為208 286 個(gè).前者的數(shù)量比后者多出42.8%.
2)累積回報(bào)對(duì)DQN 訓(xùn)練的影響
另外,結(jié)合優(yōu)先經(jīng)驗(yàn)回放方法[31],對(duì)于平衡桿問(wèn)題驗(yàn)證不同累積回報(bào)對(duì)DQN 學(xué)習(xí)的影響.程序采用-貪心策略來(lái)控制智能體探索與利用的平衡問(wèn)題,探索因子設(shè)置為0.1.智能體與環(huán)境最大交互次數(shù)設(shè)置為100 000,序列采樣數(shù)量設(shè)為10.若智能體產(chǎn)生的最近一百個(gè)序列累積回報(bào)的均值達(dá)到199,即為收斂狀態(tài),程序停止.
對(duì)三種情況進(jìn)行實(shí)驗(yàn):
情況A.經(jīng)典的優(yōu)先經(jīng)驗(yàn)回放方法[31],沒(méi)有考慮序列回報(bào).
情況B.將經(jīng)驗(yàn)池中的N個(gè)序列按照累積回報(bào)大小從大到小排序,在前10% 序列中隨機(jī)選取8 個(gè)序列,從剩余90% 序列中隨機(jī)選取2 個(gè)序列,再利用優(yōu)先經(jīng)驗(yàn)回放方法對(duì)這10 個(gè)序列的樣本進(jìn)行采樣.
情況C.將經(jīng)驗(yàn)池中的N個(gè)序列按照累積回報(bào)大小從大到小排序,在后10% 序列中隨機(jī)選取8 個(gè)序列,在剩余90% 序列中隨機(jī)選取2 個(gè)序列,再利用優(yōu)先經(jīng)驗(yàn)回放方法對(duì)這10 個(gè)序列的樣本進(jìn)行采樣.
圖1 平衡桿環(huán)境示意圖Fig.1 The diagram of cartpole
圖2 平衡桿在三種情況下的對(duì)比實(shí)驗(yàn)Fig.2 The cartpole comparison experiments in three cases
為了避免偶然性,每種情況運(yùn)行10 次,圖2 中展示的為取平均后的結(jié)果,實(shí)驗(yàn)結(jié)果如圖2 所示.圖2 的橫坐標(biāo)代表智能體與環(huán)境的交互次數(shù),縱坐標(biāo)代表智能體產(chǎn)生的最近100 個(gè)序列累積回報(bào)的均值.下面對(duì)實(shí)驗(yàn)現(xiàn)象進(jìn)行說(shuō)明:
1)從累積回報(bào)較小序列中樣本學(xué)習(xí)的DQN(情況C)沒(méi)有達(dá)到最優(yōu)策略.
2)不考慮序列累積回報(bào)的DQN (情況A)達(dá)到了最優(yōu)策略,但學(xué)習(xí)過(guò)程中波動(dòng)較大.
3)從累積回報(bào)較大序列中樣本學(xué)習(xí)的DQN(情況B)最終達(dá)到最優(yōu)策略,而且學(xué)習(xí)過(guò)程中回報(bào)平穩(wěn),學(xué)習(xí)過(guò)程中回報(bào)平穩(wěn)帶來(lái)的一個(gè)直接好處就是減少了訓(xùn)練過(guò)程中產(chǎn)生的風(fēng)險(xiǎn).
4)從累積回報(bào)較大的序列中選擇樣本的訓(xùn)練方法(情況B)在80 000 幀交互后使DQN 達(dá)到收斂;用優(yōu)先經(jīng)驗(yàn)回放方法(情況A)選擇樣本在89 000幀交互后使DQN 達(dá)到收斂.
這表明從累積回報(bào)大的序列中選擇樣本這種方法能夠使DQN 更快達(dá)到最優(yōu)策略.上述三種情況的對(duì)比實(shí)驗(yàn)表明,累積回報(bào)大的序列中的樣本對(duì)訓(xùn)練更有促進(jìn)作用.
從累積回報(bào)大的序列中選擇樣本,會(huì)增加含有有效動(dòng)作樣本的數(shù)量,進(jìn)而加速DQN的收斂.下面從DQN 訓(xùn)練過(guò)程來(lái)解釋含有有效動(dòng)作的樣本對(duì)DQN 學(xué)習(xí)的促進(jìn)作用.經(jīng)驗(yàn)池用E={l1,l2,···}表示,其中l(wèi)i=為經(jīng)驗(yàn)池中的第i個(gè)序列,是序列l(wèi)i中的一個(gè)樣本.當(dāng)智能體處于狀態(tài)St時(shí),如果E中有兩個(gè)序列l(wèi)m,ln中的樣本和均可以回放,根據(jù)式(3)回放使動(dòng)作值函數(shù)收斂到回放使動(dòng)作值函數(shù)收斂到q?(St,Ant).
在k時(shí)刻,智能體處于狀態(tài)Sk,選擇樣本進(jìn)行回放,即在k時(shí)刻,采用動(dòng)作Ak使智能體的狀態(tài)由Sk轉(zhuǎn)移到St,動(dòng)作值函數(shù)更新為:
DQN 訓(xùn)練的損失函數(shù)為L(zhǎng)(θ)=(y ?q(s,a;θ))2,其中其中y被稱(chēng)為目標(biāo)值,與監(jiān)督學(xué)習(xí)中目標(biāo)值是固定的不同,在DQN 中目標(biāo)值是不斷變化的,而且有很多時(shí)候目標(biāo)值不準(zhǔn)確,這就造成了DQN 收斂速度慢,訓(xùn)練過(guò)程不穩(wěn)定等問(wèn)題.本文提出的二次主動(dòng)采樣方法,首先從經(jīng)驗(yàn)池中選擇累積回報(bào)大的樣本序列.然后從樣本序列中選擇TD-error 大的樣本進(jìn)行訓(xùn)練,能增加參與訓(xùn)練的含有有效動(dòng)作樣本的數(shù)量.兩次采樣中的第一次采樣保證了DQN 訓(xùn)練的損失函數(shù)中目標(biāo)值的穩(wěn)定性,第二次采樣加速了動(dòng)作值函數(shù)迭代的收斂速度.
盡管累積回報(bào)大的樣本對(duì)DQN 訓(xùn)練有更大的促進(jìn)作用,但是樣本多樣性也是保證DQN訓(xùn)練收斂的一個(gè)重要方面.本文根據(jù)序列累積回報(bào)的分布構(gòu)造對(duì)經(jīng)驗(yàn)池中序列的采樣概率.設(shè)經(jīng)驗(yàn)池為E={l1,l2,···,lm},其中l(wèi)i=為經(jīng)驗(yàn)池中的第i個(gè)序列,是序列l(wèi)i中的一個(gè)樣本.序列l(wèi)i中的樣本數(shù)量用|li|表示.第i個(gè)序列取得的累積回報(bào)為令pi=Gi+為第i個(gè)序列的優(yōu)先級(jí),其中是一個(gè)極小的正數(shù),目的是保證所有序列的優(yōu)先級(jí)均大于0.li被采樣的概率為:
其中,α決定了優(yōu)先級(jí)所占比例,當(dāng)α=0 時(shí),對(duì)序列的采樣退化為均勻采樣.用P(i),i ∈{1,2,···,m}對(duì)經(jīng)驗(yàn)池E中的序列采樣,使累積回報(bào)大的序列以更大的概率被選擇,同時(shí)累積回報(bào)小的序列也有機(jī)會(huì)被選擇.在保證累積回報(bào)大的序列中樣本以更大的概率參加DQN 訓(xùn)練的同時(shí),也保證了樣本的多樣性.
本文提出的二次主動(dòng)采樣方法,首先以序列的形式組織經(jīng)驗(yàn)池E.根據(jù)序列累積回報(bào)的分布對(duì)經(jīng)驗(yàn)池E中的序列進(jìn)行采樣,形成一個(gè)小型的經(jīng)驗(yàn)池然后在經(jīng)驗(yàn)池中根據(jù)樣本的TD-error 分布進(jìn)行第二次采樣,得到用于DQN 訓(xùn)練的樣本.第一次采樣以累積回報(bào)作為序列選擇的準(zhǔn)則,使得到的經(jīng)驗(yàn)池中的樣本中以更大的概率來(lái)自于累積回報(bào)大的序列.在第二次采樣中,以DQN 訓(xùn)練的TD-error 為依據(jù),使能夠加速DQN 收斂的樣本以更大的概率參加DQN 訓(xùn)練.本文提出的二次主動(dòng)采樣方法從樣本所在序列的性質(zhì)(累積回報(bào))和樣本在DQN 迭代中加速作用(TD-error)兩方面出發(fā)來(lái)選擇樣本.用本文方法選擇的樣本既可以獲得最優(yōu)策略,也保證了DQN 的收斂速度.
本文提出的二次主動(dòng)采樣方法首先以累積回報(bào)為標(biāo)準(zhǔn)從樣本池中選擇序列,再以TD-error 為標(biāo)準(zhǔn)從樣本序列中選擇樣本.兩次采樣的順序是不能交換的.如果忽略樣本序列導(dǎo)致的累積回報(bào),先從樣本池中選擇TD-error 值大的樣本來(lái)更新動(dòng)作值函數(shù),這樣的樣本所在的樣本序列未必使累積回報(bào)值得到優(yōu)化.Q-learning 的目標(biāo)是在某個(gè)狀態(tài)下得到一個(gè)動(dòng)作使累積回報(bào)最大化,本文提出的二次采樣方法的基本思想是在累積回報(bào)大的樣本序列中選擇TD-error 大的樣本會(huì)使Q-learning 以更快的收斂速度獲得最優(yōu)策略.
算法1.二次主動(dòng)采樣算法
輸入.訓(xùn)練頻率K,采樣序列數(shù)量N,獎(jiǎng)勵(lì)折扣因子γ,樣本批量大小k,指數(shù)α,學(xué)習(xí)率η,訓(xùn)練終止時(shí)間步T,算法初始經(jīng)驗(yàn)池容量size,重要性采樣權(quán)重β,目標(biāo)Q 網(wǎng)絡(luò)更新頻率L
輸出.Q 網(wǎng)絡(luò)參數(shù)
初始化.經(jīng)驗(yàn)池E為空,初始化Q 網(wǎng)絡(luò)和目標(biāo)Q 網(wǎng)絡(luò)參數(shù)為θ和θ?,優(yōu)先級(jí)=1,單個(gè)序列存儲(chǔ)經(jīng)驗(yàn)池h
為了方便對(duì)序列的采樣,算法在第3~7 步將整個(gè)序列保存到經(jīng)驗(yàn)池中.在第8 步中開(kāi)始訓(xùn)練,訓(xùn)練前判斷當(dāng)前時(shí)間步是否大于size,這里的size指的是經(jīng)驗(yàn)池初始化容量,目的是在經(jīng)驗(yàn)池中存儲(chǔ)一些樣本,方便接下來(lái)的訓(xùn)練.第9~27 步為二次采樣過(guò)程.其中,第9~19 步為算法的第一部分.首先計(jì)算每個(gè)序列的累積回報(bào),再計(jì)算優(yōu)先級(jí),最后得到序列被采樣的概率.第15~19 步根據(jù)優(yōu)先級(jí)采樣N個(gè)序列構(gòu)成小經(jīng)驗(yàn)池第19~27 步為樣本采樣和訓(xùn)練過(guò)程.第23 步計(jì)算TD-error 利用的是Double DQN[18]算法,這種計(jì)算方式可以減少DQN 對(duì)值函數(shù)的過(guò)估計(jì).第28 步是更新目標(biāo)網(wǎng)絡(luò)參數(shù)過(guò)程,是一種保證DQN 收斂的一種方法,將目標(biāo)值網(wǎng)絡(luò)和當(dāng)前值網(wǎng)絡(luò)分開(kāi),使得目標(biāo)值網(wǎng)絡(luò)的權(quán)重在一段時(shí)間內(nèi)保持不變,從而使得目標(biāo)值也會(huì)在一段時(shí)間內(nèi)保持不變,使得訓(xùn)練過(guò)程更加穩(wěn)定.
除深度Q 學(xué)習(xí)以外,還有許多強(qiáng)化學(xué)習(xí)方法如SARSA 算法[38]、Actor critic 算法[39]都可以采用經(jīng)驗(yàn)回放方式來(lái)提升樣本利用率,加快收斂速度.經(jīng)驗(yàn)回放就是將樣本保存在經(jīng)驗(yàn)池中,訓(xùn)練時(shí)從經(jīng)驗(yàn)池中選擇樣本.本文提出的二次主動(dòng)采樣方法也適用于其他涉及到經(jīng)驗(yàn)回放的強(qiáng)化學(xué)習(xí)的樣本選擇過(guò)程.
本文提出的算法主要分成兩個(gè)部分,首先是序列采樣,主要思想是序列優(yōu)先級(jí)越大被采樣概率越大,采用的主要方法如下:對(duì)每個(gè)序列的優(yōu)先級(jí)進(jìn)行加和記為sum,序列優(yōu)先級(jí)最小值為,在到sum 之間隨機(jī)選一個(gè)數(shù)random.接下來(lái)遍歷整個(gè)序列集合,統(tǒng)計(jì)遍歷到的序列的優(yōu)先級(jí)之和,如果大于random,則選擇這個(gè)序列.假設(shè)經(jīng)驗(yàn)池中共有M個(gè)序列,采樣的序列數(shù)量為N個(gè).該方法需要遍歷所有序列,時(shí)間復(fù)雜度為O(MN).
算法第二部分是對(duì)小經(jīng)驗(yàn)池進(jìn)行優(yōu)先經(jīng)驗(yàn)回放,假設(shè)采樣序列數(shù)量為N,平均每個(gè)序列含有K個(gè)樣本,因此小經(jīng)驗(yàn)池的容量為KN.這里采用與第一部分相同的采樣方法,假設(shè)采樣樣本數(shù)量為m.可知時(shí)間復(fù)雜度為O(mKN).
因此本文提出的算法總體時(shí)間復(fù)雜度為O(MN)+O(mKN)).由于經(jīng)驗(yàn)池容量固定,因此本文提出的方法運(yùn)行時(shí)間在DQN 訓(xùn)練過(guò)程中基本保持不變.
本文在openAI Gym(https://gym.openai.com)上的Atari 游戲平臺(tái)進(jìn)行實(shí)驗(yàn).Atari 游戲平臺(tái)[40]有兩個(gè)特點(diǎn):1)僅僅以圖像作為輸入,與人類(lèi)玩游戲的方式相同.2)游戲種類(lèi)多樣,包括射擊類(lèi)、動(dòng)作類(lèi)、策略類(lèi)等,適合驗(yàn)證算法的通用性和泛化能力.Atari 平臺(tái)上的部分游戲界面如圖3 所示.Atari 平臺(tái)是當(dāng)前深度強(qiáng)化學(xué)習(xí)的主流測(cè)試平臺(tái).
實(shí)驗(yàn)硬件平臺(tái)是Dell-T630 工作站,處理器為兩個(gè)Intel(R)Xeon(R)CPU E5-2650 v4,顯卡為3 塊GTX-1080 TI 和1 塊GTX-1070,工作站內(nèi)存64 GB,操作系統(tǒng)為Ubuntu 16.04.
本文提出的方法中有一個(gè)超參數(shù)需要設(shè)置,即序列采樣的數(shù)量,序列采樣數(shù)量過(guò)少,會(huì)使樣本失去多樣性,DQN 訓(xùn)練發(fā)散;采樣過(guò)多則會(huì)使得被采樣的序列構(gòu)成小型經(jīng)驗(yàn)池變大,導(dǎo)致第二次采樣時(shí)間變長(zhǎng),算法運(yùn)行時(shí)間變長(zhǎng).為了選擇適當(dāng)?shù)男蛄胁蓸訑?shù)量,在平衡桿上用6 個(gè)不同的序列采樣數(shù)量進(jìn)行實(shí)驗(yàn).每個(gè)實(shí)驗(yàn)運(yùn)行10 次.算法的平均運(yùn)行時(shí)間和平均收斂步數(shù)列于表1.
表1 平衡桿問(wèn)題在不同采樣序列數(shù)量下的平均運(yùn)行時(shí)間和平均收斂步數(shù)Table 1 Average convergent step numbers and consuming time using different sampling episode numbers in cartpole
圖3 Atari 游戲截圖Fig.3 Screenshots of some games
由表1 可以看出,隨著采樣序列數(shù)量的增加,算法運(yùn)行時(shí)間逐漸變長(zhǎng),平均收斂步數(shù)也逐漸減少,但是采樣序列數(shù)量大于40 時(shí),DQN 的平均收斂步數(shù)增加,原因是當(dāng)采樣序列的數(shù)量過(guò)大時(shí),則會(huì)使得算法逐漸退化成為優(yōu)先經(jīng)驗(yàn)回放方法,進(jìn)而造成性能下降.因此將采樣序列數(shù)量設(shè)置為40.
DQN 每次迭代前,從已被采樣的序列中選擇樣本的數(shù)量為32.折扣因子γ設(shè)置為0.99.探索因子設(shè)置為隨著時(shí)間步數(shù)增加而分段遞減形式,如圖4所示.在訓(xùn)練開(kāi)始階段,探索因子取較大值,智能體以更大概率探索,在訓(xùn)練后期,取較小的值.智能體以更大的概率利用已獲得的策略.
圖4 值變化曲線Fig.4 The value of
本文提出的二次主動(dòng)采樣算法,首先按照累積回報(bào)大小對(duì)序列進(jìn)行采樣構(gòu)成一個(gè)較小的經(jīng)驗(yàn)池,再按照優(yōu)先經(jīng)驗(yàn)回放的方法在其中進(jìn)行采樣.這種方法與優(yōu)先經(jīng)驗(yàn)回放的不同之處在于,優(yōu)先經(jīng)驗(yàn)回放方法更加頻繁地回放那些在整個(gè)經(jīng)驗(yàn)池中TDerror 值較大的樣本,而本文提出的方法更加關(guān)注那些所處序列獲得的累積回報(bào)較大同時(shí)TD-error 值也較大的樣本,這些樣本是對(duì)訓(xùn)練更有促進(jìn)作用的樣本.在進(jìn)行對(duì)比實(shí)驗(yàn)之前,首先選擇蜈蚣(Centipede)這個(gè)游戲,對(duì)其經(jīng)驗(yàn)池中樣本進(jìn)行了分析,訓(xùn)練曲線圖如圖5 所示,橫坐標(biāo)為交互次數(shù),縱坐標(biāo)為平均累積回報(bào).分析時(shí)考慮樣本所處序列的回報(bào)和樣本TD-error 兩個(gè)方面.將訓(xùn)練過(guò)程中某一時(shí)刻的經(jīng)驗(yàn)池保存下來(lái),記錄下每個(gè)樣本的TD-error值和所處序列累積回報(bào)值,將TD-error 從大到小排序,經(jīng)驗(yàn)池中樣本總數(shù)為106,取出TD-error 值較大的前3×105個(gè)樣本,并得到其所處序列獲得的累積回報(bào),這里分別記錄時(shí)間步為4×107和1.6×108兩個(gè)時(shí)刻的經(jīng)驗(yàn)池,如圖5 中黑色虛線所示.將樣本的累積回報(bào)分別繪制成分布圖如圖6(a)和(b).
圖6 中橫坐標(biāo)為樣本所處序列獲得的累積回報(bào),縱坐標(biāo)為樣本數(shù)量.可以發(fā)現(xiàn),多數(shù)樣本其所在序列累積回報(bào)較小,同時(shí)也存在一部分樣本所處序列累積回報(bào)較大,即處于圖中右側(cè)部分的樣本,這部分的樣本是對(duì)DQN 訓(xùn)練更有促進(jìn)作用的樣本,即具有TD-error 值較大,同時(shí)所處序列累積回報(bào)較大兩種性質(zhì)的樣本.實(shí)驗(yàn)結(jié)果表明具有這兩種性質(zhì)的樣本在游戲訓(xùn)練不同時(shí)刻都是存在的.打磚塊(Breakout)和坦克大戰(zhàn)(Robotank)也有相似的現(xiàn)象,得出的樣本分布情況如圖6(c)和(d)所示.
圖5 蜈蚣游戲訓(xùn)練曲線Fig.5 The training curve of centipede
本文提出方法首先從樣本池中選擇累積回報(bào)大的樣本序列,再?gòu)倪@些序列中選擇TD-error 大的樣本對(duì)DQN 訓(xùn)練以提高其收斂速度.這個(gè)過(guò)程包含兩次選擇,一次是對(duì)樣本序列的選擇,另一次是在已選擇的樣本序列中對(duì)樣本進(jìn)行選擇.如果交換這兩次選擇的順序,先從樣本池中選擇TD-error 大的樣本,再根據(jù)已選擇樣本所在序列的累積回報(bào)的大小對(duì)已選擇樣本進(jìn)行二次篩選,則不能達(dá)到提高DQN收斂速度的效果.用平衡桿實(shí)驗(yàn)來(lái)驗(yàn)證樣本采樣順序?qū)QN 收斂性的影響.對(duì)兩種選擇順序分別進(jìn)行10 次實(shí)驗(yàn),每次實(shí)驗(yàn)最大交互步數(shù)為100 000.實(shí)驗(yàn)結(jié)果列于表2.實(shí)驗(yàn)結(jié)果表明,本文提出方法的樣本選擇順序取得了更好的收斂效果.
表2 樣本選擇順序?qū)Ρ葘?shí)驗(yàn)(平衡桿)Table 2 The comparison experiments in different sampling order (cartpole)
圖6 經(jīng)驗(yàn)池樣本分布圖Fig.6 The distribution map of samples
本文選擇Double DQN (DDQN)[35]和優(yōu)先經(jīng)驗(yàn)回放(Prioritized experience replay,PER)[31]作為對(duì)比算法,其中DDQN 主要思想是在經(jīng)驗(yàn)池中隨機(jī)選擇樣本,進(jìn)行訓(xùn)練,PER 主要思想是將樣本訓(xùn)練產(chǎn)生的TD-error 作為優(yōu)先級(jí),然后在經(jīng)驗(yàn)池中有選擇地采樣訓(xùn)練,本文方法則是在PER 基礎(chǔ)上增加了對(duì)序列采樣的過(guò)程,提升了樣本的利用效率.算法評(píng)價(jià)標(biāo)準(zhǔn)包括:1)算法收斂速度.2)算法得到最優(yōu)策略的質(zhì)量.實(shí)驗(yàn)訓(xùn)練曲線如圖7 所示.圖7 橫坐標(biāo)為交互次數(shù),縱坐標(biāo)為平均累積回報(bào).由圖7 可以看出,本文提出的方法與優(yōu)先經(jīng)驗(yàn)回放和Double DQN 算法相比,在多數(shù)游戲中能夠使用更少的交互次數(shù)達(dá)到相同的平均回報(bào),在收斂速度上要優(yōu)于這兩個(gè)算法.智能體學(xué)習(xí)到的策略可以通過(guò)模型參數(shù)得到,訓(xùn)練過(guò)程中,每5×105時(shí)間步保存一次模型參數(shù),找到訓(xùn)練曲線中最高點(diǎn)將那一時(shí)刻保存的模型參數(shù)作為最優(yōu)策略,然后利用文獻(xiàn)[35]提出的評(píng)價(jià)方法,也稱(chēng)為無(wú)動(dòng)作評(píng)價(jià)(No-op action)來(lái)評(píng)價(jià)不同算法得到的最優(yōu)策略的優(yōu)劣.具體做法在1~31 之間隨機(jī)選一個(gè)數(shù)字f,在序列的前f幀不執(zhí)行動(dòng)作,保證每個(gè)序列有不同的起始狀態(tài),將探索因子設(shè)置成0.05,然后按照要測(cè)試的策略執(zhí)行100 個(gè)序列,取序列平均得分,用該得分評(píng)價(jià)策略的優(yōu)劣.由于每個(gè)游戲都有自己不同的分?jǐn)?shù)計(jì)算方式,為了使算法能夠在不同游戲間進(jìn)行比較,利用式(9)對(duì)分?jǐn)?shù)進(jìn)行歸一化:
其中,scorerandom代表智能體隨機(jī)采用動(dòng)作得到的分?jǐn)?shù),scorehuman代表人類(lèi)專(zhuān)家的得分,scoreagent代表采用本文算法學(xué)習(xí)到的策略得到的分?jǐn)?shù).人類(lèi)專(zhuān)家和隨機(jī)智能體的得分?jǐn)?shù)據(jù)來(lái)自于文獻(xiàn)[7],DDQN 算法的得分來(lái)自于文獻(xiàn)[35],PER 算法的得分來(lái)自于文獻(xiàn)[31],其中有些數(shù)據(jù)與實(shí)際測(cè)試不同,以實(shí)際測(cè)試為準(zhǔn).對(duì)歸一化之后的分?jǐn)?shù)進(jìn)行統(tǒng)計(jì)得到表3.
每個(gè)游戲的具體得分如表4 所示,每個(gè)游戲的歸一化得分如表5 所示.
圖7 Atari 游戲訓(xùn)練曲線Fig.7 The training curves of Atari games
本文提出的方法在打磚塊(Breakout),行星大戰(zhàn)(Asteroids)、蜈蚣(Centipede)、坦克大戰(zhàn)(Robotank)等游戲中表現(xiàn)出色,能夠取得更高的分?jǐn)?shù).原因在于在這類(lèi)游戲中,智能體目標(biāo)較為明確而且單一,即為消滅敵人或者擊打磚塊,這樣獲得累積回報(bào)較大的序列相對(duì)于獲得累積回報(bào)較小的序列會(huì)有指導(dǎo)意義.在運(yùn)河大戰(zhàn)(Riverraid)游戲中,智能體可以從不同途徑獲得獎(jiǎng)勵(lì),包括消滅敵人(如圖8(a)),獲得補(bǔ)給(如圖8(b)),和消滅補(bǔ)給(如圖8(c)),這使得獲得不同累積回報(bào)的序列之間沒(méi)有明顯的優(yōu)劣關(guān)系,累積回報(bào)作為序列采樣的依據(jù)這一特點(diǎn)沒(méi)有表現(xiàn)出來(lái).所以本文方法在運(yùn)河大戰(zhàn)游戲中表現(xiàn)不佳.
表3 全部游戲的規(guī)約得分總體統(tǒng)計(jì)表Table 3 Summary of normalized score on all games
表4 全部游戲?qū)嶋H得分統(tǒng)計(jì)結(jié)果Table 4 Scores on 12 Atari games with no-ops evaluation
表5 全部游戲規(guī)約得分統(tǒng)計(jì)結(jié)果Table 5 Normalized scores on 12 Atari games
圖8 Riverraid 游戲截圖Fig.8 Screenshots of Riverraid
強(qiáng)化學(xué)習(xí)的目的是得到策略使累積回報(bào)最大化.累積回報(bào)大的序列中的樣本和累積回報(bào)小的序列中的樣本都可以用于深度Q 網(wǎng)絡(luò)的訓(xùn)練,但是累積回報(bào)大的序列中的樣本對(duì)深度Q 網(wǎng)絡(luò)的收斂和策略提升有更大的促進(jìn)作用.本文提出的深度Q 學(xué)習(xí)的二次主動(dòng)采樣方法從序列累積回報(bào)分布和樣本TD-error 分布兩個(gè)方面構(gòu)造序列采樣優(yōu)先級(jí)和樣本采樣優(yōu)先級(jí).用本文方法獲得的樣本訓(xùn)練深度Q 網(wǎng)絡(luò),在Atari 平臺(tái)上進(jìn)行了驗(yàn)證,實(shí)驗(yàn)結(jié)果表明,本文方法加速了網(wǎng)絡(luò)的收斂速度,提高了經(jīng)驗(yàn)池中樣本的利用效率,也提升了策略的質(zhì)量.