国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

一種基于多智能體的分布式深度神經(jīng)網(wǎng)絡算法

2022-01-09 05:19沈蘇彬
計算機技術與發(fā)展 2021年12期
關鍵詞:分支卷積邊緣

王 闖,沈蘇彬

(1.南京郵電大學 物聯(lián)網(wǎng)學院,江蘇 南京 210003;2.南京郵電大學 通信與信息工程學院,江蘇 南京 210003)

0 引 言

隨著物聯(lián)網(wǎng)設備的增多,由傳感器,嵌入式設備產生的結構化、非結構化或者半結構化的數(shù)據(jù)日益增多。這些具有高容量(Volume),高速度(Velocity)和多類型(Variety)的“3V”特點的數(shù)據(jù)可以稱之為大數(shù)據(jù)[1]。處理這些數(shù)據(jù)以及如何從這些數(shù)據(jù)中挖掘出有價值的知識使物聯(lián)網(wǎng)能夠智能化地提供服務和可靠的決策已經(jīng)成為急需解決的問題與挑戰(zhàn)[2]。鑒于深度神經(jīng)網(wǎng)絡具有高效的數(shù)據(jù)特征提取與分析能力,現(xiàn)已被廣泛應用在智能家居等物聯(lián)網(wǎng)應用中[3-4]。

目前大多數(shù)物聯(lián)網(wǎng)設備的計算能力有限,通常將傳感器采集到的數(shù)據(jù)傳輸?shù)皆朴嬎阒行倪M行分析處理。物聯(lián)網(wǎng)應用通常需要基于數(shù)據(jù)提供實時服務,并且通常依賴于低存儲和計算能力有限的設備,以及帶寬有限的網(wǎng)絡連接,因此,需要將數(shù)據(jù)計算從云計算中心轉移到物聯(lián)網(wǎng)邊緣設備,實現(xiàn)近傳感器計算和近傳感器智能,在資源受限的嵌入式設備中運行機器學習甚至深度學習程序[5]。由于嵌入式設備資源受限,部署深度神經(jīng)網(wǎng)絡應用通常會面臨以下三個主要問題:(1)嵌入式設備的計算能力有限,無法滿足終端設備的實時性要求;(2)嵌入式設備的存儲空間較小,不能提供足夠的存儲空間來存儲程序運行所需的數(shù)據(jù);(3)運行深度神經(jīng)網(wǎng)絡過程中由于需要大量的數(shù)值計算與頻繁的數(shù)據(jù)讀取,高額的能耗會大幅減少設備的工作時長。因此一般采用特征剪枝和權重量化等方式對模型進行壓縮[6],在嵌入式設備上使用壓縮后的深度學習網(wǎng)絡模型,但是會造成系統(tǒng)準確率下降;而把傳感器數(shù)據(jù)輸入到云端的大型深度神經(jīng)網(wǎng)絡中,還需要解決通信延遲和隱私方面的問題。

文中將神經(jīng)網(wǎng)絡進行劃分,淺層部分部署到物聯(lián)網(wǎng)邊緣設備上構成邊緣智能體,深層部分部署到云服務器上構成云端智能體。邊緣與云端智能體構成系統(tǒng)合作的多智能體系統(tǒng),在保證分類推理準確率的前提下,使用邊緣設備承擔深度神經(jīng)網(wǎng)絡的淺層部分推理,減少數(shù)據(jù)傳輸帶來的延遲和保護用戶隱私。

1 相關工作

1.1 邊緣計算

邊緣計算是與云計算相對的一種計算模型或服務。云計算強調依托服務器豐富的計算資源將數(shù)據(jù)進行集中式處理,而邊緣計算是將物聯(lián)網(wǎng)嵌入式設備生成的數(shù)據(jù)在物聯(lián)網(wǎng)中進行本地處理。

作為緩解資源擁塞升級的策略,邊緣計算已成為滿足物聯(lián)網(wǎng)和本地化計算需求的技術熱點[7],將計算壓力從集中式數(shù)據(jù)中心卸載到分布在網(wǎng)絡上的許多計算節(jié)點,可以減少數(shù)據(jù)傳輸帶來的延遲[8]。邊緣計算模型不僅可降低數(shù)據(jù)所需的網(wǎng)絡帶寬,同時能較好地保護隱私數(shù)據(jù),降低終端敏感數(shù)據(jù)隱私泄露的風險[9]。

1.2 深度神經(jīng)網(wǎng)絡

