DDNN:Distributed Deep Neural Networks over the Cloud,the Edge and End Devices

出自论文 Distributed Deep Neural Networks over the Cloud,the Edge and End Devices,是一种分布式的深度神经网络,可以在本地终端设备、边缘和云端进行网络推理

 一、摘要

提出了在分布式计算层次结构上的分布式深度神经网络(DDNN),该层次结构由云,边缘(雾)和最终设备组成。 DDNN能够容纳云中的深度神经网络(DNN)的推理,同时还允许在边缘和终端设备处使用神经网络的浅层部分进行快速、本地化推理。在可扩展的分布式计算层次结构支持时,DDNN可以扩大神经网络的规模,并扩大地理范围。由于其分布式特性,DDNN增强了DNN应用程序的传感器融合,系统容错能力和数据保密性。在实现DDNN时,我们将DNN的各个部分映射到分布式计算层次结构上。通过共同培训这些部分,我们可以最大程度地减少设备的通信和资源使用,并最大程度地利用云中提取的功能。结果系统内置了对自动传感器融合和容错的支持。作为概念的证明,我们表明DDNN可以利用传感器的地理多样性来提高物体识别的准确性并降低通信成本。在我们的实验中,与传统的将原始传感器数据在云中处理的方法相比,DDNN在本地设备上对大多数传感器数据进行本地处理,同时实现了高精度,并能够将通信成本降低20倍以上

二、简介

目前机器学习系统在终端设备上的状态有着不太令人满意的选择:
(1)将输入传感器中的数据卸载到云端的大型神经网络模型中,存在通信成本高、延迟和隐私的问题;
(2)使用简单的机器学习模型,如SVM,直接在终端设备上进行分类,会导致系统的精确度下降。

为了解决这些缺点,考虑使用分布式计算方法。 由云,边缘和设备组成的分层分布的计算结构具有固有的优势,例如支持协调的中央和本地决策以及为大规模智能任务的基于地理分布的物联网设备提供系统可伸缩性 。
这种分布式方法的一个例子是将终端设备的小型神经网络模型(参数数量较少)和云端中较大的神经网络模型(参数数量较多)进行结合。终端设备上的小型模型可以快速地进行初始特征提取,在模型可信的情况下还可以进行分类任务。然后,终端设备处理后的数据会传递到云端的大型网络模型中,进行下一步的特征处理和最终分类。这种方法与传统的神经网络模型相比,具有通信成本低、精确度高的优点。另外,传递到云端的数据已经被终端设备所处理过的数据,可以提供更好的隐私保护。
这种基于计算层次结构的分布式方法也具有挑战性:
  1)像嵌入式传感器这样的终端设备通常内存和电池有限,在满足所需精度和能量约束的受限设备上安装合适的模型较为困难;
  2)在计算节点之间传输中间结果时,在计算层次上直接划分神经网络模型可能会产生很大的通信成本;
  3)当使用不同终端设备上的多个传感器输入时,需要将它们聚合在一起才能实现单个分类目标,一个好的神经网络结构将能够支持这样的传感器融合;
  4)在云端、边缘和设备上的多个模型需要联合学习,以便协调决策;
  5)一个分布式神经网络的逐层处理并不能直接为神经网络早期的快速的本地化推理提供一种处理机制;
  6)在给定的分布式计算层下,需要在模型的准确性(以及相关的模型大小)和上一层的通信成本之间进行平衡。

为了在相同的优化框架下解决这些问题,系统可以训练单个端到端模型(例如DNN),并将其在终端设备和cloud2之间进行分区,以提供更简单,更多的功能。

将一个DNN的部分映射到分布式计算层次结构,通过联合培训这些部分,表明DDNN可以有效应对上述挑战。具体而言,虽然DDNN能够在云中容纳DNN的推理,但它可以在边缘和终端设备上使用DNN的某些浅层部分进行快速局部的推理。此外,通过分布式计算,DDNN自然增强了DNN应用的传感器融合,数据保密性和系统容错能力。当可扩展的分布式计算层次结构支持时,DDNN可以扩大神经网络的规模,并扩大地理范围。在DDNN中,我们使用BNNs,eBNNs等来容纳终端设备,使它们可以与边缘和云中的神经网络层进行联合训练。在分布式神经网络中,退出点被放置在物理边界上(终端设备的最后一个神经网络层和分布式计算层次结构的接下来的较高层的第一个神经网络层之间)。能够被提前分类的样本在本地退出,从而实现较低的响应延迟,并将通信保存到下一个物理边界。

主要贡献:

1)一种新颖的DDNN框架及其实现,将DNN的各个部分映射到分布式计算层次结构中。

2)一种联合训练方法,可以最大程度地减少设备的通信和资源使用,并最大程度地利用云中提取的功能,同时允许通过提前退出对高百分比的输入样本进行低延迟分类。

3)允许自动传感器融合多个传感器输入以改善系统整体性能(准确性和容错性)的聚合方案。

三、related work

A:Distributed Computing Hierarchy(分布式计算层次结构)

