分佈式深度神經網絡(DDNN)

本文出自論文 Distributed Deep Neural Networks over the Cloud,the Edge and End Devices
,是一種分佈式的深度神經網絡,可以在本地終端設備、邊緣和雲端進行網絡推理。

一、簡介

分佈式深度神經網絡不僅能夠允許在雲端進行深度神經網絡的推理,還允許在邊緣和終端設備上使用神經網絡的淺層部分進行快速、本地化推理。在可伸縮的分佈式計算層次結構的支持下,DDNN可以在神經網絡規模上進行擴展和在地理範圍上擴展。由於分佈式的性質,DDNNs增強了傳感器融合、系統容錯性和數據隱私性。在實現DDNN時,我們將DNN部分映射到分佈式計算層次結構下。通過聯合訓練這些部分,我們最小化設備的通信和資源使用量,最大化利用雲計算中提取的特性。DDNN可以利用傳感器的地理多樣性來提高目標識別的準確性和降低通信成本。在實驗中,與傳統的將原始傳感器數據在雲中進行處理的方法相比,DDNN局部處理終端設備上的大部分傳感器數據,同時獲得了較高的精度。

二、提出原因

  1. 目前機器學習系統在終端設備上的狀態有着不太令人滿意的選擇:
    (1)將輸入傳感器中的數據卸載到雲端的大型神經網絡模型中,並承擔着相應的通信成本、延遲問題和隱私問題;
    (2)使用簡單的機器學習模型,如SVM,直接在終端設備上進行分類,會導致系統的精確度下降。因此,使用由雲端、邊緣和設備組成的分層分佈式計算結構,對於基於地理分佈式物理網設備的大規模智能任務,具有很多內在優勢,例如:支持協調中心和本地決策、提供系統可擴展性。
  2. 這種分佈式方法的一個例子是將終端設備的小型神經網絡模型(參數數量較少)和雲端中較大的神經網絡模型(參數數量較多)進行結合。終端設備上的小型模型可以快速地進行初始特徵提取,在模型可信的情況下還可以進行分類任務。然後,終端設備處理後的數據會傳遞到雲端的大型網絡模型中,進行下一步的特徵處理和最終分類。這種方法與傳統的神經網絡模型相比,具有通信成本低、精確度高的優點。另外,傳遞到雲端的數據已經被終端設備所處理過,不是原始的傳感器數據,因此係統可以提供更好的隱私保護。
  3. 這種基於計算層次結構的分佈式方法也具有挑戰性:
    (1)像嵌入式傳感器節點這樣的終端設備通常內存和電池預算有限,在滿足所需精度和能量約束的設備上安裝網絡模型較爲困難;
    (2)在計算節點之間傳輸中間結果時,在計算層次上直接劃分神經網絡模型可能會產生很大的通信成本;
    (3)當使用不同終端設備上的多個傳感器輸入時,需要將它們聚合在一起才能實現單個分類目標,一個好的神經網絡結構將能夠支持這樣的傳感器融合;
    (4)在雲端、邊緣和設備上的多個模型需要聯合學習,以便協調決策;
    (5)一個分佈式神經網絡的逐層處理並不能直接爲神經網絡早期的快速推理(如終端設備)提供一種處理機制;
    (6)在給定的分佈式計算層下,需要在模型的準確性(以及相關的模型大小)和上一層的通信成本之間進行平衡。

三、總體方案

1. DDNN架構

一種新的DDNN框架和它將DNN的部分映射到分佈式計算層次結構。在DDNN中,我們使用BNNs,eBNNs等來容納終端設備,使它們可以與邊緣和雲中的神經網絡層進行聯合訓練。在分佈式神經網絡中,退出點被放置在物理邊界上(終端設備的最後一個神經網絡層和分佈式計算層次結構的接下來的較高層的第一個神經網絡層之間)。能夠被提前分類的樣本在本地退出,從而實現較低的響應延遲,並將通信保存到下一個物理邊界。
DDNN 架構

2. DDNN聚合方法