深度神經(jīng)網(wǎng)絡成功的原因之一是它們能夠在連續(xù)的非線性層上學習更高級別的特征表示。隨著硬件技術和機器學習方法的進步,可以培養(yǎng)更深層次的網(wǎng)絡,這些網(wǎng)絡進一步提高了機器分類的性能[10]。ImageNet的挑戰(zhàn)可以說明神經(jīng)網(wǎng)絡層數(shù)的發(fā)展趨勢,因為最先進的方法已經(jīng)從8層(AlexNet)發(fā)展到19層(VGGNet),并且在四年的時間內推進到152層(ResNet)[11-12]。然而,向更深層網(wǎng)絡的發(fā)展極大地增加了前饋推理所需的時延和計算資源[13]。

使用深度神經(jīng)網(wǎng)絡處理復雜任務時,通常需要構建層數(shù)較深的網(wǎng)絡模型來增強模型對數(shù)據(jù)特征的提取能力。雖然增加深度神經(jīng)網(wǎng)絡的網(wǎng)絡層數(shù)可以在一定程度上提高網(wǎng)絡模型處理數(shù)據(jù)的能力,但也會導致深度神經(jīng)網(wǎng)絡的計算量與參數(shù)數(shù)量急劇增加,由此導致應用深度神經(jīng)網(wǎng)絡的物聯(lián)網(wǎng)設備需要配置強大的計算能力和巨大的存儲空間。

1.3 物聯(lián)網(wǎng)多智能體

多智能體系統(tǒng)是多個智能體組成的集合,它的目標是將大而復雜的系統(tǒng)建設成小的、彼此互相通信和協(xié)調的、易于管理的系統(tǒng)。智能體通常分為完全合作式、完全競爭式、混合關系式三種類型[14]。

在智能物聯(lián)網(wǎng)環(huán)境下,每個設備可視為一個智能體,智能體在單獨行動的同時,也要學會與其他的智能體進行交互協(xié)作,提高物聯(lián)網(wǎng)提供智能化服務的能力。

2 分布式深度神經(jīng)網(wǎng)絡

深度神經(jīng)網(wǎng)絡由網(wǎng)絡層組成,因此可以在邊緣設備上部署經(jīng)過壓縮優(yōu)化的淺層神經(jīng)網(wǎng)絡,在云服務器設備上部署深層神經(jīng)網(wǎng)絡,以此構建一個如圖1所示的混合云端與終端的基于分布式計算層級的分布式深度神經(jīng)網(wǎng)絡。物聯(lián)網(wǎng)邊緣設備和云服務器組成一個合作式的多智能體系統(tǒng)。分布式深度神經(jīng)網(wǎng)絡是具有中間分支結構的神經(jīng)網(wǎng)絡。通常情況下,在深度神經(jīng)網(wǎng)絡的早期階段學習的特征可以正確地推斷出數(shù)據(jù)總體的大部分,因此在主網(wǎng)絡上設置分支讓分類準確的數(shù)據(jù)提前退出可以減少時延和計算資源。分布式深度神經(jīng)網(wǎng)絡通過中間分支劃分為淺層和深層兩個部分。

圖1 層級的分布式深度神經(jīng)網(wǎng)絡

在數(shù)據(jù)分類中,希望分類模型在訓練數(shù)據(jù)上學到的預測數(shù)據(jù)分布與真實數(shù)據(jù)分布越相近越好,如果退出點的分類結果信息熵越小,則說明該分支的退出點的分類器對于正確標記該測試樣本的預測結果置信度越高。合作式多智能體整體通常需要最大化全局的期望回報,在分支點設置信息熵閾值來評估分支點的分類效果。當分支點的分類信息熵小于閾值時,深度神經(jīng)網(wǎng)絡的推理執(zhí)行可以在本地終端上完成分類并退出,進行快速的局部推斷;當大于所設定的閾值,需要進一步進行額外處理時,中間數(shù)據(jù)可以傳輸至云服務器端,進一步利用云端的深層深度神經(jīng)網(wǎng)絡進行處理,以提高系統(tǒng)的表現(xiàn)精度。

將一個在終端設備上的小型神經(jīng)網(wǎng)絡模型(更少的參數(shù))和一個在云上的大型神經(jīng)網(wǎng)絡模型(更多的參數(shù))組合起來。終端設備上的小型神經(jīng)網(wǎng)絡模型可以快速地初始化數(shù)據(jù)提取,并分析出這個模型是否是滿足要求的。另外,終端設備還可以通過云端的大型神經(jīng)網(wǎng)絡模型執(zhí)行進一步的程序并完成最終的分類。神經(jīng)網(wǎng)絡的中間層輸出可以設計為比傳感器輸入小得多(例如,來自攝像機的原始圖像),因此可以減少終端設備和云端之間所需的網(wǎng)絡通信。此外,由于使用了從終端設備處理數(shù)據(jù)的方法代替原始傳輸數(shù)據(jù)的方法,該系統(tǒng)可以更好地保護個人隱私。

