張紅杰,曲 成,李 京
(中國科學(xué)技術(shù)大學(xué) 計算機(jī)科學(xué)與技術(shù)學(xué)院,合肥 230026)
深度強(qiáng)化學(xué)習(xí)(Deep reinforcement learning,DRL)使用深度神經(jīng)網(wǎng)絡(luò)表示智能體的策略函數(shù),使其在許多復(fù)雜決策任務(wù)中表現(xiàn)優(yōu)異,比如視頻游戲[1]、自動駕駛[2]、金融投資[3]、路徑規(guī)劃[4]、資源分配[5]等.在強(qiáng)化學(xué)習(xí)任務(wù)中有兩個關(guān)鍵組件:環(huán)境和智能體.智能體根據(jù)關(guān)鍵當(dāng)前環(huán)境狀態(tài)選擇動作,環(huán)境執(zhí)行該動作并轉(zhuǎn)移到下一個狀態(tài),同時返回即時獎勵.強(qiáng)化學(xué)習(xí)的目標(biāo)是學(xué)習(xí)狀態(tài)-動作映射函數(shù),從而最大化完成任務(wù)時的累計獎勵.因此完成任務(wù)的時間為環(huán)境狀態(tài)轉(zhuǎn)移時間與智能體推理時間之和[6].然而,為解決復(fù)雜的決策任務(wù),智能體使用更大的神經(jīng)網(wǎng)絡(luò),這將導(dǎo)致任務(wù)完成時間被顯著延長.比如在視頻游戲中智能體的低效推理,將會嚴(yán)重影響游戲幀率.因此如何在保證策略質(zhì)量的前提下盡量降低推理代價變得至關(guān)重要.
神經(jīng)網(wǎng)絡(luò)推理時間正比于其浮點(diǎn)數(shù)計算量(floating point operations,F(xiàn)LOPs).不同計算設(shè)備的每秒鐘浮點(diǎn)數(shù)運(yùn)算次數(shù)(floating-point operations per second,F(xiàn)LOPS)不同,導(dǎo)致神經(jīng)網(wǎng)絡(luò)推理時間不同.為排除計算設(shè)備的影響,研究人員更關(guān)注浮點(diǎn)數(shù)計算量的減少程度.為降低神經(jīng)網(wǎng)絡(luò)的FLOPs,研究人員提出很多壓縮和加速技術(shù).這些技術(shù)可以分為兩大類:一類是通過改變神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)達(dá)到壓縮和加速,比如神經(jīng)網(wǎng)絡(luò)剪枝[7-9]和參數(shù)量化技術(shù)[10-13].另一類是樣本感知的動態(tài)神經(jīng)網(wǎng)絡(luò)[14-17],根據(jù)樣本的識別難度采用不同執(zhí)行流程(不同的計算代價),從而降低平均推理代價.動態(tài)神經(jīng)網(wǎng)絡(luò)與神經(jīng)網(wǎng)絡(luò)壓縮技術(shù)是相互兼容的,兩種技術(shù)理論上可以同時使用.本文從動態(tài)神經(jīng)網(wǎng)絡(luò)出發(fā),旨在降低智能體在強(qiáng)化學(xué)習(xí)任務(wù)中的決策推理代價.
目前動態(tài)神經(jīng)網(wǎng)絡(luò)技術(shù)主要應(yīng)用于圖像處理(分類、圖像分割等),他們根據(jù)輸入圖像的內(nèi)容和紋理細(xì)節(jié)區(qū)分樣本識別難度.比如,在圖1(a)中左邊的圖像由于復(fù)雜的紋理和特征使其分類難度遠(yuǎn)大于右邊的圖像,動態(tài)神經(jīng)網(wǎng)絡(luò)會賦予更多的計算代價(更大的神經(jīng)網(wǎng)絡(luò))給左邊的圖像[14].然而現(xiàn)有的動態(tài)方法不能簡單的應(yīng)用于強(qiáng)化學(xué)習(xí)任務(wù)中,這里主要存在3個挑戰(zhàn).1)通過圖像紋理和特征很難區(qū)分狀態(tài)的難易程度.比如圖1(b)中玩乒乓球的兩個狀態(tài)從內(nèi)容上來看非常相似,但是對于智能體,左邊的狀態(tài)更難決策,因為“球”已經(jīng)靠近智能體,此時需要考慮到未來的變化和獎勵選擇最優(yōu)的動作擊回“乒乓球”.相反圖1(b)中右邊的狀態(tài)是簡單的,因為“球”離開智能體靠近“對手”,此時智能體做任何動作都不會影響未來獎勵;2)強(qiáng)化學(xué)習(xí)中沒有分類標(biāo)簽以及置信度,而這些都是現(xiàn)有動態(tài)網(wǎng)絡(luò)所必須的;3)當(dāng)選擇不同執(zhí)行流程時需要考慮對未來狀態(tài)的影響,畢竟強(qiáng)化學(xué)習(xí)是連續(xù)決策問題,累計獎勵才是最終目標(biāo).因此,將動態(tài)神經(jīng)網(wǎng)絡(luò)應(yīng)用于強(qiáng)化學(xué)習(xí)任務(wù)必須同時考慮任務(wù)目標(biāo)和輸入內(nèi)容.
圖1 圖像分類與乒乓球任務(wù)的圖像難易程度對比
為解決上述挑戰(zhàn),本文創(chuàng)新性的提出自適應(yīng)策略推理框架(Adaptive Policy Inference,AdaPI),使用動態(tài)網(wǎng)絡(luò)降低策略推理代價.AdaPI類似于層次化DRL框架包含兩層策略,即下層的子策略和上層的元策略.子策略網(wǎng)絡(luò)有多個并具有不同大小,專門應(yīng)對難易程度不同的狀態(tài).這些子策略通過預(yù)訓(xùn)練的“教師”策略網(wǎng)絡(luò)壓縮[18]而來.為保證最終策略質(zhì)量,元策略將根據(jù)當(dāng)前狀態(tài)的難易程度選擇合適的子策略.特別的,AdaPI使用策略梯度技術(shù)訓(xùn)練元策略,在保證策略質(zhì)量的約束下最小化策略推理代價.為進(jìn)一步減少元策略本身的推理代價,AdaPI共享了元策略和子策略的特征層(比如,卷積層).但是元策略必須在子策略運(yùn)行前做出預(yù)測并決定選擇哪個子策略網(wǎng)絡(luò)應(yīng)對當(dāng)前狀態(tài).為解決該挑戰(zhàn),本文提出一種擴(kuò)展的馬爾可夫決策過程(extended Markov Decision Process,eMDPs),使得元策略基于上一步的子策略、狀態(tài)和動作預(yù)測當(dāng)前狀態(tài)下的子策略選擇.
本文的主要貢獻(xiàn)總結(jié)如下:
1)本文設(shè)計一種層次化的動態(tài)策略網(wǎng)絡(luò),以保證策略質(zhì)量的前提下降低策略網(wǎng)絡(luò)的推理代價.據(jù)目前所知,本文是首次將動態(tài)神經(jīng)網(wǎng)絡(luò)引入到強(qiáng)化學(xué)習(xí)任務(wù)中,并實現(xiàn)策略推理加速的工作.
2)為訓(xùn)練動態(tài)策略網(wǎng)絡(luò),本文提出通用訓(xùn)練框架AdaPI(1)https://www.dropbox.com/sh/2b7otd6zc4glss6/AAC5GrecF9sYA_cxOUR2N4Wza?d l=0,該框架能兼容現(xiàn)有神經(jīng)網(wǎng)絡(luò)壓縮技術(shù)以及強(qiáng)化學(xué)習(xí)訓(xùn)練算法.
3)針對上層的元策略訓(xùn)練,本文提出eMDPs并推導(dǎo)出策略梯度,顯著降低元策略的推理代價.
4)為評估AdaPI的性能,本文在gym平臺提供的atari任務(wù)中進(jìn)行實驗,表明AdaPI在保證策略質(zhì)量的前提下浮點(diǎn)數(shù)計算量少3.4倍.
模型剪枝:DeepCompress通過刪除小于閾值的參數(shù)達(dá)到減少網(wǎng)絡(luò)大小的目的[7],相似的想法層出不窮[8,9,19].進(jìn)一步的,研究人員提出多種刪除冗余神經(jīng)元技術(shù),減少網(wǎng)絡(luò)大小的同時加速預(yù)測.比如,Srinivas等人提出免數(shù)據(jù)的剪枝算法,刪除神經(jīng)網(wǎng)絡(luò)中相似神經(jīng)元[20].類似的技術(shù)也相應(yīng)被提出[21,22].
參數(shù)量化:分為全局參數(shù)量化和局部參數(shù)量化.全局量化使用單一的數(shù)值精度替代原始的浮點(diǎn)數(shù),有效降低網(wǎng)絡(luò)存儲需求并加速數(shù)值計算[12,13].部分量化針對神經(jīng)網(wǎng)絡(luò)的不同層,采用不同的數(shù)值精度[23].Lin等人提出逐層量化,在最小化重構(gòu)誤差約束下,尋找每層最優(yōu)數(shù)值精度[11].
知識蒸餾:受教師-學(xué)生模式的啟發(fā),研究者們嘗試將神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)的知識從大模型遷移到小模型,從而達(dá)到神經(jīng)網(wǎng)絡(luò)壓縮和加速的目的.Hinton等人提出知識蒸餾(knowledge distillation,KD)通過Kullback-Leibler散度(KL divergence)學(xué)習(xí)大模型的知識[24].在深度強(qiáng)化學(xué)習(xí)中,策略蒸餾也采用KL散度將策略從大模型遷移到小模型[18,25,26].
動態(tài)神經(jīng)網(wǎng)絡(luò)根據(jù)輸入樣本的不同選擇不同的執(zhí)行流程,以此降低平均預(yù)測代價.Shu等人設(shè)計了圖像感知的框架,能根據(jù)輸入圖像的難度選擇最高效的子模型進(jìn)行預(yù)測[27].Huang等人提出多尺度密集網(wǎng)絡(luò)(Multi-Scale Dense Networks, MSDNet),采用多分枝網(wǎng)絡(luò)模型,在保持與DenseNet相同的準(zhǔn)確率下少2~5倍的FLOPs[14].MSDNet包含多個分支多個分類器,簡單的圖像會在底層的分支直接預(yù)測輸出,減少預(yù)測代價.之后,Huang等人提出改進(jìn)算法“采樣和插值”,根據(jù)圖像內(nèi)容的冗余性進(jìn)行采樣,降低輸入維度,從而減少計算量[15].最近,Huang等人設(shè)計了新框架Glance and Focus網(wǎng)絡(luò)(GFNet),自適應(yīng)的尋找圖像中的關(guān)鍵區(qū)域并針對關(guān)鍵區(qū)域進(jìn)行預(yù)測,以此降低神經(jīng)網(wǎng)絡(luò)的計算量[16].進(jìn)一步的,Cheng等人將神經(jīng)架構(gòu)搜索(Neural Architecture Search,NAS)技術(shù)用于動態(tài)神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)搜索,減少約48.8%的預(yù)測延遲[17].然而,在深度強(qiáng)化學(xué)習(xí)任務(wù)中,輸入圖像的內(nèi)容簡單且相似,很難將現(xiàn)有動態(tài)網(wǎng)絡(luò)直接應(yīng)用.為了降低強(qiáng)化學(xué)習(xí)任務(wù)的策略推理代價,本文設(shè)計了一種新穎的動態(tài)策略網(wǎng)絡(luò)AdaPI.
馬爾可夫決策過程(Markov Decision Process,MDP)基本元素可由4元組表示,即(S,A,R,P).其中S表示狀態(tài)空間,A表示動作空間.R表示獎勵函數(shù),定義為R:S×A→R.P表示狀態(tài)轉(zhuǎn)移函數(shù),定義為P:S×A→S.此外還需要初始狀態(tài)分布ρ0以及確保收斂性的折扣因子,γ∈[0,1].深度強(qiáng)化學(xué)習(xí)的目標(biāo)是尋找最優(yōu)“狀態(tài)-動作”映射函數(shù),π:S→R最大化智能體與環(huán)境整個交互過程中的累計獎勵.該交互過程可以形式化的表示為一條軌跡τ=(s0,α0,γ0,s1,α1,γ1,…),而產(chǎn)生這條軌跡的概率表示為p(τ).其中at~π(·|st),rt=R(st,at)以及st+1~P(·|st,at).優(yōu)化目標(biāo)的定義如式(1)所示:
(1)
通常使用狀態(tài)價值函數(shù)表示當(dāng)前狀態(tài)st下的策略質(zhì)量,如式(2)所示:
(2)
策略梯度(Policy Gradient,PG)給出參數(shù)化策略函數(shù)πθ的參數(shù)更新方向,使其最大化優(yōu)化目標(biāo)式(1).其中θ為可訓(xùn)練參數(shù),比如神經(jīng)網(wǎng)絡(luò)權(quán)值.智能體沿著策略梯度方向更新θ直到最優(yōu)或局部最優(yōu)解.優(yōu)化目標(biāo)(1)中的參數(shù)θ隱藏在軌跡概率p(τ)中,如式(3)所示:
(3)
通過蒙特卡洛采樣(Monte Carlo sampling,MC)技術(shù)可以評估策略梯度,如式(4)所示.這樣的策略梯度是真實梯度的無偏估計,但其高方差問題導(dǎo)致訓(xùn)練極不穩(wěn)定.
(4)
為降低策略梯度方差,優(yōu)勢演員-評論家算法(Advantage Actor Critic,A2C)將累計獎勵替換為優(yōu)勢函數(shù),如式(5)所示.其中價值函數(shù)Vπ(st)通過最小化與目標(biāo)價值函數(shù)rt+γVπ(st+1)之間的均方誤差(Mean Square Error,MSE)訓(xùn)練得到.
▽θJ(πθ)=Eτ~p(τ)[∑t≥0▽θlogπθ(at|st)Aπ(st,at)]
whereAπ(st,at)=rt+γVπ(st+1)-Vπ(st)
(5)
近端策略優(yōu)化(Proximal Policy Optimization,PPO)采用重要性采樣技術(shù)(Importance Sampling,IS)提高樣本利用率,是目前多種任務(wù)中的最優(yōu)強(qiáng)化學(xué)習(xí)算法.PPO的形式化定義如式(6)所示,其中KL為Kullback-Leibler散度.
s.t.KL(πθ(at|st)‖πθold(at|st))<δ
(6)
圖2展示了AdaPI的整個框架結(jié)構(gòu)及其組件.AdaPI包含兩個主要模塊:1)下層子策略網(wǎng)絡(luò)(Policyi)構(gòu)成的策略池(Policy Pool),如前所述,這些子策略網(wǎng)絡(luò)均是通過“教師”策略網(wǎng)絡(luò)壓縮而來;2)上層元策略,根據(jù)環(huán)境當(dāng)前狀態(tài)選擇合適的子策略與環(huán)境進(jìn)行交互.直覺上使用一個獨(dú)立的元策略網(wǎng)絡(luò)根據(jù)當(dāng)前狀態(tài)選擇子策略即可,然而元策略網(wǎng)絡(luò)的推理代價變得不可忽視.本文設(shè)計并實驗了多種元策略網(wǎng)絡(luò)模型,包括經(jīng)典的卷積神經(jīng)網(wǎng)絡(luò)(convolutional neural network,CNN)、CNN+注意力機(jī)制以及二值化CNN.在保證AdaPI策略質(zhì)量的前提下,這些動態(tài)網(wǎng)絡(luò)的推理代價比AdaPI大約多31%,本文實驗中有相關(guān)分析.
圖2 AdaPI框架總覽
為減少元策略推理代價,本文共享元策略與子策略的特征提取層(CNN卷積層),如圖3所示.由于子策略網(wǎng)絡(luò)相互分離并具有不同結(jié)構(gòu),因此需要多個元策略網(wǎng)絡(luò)(與子策略網(wǎng)絡(luò)一一對應(yīng)).當(dāng)前狀態(tài)使用哪個子策略網(wǎng)絡(luò)取決于上一個狀態(tài)使用的子策略網(wǎng)絡(luò),即當(dāng)前狀態(tài)的元策略動作kt~π(·|et-1,at-1,kt-1),其中et-1表示上一時間步子策略的特征層輸出(如圖3所示).本文中,et和st均可以作為元策略網(wǎng)絡(luò)的輸入,因為其特征提取層共享.最終形成如圖2所示的多元策略控制器(Meta Controller).
圖3 元策略結(jié)構(gòu)
AdaPI動態(tài)策略網(wǎng)絡(luò)的目標(biāo)是保持與“教師”網(wǎng)絡(luò)相似的策略質(zhì)量前提下,最小化推理代價(最大化負(fù)推理代價),形式化定義如式(7)-式(8)所示.其中Cmetat和Ct表示t時間步元策略和子策略的推理代價.為便于推導(dǎo),本文將推理代價均表示為負(fù)數(shù),值越大代價越小.Vdyna代表動態(tài)策略網(wǎng)絡(luò)πθ的狀態(tài)價值函數(shù),V0代表“教師”策略網(wǎng)絡(luò)π0的狀態(tài)價值函數(shù).πφ和π?分別代表元策略和子策略(其中θ=(φ,?)).本文將子策略網(wǎng)絡(luò)大小進(jìn)行排序,隨著索引k增加網(wǎng)絡(luò)逐漸減小,n表示子策略數(shù)量.特別的,k=0表示選擇“教師”策略.
(7)
(8)
(9)
(10)
進(jìn)一步的,為簡化該優(yōu)化問題,本文將其拆分成兩個迭代優(yōu)化問題,即策略優(yōu)化和乘子優(yōu)化.如式(11)所示:
(11)
動態(tài)策略網(wǎng)絡(luò)πθ的策略優(yōu)化需要擴(kuò)展MDP,一方面,引入多個子策略以及元策略,這類似于層次化DRL的定義.另一方面,元策略需要考慮前一步的狀態(tài)及動作.層次化的MDP如圖4所示,不同于基礎(chǔ)MDP,動作at是狀態(tài)st和子策略kt共同決定的.因此擴(kuò)展馬爾可夫決策過程下的交互軌跡τ~(s0,k0,a0,r0,s1,k1,a1,r1,…).
圖4 擴(kuò)展馬爾可夫決策過程的概率圖模型
下層子策略和上層元策略的MDP定義在圖4的基礎(chǔ)上.對于下層子策略來說,當(dāng)前狀態(tài)具體選擇某個子策略是由上層元策略確定,不屬于子策略考慮范圍.相應(yīng)的,上層元策略只根據(jù)狀態(tài)選擇合適的子策略,具體采用某個動作與環(huán)境交互是由子策略確定.綜上,本文將子策略與元策略的MDPs分開定義并推導(dǎo)出相應(yīng)的策略梯度.
4.3.1 子策略eMDPs
圖5 子策略的擴(kuò)展馬爾可夫決策過程概率圖模型
ML(Lt+1|Lt,at)=P((st+1,kt+1)|(st,kt),at)
=P(kt+1|st,kt,at)P(st+1|st,at)
(12)
4.3.2 元策略eMDPs
元策略eMDPs的概率圖模型如圖6所示,其4元組定義為(H,K,RH,MH).其中Ht=(st-1,kt-1,at-1,st)表示狀態(tài),由于元策略基于前一步狀態(tài)及動作預(yù)測當(dāng)前狀態(tài)的子策略kt,狀態(tài)必須包含前一步信息.K表示動作空間,即子策略索引.RH(Ht,kt)表示元策略的獎勵函數(shù),如式(13)所示,即式(11)中策略優(yōu)化目標(biāo).MH(Ht+1|Ht,kt)表示狀態(tài)轉(zhuǎn)移函數(shù),如式(14)所示.ρ0(H0)表示初始狀態(tài)分布.折扣因子γ∈[0,1]保持不變.元策略函數(shù)為πφ(·|st-1,at-1,kt-1).
圖6 元策略的擴(kuò)展馬爾可夫決策過程概率圖模型
RH(Ht,kt)=R((st-1,kt-1,at-1,st),kt)
(13)
MH(Ht+1|Ht,kt)
=P((st,kt,at,st+1)|(st-1,kt-1,at-1,st),kt)
=P(at|st,kt)P(st+1|st,at)
(14)
基于上下層eMDPs,本節(jié)推導(dǎo)出動態(tài)策略網(wǎng)絡(luò)的策略梯度.兩層策略網(wǎng)絡(luò)采用同一條交互軌跡數(shù)據(jù),并迭代訓(xùn)練.動態(tài)策略交互軌跡τ的概率分布p(τ)定義為式(15):
(15)
4.4.1 子策略梯度
根據(jù)強(qiáng)化學(xué)習(xí)的優(yōu)化目標(biāo)J(π),其策略梯度由式(16)表示,上層元策略參數(shù)φ保持不變.
(16)
Eτ~p(τ)[∑t≥0[▽?logπ?(at|st,kt)]AL(Lt,At)]
(17)
VL(Lt)=Eat~π?;Lt+1~ML[RL(Lt,At)+γVL(Lt+1)]
(18)
為提升子策略訓(xùn)練速度,AdaPI在策略梯度基礎(chǔ)上添加輔助優(yōu)化目標(biāo).具體的,本文采用策略蒸餾技術(shù)讓子策略模仿“教師”策略,改進(jìn)后的損失函數(shù)如式(19)所示.其中,LossA2C表示A2C損失函數(shù),即式(17)定義的策略梯度.α0和α1控制“教師”策略的影響程度.
Loss(?)=LossA2C+α0KL(π0‖π?)+α1MSE(V0,VL)
(19)
4.4.2 元策略梯度
元策略梯度不受子策略參數(shù)?影響,如式(19)所示.
(20)
其中子策略參數(shù)φ是唯一優(yōu)化項,因此▽φlogp(τ)=▽φ∑t≥0logπφ(kt|st-1,at-1,kt-1).同樣的,為降低策略梯度方差,使用優(yōu)勢函數(shù)替換累計獎勵.元策略梯度以及價值函數(shù)VH(Ht)的定義如式(21)~式(22)所示.特別的,VH(Ht)與VL(Lt)之間存在對應(yīng)關(guān)系,因此,只需訓(xùn)練VL(Lt)即可.
(21)
VH(Ht)=VH(st-1,at-1,kt-1,st)=∑ktπφ(kt|st-1,at-1,kt-1)V(st,kt)
=∑ktπφ(kt|st-1,at-1,kt-1)VL(Lt)
(22)
為提高動態(tài)策略網(wǎng)絡(luò)的樣本利用率,本文采用近端策略優(yōu)化算法PPO替換上述策略,具體定義如式(6)所示.
問題形式化中,AdaPI迭代優(yōu)化兩個目標(biāo),一是策略優(yōu)化,二是乘子優(yōu)化.策略優(yōu)化通過策略梯度進(jìn)行參數(shù)更新,從而最大化累計獎勵J(π).而乘子優(yōu)化則是尋找最優(yōu)的因子α,保證約束滿足.公式(11)直觀上解釋是,當(dāng)約束條件滿足時,即Vdyna-V0+V0ε>0,需要減小α,使其更關(guān)注推理代價Ct.相反,當(dāng)約束條件違背時,即Vdyna-V0+V0ε<0,需增大α,使其更關(guān)注環(huán)境的獎勵Rt.然而,強(qiáng)化學(xué)習(xí)的不穩(wěn)定性導(dǎo)致約束條件不穩(wěn)定,α更新頻繁,又進(jìn)一步導(dǎo)致獎勵函數(shù)頻繁變化,策略學(xué)習(xí)更加不穩(wěn)定.為解決該問題,AdaPI中乘子優(yōu)化的頻率遠(yuǎn)低于策略優(yōu)化,同時,將α的取值限制在(10,100,1000,10000)4個離散值中,簡化α的優(yōu)化.
如前所述,給定最優(yōu)的“教師”策略網(wǎng)絡(luò)π0,AdaPI訓(xùn)練動態(tài)策略網(wǎng)絡(luò),在保持策略質(zhì)量的情況下,最小化策略推理代價.為提升訓(xùn)練速度,本文基于并行訓(xùn)練框架PAAC實現(xiàn)AdaPI.偽代碼如算法1所示,PAAC采用多進(jìn)程并行運(yùn)行多個獨(dú)立的環(huán)境從而產(chǎn)生成倍的樣本,加速訓(xùn)練.特別的,AdaPI采用n-step技術(shù)平衡價值函數(shù)評估的方差和偏差,即與環(huán)境連續(xù)交互n步,計算累計獎勵.
算法1.AdaPI訓(xùn)練偽代碼
輸入:子策略網(wǎng)絡(luò)π?和VL,元策略網(wǎng)絡(luò)πφ和VH,“教師”策略網(wǎng)絡(luò)π0及價值函數(shù)V0,動態(tài)策略價值函數(shù)Vdyna,子策略k的推理代價Ck,元策略k的推理代價Cmetak,批大小bs,超參α0和α1,學(xué)習(xí)率η,更新次數(shù)N,最大迭代次數(shù)M,最大step次數(shù)tmax,約束參數(shù)ε
輸出:子策略網(wǎng)絡(luò)π?,元策略網(wǎng)絡(luò)πφ
1. 初始化并行環(huán)境VecEnv,初始狀態(tài)(s0,k0)
2. for i=1 to M
//全局迭代直到動態(tài)策略收斂
3. for t=0 totmax
//采樣軌跡τ,采用n-step方式連續(xù)交互n次
4. 基于元策略πφ(·|st-1,at-1,kt-1)選擇子策略kt
5. 基于子策略π?(·|st,kt)選擇動作at
6.VecEnv執(zhí)行at,返回st+1,rt
7. end for
8. 根據(jù)軌跡τ計算子策略的累計獎勵
11. 根據(jù)軌跡τ計算元策略的累計獎勵
14. 根據(jù)軌跡τ計算子策略的累計獎勵
16. for t=1 to N
//策略梯度更新,基于PPO迭代更新π?和πφ
17. 從軌跡τ中采樣批量數(shù)據(jù)(s,k,a,r,s′)
18. 評估“教師”策略π0(s)及價值函數(shù)V0(s)
19. 根據(jù)公式(18)~公式(19)優(yōu)化子策略π?及價值函數(shù)VL
20. 根據(jù)公式(21)~公式(22)優(yōu)化元策略πφ及價值函數(shù)VH
21. end for
22. 根據(jù)Rt擬合Vdyna
23. 計算約束條件Vdyna-V0+V0ε,調(diào)整乘子α
24.endfor
為驗證動態(tài)策略網(wǎng)絡(luò)的實際效果,本文基于gym平臺提供的多項atari任務(wù)分析AdaPI的推理代價以及策略質(zhì)量.具體而言,本節(jié)主要驗證4個關(guān)鍵問題:
1)動態(tài)策略網(wǎng)絡(luò)能否在保持策略質(zhì)量前提下顯著降低推理代價?
2)動態(tài)策略網(wǎng)絡(luò)中元策略對策略質(zhì)量的影響?
3)平衡策略質(zhì)量與推理代價的參數(shù)的影響?
4)對狀態(tài)難易程度的判斷是否符合預(yù)期?
1)任務(wù)設(shè)置:本文使用atari 2600中的11個視頻游戲任務(wù),并基于學(xué)習(xí)環(huán)境Arcade Learning Environment(ALE)[28]提供的接口與游戲進(jìn)行交互.對視頻游戲的圖像進(jìn)行裁剪并灰度化,使輸入策略網(wǎng)絡(luò)的狀態(tài)為4×84×84(連續(xù)幀數(shù)×寬度×高度)的灰度值矩陣.所有任務(wù)獎勵裁剪為[-1,1].
2)訓(xùn)練設(shè)置:神經(jīng)網(wǎng)絡(luò)及優(yōu)化算法使用PyTorch 1.1.0版本實現(xiàn).物理環(huán)境配置48核Intel(R) Xeon(R) Gold 5118 CPU @ 2.30GHz處理器,搭配4塊GeForce GTX-1080 Ti 12 GB GPU.訓(xùn)練超參數(shù)的設(shè)置與PAAC一致,特別的,公式(19)中策略蒸餾參數(shù)α0=0.05、α1=0.05.策略質(zhì)量約束參數(shù)ε=0.05.拉格朗日乘子α∈[10,100,1000,10000].子策略與元策略推理代價Cmetak和Ck的設(shè)置如表1所示.測試階段,使用10個隨機(jī)種子運(yùn)行10次任務(wù)并計算平均推理代價及策略質(zhì)量.
表1 各策略網(wǎng)絡(luò)推理代價
表2 各策略網(wǎng)絡(luò)結(jié)構(gòu)及FLOPs
表3 AdaPI平均FLOPs及推理時間
表4展示各策略網(wǎng)絡(luò)在11個任務(wù)上的策略質(zhì)量對比.從表可知,AdaPI相較于“教師”策略平均得分上有微小的下降大約2.9%,這是由于實驗設(shè)置中約束條件為ε=0.05,使得約束因子α≈100導(dǎo)致的.在問題形式化章節(jié)中,描述了針對不同計算場景和目標(biāo)任務(wù)設(shè)置ε的重要意義.同時,本節(jié)也實驗了α對策略質(zhì)量和推理代價的影響.表中壓縮后的子策略π1雖然推理代價低,但策略質(zhì)量嚴(yán)重受損,大約21.4%的得分下降,導(dǎo)致在現(xiàn)實任務(wù)中很難應(yīng)用.特別的,AdaPI在“alien”任務(wù)上得分下降約11%,原因是子策略π1得分太低,過多的選擇π1對得分影響嚴(yán)重.相反,“hero”任務(wù)上,AdaPI的得分下降約0.07%,這得益于子策略π1的高分.同時,子策略π1的高分意味著該任務(wù)大部分狀態(tài)都是容易決策的,元策略有較大的概率選擇子策略π1,從而顯著降低其推理代價.比如,“pong”任務(wù)上,子策略π1相較于“教師”策略得分下降6.6%,元策略有98%的概率會選擇π1,使得AdaPI的FLOPs少約131×,并且保持了策略質(zhì)量.
表4 各策略網(wǎng)絡(luò)質(zhì)量對比
表5展示約束因子α對平衡策略質(zhì)量和推理代價的影響.理論上,隨著α增加,AdaPI更偏向于環(huán)境的獎勵,因此具有更高的得分.相反,隨著α降低,AdaPI更偏向于減少推理代價,因此具有更少的FLOPs.在“breakout”和“space_invaders”兩個任務(wù)上的實驗結(jié)果驗證了其效果.同時,本文發(fā)現(xiàn),當(dāng)α取值非常大時,AdaPI并不是完全選擇“教師”策略網(wǎng)絡(luò)π0,而是有一定的概率選擇子策略π1.該結(jié)論說明在一部分狀態(tài)下,選擇任意子策略網(wǎng)絡(luò)都具有相同的狀態(tài)-動作價值.
表5 約束因子α的影響
為驗證AdaPI中采用多元策略的優(yōu)勢,本節(jié)固定訓(xùn)練好的子策略π0和π1,并使用了兩種不同的元策略模型.首先,使用隨機(jī)元策略πrandom對子策略進(jìn)行選擇,即每個狀態(tài)下以50%的概率隨機(jī)選擇子策略與環(huán)境交互.然后是使用獨(dú)立的CNN作為元策略網(wǎng)絡(luò)πsep.不同于AdaPI共享子策略的卷積層,πsep根據(jù)當(dāng)前狀態(tài)直接預(yù)測子策略選擇,即kt~πsep(·|st).πsep采用的網(wǎng)絡(luò)結(jié)構(gòu)如表2所示,其訓(xùn)練方式類似于AdaPI,將狀態(tài)空間Ht替換為st即可.表6展示了消融實驗的對比結(jié)果.隨機(jī)元策略πrandom使得策略質(zhì)量下降約14%.同時,πrandom按照50%的概率選擇子策略使得FLOPs少約1.89×,推理時間約為1.425ms.相應(yīng)的,獨(dú)立元策略πsep使得策略質(zhì)量下降約8.8%.雖然πsep選擇子策略的概率近似于AdaPI,但是其高昂的πsep推理代價使得FLOPs為2979519,比AdaPI多31%.同時,πsep的推理時間約1.94ms,比AdaPI多61.7%.πmsdnet在策略質(zhì)量下降6%,但子策略π0選擇概率約50%顯著大于AdaPI,平均FLOPs約5930720.此外,不同于通用框架AdaPI,πmsdnet網(wǎng)絡(luò)結(jié)構(gòu)固定,通用性更差,無法兼容其他神經(jīng)網(wǎng)絡(luò)壓縮算法.綜上所述,AdaPI無論在策略質(zhì)量還是推理代價上均優(yōu)于3種對比元策略.
圖7展示AdaPI在“breakout”任務(wù)中的執(zhí)行可視化,以此說明元策略對狀態(tài)難易程度的判定以及子策略的差異性.圖7顯示了難易程度不同的狀態(tài)(左列)、元策略動作分布(中列)和子策略動作分布(右列).基于可視化分析,狀態(tài)難易的定義可以從兩個角度闡述.從子策略網(wǎng)絡(luò)輸出角度,如果子策略π0和π1對當(dāng)前狀態(tài)輸出的動作概率分布相似,說明子策略π1就能處理該狀態(tài),即簡單狀態(tài)(如圖7(a)所示).相反,子策略π0和π1的輸出完全不同,說明子策略π1不知道如何應(yīng)對該狀態(tài),即困難狀態(tài),需要切換為π0(如圖7(b)所示).從狀態(tài)-動作價值角度,圖7(a)顯示“球”正在靠近“磚墻”,此時智能體采用任何動作對未來狀態(tài)價值都沒有影響,即簡單狀態(tài).相反,圖7(b)顯示“球”正在靠近智能體控制的“球拍”,顯然,以最優(yōu)動作將“球”擊回能最大化未來狀態(tài)價值,即困難狀態(tài).綜上所述,AdaPI的元策略能較為準(zhǔn)確的識別出任務(wù)中的簡單和困難狀態(tài),并選擇合適的子策略網(wǎng)絡(luò)與環(huán)境交互.
圖7 AdaPI在“breakout”上的可視化
本文提出了一種創(chuàng)新性的自適應(yīng)策略推理框架AdaPI,首次將動態(tài)神經(jīng)網(wǎng)絡(luò)技術(shù)引入到深度強(qiáng)化學(xué)習(xí)領(lǐng)域并顯著降低策略推理代價.具體而言,AdaPI根據(jù)環(huán)境當(dāng)前狀態(tài)的難易程度自適應(yīng)的選擇最佳子策略,保證策略質(zhì)量的前提下最小化其推理代價.同時,AdaPI采用的層次化模式具有一定的通用性,下層子策略生成方式兼容現(xiàn)有成熟的神經(jīng)網(wǎng)絡(luò)壓縮技術(shù),上層元策略訓(xùn)練方式兼容現(xiàn)有深度強(qiáng)化學(xué)習(xí)訓(xùn)練算法.實際應(yīng)用中通過控制策略質(zhì)量的約束條件,最小化推理代價,使其快速應(yīng)對不同的計算場景和任務(wù).未來工作中,需要將子策略的網(wǎng)絡(luò)設(shè)計自動化,比如采用神經(jīng)架構(gòu)搜索技術(shù)NAS,生成最適應(yīng)當(dāng)前任務(wù)的子策略池.同時,AdaPI的移動端推理平臺正在構(gòu)建,動態(tài)策略網(wǎng)絡(luò)在計算能力受限的設(shè)備上高效執(zhí)行存在網(wǎng)絡(luò)切換、緩存、環(huán)境與智能體的資源分配等問題,將會作為未來工作進(jìn)行研究和實現(xiàn).