由大量IoT设备生成的大多数数据必须在设备或边缘进行本地处理,否则集中式云的传感器数据总量将淹没通信网络带宽。 另外,分布式计算层次结构为系统可扩展性,数据安全性和保密性以及较短的响应时间提供了机会。

B: Deep Neural Network Extensions 

 BNNs与标准浮点神经网络相比,对于某些数据集,显示出类似的分类精度,由于使用了较少的内存和二进制格式而减少了计算。嵌入式二值神经网络(eBNN) 扩展了BNN,从而通过对推理操作进行重新排序来减少浮动点临时时间,从而使网络适合嵌入式设备。  在DDNN中,使用BNN,eBNN等来容纳终端设备,以便可以与边缘和云中的NN层联合训练它们。

BranchyNet通过使用基于熵的置信度标准对神经网络中称为早期出口点的较早点进行分类。 如果根据计算出的目标类别概率矢量的熵在样本的早期出口处认为样本是可靠的,则将其分类,并且较高的NN层不会执行进一步的计算。 在DDNN中,出口点位于物理边界处(例如,在终端设备上的最后一个NN层与分布式计算层次结构的下一个更高层(例如边缘或云)中的第一个NN层之间)。 可以尽早将分类的输入样本将在本地退出,从而降低了响应延迟,并节省了与下一个物理边界的通信。

C. Distributed Training of Deep Networks 

 当前关于分布深度网络的研究主要集中在改善训练神经网络的运行时间上

J. Dean, G. Corrado, R. Monga, K. Chen, M. Devin, M. Mao, A. Senior, P. Tucker, K. Yang, Q. V. Le et al., “Large scale distributed deep networks,” in Advances in neural information processing systems, 2012:提出了DistBelief,它在训练期间将大型DNN映射到数千个CPU内核上

F. N. Iandola, K. Ashraf, M. W. Moskewicz, and K. Keutzer, “Firecaffe: near-linear acceleration of deep neural network training on compute clusters,” arXiv preprint arXiv:1511.00175, 2015.

J. Dean, “Large scale deep learning,” in Keynote GPU Technical Conference, vol. 3, 2015, p. 2015:扩展GPU集群之间的DNN训练,进一步减少了网络训练的运行时间

这种分布DNN(在同类计算单元上)的形式与本文中提出的概念从根本上不同。 我们提出了一种在深度网络上训练和执行前馈推理的方法,该网络可以部署在分布式计算层次结构上,而不是通过云中的总线或交换机连接的CPU或GPU并行处理。

四、DDNN

A:DDNN架构

B:DDNN聚合方法

1)最大池化(Max pooling),通过获取每个分量的最大值来聚合输入向量;

2)平均池化(Average pooling),通过获取每个分量的平均值来聚合输入向量;

3)连接(Concatenation),将输入向量连接在一起,保留所有对高层(云)有用的信息,这将扩展输出向量的维数。为了将输出向量映射回输入向量相同的维数,需要添加一个额外的线性层。

C:DDNN训练

提出了一种方法,可以在可部署在分布式计算层次结构上的深层网络上训练和执行前馈推理。在训练时,将每个出口点的损失函数值在反向传播过程中进行结合,使整个网络可以进行联合训练,每个出口点相对于其深度可以获得较好的精度。为了训练DDNN,我们构造了一个联合优化问题,即使每一个出口点损失函数的加权和最小化。
我们使用softmax cross entropy损失函数来作为优化目标,对于每个出口点,其损失函数可表达为:
                                                  

预测输出向量y^​为:

                                                      

输出z为网络层的最终输出结果:

                                                            

最终整个网络的优化目标损失函数为:

                                                   

D:DDNN推理 

DDNN将已经训练好的DNN映射到本地、边缘和云端分布的异构物理设备上。利用设备推理后的退出点,我们可以对本地网络可信度高的样本进行分类,无需向云端发送任何信息。对于更多无法处理的样本,我们将中间DNN输出(直到本地退出点)发送到云端,在云中使用额外的神经网络层执行进一步的推理,并做出最终的分类决策任务。DDNN也可以扩展到地理分布的多个终端设备,一起来做分类决策。每个终端设备执行各自的本地计算,但它们的输出在本地退出点之间进行聚合。由于整个DDNN是跨所有终端设备和出口点进行联合训练的,所以网络会自动将输入进行聚合,以达到分类精度的最大化。DDNN通过在终端设备和云之间的分布式计算层次结构中使用边缘层,它从终端设备获取输出,如果可能的话执行聚合和分类,如果需要更多处理则将中间输出传递给云。
在DDNN中,使用多个预先设置好的出口阈值T作为对样本预测的信心度量,分别在几个阶段中执行推理。在一个给定的退出点,如果预测期对结果不自信,系统回落到一个更高的出口点的层次直到到达最后的出口点,此时总是执行分类任务。
每个出口点的样本信息熵定义为:
                                                 

E:DDNN通信成本

本地的终端设备和云端聚合器的总通信成本为:

                                                     

F:精确度测量