(1)最大池化(Max pooling),通過獲取每個分量的最大值來聚合輸入向量;
v^j=max1invij \hat{v}_j=\max_{1\leqslant i \leqslant n} v_{ij}
(2)平均池化(Average pooling),通過獲取每個分量的平均值來聚合輸入向量;
v^j=i=1nvijn \hat{v}_j=\sum_{i=1}^n \frac {v_{ij}}{n}
(3)連接(Concatenation),將輸入向量連接在一起,保留所有對高層(雲)有用的信息,這將擴展輸出向量的維數。爲了將輸出向量映射回輸入向量相同的維數,需要添加一個額外的線性層。

3. DDNN訓練方法

我們提出了一種方法,可以在可部署在分佈式計算層次結構上的深層網絡上訓練和執行前饋推理。在訓練時,將每個出口點的損失函數值在反向傳播過程中進行結合,使整個網絡可以進行聯合訓練,每個出口點相對於其深度可以獲得較好的精度。爲了訓練DDNN,我們構造了一個聯合優化問題,即使每一個出口點損失函數的加權和最小化。
我們使用softmax cross entropy損失函數來作爲優化目標,對於每個出口點,其損失函數可表達爲:
L(y^,y;θ)=1CcϵCyclogyc^; L(\hat{y},y;\theta)=-\frac{1}{\left|C\right|}\sum_{c\epsilon C}y_c log \hat{y_c};
預測輸出向量y^\hat{y}爲:
y^=softmax(z)=ezcϵCezc; \hat{y}=softmax(z)=\frac{e^z}{\sum_{c \epsilon C}e^{z_c}};
輸出z爲網絡層的最終輸出結果:
z=fexitn(x;θ); z=f_{exit_n}(x;\theta);
最終整個網絡的優化目標損失函數爲:
L(y^,y;θ)=n=1NwnL(y^exitn,y;θ) L(\hat{y},y;\theta)=\sum_{n=1}^{N} w_nL(\hat{y}_{exit_n},y;\theta)

4. DDNN推理過程

DDNN將已經訓練好的DNN映射到本地、邊緣和雲端分佈的異構物理設備上。利用設備推理後的退出點,我們可以對本地網絡可信度高的樣本進行分類,無需向雲端發送任何信息。對於更多無法處理的樣本,我們將中間DNN輸出(直到本地退出點)發送到雲端,在雲中使用額外的神經網絡層執行進一步的推理,並做出最終的分類決策任務。DDNN也可以擴展到地理分佈的多個終端設備,一起來做分類決策。每個終端設備執行各自的本地計算,但它們的輸出在本地退出點之間進行聚合。由於整個DDNN是跨所有終端設備和出口點進行聯合訓練的,所以網絡會自動將輸入進行聚合,以達到分類精度的最大化。DDNN通過在終端設備和雲之間的分佈式計算層次結構中使用邊緣層,它從終端設備獲取輸出,如果可能的話執行聚合和分類,如果需要更多處理則將中間輸出傳遞給雲。
在DDNN中,使用多個預先設置好的出口閾值T作爲對樣本預測的信心度量,分別在幾個階段中執行推理。在一個給定的退出點,如果預測期對結果不自信,系統回落到一個更高的出口點的層次直到到達最後的出口點,此時總是執行分類任務。
每個出口點的樣本信息熵定義爲:
η(x)=i=1CxilogxilogC \eta (x)=- \sum_{i=1}^{|C|} \frac{x_i logx_i}{log|C|}

5.通信成本

本地的終端設備和雲端聚合器的總通信成本爲:
c=4×C+(1l)×f×o8 c=4 \times |C|+(1-l)\times \frac{f \times o}{8}
其中,ll是本地退出樣本的比例,CC是所有可能類別標籤的集合,ff是過濾器的數量,oo是在終端設備上對於最後一個神經網絡層單個濾波器的輸出大小。第一項假設每個類都有一個浮點數,它表示樣本從終端設備傳輸到本地聚合器屬於該類的概率。不管樣本在本地退出還是在後面的出口點退出,都會發生這個步驟。第二項是當樣本在雲端而不是本地退出時終端設備和雲之間的通信佔據總時間的(1l)(1-l)部分。

四、實驗分析

1.精度衡量

