[論文筆記]Spectrum Sharing in Vehicular Networks Based on Multi-Agent Reinforcement Learning

本文的研究目標是車在網絡中的頻譜資源分配問題,具體來講是如何實現多個V2V鏈路重用V2I鏈路的頻譜。車載鏈路中環境的快速變化使傳統的在基站處收集CSI信息以進行集中式資源管理成爲難題,而本方法將資源共享建模爲多主體強化學習問題,並使用適合於分佈式實現的基於指紋的深度Q網絡實現。V2V鏈路通過與環境交互更新Q網絡進而改善頻譜和功率分配。經過驗證此方法可以以分佈式的方式同時提高V2I鏈路容量和V2V鏈路的傳輸速率。

概況

本文致力於研究車聯網(由V2I和V2V連接組成)的頻譜接入設計。採用3GPP定義的基於蜂窩的V2X架構的Mode 4(車輛從資源池中自動選擇通信資源)。通過V2V鏈路與V2I鏈路共享頻譜(此時要注意干擾控制)提高頻譜效率;通過改進V2V頻譜和功率分配方案滿足服務需求並最大化V2I容量和V2V可靠性,進而實現高帶寬內容的傳輸和安全消息共享;爲實現適應消息生成周期內小規模衰落的自帶選擇和功率控制,提出了改進V2V鏈路週期性安全消息可靠性的方法。

研究背景

傳統的V2X資源分配方法存在一些問題,首先,快速變化的信道會導致資源分配帶來很大的不確定性,其次,新的V2X應用的服務要求更加苛刻。這兩點讓建模變得困難,而RL可以在不確定的條件下解決此問題,並且其可以讓分佈式算法成爲可能[12]。目前已有一些解決信道狀況時變性強的方案,[13]通過一種啓發式的空頻重用方案減輕了對CSI的需求,[14]通過最大化V2I鏈路的吞吐讓V2X資源分配可以適應緩慢變化的大尺度信道衰落,進而減小了信令開銷。[15]中允許V2V鏈路之間進行頻譜共享。[16]中通過一種結合QoS和鄰近度的資源共享方案減少V2V鏈路的發送功率,並使用基於Lyapunov的隨機優化框架實現時延和可靠性需求。[17]結合大尺度衰落信息可提高V2I鏈路的遍歷容量,[18]結合CSI的週期性反饋也可達成統一目的。

RL方法在[20][21][22]中也被用於解決V2X網絡中的資源分配問題。[22]中,用RL解決車輛雲的資源供應問題,以最小的開銷滿足雲中各種實體的資源分配和服務質量需求。[23]使用軟件定義的車輛網絡,以最小化傳輸時延的無線資源管理問題。[24]使用基於DL的RL方法,可高效解決聯合優化問題。[25]使用RL對用電池RSU優化了下行鏈路調度,以最大程度提高放電期間的服務數。[26]使用D2C學習具有高爲連續輸入的調度策略。[27]開發了一種分佈式用戶關聯方法,用於異構BS的車載網絡。[28]考慮了異構車聯網中的切換控制方法。

本文特點在於:致力於改進V2V交付率(如指定時間內傳輸指定大小的數據包的成功率);提出一種多代理的RL方法,此方法鼓勵V2V通過合作來提高系統整體性能。

系統模型

D2D車輛通信網絡

如上圖,存在M個V2I鏈路和K個V2V鏈路。V2I使用Uu連接車輛和BS以提供高數據率的服務,V2V通過PC5以週期性發送安全信息。

V2I鏈路的集合記作\mathcal{M}={1, ..., M},V2V鏈路的集合記作\mathcal{K} = {1, ..., K}。假設以固定的功率將M個V2I鏈路預先分配了正交頻譜子帶,即m號V2I佔據了m號子帶,所以我們的目標是爲V2V鏈路設計有效的頻譜分配方案,以最小的信令開銷實現性能要求。

OFDM可將頻選信道轉化成在不同子載波上的平坦信道。幾個連續的子載波分到一個頻譜子帶中,並假定一個子帶內的衰落近似,不同子帶間則獨立。在一個相干時間內,通過m號子帶傳輸的k號V2V鏈路的信道功率增益爲g_k[m] = \alpha_k h_k [m] \tag(1),其中h表徵與頻率相關的小尺度衰落,alpha表徵與頻率無關的大尺度衰落。

類似的,方括號中爲信道編號,角標代表發送/接收端。符號整理如下

m號V2I信道、k號V2V信道、k號V2V對基站的干擾、m號V2I對k號V2V的干擾、k'號V2V對k號V2V的干擾 的增益