3 多智能體協(xié)同的深度神經(jīng)網(wǎng)絡

(1)

(2)

3.1 適合于多智能體的深度神經(jīng)網(wǎng)絡

通過解決與出口點相關聯(lián)的損失函數(shù)的加權和的聯(lián)合優(yōu)化問題來訓練具有分支結構的神經(jīng)網(wǎng)絡。一旦網(wǎng)絡被訓練,模型利用分支出口允許樣本提前退出,從而降低推理成本。在每個分支出口,使用分類結果的信息熵作為分類的置信度的度量。如果測試樣本的熵低于學習閾值,意味著分類器在預測中是有效的,則樣本在該出口點處以預測結果離開網(wǎng)絡,并且不由較高網(wǎng)絡層處理。如果熵值高于閾值,則該出口點處的分類器被認為是不可靠的,并且樣本繼續(xù)到網(wǎng)絡中的下一個出口點。如果樣本到達最后一個出口點,這是主神經(jīng)網(wǎng)絡的最后一層,它總是執(zhí)行分類。

通過在整個網(wǎng)絡的某些位置添加退出分支(簡稱分支)來修改標準深度網(wǎng)絡結構。這些早期退出分支允許在網(wǎng)絡的早期階段準確分類的樣本提前退出,對于淺層網(wǎng)絡不能準確分類的數(shù)據(jù)則需要更深層的網(wǎng)絡進行分類。

對于分類任務,通常使用交叉熵損失函數(shù)作為目標函數(shù)。交叉熵是香農信息論中的一個重要概念,主要用于度量兩個概率分布間的差異性信息,也就是交叉熵的值越小,兩個概率分布越接近。在分支網(wǎng)絡訓練過程中,先通過 SoftMax 函數(shù)對網(wǎng)絡層的輸出值進行歸一化處理,再對其歸一化處理后的值進行計算得到交叉熵值,作為神經(jīng)網(wǎng)絡的損失函數(shù)。

將損失函數(shù)用公式進行如下表達:

(3)

(4)

網(wǎng)絡層輸出z表達為:

z=fexitn(x;θ)

(5)

對于分支網(wǎng)絡模型,采用集中式學習、分布式部署執(zhí)行的策略,集中式的學習方法用來處理環(huán)境不穩(wěn)定性問題以及考慮多智能體的聯(lián)合動作效應,需要各個退出點的損失函數(shù)值乘以其權重來進行聯(lián)合優(yōu)化。將ωn定義為每個分支模型的權重,N為所有退出點的數(shù)量,因此其最終損失函數(shù)表達式為:

(6)

該算法在前饋過程中,訓練數(shù)據(jù)集通過網(wǎng)絡,包括主支路和支路,記錄神經(jīng)網(wǎng)絡在所有出口點的輸出,并計算出神經(jīng)網(wǎng)絡的誤差。在反向傳播中,誤差通過網(wǎng)絡傳遞回來,并使用梯度下降更新權重。使用隨機梯度下降算法Adam進行模型訓練。

當測試樣本在訓練好的分支網(wǎng)絡模型上進行測試時,最終會經(jīng)過網(wǎng)絡層的計算,在退出點產生一個輸出結果z,使用SoftMax函數(shù)對其輸出進行歸一化,生成一個0~1之間的所有類概率集,其中每個類標簽的預測概率定義為ys,所有可能的類標簽集合定義為S,則將該退出點的樣本輸出信息熵定義為:

(7)

3.2 邊緣與云端智能體的任務分割與協(xié)同

卷積神經(jīng)網(wǎng)絡的基本結構由輸入層、卷積層、池化層、全連接層及輸出層構成。卷積層由多個特征面組成,每個特征面由多個神經(jīng)元組成,它的每一個神經(jīng)元通過卷積核與上一層特征面的局部區(qū)域相連,卷積核是一個權值矩陣。深度神經(jīng)網(wǎng)絡的卷積層通過卷積操作提取輸入的不同特征,第l層卷積層提取低級特征如邊緣、線條、角落,更高層的卷積層提取更高級的特征。

池化層緊跟在卷積層之后,同樣由多個特征面組成,它的每一個特征面唯一對應于其上一層的一個特征面,不會改變特征面的個數(shù)。池化層是神經(jīng)網(wǎng)絡的重要組成部分,通過減少卷積層之間的連接,降低運算復雜程度,同時改善結果,使結構不容易出現(xiàn)過擬合。

