張 鑫,張 席
深圳大學 計算機與軟件學院,廣東 深圳518061
強化學習是機器學習的分支之一,主要學習方法是智能體在環境中采取動作,從環境中獲得反饋獎賞后,通過最大化累積獎賞,調整下一步動作,從而獲得最優策略[1]。在強化學習中,尋策方法有動態規劃法(Dynamic Programming,DP)、蒙特卡洛法(Monte Carlo,MC)、時間差分法(Temporal Difference,TD),其中應用最廣泛的是時間差分法中的Q-Learning 算法[2],建立起狀態與動作的映射表,即Q 表,用于存儲對應的狀態動作值,反映了當前狀態下所有動作的優劣。深度學習[3]解除了強化學習運行于低維度環境空間的限制[4],兩者結合后在更高維度的環境空間中取得了實質性的進展[5]。
Minh 等人[6]將深度學習與Q-Learning 算法結合,提出深度Q 網絡(Deep Q Network,DQN),并在Atari 2600[7]部分游戲中,獲得了超越人類玩家的表現,在這基礎上,后續加入了經驗回放、目標網絡等機制使得深度Q 網絡的穩定性和訓練表現得到進一步的提升[8]。Hasselt 等人[9]證明了深度Q 網絡的過估計問題,提出雙深度Q網絡(Double Deep Q Network,DDQN),將DQN 與Double Q-Learning 算法[10]結合,用于提高算法的穩定性,緩解過估計問題。Schaul等人[11]在經驗回放機制的基礎上,提出優先經驗回放機制(Prioritized Experience Replay,PER),提高重要經驗樣本的利用率,加快訓練進程。
強化學習不同于機器學習中的監督學習,需要通過與環境交互探索,獲得反饋信號,才能得到訓練樣本。訓練樣本攜帶有價值的信息量的多少,直接決定了訓練表現的好壞與訓練時間的長短。常用的探索方式是ε貪心策略,由于其簡單有效,被廣泛應用,然而在稀疏獎賞的環境中,需要執行特定的動作序列,才能獲得獎賞,完全依賴隨機性的ε貪心策略表現欠佳。基于狀態計數的探索[12]是有效的傳統探索方式,為應用到高維度環境空間中,Bellemare等人[13]對狀態進行虛擬近似計數與用于求解虛擬計數的概率模型,Osband等人[14]對Q值建立近似分布,Choi 等人[15]與Burda 等人[16]提出結合狀態計數的內在激勵函數。
本文提出DDQN-PSE(Double Deep Q Network with Prioritized State Estimation)方法,即對訪問過的狀態進行近似估計,給予訪問次數少的狀態更高的優先值,與外部獎賞一并存入經驗池中,并在Q 函數近似過程中以一定權重系數ξ結合。實驗結果證明,DDQN-PSE方法相對于DDQN 算法與DDQN-PER 算法,能夠更快地獲取到環境的反饋獎賞,訓練穩定性與訓練表現均有顯著提升。
強化學習是在一個確定的任務中,通過與環境不斷交互,獲得環境給予的反饋獎賞,改善調整后續執行的動作,進而學習獲得最優策略的方法。基本結構可表示為含有四個元素的元組(S,A,r,π),其中S為環境狀態的集合;A為所有環境中可執行動作的集合;r為獎賞函數,即智能體在所在環境中采取動作后,獲得的獎賞回報;π為策略函數,是狀態與動作之間的映射,即對于狀態s(s∈S),動作a(a∈A) ,有a~π(s)。在時間步為t(?t>0 )時,狀態下st選擇動作at執行后,獲得獎賞期望回報可表示為[2]:

其中,γ表示折扣因子系數,rt+1表示在t時間步獲得的環境反饋獎賞。在策略π下,在狀態st下的狀態價值函數記為:

考慮動作at,則在狀態st下的狀態動作價值函數記為:

針對上述的最優狀態價值函數與最優狀態動作價值函數可分別為:

展開可得最優貝爾曼方程,表示為遞歸形式,在時間步t為:

其中,p為狀態轉移概率函數,表示在狀態st采取動作at,獲得反饋獎賞rt+1并到達下一個狀態st+1。假設當前環境滿足馬爾科夫性[17],即不需要時間步t之前的環境信息,屬于馬爾科夫決策過程(Markov decision process),利用公式(5)進行策略迭代,則尋找最優策略的過程可以看作是尋找最優貝爾曼方程的過程。
由于高維度環境問題的狀態空間過于龐大,傳統強化學習算法無法將完整狀態作為輸入,通過結合深度學習,使得可以學習高維度輸入數據的特征,即為深度強化學習。
深度Q 網絡使用Q-Learning 算法[18],利用非線性模型神經網絡進行擬合,從而為智能體采取動作。QLearning算法屬于TD算法的一種,因此自舉推測的TDtarget可表示為:

其中,r為當前步獲得的獎賞,可視為短期收益,maxQ(s',a')可視為未來收益,γ為折扣因子系數,γ越大,表示越注重未來收益的影響,s'為到達的下一個狀態,a'為下一個狀態選擇的動作。在DQN 算法中,使用經驗回放機制打破狀態之間的相關性,當智能體在t步采取動作at后,把經驗樣本以元組(st,at,rt+1,st+1,d)的形式存入經驗池D中,其中d為當前回合是否結束的布爾值。從經驗池中隨機批量采樣一定數量的經驗樣本用于訓練神經網絡,同時在TD-target中使用目標網絡的參數,計算TD-target與Q網絡近似值之間的均方誤差,則誤差公式記為:

其中,TD-target 為γmaxQ(s',a';w-) ,使用目標網絡的參數w-,增強了網絡的穩定性,緩解了收斂困難的問題。然而DQN 在每次迭代都會選取最大的Q 值,使得估計的值函數大于其真實值,且過估計量非均勻分布,導致最終策略未必最優。因此利用DDQN 算法[9]對TD-target進行解耦,將選擇動作與評估分開,則記為:

其中,r表示當前狀態執行動作a獲得的獎賞,s'為下一個狀態,a'為下一個狀態選擇的動作,w表示當前選取動作網絡的參數,w-表示目標網絡的參數,γ表示折扣因子。
在DQN 的經驗回放機制中,經驗池中的經驗回放概率是均等的,隨機地在經驗池中抽取用于訓練的樣本批量,沒有對經驗樣本的重要性進行區分。而在稀疏獎賞環境的經驗池中,大部分的經驗樣本包含失敗的信息,只有少量包含成功的信息,因此需要對經驗樣本的重要性進行區分,應用優先級機制進行回放。優先經驗回放機制將經驗樣本用于訓練產生的TD-error 值視為經驗樣本的優先級,當TD-error 越大,說明神經網絡對該樣本的擬合精度還有很大的上升空間,則該樣本越需要被學習,優先級越高。因此,可以優先學習最需要被學習的樣本,從而提高樣本的利用效率。為了減少計算代價,經驗樣本只有被重放的時候才被給予優先級,而由于隨著訓練進行,TD-error 會慢慢減少,所以可知在訓練初期階段,TD-error大的經驗樣本,優先級高,會被頻繁地回放,但未必能一定說明該樣本比后續的樣本更加重要,并且一些優先級低的經驗樣本可能很長一段時間都不會被回放,造成多樣性缺失,使得網絡過度擬合。
本文使用優先經驗回放與均勻經驗回放結合的隨機抽樣方法,在保證樣本多樣性的同時,對樣本按優先級概率回放。抽取經驗樣本e的優先級概率可定義為:

其中[11],pe=|TDerror(e)|+λ,λ是一個極小的正值常量,以防TD-error為0時,該經驗樣本永遠不會被回放;α為優先級指數,可見α=0 時為均勻經驗回放;k為抽取的經驗樣本批量數。
優先經驗回放以TD-error 為優先級抽取經驗池中的樣本,替代了均勻隨機抽取,改變了經驗樣本回放的分布,從而引入了偏差,導致訓練過程不穩定。為糾正偏差,在計算誤差的時候,加入重要性抽樣權重系數μ,因此計算經驗樣本e的誤差公式記為:

其中,權重系數μe可表示為:

其中,β為非均勻概率的補償系數,隨著訓練進程逐漸增加到1;N為經驗池大小。
假設在一個稀疏獎賞的環境中,即智能體并不能在每步都取得環境反饋的獎賞,設智能體動作空間大小為Na,則選取動作at的概率為(1/Na)。圖1 表示的是稀疏獎賞環境中成功獲得獎賞的訓練回合的流程,狀態s1選擇動作a1到達狀態s2,但并沒有獲得獎賞,直到狀態sn-1選取動作an-1到達狀態sn取得獎賞rn+1,意味著只有采取了正確的動作序列{a1,a2,…,an-1} ,才能獲得獎賞,而獲得獎賞的概率為(1/Na)n,若完全依靠隨機性在稀疏獎賞環境中探索,無疑這會減緩訓練進程,甚至在訓練回合數少的任務中完全得不到獎賞,不能取得訓練效果。

圖1 稀疏獎賞環境模型
優先經驗回放對存儲在經驗池中的經驗樣本按優先級概率回放,提高了重要樣本的利用效率,但依舊利用ε貪心策略探索,將到達的每個狀態不加區分地存入經驗池中,并沒有改變智能體的探索策略,在稀疏獎賞的環境中仍然完全依靠隨機性來獲取到反饋獎賞。為解決這個問題,引入狀態估計方法,提出優先狀態估計的雙深度Q網絡(DDQN-PSE)算法模型,即神經網絡不僅僅近似Q 函數,同時近似狀態估計,網絡訓練的誤差值為狀態優先級大小。為了使得狀態的近似與Q 函數的近似不相互干擾,獨立運行,不把狀態估計作為Q 網絡的參數,而是建立一個新的非線性擬合函數f(s;θ),因此可以適用于任何強化學習算法,同時參考Q網絡的設置,使用一個目標網絡作為目標擬合函數f(s;θ-) ,同樣計算均方誤差,誤差公式可表示為:

其中,s為狀態作為神經網絡的輸入,θ-表示目標網絡的參數。以誤差值作為狀態的優先級ps,誤差越大,則說明該狀態被訪問的少,應該增加該狀態的訪問頻率。為了避免出現預測誤差導致的狀態估計誤差,f(s;θ-)不隨著訓練進程更新網絡參數,而是維持一個不變值,因此基于神經網絡的泛化能力,可以推斷狀態之間的相似性。
如圖2所示,將狀態優先級ps作為經驗樣本的信息之一,存入經驗池中。將狀態優先級與Q 函數結合,表示為:

其中,r表示當前狀態獲得的獎賞,γ表示折扣因子系數,s'為下一個狀態,a'為下一個狀態選擇的動作。為了避免優先級低的狀態長時間不被訪問,同時結合ε貪心策略進行探索,保證一定的隨機性,從而保證狀態樣本的多樣性,防止過擬合的情況出現。DDQN-PSE具體算法流程如下所示:

圖2 狀態估計模型
算法1DDQN with Prioritized State Estimation
初始化:固定經驗池D大小,隨機Q網絡參數w,隨機狀態網絡參數θ,固定批量采樣數T大小。
輸入:訓練回合數N,回合訓練步數K,觀察步數M,折扣因子γ,批量采樣數T,目標網絡更新頻率F,指數α、β。
輸出:Q函數值。
1.t=0
2. 初始化狀態st
3. form=1 toMdo
4. 選取動作at,到達下一個狀態st+1,ps=0
5. 將樣本(st,at,rt+1,st+1,ps,d)存入經驗池D中
6.t=t+1
7. end for
8. fori=1 toNdo
9.tstart=t
10. 選取動作at,到達下一個狀態st+1
12. 將樣本(st,at,rt+1,st+1,ps,d)存入經驗池D中
13.t=t+1
14. ift >Mthen
15. 批量采樣T個樣本
17. 計算誤差L(w)為
19. 更新梯度Δw←Δw+μeL(w)?wQ(se,ae;w),Δθ←Δθ+L(θ)?θ f(se;θ)
20. 更新網絡參數w、θ
21. if (t-tstart)%F==0 then
22. 更新目標網絡參數θ-=θ
23. end for
算法在第3~7 步,為訓練觀察步數,先在經驗池中積累一定的經驗樣本,在開始訓練網絡之前增加樣本的多樣性,利于后續的訓練學習。第8~11步與環境交互,獲得經驗樣本,存入經驗池中。在第14~19步采樣批量樣本進行神經網絡訓練,其中,第16步中TD-target使用DDQN 算法,為了減少過估計,并且使用公式(13)中的改進Q 函數。第20~21 步為在一定步數后更新目標網絡參數,使得訓練過程更為穩定,同時解決難以收斂的問題。
本文選取OpenAI Gym[19]中的MountainCar-v0 與Atari 2600 游戲中的FreewayNoFrameskip-v4 進行實驗對比測試。兩者均屬于稀疏獎賞環境,在這兩個問題中,DDQN 算法需要足夠的隨機探索,即大量的訓練回合,才能取得首次反饋獎賞。
在MountainCar-v0 環境中,Q 網絡、狀態網絡均使用三層全連接線性層,參考DQN 網絡參數設置[6],其中特征層神經元數為64,隱藏層神經元數為128,輸出層神經元數為MountainCar-v0環境的動作空間大小,激活函數使用ReLU。經驗池大小為10 000,目標網絡更新頻率為500,ε參數初始為1.0,隨著訓練進程呈指數級衰減,直到為0.1后固定數值,折扣系數γ為0.9,批量采樣數為64,梯度下降算法使用Adam優化算法,Adam算法的學習率設置為0.001。FreewayNoFrameskip-v4 是Atari2600 游戲中的無預處理的原始游戲版本,為了減輕計算負擔,加快訓練進程,需要對圖像進行預處理操作,只留下必要的信息,避免無用信息占據計算資源。在Atari 2600 游戲中,原始圖像是尺寸為210×160×3的RGB圖像,為了降低輸入圖像的維數,將RGB圖像轉換為灰度圖,減少了圖像的通道數,由于任務中并不涉及顏色處理,因此能在不影響智能體訓練的情況下降低計算需求。其次,再將轉換后的灰度圖降采樣為110×84×1 的圖像,為了使用卷積神經網絡[20]進行特征處理,將其裁剪為84×84×1 的正方形圖像,同時以連續4 個狀態為一組作為網絡的輸入用于分析動態特征,則神經網絡的輸入為84×84×4。使用卷積神經網絡與全連接層結合作為特征處理層,卷積層具體細節如表1所示。

表1 卷積神經網絡層
卷積層的輸出經過扁平化處理后,作為全連接層的輸入。全連接層包含兩層全連接網絡,分別為隱藏層與輸出層,隱藏層的神經元數為512,輸出層神經元數為FreewayNoFrameskip-v4 環境的動作空間大小,激活函數均使用ReLU,狀態網絡與Q網絡結構一致,僅于輸出層神經元數不同,為64。具體超參數設置如表2所示。

