边缘计算的深度学习在物联网中的应用

2021-08-31 08:06苏蕾岳胜
广东通信技术 2021年8期
关键词:网络层边缘联网

[苏蕾 岳胜]

1 介绍

近些年,深度学习成为许多信息领域中的重要方法,比如视觉识别、自然语言处理以及生物信息学[1,2]。深度学习是一个强有力的处理海量数据的工具。而在物联网领域中,每天都产生大量的真实的物联网络数据,而传统的机器学习技术不能有效地处理这些带噪声的、复杂背景的数据。然而深度学习被认为是最有希望解决这类问题的方法[3]。深度学习也应用被广泛地引入到物联网以及智能手机等相关的应用中,并取得了令人鼓舞的成绩。例如,利用智能电表所收集的数据,深度学习能准确地预测家庭用电量,这个技术可以提高智能电网的供电调节效率[4]。由于深度学习能高效处理复杂数据,因此深度学习将在未来的物联网设备中扮演很重要的角色。

边缘计算是物联网服务中很重要的技术[5~7]。由于数据传输的网络性能有限,集中式云计算结构对处理和分析从物联网设备收集的大量数据的效率越来越低[8,9]。随着边缘计算将计算任务从集中式的中心云端转到接近物联网设备的边缘侧,通过预处理能极大减小需要传输的数据量。当中间数据尺度比输入数据要小时,边缘计算表现非常好。

一个典型的深度学习模型通常有许多神经网络层。为了能更好地描述数据,我们可以不断增加网络的层数直到网络表达能力足够,同时可以利用网络学习更低维的中间数据。因此,深度学习非常适应边缘计算的环境,首先将原始数据,利用深度学习网络,在边缘设备上计算数据一个更低维的中间数据,然后将低维的数据处理结果传输到核心的云服务。

深度学习在边缘计算的另外一个优势是,传输中间的低维数据能更好地隐私保护。与之相比,传统的大数据系统,比如,MapReduce 或者Spark,由于它们处理的数据具有数据的语义信息,因此它们产生的中间数据含有用户的隐私。然而,对于深度学习模型,它们产生的中间数据与原始数据相比,具有不同的语义。例如,对于卷积神经网络来说,从卷积神经网络的中间层,我们很难由它提取的特征来理解原始数据。

因此,在本文中,我们介绍一个将深度学习应用在物联网设备中,并将其引入到边缘计算的环境中,以提高模型的性能并减少数据在网络中的传输。我们提出了一个弹性的模型,它可以适应不同的深度学习模型。

这篇论文的主要贡献可以总结为以下几点。第一,我们将针对物联网应用的深度学习引入到边缘计算环境中。我们提出了一个弹性的模型,它能适应各种深度学习模型的边缘计算。

2 深度学习在物联网中的应用

对于物联网应用及系统,深度学习是一项新兴技术,越来越受到大家的关注。许多物联网的应用中,产生了大量的数据亟需处理,而与传统的机器学习方法相比,深度学习最大的好处是能处理大数据,并取得更好的性能。另一个好处是深度学习是端对端的算法,不需要手动提取特征,能针对不同的问题,自动从数据中提取特征。在处理多媒体信息方面,传统的机器学习算法的性能依赖于手动提取的特征的正确性。因为深度学习能精准地学习更高层次的特征,比如,图片中的人脸,一段对话中的单词,因此深度学习能提高处理多媒体信息的效率。与此同时,与传统机器学习方法相比,深度学习需要更少的推断时间。

因此,随着物联网设备以及技术的快速发展,给复杂的深度学习任务创造了条件。深度学习运行在物联网设备上时,会受到计算能力以及资源的限制的问题。通常,商业应用的硬件和软件都不能很好地支持高并行的深度学习任务。文献[10]提出一个新的加速引擎,比如DeepEar 和DeepX,它能支持不同的深度学习应用运行在潜入最新移动系统的芯片上。实验结果表明,带有高速运行的芯片的移动物联网设备能支持部分的学习过程。

另外一个重要的研究问题是将深度学习部署在更多的物联网设备上[11]。在许多重要的物联网应用中,已经评估了物联网深度学习的效率。例如,一些研究着重于将可穿戴式物联网设备的应用部署在动态和复杂环境中,在这些情况下,传统的机器学习方法常常感到无能为力。文献[12]提出一个针对可穿戴设备的新深度学习模型,它可以提高语音识别的准确率。

