李璐
(安徽工商職業(yè)學(xué)院 管理學(xué)院,安徽 合肥 231131)
移動群智感知技術(shù)是一種新型的大規(guī)模感知技術(shù),能從物聯(lián)網(wǎng)的移動設(shè)備收集的數(shù)據(jù)和信息[1-3]。移動群智感知具有廣泛的應(yīng)用領(lǐng)域,并且具有從智能設(shè)備收集和分析多媒體數(shù)據(jù)的潛力[4]。但是,傳輸和處理大量數(shù)據(jù)所帶來的開銷限制了移動群智感知的應(yīng)用[5]。邊緣計算能將計算任務(wù)從云服務(wù)器轉(zhuǎn)移到邊緣計算節(jié)點,以減輕移動群智感知中處理多媒體數(shù)據(jù)的壓力[6-7]。同時,邊緣計算節(jié)點通常更靠近移動設(shè)備,因此減少了傳輸大型多媒體數(shù)據(jù)時的網(wǎng)絡(luò)開銷[8]。因此,邊緣計算能解決移動群智感應(yīng)在應(yīng)用過程中出現(xiàn)的問題。本文提出了基于深度增強學(xué)習(xí)模型的任務(wù)調(diào)度方法,以適應(yīng)邊緣計算的結(jié)構(gòu)和拓撲。
通常,邊緣計算具有層次結(jié)構(gòu),包括云計算層、邊緣計算層和用戶設(shè)備層。在云計算層中,數(shù)據(jù)中心中的云服務(wù)器執(zhí)行每個服務(wù)的主要計算。在移動群智感知中,數(shù)據(jù)分析通常部署在云計算層中,感測到的數(shù)據(jù)集存儲在云服務(wù)器中。在邊緣計算層中,有許多類型的智能設(shè)備,例如智能手表、智能手機、個人計算機,這些設(shè)備將在移動群智感知場景中感知不同的數(shù)據(jù)。在傳統(tǒng)的計算結(jié)構(gòu)中,所有收集的數(shù)據(jù)將直接發(fā)送到云計算層進行進一步處理。在移動群智感知場景中,傳統(tǒng)云計算框架存在兩個問題:首先,將數(shù)據(jù)從邊緣網(wǎng)絡(luò)上載到核心云網(wǎng)絡(luò)會增加實時數(shù)據(jù)分析的延遲;其次是云服務(wù)器難以處理所有感測到的數(shù)據(jù),包括一些多媒體數(shù)據(jù)。
邊緣計算在云計算層和用戶設(shè)備層之間添加了一個邊緣計算層,以減輕云計算層的計算負擔,并預(yù)處理來自用戶設(shè)備層的感知數(shù)據(jù)。邊緣計算層中的邊緣計算節(jié)點通常部署在用戶設(shè)備和云服務(wù)器之間的傳輸路徑中,并且更靠近用戶層。例如,運營商可以將邊緣計算節(jié)點部署在無線接入網(wǎng)絡(luò)(RAN)中,以減少從RAN到核心網(wǎng)絡(luò)的流量。
在移動群智感知中,邊緣計算可以提高數(shù)據(jù)分析的效率并減少云層的流量。因此,可以在邊緣計算的任何層中執(zhí)行給定移動群智感知整個或者部分任務(wù)。
在任務(wù)調(diào)度模型中,我們使用集合U表示用戶集合,使用ui表示U中的用戶。每個用戶ui都有任務(wù)序列ti,j。我們定義變量Xi,j來表示任務(wù)是否完成:當li,j≤Li時,Xi,j=1;否則,Xi,j=0。其中,li,j是任務(wù)ti,j的實際完成時間(TTC),Li是任務(wù)所需的完成時間。
(1)服務(wù)質(zhì)量的計算
如果邊緣計算系統(tǒng)可以在所需的TTC之前完成任務(wù),則任務(wù)已完成。每個用戶有很多任務(wù),很難用有限的資源來完成調(diào)度中的所有任務(wù)。因此,對于用戶ui,我們使用服務(wù)實現(xiàn)率Qi表示服務(wù)質(zhì)量(QoS),即
(1)
其中,Ni是用戶ui已經(jīng)完成的任務(wù)數(shù)量。
(2)任務(wù)完成時間的計算
對于給定的邊緣計算系統(tǒng),我們使用集合F表示邊緣節(jié)點集合,使用fm表示集合F中的節(jié)點。任務(wù)ti,j的TTC計算方式為:
(2)
(3)帶寬和時延的計算
(4)獎勵模型
(3)
因此,我們使用強化學(xué)習(xí)來最大化邊緣計算系統(tǒng)的總回報。令rn表示邊緣計算系統(tǒng)的單步獎勵,令Rn表示總未來折扣獎勵,即
(4)
其中N是邊緣計算系統(tǒng)的目標執(zhí)行時間,而γ是折扣因子。在典型的MDP公式中,折現(xiàn)因子γ通常小于1,以使獎勵Rn收斂。
在移動群智感知中,每條用戶數(shù)據(jù)、上傳流量和云資源都可以合理地定價。因此,我們設(shè)計了在時隙n的所有帶寬和計算成本的獎勵rn為
(5)
其中,α、β和η分別是用戶數(shù)據(jù)、上傳流量和邊緣計算處理的單價。邊緣計算中的移動群智感知任務(wù)調(diào)度問題:給定一組邊緣計算節(jié)點和一組用戶,任務(wù)調(diào)度的目標是嘗試將邊緣計算節(jié)點分配給用戶提交的每個任務(wù)的步驟,并以最小的計算和帶寬成本來保證每個用戶的QoS。
在任務(wù)調(diào)度中,調(diào)度器首先收集所有邊緣計算節(jié)點和任務(wù)請求的狀態(tài)信息,然后生成多個調(diào)度決策。對于每個決策,調(diào)度器都會將狀態(tài)位圖作為神經(jīng)網(wǎng)絡(luò)的輸入。神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)并推斷出輸入調(diào)度決策的值。任務(wù)調(diào)度器選擇并向邊緣節(jié)點管理器發(fā)送具有最大獎勵值的決策。節(jié)點管理器在任務(wù)請求的決策中分配節(jié)點,移動設(shè)備將數(shù)據(jù)上傳到分配的邊緣節(jié)點。
最佳調(diào)度是一個確定的固定策略(用π表示)。決策集合π由一系列函數(shù){A1,…,AN}。調(diào)度的目的是找到最大總折現(xiàn)獎勵的最佳集合π*。當采用策略π進行調(diào)度時,時隙n的動作為An=π(Xn)。因此,該決策的回報為rn=r(Xn,π(Xn))。
根據(jù)增強學(xué)習(xí)模型,最優(yōu)Q函數(shù)的定義如下所示
(6)
傳統(tǒng)的強化學(xué)習(xí)將使用Bellman方程迭代地計算Q*函數(shù),然而,由于不存在用不同的π分別估計Q函數(shù)的通用方法,因此無法使用迭代計算Q函數(shù)。在此,我們需要一個函數(shù)逼近器來估計Q*。
傳統(tǒng)的強化學(xué)習(xí)通常采用線性函數(shù)逼近器,而在深度強化學(xué)習(xí)中,逼近器是具有深度神經(jīng)網(wǎng)絡(luò)的非線性函數(shù)。在我們的解決方案中,我們使用Q網(wǎng)絡(luò)以找到函數(shù)逼近器。損失函數(shù)Li(θi)的定義為
Li(θi)=Eρ(Xn,An[(Yi-Q(Xn,An;θ))2]
(7)
其中,Yi=EXn+1[rn+γQ(Xn+1,An+1;θi-1)]|Xn,An]
(8)
Yi是第i次迭代的目標,而ρ(X,A)是序列X和動作A上的行為分布。我們使用隨機梯度下降來優(yōu)化式(7),以簡化計算過程。我們應(yīng)用ε貪婪策略來探索ρ(X,A),即以概率1-ε選擇使Q函數(shù)值最大的動作A,以概率ε隨機選擇動作。
在移動群智感知的深度強化調(diào)度算法中,首先初始化回放緩沖區(qū)R以存儲用于小批量采樣的轉(zhuǎn)換(即經(jīng)驗回放)。緩沖器R用于在學(xué)習(xí)深度強化學(xué)習(xí)模型期間存儲先前的經(jīng)驗。由于即時轉(zhuǎn)換的差異較小,因此有必要利用過去的經(jīng)驗來使強化學(xué)習(xí)模型快速收斂。
我們設(shè)計了一種位圖結(jié)構(gòu)來描述邊緣計算節(jié)點調(diào)度,以作為CNN網(wǎng)絡(luò)的輸入。在邊緣計算環(huán)境中,盡管用戶和邊緣計算節(jié)點之間的距離會隨著用戶的移動而變化,但是邊緣計算節(jié)點之間的連接通常是穩(wěn)定的。因此,我們假設(shè)maxLi≤|F|,并設(shè)計一個大小為|F|×|F|的矩陣作為CNN神經(jīng)網(wǎng)絡(luò)的輸入。在計算節(jié)點的分配中,同一任務(wù)的步驟將分配到相同的邊緣計算節(jié)點或相鄰的計算節(jié)點。
在實驗中,我們在服務(wù)器上采用Python及其networkx函數(shù)庫搭建了一個網(wǎng)絡(luò)模擬器。服務(wù)器配置有英特爾i7-6700 3.6GHz處理器,16 GB的內(nèi)存,2TB的硬盤容量,NVIDIA GeForce GTX 2080的顯卡。操作系統(tǒng)為Ubuntu 16.04,深度學(xué)習(xí)平臺為Keras。我們使用從CRAWDAD獲得的MIT Reality數(shù)據(jù)集來進行性能評估。該數(shù)據(jù)記錄了100個用戶節(jié)點在麻省理工學(xué)院內(nèi)移動的數(shù)據(jù)。我們選擇該學(xué)院內(nèi)的10個位置作為邊緣計算節(jié)點的位置,節(jié)點數(shù)量為10到50,而相同位置的計算節(jié)點數(shù)量設(shè)置為1到5。用戶設(shè)備與邊緣計算節(jié)點之間的帶寬分配為[10,25] Mbps。邊緣計算節(jié)點之間的帶寬設(shè)置為10Gbps,邊緣計算節(jié)點和云服務(wù)器之間的帶寬設(shè)置為1Gbps。我們考察使用移動群智感知應(yīng)用進行數(shù)據(jù)上傳的場景,每個任務(wù)所上傳的數(shù)據(jù)量服從[1MB,10MB]的均勻分布,每個任務(wù)的輸出數(shù)據(jù)的大小設(shè)置為1KB。每個用戶隨機地請求這些上傳任務(wù)。所需的TTC設(shè)置為1到5秒,接近平均頁面加載時間。一個時隙的長度設(shè)置為100 ms,每個任務(wù)分為三個步驟,每個步驟的TTC分布為[100,300] ms。我們使用Keras來構(gòu)造神經(jīng)網(wǎng)絡(luò),并使用RMSProp優(yōu)化算法來進行梯度下降。神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)如圖2所示,神經(jīng)網(wǎng)絡(luò)的訓(xùn)練次數(shù)為10萬次。我們將所有輸入的數(shù)據(jù)存放在重放存儲器中。神經(jīng)網(wǎng)絡(luò)的輸入是當前網(wǎng)絡(luò)的狀態(tài),例如圖2中的輸入I1是指分配了動作A1后網(wǎng)絡(luò)的狀態(tài)。然后經(jīng)過兩個卷積層和一個全連接層就能計算出相應(yīng)的Q值。我們應(yīng)用ε貪婪策略,即以概率1-ε選擇使Q函數(shù)值最大的動作A,以概率ε隨機選擇動作。
我們將本文提出的DFS與現(xiàn)有的先入先出(FIFO)和DeepRM調(diào)度策略進行比較。我們探討在不同的請求時間間隔μ、不同數(shù)量的邊緣計算節(jié)點三種方法的獎勵,結(jié)果如圖3所示。兩個請求之間的時間間隔服從均勻分布,μ表示均勻分布的期望。由結(jié)果可知,與另外兩種方法相比,本文提出的DFS能獲得更高的獎勵。增加邊緣計算節(jié)點的數(shù)量可以提高FIFO的性能。由于FIFO在聯(lián)機調(diào)度中為任務(wù)分配了盡可能多的邊緣計算節(jié)點,因此當可用邊緣計算節(jié)點不足時,性能將迅速下降。由于強化調(diào)度可以在訓(xùn)練后了解未來分配的最佳決策,因此DFS和DeepRM的性能較好。另外,任務(wù)請求的頻率明顯影響調(diào)度的性能。任務(wù)之間的間隔越長,獎勵就越減少,因為任務(wù)的總量減少了。隨著任務(wù)間隔增加,DFS獲得的獎勵要高于DeepRM的獎勵。DFS將深度學(xué)習(xí)的感知能力和強化學(xué)習(xí)的決策能力相結(jié)合,能夠感知網(wǎng)絡(luò)系統(tǒng)的動態(tài)變化。通過不斷地觀察網(wǎng)絡(luò)狀態(tài)并以迭代的方式不斷地學(xué)習(xí)最優(yōu)的策略,DFS綜合考慮了用戶上傳流量、網(wǎng)絡(luò)的帶寬資源以及邊緣計算處理的成本,因此能夠獲得更好的實時性能。
面向移動群智感知中的任務(wù)調(diào)度問題,結(jié)合邊緣計算技術(shù),提出了一個基于深度學(xué)習(xí)模型的層次化任務(wù)調(diào)度方法,以實現(xiàn)高效的任務(wù)調(diào)度和資源分配。采用真實數(shù)據(jù)集進行仿真實驗,實驗結(jié)果驗證了該方法的有效性。該結(jié)果同時也表明,深度強化學(xué)習(xí)具備強大的自學(xué)習(xí)能力,并且適用于諸如網(wǎng)絡(luò)系統(tǒng)的動態(tài)環(huán)境。