在神經(jīng)網(wǎng)絡結構中,經(jīng)多個卷積層和池化層后,連接著一個或多個的全連接層。全連接層中的每個神經(jīng)元與其前一層的所有神經(jīng)元進行全連接。全連接層可以整合卷積層或者池化層中具有類別區(qū)分性的局部信息。為了提升神經(jīng)網(wǎng)絡的性能,全連接層每個神經(jīng)元的激勵函數(shù)一般采用ReLU函數(shù)。最后一層全連接層的輸出值被傳遞給一個輸出層,可以采用SoftMax邏輯回歸進行分類。

圖2中在層級粒度上顯示了Alex Net運行時的情況。根據(jù)每個層在網(wǎng)絡中的類型和位置,每一層的運行時間和輸出數(shù)據(jù)大小也有所不同。卷積層和池化層的延遲相對較小,而全連接層的延遲較高。卷積層和池化層主要位于網(wǎng)絡的前端,而完全連接層則位于后端,原始數(shù)據(jù)經(jīng)過卷積層和池化層到達后端遠遠小于原始數(shù)據(jù)。將卷積神經(jīng)網(wǎng)絡分區(qū)執(zhí)行,在邊緣設備中執(zhí)行神經(jīng)網(wǎng)絡的淺層部分,其余部分在具有更多計算資源的云服務器執(zhí)行。

圖2 Alex Net各層運行時延與輸出

多智能體系統(tǒng)是一組自主的,相互作用的實體,它們共享一個共同的環(huán)境,利用傳感器感知,并利用執(zhí)行器作動。多智能體系統(tǒng)提供了分布式數(shù)據(jù)處理的視角,在智能家居數(shù)據(jù)分類中為了提高識別的響應速度以及節(jié)省網(wǎng)絡帶寬,分類任務會優(yōu)先在本地邊緣設備的模型上進行,僅當本地識別結果的置信度不滿足置信度閾值時,才考慮是否請求到云服務器進行計算。當訓練好任務需求的分支網(wǎng)絡時,同時為分支網(wǎng)絡中的不同神經(jīng)網(wǎng)絡層的時延和輸出數(shù)據(jù)量大小訓練回歸模型,以此估算神經(jīng)網(wǎng)絡層在邊緣設備上和云服務器上的運行時延;回歸模型將被用于尋找出符合任務時延需求的退出點以及模型切分點。

深度神經(jīng)網(wǎng)絡的最佳劃分點取決于其拓撲結構,它體現(xiàn)在每一層的計算延時和輸出數(shù)據(jù)大小的變化上,此外網(wǎng)絡帶寬不同導致數(shù)據(jù)從邊緣段傳輸?shù)皆贫藭r的傳輸時延不同。在特定網(wǎng)絡帶寬B下,該神經(jīng)網(wǎng)絡模型有N個分割點,ETi為第i層在邊緣設備上的運行時間,CTi為第i層在云服務器上的運行時間,Oi為第i層輸出計算邊緣設備和云服務器的總運行時間。

(8)

在神經(jīng)網(wǎng)絡模型運行時,遍歷計算不同分割點的運行總時間,以min(Ti)為邊緣端智能體與云端智能體的協(xié)同合作策略,將深度神經(jīng)網(wǎng)絡劃分部署。

4 實 驗

4.1 實驗裝置

實驗使用Raspberry Pi 3b模擬智能家居邊緣設備,具有1 GB運行內存,運行debian 9操作系統(tǒng)。使用個人計算機模擬云服務器,該計算機具有CPU I7-8750、GPU GTX-1060Ti以及16 GB內存運行Ubuntu 18操作系統(tǒng)。

Chainer是一個專門為高效研究和開發(fā)深度學習算法而設計的開源框架。目前大多數(shù)深度學習框架都是基于Define-and-Run的方案,而Chainer采用Define-by-Run的方案,神經(jīng)網(wǎng)絡定義在運行時即時定義,允許網(wǎng)絡動態(tài)更改,可以更加靈活地構建神經(jīng)網(wǎng)絡[15]。實驗使用分布式深度學習開源框架Chainer來構建具有分支的卷積神經(jīng)網(wǎng)絡。

4.2 實驗數(shù)據(jù)集

用于測試分支神經(jīng)網(wǎng)絡分類效果的數(shù)據(jù)集為開源數(shù)據(jù)集,CIFAR-10數(shù)據(jù)集。CIFAR-10數(shù)據(jù)集被劃分成了5個用于訓練的數(shù)據(jù)子集和1個用于測試的數(shù)據(jù)子集,每個子集均包含10 000張圖片。測試集的圖片是從每個類別中隨機挑選的1 000張圖片組成的,訓練集則以隨機的順序將剩下的50 000張圖片進行分組。不過一些訓練集可能出現(xiàn)包含某一類圖片比其他類的圖片數(shù)量多的情況。訓練集包含來自每一類的5 000張圖片,一共50 000張訓練圖片。官方給出了多個CIFAR-10數(shù)據(jù)集的版本,文中測試實驗使用CIFAR-10 python版本。