m號V2I在BS的SINR爲:

 

經由m號子帶傳輸的k號V2V在接收端的SINR爲:

其中P爲發射功率,\sigma^2是噪聲功率。I_{k}[m]=P_{m}^{c} \hat{g}_{m, k}[m]+\sum_{k^{\prime} \neq k} \rho_{k^{\prime}}[m] P_{k^{\prime}}^{d}[m] g_{k^{\prime}, k}[m] (4),其中\rho爲bool,表示k號V2V鏈路是否在m號RB上傳輸。m號V2I鏈路在m號子帶上的容量爲C_{m}^{c}[m]=W \log \left(1+\gamma_{m}^{c}[m]\right),k號V2V鏈路在m號子帶上的容量爲C_{k}^{d}[m]=W \log \left(1+\gamma_{k}^{d}[m]\right),其中W爲子帶頻譜的帶寬。

因爲V2I鏈路主要用於高數據率的娛樂服務,因此其設計目標是最大化總容量\sum_{m}C_m^c[m],V2V鏈路主要用於週期性的安全信息傳輸,將其速率建模爲在時間T內大小爲B的包的傳輸速率\operatorname{Pr}\left\{\sum_{t=1}^{T} \sum_{m=1}^{M} \rho_{k}[m] C_{k}^{d}[m, t] \geq B / \Delta_{T}\right\}, \quad k \in \mathcal{K} \label{(7)}  (7)。其中B表示V2V生成的週期性的消息的大小,\Delta _T爲信道相干時間,C中的t說明k號V2V鏈路在不同時隙是不同的。

本算法的目標爲:通過設計V2V的頻譜分配(以布爾量 \rho_k表示)和傳輸功率(以P_k^d表示),最大化V2I鏈路縱容量和V2V的傳輸速率(7)。

高移動性使中央控制器處無法收集完整的CSI,因此應使用分佈式V2V資源分配。如何協調他們使總體性能最佳是個問題。

資源分配的多代理強化學習

將每個V2V鏈路視作agent,多個agent同時與環境交互,並更新頻譜分配和功率控制策略。爲防止其相互競爭,對所有agent使用一個的獎勵從而使其爲網絡整體性能而演進。

學習採用集中式,學習時每個agent的獎勵爲系統級的,並通過DQN調整策略;實施採用分佈式,實施時每個agent只得到局部的環境信息,然後根據經過訓練的DQN在時間尺度上選擇與小尺度衰落同步的的動作。

狀態和觀察空間

問題可建模成一個MDP,如圖2所示。在每個時點t給一個環境值S,每個agent得到一個環境觀測值Z(由觀測函數O決定)並選擇一個行動A_t^{(k)},多個agent的行動共同組成\mathbf{A}_t。之後,agent將得到獎勵R,並且環境S發生變化(以概率p)。此時每個agent將得到新的觀測值Z。

環境值S內含所有的信道狀態和agent的動作,這對每個agent是隱藏的,agent只能通過觀測函數了解環境。觀測空間包含:當前agent的信道信息G_k[m]除V2V到BS的干擾增益以外的所有信道增益信息都可在V2V的接收端均可得到;V2V到BS的干擾增益將在BS得到並廣播到所有其覆蓋範圍內的車。m號子帶上的接收干擾I_k[m]由V2V接收器測量並加入其觀測空間。此外,局部觀測空間還包括剩餘的V2V負載B_k剩餘時延T_k。局部觀測空間表示爲:

其中G_{k}[m]=\left\{g_{k}[m], g_{k^{\prime}, k}[m], g_{k, B}[m], \hat{g}_{m, k}[m]\right\}

IQL(Indepent Q-learning)可用於解決多agent的RL問題但是很難收斂,將DQN與IQL結合後,情況會變得更糟。爲解決這個問題,我們使用基於指紋的方法。其思想爲,儘管單個agent的行動價值函數在其他agent經常變動狀態時很不穩定,但可以估計其他agent的行爲準則進而擴張每個agent的觀察空間,這也是超Q學習的基本思想。但是,這裏也不希望動作-打分函數包含其他其他agent的參數做輸入,因爲每個agent都包括一個高維的DQN。作爲代替,將一個低維的指紋特徵(這個特徵可以跟組其他代理商的策略變化)加入該函數,此方法有效是因爲動作-打分函數的不穩定是來自於其他agent的策略的變化而非策略本身。進一步的分析表明,每個agent的策略改變都與訓練迭代次數和探索率(比如隨機動作選擇的概率)高度相關.因此,我們將他們包含到agent的觀測空間中

