李 婧,侯詩(shī)琪
(上海電力大學(xué) 計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,上海 201306)
路由選擇是網(wǎng)絡(luò)數(shù)據(jù)傳輸?shù)年P(guān)鍵技術(shù)[1],優(yōu)化路由選擇協(xié)議有助于提升網(wǎng)絡(luò)服務(wù)質(zhì)量。在大流量頻繁的傳輸場(chǎng)景中,網(wǎng)絡(luò)負(fù)載的波動(dòng)性對(duì)傳統(tǒng)路由選擇協(xié)議提出了新挑戰(zhàn)[2]。傳統(tǒng)路由協(xié)議基于啟發(fā)式規(guī)則或基于數(shù)據(jù)驅(qū)動(dòng)?;趩l(fā)式規(guī)則的傳統(tǒng)路由選擇協(xié)議,例如開放最短路徑優(yōu)先協(xié)議(open shortest path first,OSPF)不能根據(jù)傳輸節(jié)點(diǎn)和鏈路的狀態(tài)動(dòng)態(tài)調(diào)整路由策略,并從歷史決策中習(xí)得經(jīng)驗(yàn),避免遇到類似場(chǎng)景時(shí)再次做出不當(dāng)決策?;跀?shù)據(jù)驅(qū)動(dòng)的協(xié)議包括基于深度學(xué)習(xí)的協(xié)議和基于強(qiáng)化學(xué)習(xí)(rei-nforcement learning,RL)的協(xié)議。前者訓(xùn)練成本和部署成本高,在負(fù)載大幅波動(dòng)的環(huán)境中無法一如既往地保障網(wǎng)絡(luò)吞吐量;后者未能根據(jù)負(fù)載波動(dòng)自適應(yīng)調(diào)整參數(shù),且廣泛使用簡(jiǎn)單的ε-greedy策略,在訓(xùn)練初期,動(dòng)作探索具有一定盲目性[3],波動(dòng)的負(fù)載不僅延長(zhǎng)了訓(xùn)練時(shí)間,而且使訓(xùn)練初期的網(wǎng)絡(luò)吞吐量很低。此外,現(xiàn)有模型經(jīng)驗(yàn)回放效率不高,很多優(yōu)質(zhì)經(jīng)驗(yàn)未被采樣就被拋棄,模型收斂速度仍有提升空間[4]。
為應(yīng)對(duì)上述挑戰(zhàn),提出了基于環(huán)境感知的自適應(yīng)深度強(qiáng)化學(xué)習(xí)路由算法,利用平均損失函數(shù)值調(diào)節(jié)探索和利用的程度,采用有限度探索和優(yōu)先經(jīng)驗(yàn)回放機(jī)制加速訓(xùn)練。仿真結(jié)果表明,該算法可保障并提升模型相對(duì)收斂前后的網(wǎng)絡(luò)吞吐量,并顯著縮短訓(xùn)練時(shí)間。
路由選擇可看作一類序列決策任務(wù)。對(duì)此類問題,比起基于深度學(xué)習(xí)的路由選擇算法,強(qiáng)化學(xué)習(xí)更關(guān)注動(dòng)作的長(zhǎng)期收益,在與環(huán)境的交互中智能體可學(xué)得更優(yōu)策略。
Boyan最先利用強(qiáng)化學(xué)習(xí)優(yōu)化路由選擇并提出了Q-routing[5],旨在為數(shù)據(jù)分組的傳輸選擇時(shí)延最短的路徑以避免擁塞。Daniel等提出了基于Q-routing和啟發(fā)式規(guī)則相結(jié)合的擁塞感知路由算法QCAR[6],可感知網(wǎng)絡(luò)環(huán)境變化動(dòng)態(tài)調(diào)整下一跳選擇,通過自適應(yīng)避免擁塞,提高數(shù)據(jù)分組傳輸率,縮短端到端延遲。但模型對(duì)擁塞的判斷過于依賴啟發(fā)式規(guī)則。Kavalerov等提出了基于模糊邏輯的FQLRP[7],根據(jù)每個(gè)節(jié)點(diǎn)的剩余能量以及路由過程中一組節(jié)點(diǎn)的能量分布,決定下一跳。黃慶東等提出了低時(shí)延全回波Q路由算法AQFE-M[8],使用雙曲正切算子根據(jù)不同網(wǎng)絡(luò)情況調(diào)節(jié)學(xué)習(xí)率,減少了數(shù)據(jù)平均遞交時(shí)間,降低路由間的振蕩,提高了數(shù)據(jù)分組的投遞率。邵天竺等提出一種路由抖動(dòng)抑制的智能路由選擇算法FSR[9],在提升轉(zhuǎn)發(fā)性能的同時(shí),縮短路由收斂時(shí)間,提升網(wǎng)絡(luò)整體轉(zhuǎn)發(fā)性能。沙鑫磊等提出一種雙學(xué)習(xí)率自適應(yīng)的Q路由算法DALRQ-routing[10],可根據(jù)網(wǎng)絡(luò)延遲調(diào)整學(xué)習(xí)率,減少輪詢操作造成的延遲抖動(dòng),加速算法收斂,提升網(wǎng)絡(luò)穩(wěn)定性。
盡管上述基于Q-routing的各類改進(jìn)算法在提升網(wǎng)絡(luò)性能和模型性能方面均取得了重要成果,但在網(wǎng)絡(luò)優(yōu)化問題中,智能體的動(dòng)作空間和狀態(tài)空間往往具有連續(xù)性,迫使Q表急劇增大,一方面,查表操作嚴(yán)重影響算法性能,另一方面,對(duì)Q表的存儲(chǔ)和查找任務(wù)也消耗著網(wǎng)絡(luò)設(shè)備寶貴的內(nèi)存和計(jì)算資源。
以神經(jīng)擬合代替Q表更新為核心思想的深度強(qiáng)化學(xué)習(xí)(deep q network,DQN)[11]為上述問題提供了解決方案。Jalil等提出了基于深度強(qiáng)化學(xué)習(xí)和優(yōu)先經(jīng)驗(yàn)回放[12](perio-rity experience replay,PER)的路由選擇DQR[13],其獎(jiǎng)勵(lì)函數(shù)可對(duì)時(shí)延和吞吐量等服務(wù)質(zhì)量(quality of service,QoS)指標(biāo)進(jìn)行優(yōu)化,降低延遲的同時(shí)最大化帶寬。高飛飛等提出了基于集中式部署的SDMT-DQN和DOMT-DQN[14],旨在提升數(shù)據(jù)抵達(dá)率,降低擁塞概率。周鵬等使用部分可觀察馬爾可夫決策模型對(duì)環(huán)境建模,把模擬退火算法的思想引入貪心函數(shù)ε??蓪?shí)現(xiàn)網(wǎng)絡(luò)資源的合理分發(fā)[15]。曹茜等提出一種基于高獎(jiǎng)勵(lì)值和時(shí)序差分誤差的優(yōu)先經(jīng)驗(yàn)回放算法HVPER[16],一定程度上提升了模型訓(xùn)練效率,加快了模型相對(duì)收斂速度。張宇超等提出了基于模型融合的深度強(qiáng)化學(xué)習(xí)多最優(yōu)路由路由通用方案[17],增加了路由策略靈活性。
基于DQN及其各類改進(jìn)算法解決了Q-routing的瓶頸問題,但存在的共性問題是智能體在探索階段網(wǎng)絡(luò)性能較差,未能權(quán)衡好探索和利用的關(guān)系;在負(fù)載變化頻繁的網(wǎng)絡(luò)環(huán)境中,模型自適應(yīng)性還有待提高。
圖1 網(wǎng)狀網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)
=Ns+Nm+Nd
(1)
該拓?fù)浣Y(jié)構(gòu)可表示為有向圖G=(V,E ),V表各個(gè)路由器結(jié)點(diǎn),E代表各路由器的連接關(guān)系,E滿足E={(i,j)|(i,j)∈V×V,i≠j}。
網(wǎng)絡(luò)架構(gòu)采用集中式控制的軟件定義網(wǎng)絡(luò)(software defined networking,SDN)[18],包括數(shù)據(jù)層、控制層、應(yīng)用層。圖1所示的路由器位于數(shù)據(jù)層,僅執(zhí)行轉(zhuǎn)發(fā)操作。控制層提供應(yīng)用程序和數(shù)據(jù)層之間的通信接口,路由策略計(jì)算、轉(zhuǎn)發(fā)規(guī)則更新等依賴控制層的控制器。每時(shí)隙控制器與路由器進(jìn)行通信收集傳輸任務(wù)信息并存儲(chǔ)至任務(wù)隊(duì)列QT。假設(shè)每個(gè)時(shí)隙內(nèi),數(shù)據(jù)分組可從一個(gè)路由器傳輸?shù)较乱粋€(gè)路由器或是被丟棄,任務(wù)隊(duì)列中所有待處理任務(wù)均可被處理。
對(duì)于從源路由器rs轉(zhuǎn)發(fā)的數(shù)據(jù)分組,需為其生成一條轉(zhuǎn)發(fā)路徑,通過目的路由器rd送達(dá)終端,并使網(wǎng)絡(luò)吞吐量最大。
DQNPES(deep q network with priority experience replay and self-adaptability)總體架構(gòu)如圖2所示,采用了深度強(qiáng)化學(xué)習(xí)(deep q network,DQN)[19]思想。DQNPES包括兩個(gè)實(shí)體:一是環(huán)境實(shí)體;二是智能體(agent)。
圖2 DQNPES架構(gòu)
路由選擇問題具有馬爾可夫性[20]??刂破髋c路由器通信獲取當(dāng)前網(wǎng)絡(luò)狀態(tài),并計(jì)算下一跳,路由器根據(jù)控制器的策略轉(zhuǎn)發(fā)分組,網(wǎng)絡(luò)狀態(tài)隨之改變。路由選擇問題的當(dāng)前狀態(tài)是過去狀態(tài)的匯總。
由于網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)動(dòng)態(tài)變化,且各路由器并行轉(zhuǎn)發(fā)分組,智能體所觀測(cè)的狀態(tài)是片面的。針對(duì)此問題,使用部分可觀測(cè)馬爾可夫決策模型構(gòu)建智能體(partially observable Markov decision processes,POMDP)[21]。POMDP可表示為M=(S,A,P,R)。S為網(wǎng)絡(luò)狀態(tài)集合,為無限集,S={s0,s1,…,st,…};A為當(dāng)前節(jié)點(diǎn)合法下一跳集合,為有限集,A={a0,a1,…,an};P為狀態(tài)轉(zhuǎn)移概率函數(shù),P(s′|s,a) 表示在狀態(tài)s下執(zhí)行動(dòng)作a轉(zhuǎn)移至s′的概率。R為路由器執(zhí)行轉(zhuǎn)發(fā)操作后網(wǎng)絡(luò)環(huán)境的獎(jiǎng)勵(lì)反饋。R(s,a,s′) 表示狀態(tài)s下執(zhí)行動(dòng)作a到達(dá)狀態(tài)s′時(shí)的獎(jiǎng)勵(lì)。
3.1.1 狀態(tài)
各路由器緩沖區(qū)情況以及數(shù)據(jù)分組狀態(tài)均會(huì)影響智能體決策。每時(shí)刻的狀態(tài)st表示為st=[Dt,Lt],其中Dt=[D1,t,D1,t,…,D],Di,t表示t時(shí)刻第i個(gè)路由器緩沖區(qū)的數(shù)據(jù)總量;Lt表示每時(shí)刻數(shù)據(jù)分組的位置,是長(zhǎng)度為的one-hot編碼變體,Lt=[L1,t,L2,t,…,L],Li,t∈{-1,0,1}。數(shù)據(jù)分組不可被分割,因此每時(shí)刻有且僅有一個(gè)Li,t為1或-1。Li,t為1,表示t時(shí)刻數(shù)據(jù)分組在第i個(gè)路由器中;Li,t為-1,表示t時(shí)刻數(shù)據(jù)分組在第i個(gè)路由器被丟棄。
3.1.2 動(dòng)作
對(duì)于路由選擇問題,動(dòng)作是指從分組當(dāng)前所在路由器選擇一個(gè)路由器ri作為下一跳。
3.1.3 狀態(tài)轉(zhuǎn)移概率
POMDP的求解目標(biāo)是確定策略π(s),即為每個(gè)可能的狀態(tài)s指定動(dòng)作。由于動(dòng)作選擇具有不確定性,用狀態(tài)轉(zhuǎn)移概率P(s′|s,a) 來描述。狀態(tài)轉(zhuǎn)移概率與當(dāng)前狀態(tài)和動(dòng)作選擇策略有關(guān)。
3.1.4 獎(jiǎng)勵(lì)函數(shù)
為尋找最優(yōu)策略,需定義每時(shí)刻智能體可從環(huán)境獲得的獎(jiǎng)勵(lì)R(s,a,s′)。為減少丟包,降低擁塞程度,提高吞吐量,R(s,a,s′) 包含因數(shù)據(jù)分組被丟棄的懲罰性獎(jiǎng)勵(lì)以及被正常轉(zhuǎn)發(fā)時(shí)的即時(shí)獎(jiǎng)勵(lì),如式(2)所示。
智能體在以下情況獲得懲罰性獎(jiǎng)勵(lì),且任務(wù)傳輸終止:①當(dāng)下一跳路由器的緩沖區(qū)無法存儲(chǔ)數(shù)據(jù)分組時(shí),路由器負(fù)載過大;②當(dāng)下一跳不是當(dāng)前節(jié)點(diǎn)的鄰居節(jié)點(diǎn),動(dòng)作非法;
智能體在以下情況獲得即時(shí)獎(jiǎng)勵(lì):①數(shù)據(jù)分組每被轉(zhuǎn)發(fā)一次需要消耗資源,智能體獲得負(fù)向獎(jiǎng)勵(lì)Rhop;②當(dāng)下一跳是目的路由器,智能體獲得正向獎(jiǎng)勵(lì)Rarrive。設(shè)置正向獎(jiǎng)勵(lì)有助于加速模型收斂
(2)
Ro=Rhop+φRarrive,φ∈{0,1}
(3)
僅用每個(gè)時(shí)刻的獎(jiǎng)勵(lì)評(píng)估策略是片面的。當(dāng)前狀態(tài)蘊(yùn)含了已執(zhí)行動(dòng)作產(chǎn)生的影響。因此,最近的獎(jiǎng)勵(lì)應(yīng)被重視,在未來,這一獎(jiǎng)勵(lì)也應(yīng)被考慮到。引入Gπ(s)來記錄POMDP累計(jì)獎(jiǎng)勵(lì)
Gπ(s)=R0+γR1+γ2R2+…+γtRt+…=
(4)
其中,γ為折扣因子,表示當(dāng)前獎(jiǎng)勵(lì)在未來重要程度,會(huì)隨時(shí)間衰減,γ∈[0,1]。Gπ(s)隨動(dòng)作的隨機(jī)性而變化,但Gπ(s)的期望值為定值。為評(píng)估π(s),引入狀態(tài)價(jià)值函數(shù)Vπ(s) 和狀態(tài)動(dòng)作價(jià)值函數(shù)Qπ(s,a) (下文稱Q值),定義如下
Vπ(s)=π(Gπ(s))=
∑s′P(s′|s,a)[R(s,a,s′)+γVπ(s′)]
(5)
Qπ(s,a)=∑s′P(s′|s,a)[R(s,a,s′)+γVπ(s′)]
(6)
Vπ(s) 與Qπ(s,a) 相輔相成。Vπ(s) 由從狀態(tài)s0到達(dá)狀態(tài)st的所有狀態(tài)動(dòng)作價(jià)值表征,Qπ(s,a),由后續(xù)狀態(tài)st的動(dòng)作價(jià)值表征。通過價(jià)值迭代,可求得最優(yōu)策略π(s)
(7)
在對(duì)環(huán)境建模的基礎(chǔ)上,設(shè)計(jì)了基于值的強(qiáng)化學(xué)習(xí)框架,即智能體(下稱模型)。智能體的兩大任務(wù)是在線動(dòng)作決策和離線學(xué)習(xí)。為加速智能體學(xué)習(xí),提升網(wǎng)絡(luò)吞吐量,本文針對(duì)動(dòng)作決策和離線學(xué)習(xí)進(jìn)行了優(yōu)化。
3.2.1 模型結(jié)構(gòu)
智能體包含兩個(gè)結(jié)構(gòu)完全一致的神經(jīng)網(wǎng)絡(luò)eval_network和target_network。
在動(dòng)作決策時(shí),eval_network輸入層為當(dāng)前網(wǎng)絡(luò)狀態(tài),輸出層為每個(gè)動(dòng)作的Q值,作為智能體下一跳選擇的參考。對(duì)于每一次決策,智能體將經(jīng)驗(yàn)以狀態(tài)轉(zhuǎn)移元組 (st,a,Rt+1,st+1) 的形式存入經(jīng)驗(yàn)回放池。
s′t=argtan(st)×2÷π
(8)
(9)
Loss(θ)=[(target_Q-Q(st,at;θ))2]
(10)
3.2.2 動(dòng)作選擇
下一跳的選擇基于有限探索機(jī)制和改進(jìn)的自適應(yīng)ε-greedy機(jī)制,ε是權(quán)衡動(dòng)作選擇策略的因子。智能體訓(xùn)練初期,廣泛的探索可提升獲得更優(yōu)解的概率[3]。但盲目探索不利于提升訓(xùn)練初期的網(wǎng)絡(luò)吞吐量,影響用戶體驗(yàn)。針對(duì)這一矛盾,引入了有限度探索機(jī)制。動(dòng)作選擇算法如算法1所示。智能體以ε的概率選擇具有最大狀態(tài)價(jià)值函數(shù)值的動(dòng)作,以1-ε的概率從當(dāng)前節(jié)點(diǎn)的鄰居中優(yōu)先選擇滿足緩沖區(qū)閾值條件的動(dòng)作a。若這樣的動(dòng)作不存在,則隨機(jī)選取當(dāng)前節(jié)點(diǎn)的一個(gè)鄰居作為下一跳。有限探索為智能體的學(xué)習(xí)積累了更多優(yōu)質(zhì)經(jīng)驗(yàn),有助于智能體更快學(xué)到良好的策略。
算法1:下一跳選擇
輸入:網(wǎng)絡(luò)拓?fù)銰、網(wǎng)絡(luò)狀態(tài)s、送達(dá)的目的節(jié)點(diǎn)dst
輸出:下一跳動(dòng)作a
(1) 從狀態(tài)s中提取數(shù)據(jù)分組當(dāng)前位置i
(2) 隨機(jī)生成一個(gè)0到1的數(shù)m
(3)ifm≤εdo
(5)returna
(6)else:
(7)forneighborinneighborsofrido
(8)ifneighbor的緩存大小+分組數(shù)據(jù)量 <閾值do
(9)a=neighbor
(10)returna
(11)endfor
(12)else:
(13) 從ri的鄰居中隨機(jī)選擇一個(gè)返回
由于損失函數(shù)值可以反映預(yù)估Q值和實(shí)際Q值的差距,進(jìn)而反應(yīng)智能體的學(xué)習(xí)程度。自適應(yīng)的ε有利于智能體在與環(huán)境交互過程中形成更多有價(jià)值的經(jīng)驗(yàn)。損失函數(shù)值較大時(shí),表明智能體尚未學(xué)習(xí)充分,未能有效應(yīng)對(duì)網(wǎng)絡(luò)負(fù)載變化,這時(shí)需要加大探索,利用有限探索機(jī)制積累優(yōu)質(zhì)經(jīng)驗(yàn);當(dāng)損失函數(shù)值較小時(shí),表明神經(jīng)網(wǎng)絡(luò)已相對(duì)收斂,智能體已能應(yīng)對(duì)網(wǎng)絡(luò)負(fù)載變化,這時(shí)依據(jù)當(dāng)前行為策略挑選出來的大多數(shù)動(dòng)作對(duì)于最優(yōu)策略的學(xué)習(xí)是有利的,智能體對(duì)環(huán)境的探索程度可適當(dāng)降低。ε更新方法如式(11)。在訓(xùn)練初期,為智能體設(shè)置一個(gè)較小的初值ε0,并保持一段時(shí)間(即Tstate1),隨后,ε隨著智能體多次訓(xùn)練的平均損失函數(shù)值更新,若更新過程中ε超過閾值時(shí),將ε重新調(diào)整為閾值εmax。
對(duì)ε的改進(jìn)不僅提高了智能體對(duì)環(huán)境的自適應(yīng)程度,也降低了智能體對(duì)啟發(fā)式規(guī)則的依賴
(11)
3.2.3 優(yōu)先經(jīng)驗(yàn)回放
(12)
由于有偏采樣引入了偏差,為保證有偏采樣學(xué)到的策略與均勻采樣的策略相同,使用重要性抽樣權(quán)重wj(下稱isweight)糾正偏差。考慮到穩(wěn)定性,使用最大權(quán)重值進(jìn)行歸一化。β為退火因子,在學(xué)習(xí)結(jié)束時(shí)β將從初始值退火到1,與α共同作用以校正偏差。n為采樣數(shù)
wj=(n·p(j))-β/maxiwi=
(n·p(j))-β/maxi(n·p(i))-β=
(p(j))-β/maxi(p(i))-β=(p(j)/minip(i))-β
(13)
綜上,DQNPES偽代碼如算法2所示。在動(dòng)作決策階段,控制層為每一個(gè)傳輸任務(wù)做出下一跳決策,并把指令分發(fā)給響應(yīng)路由器進(jìn)行分組轉(zhuǎn)發(fā)。并將經(jīng)驗(yàn)和優(yōu)先級(jí)存入經(jīng)驗(yàn)回放池。在學(xué)習(xí)階段,優(yōu)先級(jí)權(quán)重按照經(jīng)驗(yàn)采樣數(shù)分段后隨機(jī)選取,并選取該權(quán)重對(duì)應(yīng)的經(jīng)驗(yàn),依照式(13)計(jì)算重要性抽樣權(quán)重。
算法2:DQNPES
輸入:網(wǎng)絡(luò)拓?fù)洹⒕W(wǎng)絡(luò)狀態(tài)
(1) 初始化任務(wù)隊(duì)列,模型參數(shù)
(2)forepisode = 1,2,…,Mdo
(3)forT = 1,2,…,50do
(4) 數(shù)據(jù)源生成數(shù)據(jù),并把傳送任務(wù)添加到隊(duì)列
(5) 控制器獲取各路由器狀態(tài)
(6)fortask = 1,2,…,N (N為隊(duì)列任務(wù)數(shù)目)do
(7) 根據(jù)分組送達(dá)的目的地選取相應(yīng)智能體
(8) 獲取網(wǎng)絡(luò)狀態(tài),輸入到eval_network
(9) eval_network按照算法1選擇動(dòng)作
(10)endfor
(11) 為隊(duì)列中所有分組執(zhí)行轉(zhuǎn)發(fā)操作
(12) 初始化經(jīng)驗(yàn)優(yōu)先級(jí)為1或最大優(yōu)先權(quán)重值,并存入經(jīng)驗(yàn)回放池
(13)ifT %5 ==0do
(14) 隨機(jī)選取優(yōu)先級(jí),從經(jīng)驗(yàn)池中隨機(jī)選取經(jīng)驗(yàn)j~p(j)
(15) 依據(jù)式 (13) 計(jì)算重要性抽樣權(quán)重isweight
(16) 根據(jù)式 (9) 計(jì)算target_Q值
(17) 根據(jù)式 (10) 計(jì)算損失函數(shù),用梯度下降法更新參數(shù)
(18) 計(jì)算δj=target_Q-Q(st,at;θ) 并更新經(jīng)驗(yàn)優(yōu)先級(jí)
(19) 根據(jù)式 (11) 更新ε
(21)endfor
(22)endfor
4.1.1 實(shí)驗(yàn)環(huán)境
仿真環(huán)境基于Networkx[22]。假設(shè)源路由器和目的路由器可及時(shí)將接收到的數(shù)據(jù)分組轉(zhuǎn)發(fā),緩沖區(qū)大小無限制,其余路由器緩沖區(qū)設(shè)為40 MB。數(shù)據(jù)源產(chǎn)生的數(shù)據(jù)分組數(shù)目符合泊松分布[23]。每時(shí)隙數(shù)據(jù)源生成的數(shù)據(jù)總量由概率參數(shù)ρ控制。數(shù)據(jù)源有ρ的概率產(chǎn)生大的數(shù)據(jù)分組,1-ρ的概率生成較小的數(shù)據(jù)分組。實(shí)驗(yàn)設(shè)定部署了不同模型的網(wǎng)絡(luò)環(huán)境在每時(shí)隙生成的數(shù)據(jù)分組數(shù)目和數(shù)據(jù)量保持一致。
DQNPES的神經(jīng)網(wǎng)絡(luò)部分采用 Keras實(shí)現(xiàn)[24],根據(jù)目的路由器的數(shù)目,確定需要訓(xùn)練的神經(jīng)網(wǎng)絡(luò)個(gè)數(shù)。每個(gè)神經(jīng)網(wǎng)絡(luò)輸入層、輸出層的神經(jīng)元個(gè)數(shù)分別是2和。模型神經(jīng)網(wǎng)絡(luò)參數(shù)一致。
4.1.2 實(shí)驗(yàn)?zāi)P?/p>
為評(píng)估算法性能,實(shí)驗(yàn)選取以下算法:
OSPF:網(wǎng)絡(luò)中的各路由器通過泛洪法獲取整個(gè)區(qū)域的拓?fù)浣Y(jié)構(gòu),到各節(jié)點(diǎn)最優(yōu)路徑通過Dijkstra方法計(jì)算。
QCAR[6]:考慮兩跳的擁塞狀態(tài),采用隨機(jī)選取不擁擠節(jié)點(diǎn)和選取具有最大Q值的節(jié)點(diǎn)相結(jié)合的方式?jīng)Q定最佳下一跳,將流量分配到多條路徑。
DOMT-DQN[14]:算法依照目的節(jié)點(diǎn)個(gè)數(shù)確定神經(jīng)網(wǎng)絡(luò)的個(gè)數(shù)。每個(gè)神經(jīng)網(wǎng)絡(luò)基于Nature DQN[19](下稱DQN)根據(jù)目的節(jié)點(diǎn)選擇對(duì)應(yīng)DQN產(chǎn)生下一跳。
DQNP[12]:在DQN的基礎(chǔ)上引入優(yōu)先經(jīng)驗(yàn)回放機(jī)制。
HVPER[16]:算法中經(jīng)驗(yàn)回放優(yōu)先級(jí)的定義結(jié)合了TD error與獎(jiǎng)勵(lì),優(yōu)先考慮具有高獎(jiǎng)勵(lì)值和高時(shí)間差分誤差的經(jīng)驗(yàn)。
DQNPE:在DQNP基礎(chǔ)上引入自適應(yīng)ε。
4.1.3 實(shí)驗(yàn)思路
(1)為驗(yàn)證加入自適應(yīng)ε能有效權(quán)衡探索和利用,加速訓(xùn)練,將DQNPES與以下模型變體對(duì)比:
DQNE:在DQN基礎(chǔ)上引入自適應(yīng)ε。
DQNC:采用線性遞增的方式調(diào)整ε,更新方式如式(14)所示
(14)
DQN:在整個(gè)訓(xùn)練過程中,ε保持不變。
(2)為驗(yàn)證正向經(jīng)驗(yàn)積累對(duì)于網(wǎng)絡(luò)吞吐量的提升程度,將DQNPES與表1所示的模型變體作對(duì)比。
表1 模型變體
(3)為驗(yàn)證有限探索和自適應(yīng)ε改進(jìn)共同對(duì)網(wǎng)絡(luò)吞吐量、數(shù)據(jù)送達(dá)率等指標(biāo)的提升程度,調(diào)整ρ大小,比較DQNPES、HVPER、DQN、QCAR、OSPF對(duì)上述指標(biāo)的影響。各算法所在環(huán)境ρ保持一致。每時(shí)隙數(shù)據(jù)源生成數(shù)據(jù)完全相同。
為清晰呈現(xiàn)實(shí)驗(yàn)結(jié)果,繪圖時(shí)進(jìn)行了平滑處理。
(1)圖3展示了訓(xùn)練輪次與網(wǎng)絡(luò)吞吐量、數(shù)據(jù)送達(dá)率、損失函數(shù)值、數(shù)據(jù)分組平均路徑長(zhǎng)度的關(guān)系。根據(jù)圖3(a)和圖3(b),在訓(xùn)練初期,DQNPES使網(wǎng)絡(luò)吞吐量、數(shù)據(jù)送達(dá)率高于其它算法所在環(huán)境,DQNE次之。這驗(yàn)證了引入自適應(yīng)ε機(jī)制的有效性。在訓(xùn)練初期,智能體需要進(jìn)行大量的探索來嘗試更多的選擇,以學(xué)習(xí)更優(yōu)策略。根據(jù)圖3(c),DQNPES在達(dá)到相對(duì)收斂后,平均路徑長(zhǎng)度略長(zhǎng)于其它算法,但對(duì)吞吐量的提升顯著,這反映了路由選擇策略的靈活性,分組沿著負(fù)載較小的方向傳輸,反而可以更快到達(dá)。圖3(d)反映了各個(gè)算法的收斂速度。在自適應(yīng)ε機(jī)制的作用下,DQNPES最先達(dá)到相對(duì)收斂,DQNE次之,驗(yàn)證了自適應(yīng)ε機(jī)制加速模型收斂方面的有效性。
圖3 網(wǎng)絡(luò)性能與訓(xùn)練輪次
(2)正向經(jīng)驗(yàn)積累對(duì)吞吐量提升的驗(yàn)證
根據(jù)圖4,4個(gè)算法使網(wǎng)絡(luò)吞吐量在訓(xùn)練50輪時(shí)就達(dá)到了相對(duì)穩(wěn)定的狀態(tài)。與上一實(shí)驗(yàn)中未引入優(yōu)先經(jīng)驗(yàn)回放機(jī)制的算法相比,優(yōu)先經(jīng)驗(yàn)回放機(jī)制在提升模型收斂速度方面具有優(yōu)勢(shì)。盡管訓(xùn)練初期,DQNPES的表現(xiàn)略遜色于HVPER,由于對(duì)動(dòng)作探索范圍有所約束,其波動(dòng)遠(yuǎn)小于DQNPE和DQNP,在后期,DQNPES所在環(huán)境網(wǎng)絡(luò)吞吐量和數(shù)據(jù)送達(dá)率最高,驗(yàn)證正向經(jīng)驗(yàn)的積累有助于提升網(wǎng)絡(luò)吞吐量。
圖4 網(wǎng)絡(luò)性能比較
(3)算法有效性驗(yàn)證
圖5是ρ=0.4時(shí)各算法所在環(huán)境吞吐量和數(shù)據(jù)送達(dá)率隨訓(xùn)練輪次的變化情況。DQNPES使數(shù)據(jù)送達(dá)率,吞吐量均達(dá)到了最高,且在訓(xùn)練初期,性能也優(yōu)于除QCAR之外的算法。在訓(xùn)練后期,DQNPES表現(xiàn)優(yōu)于其它算法。這驗(yàn)證了引入自適應(yīng)ε和有限探索機(jī)制的深度強(qiáng)化學(xué)習(xí)算法的有效性。
圖5 ρ=0.4時(shí)的網(wǎng)絡(luò)性能與訓(xùn)練輪次關(guān)系
表2記錄了各算法在訓(xùn)練100輪之后所在環(huán)境平均吞吐量和平均數(shù)據(jù)送達(dá)率隨ρ變化的情況。當(dāng)ρ從0.2增加至0.8時(shí),數(shù)據(jù)源每時(shí)隙產(chǎn)生的數(shù)據(jù)總量遞減,各算法平均吞吐量也因此呈遞減趨勢(shì),但DQNPES的平均吞吐量始終高于其它算法。ρ為0.2時(shí),網(wǎng)絡(luò)負(fù)載總體水平最大,丟包情況最為嚴(yán)重,但DQNPES仍使送達(dá)率保持在93%,算法優(yōu)勢(shì)最為顯著。這驗(yàn)證DQNPES所做改進(jìn)提高了網(wǎng)絡(luò)數(shù)據(jù)傳送能力。
表2 ρ與模型
為提升負(fù)載變化頻繁的傳輸場(chǎng)景的網(wǎng)絡(luò)吞吐量,提出一種基于SDN架構(gòu)的具有環(huán)境感知的自適應(yīng)深度強(qiáng)化學(xué)習(xí)路由算法DQNPES。與基準(zhǔn)算法相比,該算法可根據(jù)平均損失動(dòng)態(tài)調(diào)整ε-greedy策略,并通過有限度動(dòng)作探索積累正向經(jīng)驗(yàn),避免了網(wǎng)絡(luò)出現(xiàn)大規(guī)模擁塞,結(jié)合優(yōu)先經(jīng)驗(yàn)回放機(jī)制,加速了智能體學(xué)習(xí),降低了訓(xùn)練成本。實(shí)驗(yàn)驗(yàn)證正向經(jīng)驗(yàn)的積累對(duì)于提升網(wǎng)絡(luò)吞吐量的有效性。DQNPES可在大流量、負(fù)載波動(dòng)頻繁的情況下保障并顯著提升從智能體訓(xùn)練初期到相對(duì)收斂的網(wǎng)絡(luò)吞吐量和數(shù)據(jù)傳輸率。