4.3 實驗結果與分析

根據(jù)神經(jīng)網(wǎng)絡每層的運行時延,輸出數(shù)據(jù)大小以及實際的網(wǎng)絡帶寬在訓練好的分支神經(jīng)網(wǎng)絡模型上得出最佳分割點,將網(wǎng)絡模型劃分部署在Raspberry Pi 3b和個人計算機上。對比直接部署在計算機上的神經(jīng)網(wǎng)絡模型,所需時延以及準確率如圖3所示。

圖3 分區(qū)AlexNet網(wǎng)絡和AlexNet運行時延

當數(shù)據(jù)在Raspberry Pi 3b中滿足提前推出點要求時,模型推理結束減少運行時延。在相同準確度要求的情況下,具有分支退出點的深度神經(jīng)網(wǎng)絡相比較于原神經(jīng)網(wǎng)絡模型所需的推理時間顯著減小,提高了智能家居用戶圖像數(shù)據(jù)的處理效率,并且不需要將用戶的原始圖像數(shù)據(jù)傳輸?shù)皆贫?,保障了用戶的隱私安全。

對于具有多個分支出口點的AlexNet網(wǎng)絡,在不同帶寬的情況下,劃分點變化如圖4所示。

圖4 最佳退出點劃分點

可以看到,隨著帶寬的增加,最佳出口點會變得更低。在擁有足夠帶寬的情況下,神經(jīng)網(wǎng)絡模型的更多部分將會被劃分到云服務器中運行。此外在帶寬良好的情況下,由于邊緣部分只執(zhí)行少量的推理,大部分數(shù)據(jù)不會在邊緣退出,會在云服務器中執(zhí)行進一步推理。在沒有足夠帶寬的情況下,最佳出口點會變得更高,神經(jīng)網(wǎng)絡模型的更多部分將會被劃分到邊緣設備中執(zhí)行,由于邊緣部分的神經(jīng)層數(shù)增加了推理結果的準確性,大部分數(shù)據(jù)會在邊緣結束推理,少部分需要在云服務器中進一步執(zhí)行。

5 結束語

物聯(lián)網(wǎng)的數(shù)據(jù)日益增加,使用深度神經(jīng)網(wǎng)絡等數(shù)據(jù)挖掘技術可以提取物聯(lián)網(wǎng)數(shù)據(jù)中的潛在知識或模式,使物聯(lián)網(wǎng)能夠提供智能化的服務。受到網(wǎng)絡帶寬有限的影響,以云計算為中心的數(shù)據(jù)處理方法不能滿足物聯(lián)網(wǎng)實時性提供服務的要求,并且將用戶數(shù)據(jù)傳輸?shù)皆朴嬎阒行脑黾恿擞脩綦[私泄露的風險。

文中使用邊緣計算進行數(shù)據(jù)處理,降低云計算中心的計算負載,減緩網(wǎng)絡帶寬的壓力;針對用于對圖像分類處理的卷積神經(jīng)網(wǎng)絡,利用添加提前退出分支使神經(jīng)網(wǎng)絡在邊緣設備對數(shù)據(jù)進行處理;搭建了具有分支結構的卷積神經(jīng)網(wǎng)絡進行仿真實現(xiàn),驗證了所提方案的有效性。邊緣計算并非旨在完全取代集中式的基于云計算的基礎架構,而是對現(xiàn)有云計算平臺的有效補充。隨著5G通信等相關技術的應用,高效的邊緣協(xié)同數(shù)據(jù)處理值得進一步的研究和改進。

猜你喜歡
分支卷積邊緣
基于全卷積神經(jīng)網(wǎng)絡的豬背膘厚快速準確測定
基于FPGA的卷積神經(jīng)網(wǎng)絡加速優(yōu)化方法
基于圖像處理與卷積神經(jīng)網(wǎng)絡的零件識別
一類離散時間反饋控制系統(tǒng)Hopf分支研究
基于深度卷積網(wǎng)絡與空洞卷積融合的人群計數(shù)
用“分散數(shù)論”對“哥德巴赫猜想”的初等證明
含有二階冪零鞍點的雙同宿環(huán)附近的極限環(huán)分支
一張圖看懂邊緣計算
碩果累累
在邊緣尋找自我