動作空間

這裏的動作其實就是V2V鏈路的頻譜子帶選擇和功率控制,此處爲便於學習和控制,將功率控制設置爲四個級別(即離散量)[23,10,5,-100]dBm(這裏-100意味着V2V傳輸功率爲0)。因此動作空間尺寸爲4*M,每個動作對應頻譜的子帶和功率的一種特定組合。

獎勵設計

獎勵函數的靈活設計是解決優化難題的殺手鐗。我們在這裏的目標如上所述有兩個:在一定時間內,最大化V2I容量並增加V2V傳輸的可靠性。

首先看第一個目標,V2I鏈路的總容量的瞬時值爲\sum_{m\in \mathcal{M}}C_m^c[m, t];爲實現第二個目標,可通過V2V剩餘負載Bk是否大於0判斷信息是否成功交付。由此得到V2V鏈路在每個時間步t的獎勵

L_{k}(t)=\left\{\begin{array}{ll} \sum_{m=1}^{M} \rho_{k}[m] C_{k}^{d}[m, t], & \text { if } B_{k} \geq 0 \\ \beta, & \text { otherwise. } \end{array}\right.    (10)

其中的\beta表示成功交付後所獲得的獎勵,而上面的式子是沒成功交付的情況,這時的獎勵是V2V的傳輸速率。爲了給成功交付更大的獎勵應設置\beta大於最大的V2V傳輸速率。

學習的目標是找到一個優化準則\pi^*(即由狀態到動作的映射),最大程度提高回報期望G_t,他是單步獎勵的加權和,權重爲\gamma(稱爲折現率,0~1)得到:【此式也可稱爲 狀態-價值函數】

G_{t}=\sum_{k=0}^{\infty} \gamma^{k} R_{t+k+1}, \quad 0 \leq \gamma \leq 1 (11)

對於這裏的\gamma,如果其近1的話,那麼表示直到傳輸完成的所有獎勵和當前獎勵一視同仁,此時最大化累計獎勵的期望將會導致V2V鏈路傳遞更多數據。

此外,提高(10)中的\beta也可提高獎勵。但(10)的\beta是一個超參數,其代表了設計目標時對獎勵學習效率之間的權衡。如果只是想最大化獎勵,那麼可以設置\beta爲0,但是這將給學習造成麻煩,因爲此時agent無法在訓練的開頭獲得任何有用的知識。這裏我們可以在獎勵中引入一些先驗知識,比如V2V傳輸速率。獎勵函數如下所示:

R_{t+1}=\lambda_{c} \sum_{m} C_{m}^{c}[m, t]+\lambda_{d} \sum_{k} L_{k}(t)

其中的\lambda 是V2I和V2V指標成分的權重。

學習算法

情景設置如下:每個情景都經歷V2V的傳遞時間約束T,每個情景由一個隨機初始化的環境狀態(由所有車輛鏈路的初始傳輸功率、信道狀態決定)、一個完整的V2V負載組成,並持續到T結束。小尺度衰落的變化將導致環境狀態的轉變並引發學習的過程。

訓練過程

使用帶有經驗重播的DQL進行學習。動作-價值函數爲:在狀態s根據策略\pi採取動作a的過程:

其中G_t(狀態-價值函數)在(11)中有定義。最優策略將決定動作價值函數。[6]中證明了,在學習率的隨機近似條件不同且所有狀態動作函數都持續更新時,Q學習中學到的動作-價值函數以概率1收斂到最佳動作價值函數。在DQL中,動作價值函數通過DNN確定,稱作DQN。

每個V2V agent有一個DQN,其將當前觀測值Z做輸入並輸出所有動作的價值函數。訓練過程中,每個V2V通過soft策略(如\varepsilon貪婪算法,此算法以概率選擇可使價值最大化的動作)探索狀態-動作空間。根據環境的改變,每個agent收集轉換對並將其存儲在重播內存中。在每個情節中,都會從內存中均勻採樣一小批體驗並以隨機梯度下降的方法更新\theta,以最小化平方和誤差

其中\theta^-是目標Q網絡的參數,他週期性的從Q網絡的參數集\theta中複製過來並更新兩次。經驗重放將通過對存儲的體驗驚醒重複採樣來提高採樣效率,並在連續更新中打破相關性,從而穩定學習。訓練過程如算法1所示

分佈式實施

在每個時間步t,每個agent將估計其信道狀態並構造局部觀察Z,並且以最大化回報爲目的選擇執行動作A,此後,所有V2V鏈路以該動作中的功率和頻譜分配進行傳輸。

要注意,算法1中的訓練可以適用於許多場景中,也就是可以進行離線執行。僅當環境特徵發生重大變化時(可以設置一月/週一次),才需要對受訓的DQN進行更新。

仿真結果

本節根據3GPP TR36.885中定義的城市案例的參數定製了模型,該模型描述了車輛散步、密度、速度、移動方向等。M個V2I鏈路由M量車發起,並且每輛車於其附近的車形成K個V2V鏈路。表1中列出了仿真參數,表2中列出了V2V和V2I鏈路的參數。

每個agent的DQN包含三個全連接的隱藏層,分別有500 250 120個神經元。使用ReLU做激活函數,RMSProp做優化器,學習率爲0.001。對每個agent的Q網絡迭代3000次,探索率在開始的2400次迭代中使用線性退火從1到0.02,之後保持恆定。在這個過程中我們修復了迭代中的大尺度衰落從而使算法更穩定。訓練階段的V2V有效負載爲2*1060字節,但在測試階段對其進行改變以驗證算法的魯棒性。

如圖3和圖4所示,比較了MARL(多代理RL算法)、SARL(單代理RL算法,此算法一次只更新一個agent的行動)、隨機基線(每次V2V鏈路隨機選擇頻譜子帶和傳輸功率)還有兩個理論的性能上限進行了比較,這兩個上限分別爲:1.禁用所有V2V鏈路;2.忽略V2I鏈路的需求,此假設將時間約束T內通過多步傳輸B字節轉化成對V2V速率的分步優化。此時我們在所有agent的動作空間搜索最大化V2V速率的動作。此方法需要以集中式實施並提供全局CSI,因此命名爲maxV2V。後面兩種方法是爲了顯示所提出的方法可以一多大程度靠近理論性能極限。

圖三可見V2I的容量隨V2V負載變化的情況,V2I容量隨V2V負載增大而下降,這是因爲V2V載荷增多會導致V2V的傳輸時間更長、發射功率更大,由此將導致對V2I鏈路的干擾更強,進而影響其容量。即便如此,MARL方案仍然比其他兩個baseline具有更好的性能,雖然他使用2*1060進行訓練但當N增加時也便顯出很好的魯棒性。與性能上限相比,在6*1060時效果最糟。Centralized maxV2V的曲線很有趣,雖然他忽略V2I的需求,但是在此情況下V2I的容量性能還不錯,這可能是因爲集中式大大提高了V2V鏈路的數據傳輸速率,而一旦V2V傳輸完成,則其不會對V2I鏈路產生干擾。這個方案提醒我們可以進一步研究V2I和V2V鏈路之間的性能折中。

圖4可見V2V傳輸成功率和傳輸負載的關係。傳輸成功率會隨着負載增大而下降單max V2V始終爲1。MARL比max V2V稍微差點但是比其他兩個還是好得多。特別是在負載N爲1和2時,成功率爲100%;N爲3和4時,性能也接近完美。爲什麼MARL在N > 4時性能會下降呢?結合圖3的觀察結果猜測爲隨着負載的增大,DQN的學習效果不再適用,可能需要改變訓練集的N進行重新訓練。

圖5呈現了隨着迭代進行累計獎勵的變化情況,從這個圖可以看出本算法的收斂性。首先可以看到隨着訓練進行,累計獎勵數值不斷增加,當訓練到2000時,數值開始收斂(儘管因爲信道衰落仍存在一些波動)。因此我們評估圖1 2的性能是,將迭代次數設置成了3000。

爲探究爲什麼此算法可以達成很好的性能,我們選擇了使所有V2V鏈路都能成功交付2120字節的載荷的迭代結果,而隨機baseline允許失敗。在圖6中繪製了所有V2V鏈路在施加約束內剩餘V2V載荷的變化,在多代理強化學習(a圖)中,鏈路四很快的完成了傳輸而其他三個鏈路大致同時完成傳輸。在隨機baseline(b圖)中,鏈路1和4很早就完成了交付,但是鏈路3和4的傳輸情況就很不理想。

圖7顯示了在時間約束內V2V鏈路瞬時速率的變化,在多代理RL(a圖)中,鏈路4以很快的速率完成了傳輸,而鏈路1首先低速以確保其他鏈路的高速率,而觀察鏈路2 3可見,他們貌似在進行輪流傳輸,以便載荷可以快速傳遞。而隨機baseline(b圖)不能爲易被幹擾的鏈路提供保護,所以其傳輸失敗的可能性很高。

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章