表2 超參數設置
為了保證經驗樣本的多樣性,結合ε貪心策略進行探索,ε參數的衰退步數為回合的訓練步數。狀態網絡近似的誤差由于所處訓練環境的不同,或者所在時間步的不同,會有近似結果出現較大差異的可能性,這難以判斷是因為狀態的優先級高,還是因為誤差導致。為了保持狀態網絡近似的誤差在一致的范圍內,需要對其取值區間進行限制。由于OpenAI Gym 與Atari2600 環境中,單次獎賞的區間為[-1,1] ,因此將狀態優先值,縮緊到區間[-1,1] 內。
在MountainCar控制問題和FreeWay游戲中對比基準算法雙深度Q網絡(DDQN)、優先經驗回放的雙深度Q網絡(DDQN-PER),以及本文提出的優先狀態估計的雙深度Q 網絡(DDQN-PSE)。為了實驗分析部分表述的清晰簡潔,DDQN-PER算法以PER算法進行表示,而DDQN-PSE算法以PSE算法進行表示。
實驗結果如圖3所示,以50的滑動窗口大小取移動平均值,通過實驗對比發現,PSE 算法區分了狀態之間的優先級,鼓勵智能體去探索更多未知的狀態,緩解了在得不到有效反饋時原地打轉的困境。在圖3(a)、(b)中均可發現,PSE 算法很快地獲得了反饋獎賞,擺脫了稀疏獎賞的困境,然而在后續的表現卻不盡人意,并沒有把回合獎賞最大化作為目標。

圖3 算法間平均獎賞對比
進一步分析具體情況,即訓練過程與回合累積的狀態優先值的變化,如圖4 所示。圖4(a)中可以看到,對于狀態優先值曲線,首次在200訓練步前結束回合是第一個峰值,在獲得較高的回合獎賞時是第二個峰值,在獲得最高獎賞時是第三個峰值,理論上在MountainCar環境中,獲得越高的獎賞情況下,狀態優先值應該越低(由于更早地結束了回合,累積狀態優先值更低),說明為了得到更多的狀態估計值,探索了無關的狀態,在500回合數之后,依舊沒有利用已知信息去將回合獎賞最大化,狀態優先值曲線處于穩定狀態,說明環境中已有狀態基本被探索完畢。
在圖4(b)中,由于FreeWay 環境中,馬路中間車輛不斷移動,造成狀態空間巨大,因此在50 回合數之前,不斷訪問新的狀態,狀態優先值持續保持最大值,隨后逐漸下降,在獲得回合獎賞最大值時對應狀態優先值最小值,隨后回合獎賞值逐漸下降為0,而狀態優先值卻開始上升,說明直接到馬路對岸獲得獎賞從而將獎賞最大化的策略,與探索更多狀態的策略產生矛盾。

圖4 平均獎賞與狀態優先值對比
基于上述描述,結合圖中平均獎賞與狀態優先值曲線對比,以及值大小的對比,可以推斷探索策略以回合內訪問更多狀態為主,而不是獲取最大回合獎賞,具體地說,累積的狀態優先值相比于平均獎賞值過大,例如FreeWay 游戲中,即使狀態優先值已經被縮進在[-1,1]區間,但在一個回合2 000訓練步數中,每步動作后都會返回一個狀態優先值,而獎賞必須到達馬路對面才能獲得,獎賞值在其中占的比例過小,在實際游戲場景中小雞傾向于在馬路中間不停躲避車輛以獲取新的狀態,而不是穿越馬路獲得環境給予的獎賞,具體地說,導致了對得到的獎賞值不敏感,仍舊追求更大的累積狀態優先值的行為。
針對上述問題,對公式(13)進行改進,將環境給予的外部獎賞與狀態優先值,以一定權重系數ξ結合。改進后的Q函數記為:

其中,為了動態地適應各類環境,ξ取值為1/K,K為環境中每個訓練回合的訓練步數。
在圖5中可以看到,改進后的PSE算法早于其余兩種算法取得環境反饋獎賞的同時,在后續的訓練過程中取得了較優的訓練表現,實驗說明智能體的探索重心重新回到以獲得環境獎賞上來,解決了狀態優先級對訓練的干擾。

圖5 改進后算法間平均獎賞對比
本文針對在稀疏獎賞環境中難以獲得獎賞問題,提出DDQN-PSE 方法,對狀態進行優先級估計,改進了探索策略,使得在稀疏獎賞的環境中有更好的訓練表現。在OpenAI Gym 與Atari 2600 中的稀疏獎賞環境MountainCar經典控制問題環境與FreeWay游戲進行實驗對比,結果表明相比于幾種基于隨機探索的深度強化學習算法,訓練穩定性與訓練表現均有提升。