暢 鑫,李艷斌,田 淼,陳蘇逸,杜宇峰,趙 研
(1.中國電子科技集團公司 第五十四研究所,石家莊 050081;2.河北省電磁頻譜認知與管控重點實驗室,石家莊 050081;3.電子科技大學 信息與通信工程學院,成都 611731)
用數(shù)學方法尋找最優(yōu)策略的研究既古老又新穎,最早可以追溯到20世紀50年代初,美國數(shù)學家貝爾曼(R.Bellman)等人在研究多階段決策過程的優(yōu)化問題時,提出了著名的最優(yōu)化原理,從而創(chuàng)立了動態(tài)規(guī)劃。然后隨著時代發(fā)展,這個領域逐漸出現(xiàn)了蒙特卡羅法、時序差分法等優(yōu)秀的算法,解決了許多動態(tài)規(guī)劃所不能解決的問題。在傳統(tǒng)強化學習時代,最為杰出和經(jīng)典的就是Q學習(Q-learning)算法。Q-learning采用表格記錄狀態(tài)-動作對價值,即Q值的方法探索最優(yōu)策略,這也成為了后續(xù)深度強化學習算法中基于價值(value-based)分支的基石[1]。然而,在現(xiàn)實中的許多情況下,問題所包含的狀態(tài)空間和動作空間都非常大,比如將一些連續(xù)狀態(tài)離散化后形成的狀態(tài)空間,這就使得借助表格存儲Q值的方法難以為繼。
幸運的是,隨著計算機算力的飛速發(fā)展,在強化學習中引入深度學習來解決連續(xù)狀態(tài)空間問題成為了可能。但人們很快就發(fā)現(xiàn),使用神經(jīng)網(wǎng)絡這樣的非線性函數(shù)逼近動作價值函數(shù)的強化學習算法都是不穩(wěn)定甚至不收斂的。這就是所謂的“離線學習-函數(shù)逼近-自舉檢驗”不可能三角(deadly triad issue),意思是強化學習無法同時使用這3種數(shù)學方法,否則將導致算法的不穩(wěn)定甚至不收斂。造成這種情況的原因主要有3點:1)連續(xù)的狀態(tài)之間的相關性;2)動作價值函數(shù)的微小變化可能導致策略的突變并顯著地改變數(shù)據(jù)分布;3)動作價值函數(shù)與收斂目標之間的相關性。
2015年,Mnih及其同事提出的DQN通過采用經(jīng)驗回放(experience replay)和目標網(wǎng)絡(target networks)技術(shù)解決了不穩(wěn)定的問題,在2 600多個雅達利游戲上達到了人類玩家的水平,帶來了深度強化學習的浪潮[2]。此后,對DQN的各種改進技術(shù)不斷涌現(xiàn)。文獻[3]提出了優(yōu)先經(jīng)驗回放(prioritized experience replay),能讓重要的經(jīng)驗被更頻繁地利用,從而提升強化學習的效率。文獻[4]于2016年提出的深度雙Q網(wǎng)絡(DDQN,double deep Q network),解決了過度估計的問題。同年,文獻[5]向DQN加入了競爭結(jié)構(gòu)(dueling architecture),提升了DQN的學習效率。這種帶有競爭結(jié)構(gòu)的DQN叫做競爭深度Q網(wǎng)絡(Dueling DQN,dueling deep Q network)。除了上述提到的基于DQN的改進,深度強化學習領域還產(chǎn)生了更多的不同的技術(shù)路徑[6-15]。
DQN及其衍生的強化學習算法已經(jīng)能算得上是非常強大的算法了,在許多領域,如簡單的2D游戲的表現(xiàn)都超出常人。然而,這種優(yōu)秀表現(xiàn)往往只停留在人為指定規(guī)則的環(huán)境中,如大多數(shù)棋牌和游戲等領域。DQN在現(xiàn)實問題中仍然有著難以落地的問題。這是因為在過去的強化學習算法研究中,我們通常默認環(huán)境的狀態(tài)我們是可以完全獲取的。但是在現(xiàn)實世界中,我們顯然沒有棋牌和游戲中那樣的上帝視角,我們對環(huán)境的狀態(tài)的獲取是通過觀測(observation)得來的。而觀測,或者說測量,必然會有信息誤差甚至損失,從而使得無法通過觀測獲得完全的狀態(tài)。這時,以馬爾可夫決策過程為基本假設的DQN的性能自然就會受到較大的影響。
為了解決上述問題,文獻[16]提出了DRQN,在DQN的基礎上將其第一個全連接層改為了相同大小的LSTM層,解決了現(xiàn)實環(huán)境部分觀測的問題。為了解決強化學習與反饋神經(jīng)網(wǎng)絡參數(shù)更新之間的矛盾,Matthew Hausknecht和Peter Stone又提出了序列自舉更新和隨機自舉更新2種與之配套的參數(shù)更新方式。在部分觀測的馬爾科夫環(huán)境,DRQN相比DQN有著明顯的提升。
然而,深度強化學習在狀態(tài)空間維度大的環(huán)境中仍然面臨著難以收斂的問題??紤]到大多數(shù)環(huán)境中的狀態(tài)在時間上都具有一定的相關性,若能讓神經(jīng)網(wǎng)絡學會提取時間維度上的特征,則有可能改善強化學習在時間相關場景的學習效率。區(qū)別于以上研究,本文在DRQN的基礎上展開研究,探究在時間維度上引入一維卷積對強化學習性能的影響,并設計了仿真實驗與DQN的性能進行對比。
現(xiàn)實中許多決策問題都可以通過建模成由5個參數(shù)(S,A,P,R,γ)描述的馬爾可夫決策過程(MDP,markov decision process)來進行研究[1,17]。這5個參數(shù)分別為狀態(tài)空間S、動作空間A、狀態(tài)轉(zhuǎn)移概率函數(shù)P、獎賞函數(shù)R和衰減因子γ,在馬爾可夫決策過程中的每一個時刻t,智能體都會觀察一個狀態(tài)st∈S然后選擇一個動作at∈A,這個過程將決定下一個時刻的狀態(tài)st~P(st,at)并收到一個獎賞rt~R。
1992年由Watkins和Dayan提出的Q-learning通過在給定狀態(tài)s下對動作a的長期回報進行預測來解決馬爾可夫決策問題[1]。這樣的長期動作回報叫做Q值。某個動作a的Q值越高,意味著在當前狀態(tài)下選擇該動作所獲得的長期收益的期望越大。在Q-learning中,Q值通過下式迭代更新:
(1)
Q-learning偽代碼。
輸出:動作價值函數(shù)Q
對所有狀態(tài)s∈S,a∈A(s),隨機初始化Q,其中終止狀態(tài)的動作價值為0
對每個回合:
初始化狀態(tài)s
對回合中的每個時間步長:
使用基于Q的策略,如ε-貪心算法,選擇狀態(tài)s對應的動作a
執(zhí)行動作a,觀察到r,s
s←s′
直到狀態(tài)s是終止狀態(tài)
直到所有回合結(jié)束
許多現(xiàn)實問題的狀態(tài)空間顯然都是連續(xù)的,為了讓強化學習在這些問題上得以運用,需要借助一種強大的函數(shù)擬合器代替Q-learning中的表格。而神經(jīng)網(wǎng)絡顯然就是這樣的強大函數(shù)擬合器。
(2)
輸出:關于動作價值函數(shù)Q的神經(jīng)網(wǎng)絡初始化經(jīng)驗池D
初始化在線動作價值網(wǎng)絡Q的參數(shù)θ為隨機數(shù)
對每個回合:
初始化狀態(tài)s1
對回合中的每個時間步長t:
根據(jù)ε-貪心算法選擇動作
執(zhí)行動作at,觀測獎賞rt和下一個狀態(tài)st+1
將經(jīng)驗(st,at,rt,st+1)存入經(jīng)驗池D
//經(jīng)驗回放
D隨機采樣一批次的經(jīng)驗(sj,aj,rj,sj+1)
反向傳播[yj-Q(sj,aj;θ)]2,并用梯度下降法更新θ
//周期性更新目標網(wǎng)絡
直到狀態(tài)st是終止狀態(tài)
直到所有回合結(jié)束
在現(xiàn)實的環(huán)境中,智能體往往很難獲得完整的狀態(tài)。換句話說,現(xiàn)實世界的環(huán)境通常不嚴格符合馬爾可夫性[16]。部分可觀測馬爾可夫決策過程(POMDP,partially observable markov decision process)對觀測與真實狀態(tài)之間的聯(lián)系進行了數(shù)學建模,因而能更好地描述現(xiàn)實環(huán)境的動態(tài)性[18]。POMDP在MDP的基礎上引入了觀測空間Ω與條件觀測概率函數(shù)O,并將智能體對環(huán)境的一次感知定義為觀測o∈Ω。觀測與真實狀態(tài)之間有著某種聯(lián)系,這種聯(lián)系通過概率描述,即o~O(s)。如此,POMDP就可以被6個參數(shù)(S,A,P,R,Ω,O)描述,分別表示狀態(tài)空間、動作空間、狀態(tài)轉(zhuǎn)移概率函數(shù)、獎賞函數(shù),以及相對于MDP新增加的觀測空間Ω與條件觀測概率函數(shù)O。顯然,當觀測o與狀態(tài)s一一對應時,POMDP就變?yōu)榱薓DP。2017年Matthew Hausknecht和Peter Stone提出的DRQN對DQN的網(wǎng)絡結(jié)構(gòu)進行了修改,將其第一個全連接層改為了相同大小的LSTM層。
因為引入了記憶能力,使得神經(jīng)網(wǎng)絡能更好地對抗由于觀測帶來的信息不完整。DRQN的神經(jīng)網(wǎng)絡結(jié)構(gòu)如圖1所示。
圖1 DRQN結(jié)構(gòu)示意圖[16]
本文在DQN的基礎上構(gòu)建了一個深度強化學習系統(tǒng),如圖2所示。
圖2 深度強化學習系統(tǒng)示意圖
與大多數(shù)強化學習系統(tǒng)一樣,從宏觀層面上看,本文所構(gòu)建的系統(tǒng)同樣為環(huán)境與智能體進行交互的閉環(huán)系統(tǒng)。在每個步長里,智能體需要從環(huán)境獲取當前步長的狀態(tài)和獎賞,并選擇一個動作反作用到環(huán)境中。
具體到內(nèi)部結(jié)構(gòu),智能體主要由4個部分組成,分別為經(jīng)驗池、在線動作價值網(wǎng)絡、目標動作價值網(wǎng)絡和神經(jīng)網(wǎng)絡優(yōu)化器。在每個步長里,經(jīng)驗池會將這一步長的狀態(tài)、動作、獎賞以及下一步長的狀態(tài)組合成一條經(jīng)驗儲存起來,并隨機選擇一個批次的經(jīng)驗供神經(jīng)網(wǎng)絡訓練使用;在線動作價值網(wǎng)絡會根據(jù)當前步長的狀態(tài)選擇一個動作;神經(jīng)網(wǎng)絡優(yōu)化器會計算代價函數(shù),并將其計算結(jié)果反向傳播給在線動作價值網(wǎng)絡,優(yōu)化神經(jīng)網(wǎng)絡的參數(shù)。在設定好的參數(shù)復制周期到來之時,目標動作價值網(wǎng)絡會復制在線動作價值網(wǎng)絡的參數(shù)并更新自身的參數(shù)。
一維卷積循環(huán)網(wǎng)絡的偽代碼與DQN的偽代碼形式基本一致,但因為包含了LSTM層,需要對經(jīng)驗回放部分進行修改,使其變?yōu)殡S機自舉更新(bootstrapped random updates)[16]。下面為一維卷積循環(huán)網(wǎng)絡的偽代碼。
一維卷積循環(huán)網(wǎng)絡偽代碼。
輸出:關于動作價值函數(shù)Q的神經(jīng)網(wǎng)絡初始化經(jīng)驗池D
初始化在線動作價值網(wǎng)絡Q的參數(shù)θ為隨機數(shù)
對每個回合:
初始化狀態(tài)s1
對回合中的每個時間步長t:
根據(jù)ε-貪心算法選擇動作
執(zhí)行動作at,觀測獎賞rt和下一狀態(tài)st+1
將經(jīng)驗(st,at,rt,st+1)存入經(jīng)驗池D中本回合的位置
//經(jīng)驗回放
隨機選取一個序列長度seq_len
從經(jīng)驗池D隨機選取若干個回合的數(shù)據(jù)
從選取的回合數(shù)據(jù)中隨機選取若干個時間點,并取出長度為seq_len的經(jīng)驗序列
反向傳播[yj-Q(sj,aj;θ)]2,并用梯度下降法更新θ
//周期性更新目標網(wǎng)絡
直到狀態(tài)st是終止狀態(tài)
直到所有回合結(jié)束
為了在圖像作為輸入的Atari游戲環(huán)境上進行測試,DQN與DRQN的神經(jīng)網(wǎng)絡都包含了二維卷積層。通常情況下,如果輸入不為圖像,而僅僅是特征向量,DQN與DRQN所使用的神經(jīng)網(wǎng)絡將不會包含卷積層。然而,卷積層的特征提取能力不僅可以應用于提取圖像特征,也可以應用于提取時間維度上的特征[19]。因此,本文探究了將卷積層的時間維度特征提取能力應用于深度強化學習的可能性。
圖2系統(tǒng)中的在線動作價值網(wǎng)絡與目標動作價值網(wǎng)絡結(jié)構(gòu)如圖3所示,在DRQN所用神經(jīng)網(wǎng)絡的基礎上加入了一維卷積層,稱為一維卷積循環(huán)神經(jīng)網(wǎng)絡。一維卷積層將在時間維度上對輸入的數(shù)據(jù)進行卷積,并提取其在時間維度上的特征。實驗表明這樣做能提高神經(jīng)網(wǎng)絡的特征提取能力和擬合能力,從而提高智能體的決策水平,使得智能體在與時序相關的環(huán)境中有更好的表現(xiàn)。
圖3 一維卷積循環(huán)神經(jīng)網(wǎng)絡示意圖
為了解決深度強化學習在狀態(tài)空間維度大的環(huán)境中的快速收斂問題,本文用到了一維卷積層來提取狀態(tài)在時間維度上的特征。設輸入為X∈RN×Cin×Lin,輸出為Y∈RN×Cout×Lout,則一維卷積層的數(shù)學表達式為:
(3)
式(3)中,符號★為互相關運算,N為一個批次訓練數(shù)據(jù)的大小,Cin和Cout分別為輸入和輸出數(shù)據(jù)的通道數(shù),Lin和Lout分別為輸入和輸出數(shù)據(jù)的長度,kernel_size表示一維卷積核大小。α∈RCout×Cin×kernel_size為該層的一維卷積核,β∈RCout為該層的偏置項。
LSTM層是一種循環(huán)神經(jīng)網(wǎng)絡,能給神經(jīng)網(wǎng)絡帶來記憶能力。一般地,LSTM層的輸入為某一特征向量的時間序列x∈RN×Lin×Hin。為簡單起見,假設一個批次只包含1條數(shù)據(jù)且該特征向量只包含1個特征,即x∈RLin。由此可知x=[x1,x2,…,xt,…,xLin]T,則對于x中的任意一個時刻的元素xt,LSTM層的數(shù)學表達式為:
(4)
式(4)中,符號⊙表示哈達瑪積,N為一個批次訓練數(shù)據(jù)的大小,Lin為時間序列在時間維度上的長度,Hin為時間數(shù)列包含的特征數(shù)。it、ft、gt和ot分別被稱為t時刻的輸入門(input gates)、遺忘門(forget gates)、元胞門(cell gates)和輸出門(output gates)。ct和ht分別被稱為t時刻的元胞狀態(tài)(cell states)和隱藏狀態(tài)(hidden states)。
全連接層是神經(jīng)網(wǎng)絡最經(jīng)典的組成部件。按照經(jīng)典的形式,設全連接層的輸入為特征向量X∈RN×Hin,輸出為Y∈RN×Hout,則全連接層的數(shù)學表達式為:
Y[i,:]=σ(X[i,:]A+b)
(5)
其中:σ為某一非線性激活函數(shù),常用的有sigmoid函數(shù)和ReLU函數(shù)等。N為一個批次訓練數(shù)據(jù)的大小,Hin和Hout分別為輸入和輸出數(shù)據(jù)的特征數(shù)。A∈RHin×Hout為該層的權(quán)重,b∈R1×Hout為該層的偏置項。
具體地,以在MountainCar-v0環(huán)境中時為例。在訓練階段,深度強化學習訓練器會在每個訓練步長從經(jīng)驗池提取一個批次的經(jīng)驗用于訓練神經(jīng)網(wǎng)絡,一個批次包含512條訓練數(shù)據(jù);每條訓練數(shù)據(jù)皆為時間序列,序列長度在每個訓練步長開始前隨機選擇;序列中每個時刻都包含小車當時的位置和速度信息。訓練數(shù)據(jù)首先會被視為通道數(shù)為2的一維向量輸入進一維卷積層,用于提取時間維度上的特征;然后被視為特征數(shù)為2的時間序列輸入進LSTM層,增強對數(shù)據(jù)時間相關性的利用;最后將訓練數(shù)據(jù)展開為一維向量輸入到全連接層得到最終對每個動作價值的估計。為了加快收斂速度,在每一層后還加入了批歸一化處理(batch normalization)。神經(jīng)網(wǎng)絡的詳細結(jié)構(gòu)如圖4所示。
圖4 神經(jīng)網(wǎng)絡詳細結(jié)構(gòu)
在測試階段,神經(jīng)網(wǎng)絡的輸入為由當前時刻小車的位置和速度組成的狀態(tài)信息,為特征數(shù)為2的一維向量,輸出每個動作價值的估計。
為了驗證本文所提出的在時間維度上引入一維卷積層的有效性,設計仿真實驗在Open AI Gym提供的MountainCar-v0環(huán)境下測試其性能,并在使用相同超參數(shù)的情況下與DQN的性能進行對比。
在MountainCar-v0環(huán)境中,一輛小車處于兩個山峰之間的一條一維軌道上,如圖5所示。小車的目標是到達右邊的山峰上,可是由于馬力不足,小車必須學會積攢能量才能完成這一目標。
圖5 MountainCar-v0環(huán)境示意圖[20]
具體地,在MountainCar-v0環(huán)境中,神經(jīng)網(wǎng)絡輸入的狀態(tài)信息為小車的位置和速度,組成特征數(shù)為2的一維向量,輸出的動作為小車的前進方向,共有向左、向右和空擋3種選擇。
在測試中,學習率為0.01,衰減因子為0.9,探索度為0.1;目標網(wǎng)絡更新周期為100,經(jīng)驗池大小為4 096,一個批次包含512條訓練數(shù)據(jù),即batch size=512,訓練數(shù)據(jù)序列長度在1~32中隨機選擇。深度強化學習超參數(shù)總結(jié)如表1所示。
表1 深度強化學習超參數(shù)表
下面首先給出一維卷積循環(huán)神經(jīng)網(wǎng)絡獲取的總獎賞隨訓練輪次的變化曲線。在MountainCar-v0環(huán)境中,獎賞設定為當前時刻小車所具有的能量,即小車動能與勢能之和。在具體代碼實現(xiàn)中,設pt和vt為當前時刻小車的位置和速度,則獎賞rt的定義如下:
rt=abs(pt+0.6)+10×abs(vt)
(6)
DQN與一維卷積循環(huán)神經(jīng)網(wǎng)絡在MountainCar-v0環(huán)境中獲取總獎賞的表現(xiàn)如圖6與圖7所示。
圖6 DQN的總獎賞隨訓練輪次的變化
圖7 一維卷積循環(huán)神經(jīng)網(wǎng)絡的總獎賞隨訓練輪次的變化
圖6與圖7分別為DQN和一維卷積循環(huán)神經(jīng)網(wǎng)絡的總獎賞變化曲線。其中淺色部分表示原始數(shù)據(jù),深色部分是平滑濾波后的結(jié)果。對比兩者的總獎賞變化曲線,可以看出一維卷積循環(huán)神經(jīng)網(wǎng)絡相比DQN有著明顯的提升。首先,在收斂過程中,一維卷積循環(huán)神經(jīng)網(wǎng)絡的總獎賞曲線斜率更大,上升速度更快,這說明一維卷積循環(huán)神經(jīng)網(wǎng)絡相比DQN有著更高的收斂效率;其次,更為突出的是,從最終達到的總獎賞來看,一維卷積循環(huán)神經(jīng)網(wǎng)絡學習到的策略所獲取的總獎賞比DQN明顯高出一部分,大約為10分。
圖8與圖9分別為DQN和一維卷積循環(huán)神經(jīng)網(wǎng)絡所作出動作選擇的平均動作價值的變化曲線。其中淺色部分表示原始數(shù)據(jù),深色部分是平滑濾波后的結(jié)果。
圖9 一維卷積循環(huán)神經(jīng)網(wǎng)絡的平均動作價值隨著訓練輪次的變化
圖8 DQN的平均動作價值隨著訓練輪次的變化
可以看出在平均動作價值收斂的穩(wěn)定性上,一維卷積循環(huán)神經(jīng)網(wǎng)絡相比DQN有著明顯的提升。通過觀察圖8和圖9中淺色部分的原始數(shù)據(jù)可以發(fā)現(xiàn),DQN的平均動作價值曲線波動較大,說明收斂過程不穩(wěn)定;一維卷積循環(huán)神經(jīng)網(wǎng)絡的平均動作價值曲線波動較小,說明收斂過程相對穩(wěn)定。
結(jié)合DQN和一維卷積循環(huán)神經(jīng)網(wǎng)絡的訓練歷史進行對比分析,不難發(fā)現(xiàn)一維卷積循環(huán)神經(jīng)網(wǎng)絡在最終結(jié)果還是收斂速度上都要優(yōu)于DQN。這是因為LSTM層賦予了一維卷積循環(huán)神經(jīng)網(wǎng)絡記憶性,使其可以利用更多的歷史信息來輔助決策,并削弱POMDP的影響,從而讓一維卷積循環(huán)神經(jīng)網(wǎng)絡在時間相關的環(huán)境中最終獲得的總獎賞超過DQN。同時,LSTM層之前的一維卷積層在訓練的過程中在時間維度上進行特征提取,使得整個一維卷積循環(huán)神經(jīng)網(wǎng)絡相比DQN有著更快的收斂速度以及穩(wěn)定性。故相比于DQN簡單的全連接結(jié)構(gòu),一維卷積循環(huán)神經(jīng)網(wǎng)絡在狀態(tài)空間維度大且狀態(tài)之間在時間上相關的環(huán)境中有著更好的表現(xiàn)。
在使用深度強化學習解決現(xiàn)實問題時,許多問題所構(gòu)造的環(huán)境都存在著狀態(tài)空間維度大且狀態(tài)之間在時間上相關的特征。如果能夠利用好狀態(tài)在時間上的相關性就可以有效提升神經(jīng)網(wǎng)絡在大維度狀態(tài)空間中的收斂效率。就本文所提出的一維卷積循環(huán)神經(jīng)網(wǎng)絡來說,LSTM層的引入使得其擁有了一定的記憶能力,而一維卷積層的加入則讓其在具備記憶能力的基礎上有了更強的特征提取能力,進而可以更高效地處理時間維度上的信息。這使得改進后的算法能在MountainCar-v0這樣與時序相關的環(huán)境中能夠得到得到更高的總回報。同時,一維卷積層還增加了神經(jīng)網(wǎng)絡的擬合能力以及穩(wěn)定性,使得深度強化學習的訓練過程更加平穩(wěn)。