大多数深度学习应用,比如语音识别,仍然需要云端设备的支持。文献[13]提出一个框架,它能将深度学习算法和Apache Spark 结合起来用于物联网数据分析。推理阶段在移动设备上运行,同时Apache Spark 部署在云端,用于支持模型的训练。这种两层的设计非常类似于边缘计算。而边缘计算显示,它能将一些处理任务从后端云测移植到前端的边缘设备上。

3 深度学习和边缘计算

边缘计算就是将中心云服务器的计算能力分配到离用户近的边缘节点上。与当前的云计算相比,边缘计算带来两个重要的提高。第一,边缘节点可以在将大量数据先进行预处理,然后传输到后端的云服务器上。另一个是通过赋予边缘节点设备计算能力可以提高云服务器的使用效率,优化云资源[14]。由于边缘计算巨大的潜力,云框架的前述问题可以得到很好地解决。

文献[15]是第一个将深度学习应用在边缘计算环境中。他们提出一个基于深度学习的食品识别应用,这个应用是利用边缘计算服务框架。他们的工作显示边缘计算通过降低响应时间和更低的能耗来提高深度学习应用的表现。然而,这个工作将移动手机作为边缘计算节点,然而这个对于物联网设备来说是不合理的,因为大多数物联网设备都只是配备低运算速度的芯片。因为我们主要关注通用的物联网设备,它们都没有较高的能耗以及高速运行的芯片。边缘服务都部署在物联网网关上,它们拥有足够的能力运行深度学习算法。

4 边缘计算中的深度学习

传统的方法是将物联网设备端产生的大量数据传送到后端的云服务器进行处理。这些数据包括多媒体信息,比如视频、图片、声音或者结构化数据,例如,温度数据、振动数据以及光通量信息。我们现有很多成熟的处理结构化数据的方法,然后控制物联网设备。但是传统的多媒体处理技术需要复杂的计算,并不适用于物联网设备。因为深度学习可以极大提高处理多媒体信息的效率,越来越多的研究将深度学习引入到多媒体物联网设备上。

影像感测是一个很重要的物联网应用,它能在物联网网络中融合图像处理和计算机视觉。但是从物联网设备中恢复出来的低质量视频数据中识别物体仍然是一个研究难点。由于深度学习在视频识别领域表现出优异的性能,我们考虑一个深度学习在物联网中的典型应用,如图1 所示,我们以视频识别的物联网应用作为一个例子讲解将深度学习引入到物联网中来。

图1 基于深度学习的视频识别

在现实生活中,存在许多无线的视频摄像头时刻监控环境并不断地识别对象。这些无线摄像头以3 000 kbit/s 的比特率收集720p 的视频数据。接着,终端摄像头通过已连接的wifi 将收集到的数据传送到物联网网关。物联网网关在对收集到的原始视频数据进行编码和压缩之后,它通过互联网通信将所有收集到的数据转发到后端的云服务器上。最终,云服务器通过一个深层神经网络模型识别收集到的视频数据中的对象。

通常,一个神经网络模型是多层结构。输入数据将会被这些层的网络处理。每一层网络都是处理上一层处理后得到的中间特征并得到新的特征。最后,最后一层神经网络处理得到的特征将被送入一个分类器处理并将识别结果输出。在神经网络中,我们将接近输入数据的网络层称为底层,其他被称为高层。

在例子中,我们利用AlexNet 识别收集到的视频数据中的对象。AlexNet 总共有8 层,其中前五层是卷基层,后面接三层全联接层。

我们首先利用kaggle上的公开数据集训练神经网络。这个数据集包含25,000 张猫狗图片。这个深度学习应用的主要目的是感知视频数据中的动物。我们利用迁移学习技术建立分类器,处理完所有提取出来的特征后,最后将识别结果以文本“猫”或者“狗”的形式输出。

不同于传统的复杂预处理,深度学习通过多层神经网络提取特征,它能提高物联网设备处理多媒体数据的效率。但是,提供数据处理效率的最大瓶颈是各物联网设备之间的通信。由于收集到的多媒体数据的尺度远大于传统的结构数据,但是从终端物联网设备上收集到的数据传输到后端的云服务器上是很难提高网络的表现。在这个例子中,每个摄像头需要3 Mbit/s 的带宽以便将拍摄的视频上传到后端,同时物联网网关需要9 Mbit/s 的带宽。

为了解决将终端物联网设备收集到的数据传送到后端的云上,边缘计算是一个可行的解决方案。在物联网的网络中,有两层网络,第一层是边缘设备层,另外就是后端云服务层。边缘设备层通常包括物联网设备、一个物联网网关和局部区域网络的网络接入点。后端的云端层包括网络链接设备以及云服务器。边缘计算就是将数据处理放在边缘设备层而不是后端的云服务层。在边缘计算环境中,因为只有中间处理数据或者最后的结果需要从边缘设备传送到云端的云上,因此,传送的数据量大为减少,这使得网络的负担减轻。