对于DDNN的不同出口点,我们采用了不同的精度测量如下:
(1)本地化精度是DDNN在本地出口退出全部样本时的精度;
(2)边缘精度是DDNN在边缘出口点退出全部样本的精度;
(3)云端精度是DDNN在云端出口点退出全部样本的精度;
(4)总体精度是在每一个出口点退出一定比例的样本的精度。在每个出口点被分类的样本都由那个出口点的信息熵阈值T所决定;
(5)个体精度是终端设备神经网络模型分别从DDNN训练后的精度,在评价体系中,通过使用单个神经网络模型对所有样本进行分类,而不依赖于DDNN的本地或云端出口点,从而计算出每个设备的个体精度。

五、DDNN系统评估

  1)DDNNs允许多个终端设备协同工作,以提高本地和云端出口点的准确性;
  2)DDNNs通过将难处理的样本传递到云端无缝地扩展了终端设备的能力;
  3)DDNNs具有内置的容错功能;
  4)DDNNs降低了终端设备的通信成本。

A:DDNN评价体系结构

为了适应终端设备的小内存容量,我们使用了二进制神经网络块。我们使用两种类型的块:融合的二进制全连接块和融合的二进制卷积块。全连接块由一个全连接层和m个结点(用来批处理正则化和二进制激活)组成。卷积块由卷积层、池化层、批处理正则化和二进制激活组成。

                         

B:多视图、多相机数据集

我们在多视点多摄像机数据集上对所提出的DDNN框架进行了评估。该数据集由6个摄像机同时拍摄的图像组成,这些摄像机被放置在面对相同区域的不同位置。出于评估的目的,我们假设每个相机都连接到一个终端设备,可以通过带宽受限的无线网络将拍摄到的图像传输到连接着云端的物理断点。

                                   

C:聚合方案对网络性能影响 

   实验网络结构

                                     

为了对来自多个终端设备输入进行分类,我们必须聚合来自每个终端设备的信息。本地聚合器的每个输入都是一个浮点向量,长度等于类的数量(对应于单个设备的最后一个全连接块的输出)。终端设备发送到云聚合器的输出是最后一个卷积块的输出。本地聚合器中的向量中的元素输入对应于每个类别的可能性,因此,最大池化对应于在所有终端设备上每个类获取最大响应,并显示出良好的性能。在云中使用CC聚合器允许让所有设备学习更好的过滤器,为本地MP聚合器提供更强的响应,从而可以提高分类精度。综合来说,使用MP-CC聚合器对于DDNN的实验性能最好。
                                   

D: Entropy Threshold 

在实验中,T=0.8对应于局部分类器能够正确分类一些被云分类器错误分类的样本的最佳点。该阈值表示本地分类器和云分类器协同工作的最佳位置点。

                                                                                                                     

E:跨终端设备伸缩的影响

                                         

F:Impact of Cloud Offloading on Accuracy Improvements 

随着最终设备上滤波器数量的增加,DDNN的准确性和通信成本。 对于所有设置,存储在终端设备上的NN层需要2 KB以下的内存。 在此实验中,我们配置了局部出口阈值T,以使大约75%的样品局部离开而大约25%的样品流失

                                            

G:DDNN的容错性

DDNN提供的自动容错性使系统在设备出现故障时仍然可靠,该系统对于多故障终端设备也具有鲁棒性。

                                              

H: Reducing Communication Costs

当需要额外的神经网络层处理以提高分类精度时,终端设备的通信减少的结果是将与类标签相关的中间结果传输到所有样本的本地聚合器,并与云端进行二值化通信。

六、水平和垂直缩放的DDNN规定

DDNN垂直扩展,是通过在本地退出较容易的输入样本以实现低延迟响应,以及将难于采样的样本分散到云中以实现较高的总体识别精度,同时在终端设备上保持较小的内存占用并降低通信成本。水平扩展是通过本地和云聚合器通过特征池对来自多个设备的输入进行联合训练的DNN,并证明通过聚合每个设备的特征可以显着提高系统的准确性在本地和云级别。每个设备上的滤波器都会自动调整,以处理地理上唯一的输入,并共同努力以达到相同的总体目标,从而提高总体精度。

七、结论

实验结果表明,使用所设计的DDNN框架,一个经过适当训练的DNN可以映射到一个分布式计算层次结构上,以满足目标应用程序的精度、通信和延迟需求,同时获得与分布式计算相关的一些好处,例如容错性和隐私性。
与标准的云处理方法相比,DDNN通过在本地聚合器中退出许多样本,并在需要额外处理时向云发送紧凑的二进制特性表示,从而减少了所需的通信量。对于我们的评估数据集,相对于将原始传感器输入传输到云中执行所有推理计算的DNN, DDNN的通信成本降低了20倍以上。

思考:

本篇文章的的退出点在物理边界,分布式情况下在聚合器退出部分样本。是否可以进行优化,提前退出,自动选择模型最佳退出点使其精度最大化?

源码:https://githu.com/kunglab/ddnn/tree/pytorch

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值