對於DDNN的不同出口點,我們採用了不同的精度測量如下:
(1)本地化精度是DDNN在本地出口退出全部樣本時的精度;
(2)邊緣精度是DDNN在邊緣出口點退出全部樣本的精度;
(3)雲端精度是DDNN在雲端出口點退出全部樣本的精度;
(4)總體精度是在每一個出口點退出一定比例的樣本的精度。在每個出口點被分類的樣本都由那個出口點的信息熵閾值T所決定;
(5)個體精度是終端設備神經網絡模型分別從DDNN訓練後的精度,在評價體系中,通過使用單個神經網絡模型對所有樣本進行分類,而不依賴於DDNN的本地或雲端出口點,從而計算出每個設備的個體精度。

2.系統評估

(1)DDNNs允許多個終端設備協同工作,以提高本地和雲端出口點的準確性;
(2)DDNNs通過將難處理的樣本傳遞到雲端無縫地擴展了終端設備的能力;
(3)DDNNs具有內置的容錯功能;
(4)DDNNs降低了終端設備的通信成本。

3.評價體系結構

爲了適應終端設備的小內存容量,我們使用了二進制神經網絡塊。我們使用兩種類型的塊:融合的二進制全連接塊和融合的二進制卷積塊。全連接塊由一個全連接層和m個結點(用來批處理正則化和二進制激活)組成。卷積塊由卷積層、池化層、批處理正則化和二進制激活組成。
二進制神經網絡塊

4.實驗數據集

我們在多視點多攝像機數據集上對所提出的DDNN框架進行了評估。該數據集由6個攝像機同時拍攝的圖像組成,這些攝像機被放置在面對相同區域的不同位置。出於評估的目的,我們假設每個相機都連接到一個終端設備,可以通過帶寬受限的無線網絡將拍攝到的圖像傳輸到連接着雲端的物理斷點。
實驗數據集

5.實驗網絡結構

網絡結構

6.聚合方案對網絡性能影響

爲了對來自多個終端設備輸入進行分類,我們必須聚合來自每個終端設備的信息。本地聚合器的每個輸入都是一個浮點向量,長度等於類的數量(對應於單個設備的最後一個全連接塊的輸出)。終端設備發送到雲聚合器的輸出是最後一個卷積塊的輸出。本地聚合器中的向量中的元素輸入對應於每個類別的可能性,因此,最大池化對應於在所有終端設備上每個類獲取最大響應,並顯示出良好的性能。在雲中使用CC聚合器允許讓所有設備學習更好的過濾器,爲本地MP聚合器提供更強的響應,從而可以提高分類精度。綜合來說,使用MP-CC聚合器對於DDNN的實驗性能最好。
聚合方案性能影響

7.本地出口點閾值設置

在實驗中,T=0.8對應於局部分類器能夠正確分類一些被雲分類器錯誤分類的樣本的最佳點。該閾值表示本地分類器和雲分類器協同工作的最佳位置點。
出口閾值影響
出口閾值表格

8.跨終端設備伸縮的影響

終端設備是按照它們各自的精度從最差到最好的順序添加的,首先是精度最低的設備,然後是精度最高的設備。與任何設備的單獨精度相比,通過結合多個設備視點,我們可以在本地和雲端級別上顯著提高分類精度。
終端設備數量影響

9.DDNN的容錯性

DDNN提供的自動容錯性使系統在設備出現故障時仍然可靠,該系統對於多故障終端設備也具有魯棒性。
DDNN的容錯性

10.DDNN的通信量減少原因

當需要額外的神經網絡層處理以提高分類精度時,終端設備的通信減少的結果是將與類標籤相關的中間結果傳輸到所有樣本的本地聚合器,並與雲端進行二值化通信。

五、結論

實驗結果表明,使用所設計的DDNN框架,一個經過適當訓練的DNN可以映射到一個分佈式計算層次結構上,以滿足目標應用程序的精度、通信和延遲需求,同時獲得與分佈式計算相關的一些好處,例如容錯性和隱私性。
與標準的雲處理方法相比,DDNN通過在本地聚合器中退出許多樣本,並在需要額外處理時向雲發送緊湊的二進制特性表示,從而減少了所需的通信量。對於我們的評估數據集,相對於將原始傳感器輸入傳輸到雲中執行所有推理計算的DNN, DDNN的通信成本降低了20倍以上。

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