边缘计算非常适合中间处理数据的尺寸小于原始输入数据的尺度的任务。由于深度学习网络通过卷积滤波器提将输入数据的尺寸降低,使得提取的中间数据尺度小于原始的数据尺寸,故边缘计算非常适合深度学习任务。在我们的例子中,如果需要识别每帧数据,通过第一层卷积网络,中间数据的尺寸是134x89x1B 每帧和2 300 kbit/s。如果我们只想处理视频数据中的关键帧,那么深度网络产生的中间数据只有95 kbit/s。

如图2 所示,我们为物联网应用的深度学习任务设计了一个边缘计算结构。这个机构是一个典型的边缘计算结构,包含两层。在边缘设别层,边缘服务部署在物联网网关上,边缘服务可以处理收集到的数据。我们首先在后端云服务上训练深度神经网络模型。

图2 针对物联网设备的深度学习的边缘计算框架

模型训练好以后,我们将网络分成两个部分。第一部分包含一些接近输入数据的低层神经网络层,同时另外一部分是由更接近输出数据的高层神经网络层。我们将低层神经网络层部署在边缘服务器上,多层神经网络层部署在云端用于后台处理。因此,收集到的数据输入到边缘服务的第一层神经网络中。边缘服务加载经过低层神经网络层处理的中间数据,然后将中间数据传输到云端并作为高层神经网络的输入。在我们的例子中,我们将第一层部署在物联网网关上,中间数据是以134x89x1B/s 被送到云服务中,进行后面的处理。

现在有一个问题就是怎样将多层神经网络拆分。通常,高层神经网络层产生的中间数据尺寸要小于低层圣经网络产生的中间数据尺寸。

因此,部署更多层在边缘服务上可以降低更多的网络通讯。但是,与后端的云服务相比,前段的边缘服务的计算能力有限。因此,边缘服务不可能处理无限的任务。深度学习网络的每一层都会给服务带来额外的计算负担。因此,我们只能部署神经网络的部分层在边缘服务上。

5 性能测试

在实验中,我们有两个环境,第一个是从深度学习任务中收集数据,另外一个是模拟仿真。为了执行深度学习应用,我们使用了一个配有Intel Core I7 7770CPU和NVIDA Geforce GTX 1080 显卡的服务器。同时,利用Caffe 搭建CNN 框架并定义了10 个不同的卷积神经网络。我们执行了10 个不同的卷积神经网络任务并记录了操作算子的综述以及每个卷积网络层的中间数据。

如图3 所示,我们选择两个卷积神经网络,记为CNN1 和CNN2,作为例子阐述数据尺度的缩小比例(蓝色线条)和计算负荷(红色线条)。这两个深度学习模型分别有含有五层神经网络,但是网络的设置不同。从图中可以看出,输入数据可以被深度学习网络缩小尺寸,同时低层网络产生的数据相比原始数据,缩小数据尺寸的比例更大。与此同时,计算的负担随着层数增加迅速下降。

图3 深度学习网络的每层对应的数据尺寸缩小比例和操作数

6 结论以及未来工作

在本文中,我们先介绍了深度学习以及边缘计算的相关文献工作,接着将深度学习部署在边缘计算框架下,为了降低数据在网络中传输的量,将网络设为两层,第一层为边缘设备层,主要进行数据的收集以及将深度学习网络的低层网络部署在边缘服务器上,这样数据可以经过深度学习的初步处理得到中间数据,有效降低数据量,然后通过物联网网关将这些中间数据都传送到后端的云服务器上,并进行汇总以及送到深度学习网络的高层网络进行后续处理,最后得到最终的结果。通过这种高效的分布式结构,各个边缘设备协同工作,优化了深度学习网络推断速度,为深度学习应用部署在边缘设备上提供了很好的经验。

当然本文只是简单地探讨,后续需要做更多的实验,同时对于深度学习任务和设备之间的调配需要设计相关的算法进行优化。

猜你喜欢
网络层边缘联网
“身联网”等五则
《物联网技术》简介
抢占物联网
论物联网安全威胁及其应对策略
一张图看懂边缘计算
物联网技术在信息机房制冷系统中的应用
得MCU者得物联网天下
Current advances in neurotrauma research: diagnosis, neuroprotection, and neurorepair
在边缘寻找自我
走在边缘