An Adaptive Distributed Deep Neural Network Inference Framework
In recent years, the development of deep learning has led to an increase in the complexity of deep neural network (DNN) models, accompanied by a proportional increase in the amount of memory and data transfer required. This has a detrimental effect on the training and inference speed of DNNs, as well as limiting their deployment on some Internet of Things (IoT) devices with limited memory and computational capabilities. Existing research combines a distributed computing framework based on cloud-edge-end collaboration with deep neural networks to form the Distributed Deep Neural Network (DDNN) framework, which has significant advantages in IoT application scenarios. However, the DDNN framework suffers from the problems of limited computational power of devices, as well as high transmission cost between devices. To address these issues, this paper proposes the Adaptive Distributed Deep Neural Network (ADA-DDNN) inference framework. The ADA-DDNN framework employs multiple edge exits, which allow the models in the ADA-DDNN framework to perform different depth levels of adaptive reasoning to accommodate different task requirements and data characteristics. Furthermore, the framework incorporates an additional edge processing module, which is responsible for evaluating the credibility of the output results produced by each terminal module. If the results are deemed credible, the classification results are directly outputted without feature fusion and subsequent computation. This significantly increases the probability of the sample being outputted at the edge and reduces the subsequent computation cost. The paper validates the ADD-DDNN framework on the open CIFAR-10 dataset. The experimental results demonstrate that the framework significantly improves edge testing accuracy while maintaining the same level of testing accuracy in the cloud.
Deep Neural Network
深度神经网络(Deep Neural Network, DNN)已经成为了人工智能(Artificial intelligence, AI)的基础性技术。DNN通过从大量数据中自动学习复杂的特征表示,已经在计算机视觉
随着深度学习的不断发展,DNN模型结构也越来越复杂,性能较低的IoT设备很难对规模庞大的深度学习模型进行训练和计算推理,针对这一难题,已经出现了大量的研究工作。其中的重点是提高深度神经网络训练和推理的效率
此外,可以将分布式技术和DNN进行融合
现有的DDNN框架如
(1)
其中真实标签向量y通过独热编码表示,输入样本为x,所有可能标签的集合为C。为了完成分布式深度神经网络的训练,需要构建一个联合优化问题,其目标是最小化网络中所有设备出口点的损失函数的加权和。这个问题可以通过联合考虑网络中所有子网络的损失来实现,从而协调整个网络的训练过程。具体计算如式(2)所示:
(2)
其中,M表示网络的划分层数,即网络中退出点的总数, 代表位于第m个退出节点前的子网络的参数权重。通过这种方式,分布式深度神经网络可以同时优化所有子网络的性能,每个子网络的损失函数都乘以相应的权重,以反映其对整体网络性能的贡献。这种方法允许网络在不同的层次上进行自适应的调整,以适应不同的任务需求和数据特性。联合损失目标函数的构建,确保了在反向传播过程中,每个子网络的梯度都被计算并用于更新网络参数,从而实现了整个网络的端到端训练。
本文提出的ADA-DDNN推理框架如
终端:在终端部分,部署了n台终端设备,它们承担着从各自视角的特征提取及分类的任务。每个终端设备由两个模块组成,即特征提取模块和分类模块。特征提取模块主要负责当前视角采集的原始图片的浅层特征,提取的特征一般更加简洁。分类模块则负责对这些特征进行分类,并进一步计算分类结果的归一化熵值。随后,终端设备将计算得到的熵值、分类结果以及特征提取模块输出的特征一并传输至边缘端。
边缘端:边缘端由五个核心组件构成:边缘处理模块、边缘出口1、特征融合模块、分类模块以及边缘出口2。与现有的DDNN框架相比,ADA-DDNN框架采用了多个边缘出口,这些边缘出口允许ADA-DDNN框架中的模型在不同的深度层次上进行自适应的推理,以适应不同的任务需求和数据特性。此外,该框架增加了额外的边缘处理模块,边缘处理模块负责聚合终端设备上传的熵值、分类结果以及终端部分上传的特征。边缘处理模块计算所有终端上传的熵值的最小值,并将该熵值与退出点阈值T进行比较,如果该熵值小于退出点阈值,则将该熵值对应的分类结果通过本文所设计的边缘出口1输出,否则边缘处理模块将每个终端设备上传的输出特征进行特征融合以及后续计算。特征融合模块负责将融合后的特征进行更深层次的特征提取,生成更加复杂的特征。更深层次的特征为后续的分类提供了更为精准的输入。分类模块负责对深层次特征进行分类。如果分类结果的置信度足够高,即归一化熵值小于退出点阈值,那么样本分类结果将会从边缘出口2输出。如果分类的置信度不够高,那么特征融合器会将融合的特征上传到云端做进一步的处理。
云端:云端由三个模块构成,即特征提取模块、分类模块和云端出口模块。其中,特征提取模块负责对边缘端融合的特征做进一步的特征提取以获得具有更强表达能力的深层特征。深层特征通过分类模块进行最终分类,并从云端出口输出最终分类结果。
ADA-DDNN中的详细推理分多个阶段执行,每个阶段退出点有一个退出阈值T作为样本预测的置信度度量,当样本预测的置信度小于退出阈值T时,推理过程提前退出。定义T的一种方法是在测试集上搜索T的范围,并选择精度最高的一个。本文使用归一化熵阈值作为置信标准,确定是否在特定出口点对样本进行分类(退出)。归一化熵定义为:
(3)
其中C是所有可能标签的集合, 是一个概率向量。这个归一化熵的值在0到1之间,这使得解释和搜索相应的阈值T更容易。例如, 接近0意味着ADA-DDNN对样本的预测有信心; 接近1表示不可信。在每个出口点,计算 并与T比较,以确定样品是否应在该点出口。在给定的出口点,如果 ,系统会进一步进行特征处理,并将分类结果上传到更高的出口点,直到到达云端最后一个出口,该出口始终执行分类。
在本文中,所有实验均在单一服务器上进行,具体的硬件配置详见
参数 |
参数取值 |
操作系统 |
Ubuntu 20.04 |
开发语言 |
Python 3.8.0 |
CUDA |
11.3 |
CPU |
Xeon(R) Platinum 8358P |
GPU |
RTX 3090(24G) |
本实验采用CIFAR-10数据集作为实验数据集,CIFAR-10是一个包含日常物品的彩色图像数据集,由Hinton的学生Alex Krizhevsky和Ilya Sutskever整理,旨在识别广泛的物体类别。整个数据集由50000张训练图像和10000张测试图像构成
名称 |
设置 |
优化器 |
随机梯度下降 |
初始学习率 |
0.1 |
学习率调度 |
余弦退火 |
批大小 |
200 |
训练轮数 |
180 |
本文主要从三个方面评估ADA-DDNN框架的性能,分别是ADA-DDNN框架中模型训练损失、测试精度以及框架的容错性。训练损失衡量的是模型预测结果与实际结果之间的差异。理想情况下,随着训练过程的进行,损失值应该逐渐减小,这意味着模型正在逐步学习和适应训练数据,提高其分类准确性。训练损失分为边缘训练损失和云端训练损失,本文以Softmax交叉熵损失函数作为优化目标。其中边缘训练损失是网络中所有边缘出口训练损失的加权和,具体计算如式(4)所示。
(4)
其中,B表示边缘端网络的划分层数,即边缘端退出点的总数, 代表位于边缘端第b个退出节点前的子网络的参数权重。通过这种方式,可以评估所有边缘端模型的收敛性能。云端出口的训练损失是网络中所有云端出口训练损失的加权和,具体计算如式(5)所示。其中,D表示云端退出点的总数, 代表位于云端第d个退出节点前的子网络的参数权重。
(5)
模型的训练损失如
为了验证本文算法的优越性,进一步在相同的测试集上评估了ADA-DDNN和算法1的测试精度。测试精度分为边缘测试精度和云端测试精度。其中边缘测试精度具体计算如式(6)所示。
(6)
其中 表示从边缘输出的所有正确分类的样本数, 表示边缘端输出的总样本数。云端测试精度如式(7)所示。
(7)
其中 表示从云端输出的所有正确分类的样本数, 表示云端输出的总样本数。
测试精度曲线如
分布式深度神经网络相较于传统的集中式神经网络,在鲁棒性方面展现出显著的优势。这种优势主要得益于其分布式架构,该架构允许网络在部分终端设备发生故障或停止工作时,依然能够维持较高的准确率。为了评估ADA-DDNN框架的容错能力,本文通过模拟实验来观察六个终端设备分别停止工作以及当多个终端设备无法工作时,ADA-DDNN的边缘测试精度和云端测试精度变化情况。
如
本文提出了ADA-DDNN推理框架。与现有的DDNN框架相比,该框架增加了额外的边缘处理模块和边缘出口,边缘处理模块通过聚合所有终端上传的分类结果和输入特征,并在边缘端进行特征融合之前,判断每个终端模块的输出是否可信,如果可信,则直接从本文增加的边缘出口输出分类结果,无需进行特征融合和后续计算。这大大增加了边缘出口概率,减少了后续的计算成本。本文在开放的CIFAR-10数据集上进行验证,实验结果表明,ADA-DDNN在保证云端测试精度的前提下,显著提升了边缘测试精度。最后,通过模拟终端设备缺失情况,验证了ADA-DDNN框架的高容错性。尽管ADA-DDNN框架已经在多个方面显示出优越性,但本文认为在未来的工作中仍有进一步探索和优化的空间。例如,如何根据设备的计算资源,更加精细化地分配任务,以及如何对设备之间传输的信息进行压缩,进一步降低通信开销,都是未来值得深入研究的方向。
国家自然科学基金资助项目(61602305, 61802257);上海市自然科学基金资助项目(18ZR1426000, 19ZR1477600。
*通讯作者。