深度学习边缘计算综述论文阅读笔记_zjdy106678的博客-程序员信息网_边缘计算深度学习

技术标签: 边缘计算  深度学习  人工智能  

文章《Convergence of Edge Computing and Deep Learning: A Comprehensive Survey》

这是一篇关于深度学习和边缘计算基础知识的综述,包含了深度学习DL的几种网络模型的介绍,边缘计算的基础知识的介绍,以及二者的结合,如何利用DL来发展边缘计算,如何用边缘计算发展DL,怎么在边缘计算的框架下进行DL的训练,DL在边缘上运行的预测结果怎么样,二者怎么更好融合形成智慧边缘(Intelligent Edge)和边缘智慧(Edge Intelligent)。涉及到的知识很多,也很碎。基本上看完知道这个名词是什么就可以了,要是深挖的话,还是要看这篇文章的引用的论文。

作者在文章最后还针对每一个部分,提出了当前的问题与思考,如果想做这个方向的话,还是要着重看这一下这个部分。文章内容比较多,我对一些重要的主干内容做了整理。


介绍部分

传统的深度学习训练过程需要把数据传到云端进行集中式的训练,会占据网络带宽资源,并且有效率和延时问题。深度学习结合边缘计算,在数据源附近的网络边缘提供深度学习服务,可以解决这样的问题。把深度学习集成到边缘计算的框架,动态地,自适应的进行边缘的管理和维护,是未来的发展方向。

而且,深度学习在物联网,智慧城市等应用场景下应用有限,原因:

1. 代价,需要占用网络带宽;2.延时,获取云服务时间延时大;3.可靠性,网络不稳定;4.隐私性,不安全;边缘计算可以解决这些问题

文章提出了两个概念,智慧边缘(Intelligent Edge)和边缘智慧(Edge Intelligent)。

边缘智能想尽可能的把深度学习计算从云端迁移到边缘,这样做有很多好处。智能边缘目的是把深度学习嵌入到边缘端的动态可适应管理和维护。

五个关键技术方向

  1. 综合使用Edge和DL,提供智能服务

  2. DL在Edge的推理预测

  3. 为了发展DL的Edge,利用Edge思想,技术等来服务于DL的发展

  4. 在Edge端使用DL来训练模型,以完成特定的任务

  5. 使用DL技术,更大地促进Edge算力的充分使用


边缘计算基础

cloudlet和微小数据中心,雾计算,MEC(这些概念在上一篇博客介绍过了)

边缘节点(Edge node),微小云,雾节点,边缘服务器,MEC服务器

边缘终端(Edge device),移动设备,物联网设备

终端-边缘-云计算模式:由终端设备生成的计算强度较低的计算任务可以直接在终端设备上执行或卸载到边缘,从而避免了发送数据到云端带来的延时。对于计算密集型任务,将合理分割并分别发送到末端、边缘和云以执行,减少任务的执行延迟,同时确保结果的准确性。

边缘计算的AI硬件,GPU,FPGA,ASIC

边缘计算框架,对于配置复杂、资源需求密集的 DL 服务,具有先进卓越微服务架构的优势计算系统是未来发展方向。

KubeEdge(基于Kubernetes) 云与边缘之间的网络化、应用部署和元数据同步

OpenEdge 屏蔽计算框架和简化应用程序生成

Azure IoT Edge和EdgeX 在跨平台物联网设备上部署和运行 AI,设计用于将云智能传送到边缘。

虚拟化技术:虚拟机和容器技术

网络功能虚拟化 (NFV) 通过将网络功能和服务与专用网络硬软件分离,使虚拟网络功能 (VNF) 能够在软件中运行。   ->   解决的是传统网络不够灵活

软件定义的网络 (SDN) 则通过三个关键创新 [72]实现服务快速部署、网络可编程性和多租赁支持:             ->    Edge DL需要高频段带宽、低延迟和动态网络配置。

1.控制与数据分离2.集中式可编程控制3.标准化应用程序编程界面

网络Slicing:网络切片是一种敏捷和虚拟的网络架构,是网络的高级抽象,允许在共同共享物理基础结构之上对多个网络实例进行加密,每个实体都针对特定服务进行了优化。

 


深度学习以及相关术语 

 FCNNs 全连接的神经网络:FCNN 的每一层输出,即多层感知机都向前馈送到下一层。在连续的 FCNN 层之间,神经元 (细胞) 的输出(无论是输入细胞还是隐藏细胞)直接传递给下一层 ,由神经元直接传递和激活。FCNN 可用于功能提取和功能近似,但复杂度高、性能适中、收敛速度慢。

AE自动编码器:实际上是一叠两个 NN,以未经允许的学习方式复制输入到其输出中。第一个 NN 了解输入(编码)的代表性特征。第二个 NN 以这些功能为输入,并恢复匹配输入输出单元中原始输入的近似值,用于将身份函数从输入汇合到输出,作为最终输出(解码)。由于 AEs 能够学习输入数据的低维有用功能来恢复输入数据,因此它通常用于对高维数据  进行分类和存储。 

 

 CNNs卷积神经网络:通过采用集合操作和一组不同的移动过滤器,CNN 抓住相邻数据块之间的相关性,然后对输入数据进行一个先后的更高层次的抽象。与 FCNN 相比,CNN 可以提取特征,同时降低模型的复杂性,从而降低过拟合的风险。

 GAN对抗生成网络,源于博弈论。GAN 由生成器和歧视器组成。生成器的目标是通过故意在反馈输入单元中引入反馈来尽可能多地了解真实的数据分布,而歧视者则正确确定输入数据是来自真实数据还是生成器。这两位参与者需要不断优化他们在对抗过程中生成和区分的能力,直到找到纳什平衡 。

 RNN循环神经网络,专为处理顺序数据而设计。RNN中的每个神经元不仅从上层接收信息,而且还从其自身的前一个通道接收信息。一般来说,RNN 是预测未来信息或恢复顺序数据缺失部分的自然选择。RNN的一个严重问题是梯度爆炸。

 LSTM长短期记忆神经网络,通过添加门结构和定义明确的内存单元来改进RNN,可以通过控制(禁止或允许)信息流动来克服这个问题。

 

迁移学习 (TL): TL 可以将知识(如图 7(g)所示)从源域转移到目标域,以便在目标域 [85] 中实现更好的学习性能。通过使用 TL,大量计算资源学到的现有知识可以转移到一个新的场景中,从而加快培训过程并降低模型开发成本。

知识蒸馏(KD),可以将一个网络的知识转移到另一个网络,两个网络可以是同构或者异构。. 做法是先训练一个teacher网络,然后使用这个teacher网络的输出和数据的真实标签去训练student网络。

深度强化学习DRL:RL 的目标是使环境中的代理能够在当前状态下采取最佳操作,以最大限度地提高长期收益,其中代理的行为与环境状态之间的相互作用被建模为 Markov 决策过程 (MDP)。DRL 是 DL 和 RL 的组合,但它更注重 RL,旨在解决决策问题。DL的作用是利用DNN的强大表现能力来适应价值功能或直接策略,解决状态动作空间的爆炸性或连续状态动作空间问题。

 

 基于值的DRL:

DQL:使用 DNN 来适应动作值,成功地将高维输入数据映射到操作中

Double-DQL:高估计动作值的问题

Dueling-DQL:可以了解哪些状态是(或不是)有价值的,而不必了解每个状态下每个动作的效果。

基于策略梯度的 DRL:策略梯度是另一种常见的策略优化方法,如深度决策策略梯度 (DDPG) [91]、异步优势演员-批评 (A3C) [92]、近似策略优化 (PPO) [93] 等。它通过不断计算策略预期奖励的梯度来更新政策参数,并最终收敛到最佳策略 [94]。因此,在解决 DRL 问题时,DNN 可用于参数化策略,然后通过策略梯度方法进行优化。

分布式深度学习训练:目前,集中培训DL模型耗时耗时和计算资源,阻碍了算法性能的进一步提高。尽管如此,分布式训练可以通过充分利用并行服务器来促进训练过程。数据并行和模型并行两种方式。

模型并行:首先将大型 DL 模型拆分为多个部分,然后提供数据样本,用于并行训练这些分段模型。这不仅能提高训练速度,还能应对模型大于设备内存的情况。训练大型 DL 模型通常需要大量的计算资源,甚至需要大量 CPU 来训练大型 DL 模型。为了解决这个问题,分布式 GPU 可用于模型并行训练 [99]。

数据并行:将数据划分为多个分区,然后分别与自己分配的数据样本同时训练模型副本。


DEEP LEARNING INFERENCE IN EDGE

A. 边缘 DL 模型的优化

DL 任务通常计算密集,需要大量内存。但在边缘,没有足够的资源来支持原始的大型DL模型。优化 DL 模型使其轻量化可以减少资源消耗。

B.DL模型细分

水平分割 DL 模型,即沿末端、边缘和云进行分区,是最常见的分段方法。

C.EEoI提前退出推理

EEoI是边缘网络中垂直协作的应用程序,它为在资源稀缺的终端设备上运行神经网络模型推断提供了一种有效的方法。

D.共享DL计算


EDGE COMPUTING FOR DEEP LEARNING

A.硬件

移动CPU,GPU,基于FPGA的解决方案

B.边缘 DL 的通信和计算模型

Integral Offloading(集成卸载);Partial Offloading(部分卸载);

vertical collaboration(垂直协作);horizontal collaboration(水平协作)

 C. 自定义边缘 DL 框架

 D.边缘 DL 的性能评估

 


DEEP LEARNING TRAINING AT EDGE

两种方案:

a.每个端设备根据本地数据训练模型,然后这些模型更新在边缘节点进行聚合。

b.边缘节点训练自己的本地模型,并交换和完善其模型更新,以构建一个全局模型。

Vanilla Federated Learning at Edge(朴素联邦学习);Communication-Efficient FL(有效通信联邦学习);Resource-Optimized FL(资源优化联邦学习);Security-Enhance FL 增强安全联邦学习


DEEP LEARNING FOR OPTIMIZING EDGE

A. 自适应边缘缓存的 DL(缓存一部分内容到边缘服务器上)

B. 用于优化边缘任务卸载的 DL

C. 边缘管理和维护 DL

边缘DL服务部署在蜂窝网络,需要在很多方面进行优化,比如在无线通信方面上使用DL

边缘安全

边缘设备更容易受到DDoS攻击(分布式拒绝服务攻击)此外,边缘设备应该使用DL方法识别出窃听和干扰攻击的特征,根据被攻击的类型选择合适的保护方案。

eavesdropping attack窃听攻击,也称为嗅探或窥探,依靠不安全的网络通信来访问设备之间传输的数据。为了进一步定义窃听,它通常发生在用户连接到流量未受保护或加密的网络并向同事发送敏感业务数据时。

jamming attack干扰攻击,攻击者故意在无线网络上传输干扰信号。因此,它降低了接收方的信号与噪声比,并中断了现有的无线通信。干扰攻击使用故意无线电干扰,使通信介质保持忙碌。

基于DRL的安全方案可以提供安全的计算卸载,来防御干扰攻击或者保护用户的定位以及使用习惯等隐私。边缘设备监测边缘节点的位置和攻击特性来决定安全协议的防护等级和关键参数。

基于DQL的安全方案,同样也可以解决一部分的攻击问题。

联合边缘优化

边缘计算能够迎合快速增长的智能设备,大量计算密集型和数据消耗型的应用的增长。然而,它同时使得未来的网络运营更加地复杂。为了管理如此局的网,需要联合边缘优化。


一些思考和讨论

文章在介绍DL和Edge技术的同时,也在理清这两个方向存在的挑战和潜在的错误方向。

A更多潜在的应用

边缘计算架构,接近用户,可以利用云形成混合游戏架构。此外,智能驾驶涉及语音识别、图像识别、智能决策等。分析交通流量,保证驾驶安全。

B用于预测推理的DL模型-》(“DL inference in Edge”,)
1.模棱两可的性能指标
模型很多,但是应用设计者不知道该选哪个。由于是在边缘网络上运行的原因,现有的指标无法描述模型在应用上的特性和优缺点。除了模型的准确性,推理预测的延时,资源的消耗这些指标也很重要。因此我们需要明确边缘DL关键性能指标,量化分析影响他们的因素,并且探索权衡这些指标,以此来改进边缘DL的部署
2.EEoI推论
EEoI 可用于 DL 中的分类问题,但对于更广泛的 DL 应用没有通用的解决方案。为了建立智能边缘和支持边缘智能,不仅应探讨DL,还应探讨将EEoI应用于DL的可能性。
3.混合模型修改
应考虑与模型优化、模型分割和 EEoI 方面的协调问题。如何设计混合精度方案,即将边缘的简化DL模型与云中的原始DL模型有效结合。
4.训练和推理预测的结合
剪枝、量化和将 EEoI 引入训练有素的原始 DL 模组需要再训练,以提供所需的推理预测性能。一般来说,定制模型可以在云服务器端离线训练。然而,边缘计算的优势在于其响应速度,并可能由于DL训练的延时而被拖累。此外,由于边缘的异构设备数量众多,网络环境动态,特定DL模型的需求并不单一。连续的模型训练要求是否合理,是否会影响模型推理的及时性呢?如何设计一个机制来避免这些副作用?
C.DL 的完整边缘架构-》(“Edge Computing for DL” )
构建完整的DL边缘计算框架
边缘进行数据处理:边缘设备感知收集原始数据,并把数据喂给DL模型
边缘DL服务的微服务:执行 DL 计算可能需要一系列软件依赖性,并且它需要一种解决方案,用于在共享资源上隔离不同的 DL 服务。
DL 的激励和信任卸载机制:资源有限的端设备上的大量的 DL 计算可以卸载到附近的边缘节点。1)应建立激励机制,刺激边缘节点接管DL计算:2) 应保证安全性,以避免匿名边缘节点带来的风险。
与优化边缘架构的DL整合:为了充分利用边缘计算的分散资源,并与现有的云计算基础设施建立紧密的联系,将计算密集型 DL 模型划分为子任务,并在边缘设备之间有效地卸载这些任务以进行协作至关重要。
D.边缘节点的实际训练原则(“DL Training at Edge”)
边缘设备计算表现差,大多数的边缘计算DL框架和库不支持训练。目前该方向仅仅停留在理论层面。
1.数据并行和模型并行
利用FL,在边缘训练DL模型的模式图
2.训练数据的获取
现在在边缘训练的都是有监督的学习,但实际上的数据是没有标签的。
让边缘设备通过互相学习他们标记的数据来构建他们自己的带标记的数据
3在边缘的异步FL
现有的 FL 方法 [198], [199] 侧重于同步培训,并且只能并行处理数百台设备。
但是,由于FL在边缘框架中的两个缺点(边缘设备计算能力弱,通信有限且不确定),这种同步更新模式可能无法很好地推广到实际应用中。
通过为客户端设置下载、更新和上传 DL 模型的特定截止日期,中央服务器可以确定哪些客户端执行本地训练,以便在每个期间聚合尽可能多的客户端更新,从而使服务器能够加快 DL 模型的性能改进
4.迁移学习为基础的训练
迁移训练适用于资源受限的边缘设备。例如,为了减少训练数据的数量并加快训练过程,可以采用未标记数据在边缘设备之间传输知识 [284]。通过在学习不同传感方式的边缘设备时使用交叉模式传输,可以大幅减少所需的标记数据和加速训练过程。KD 知识蒸馏是迁移学习的一种方式,
E.智慧边缘的部署和改进-》(“DL for optimizing Edge”)
使用DL去优化实时的边缘计算网络,DL模型,DRL模型的训练和预测结果,这些应该是研究的重点。现有工程主要关注"DL优化边缘"在高层次上的解决方案,而忽略了低层的实际可行性。虽然 DL 显示了其理论性能,但应仔细考虑 DNN/DRL 的部署问题:
1.考虑到资源开支以及实时管理边缘计算网络的请要求,应该在哪个地方部署DL和DRL
2.当使用 DL 确定缓存策略或优化任务卸载时,DL 的好处是否会因带宽消耗和 DL 本身带来的处理延迟而抵消?
3.如何去探索和改进边缘计算的架构?
4.第四部分谈论的定制化的DL模型能够加快边缘智能的实际部署么?
5.如何修改第七节的训练原则,以提高DL培训的性能,以满足 边缘管理的实时性?

文章的大体内容就是这些,我也是在通过这篇文章扫盲,有些地方理解的不是很好,慢慢来吧,后面可能看多了这方面的文章,再回来看这篇文章的话会有新的理解,加油!

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/zjdy106678/article/details/121070120

智能推荐

Qt去掉对话框边框并且窗口可移动的实现_令狐掌门的博客-程序员信息网_qt隐藏边框

Qt开发时,有时需要对窗口进行定制,例如去掉边框,做异形窗口等,做法比较简单,添加几句代码即可。现在构造函数中添加://去掉边框this->setWindowFlags(Qt::FramelessWindowHint); 此时,虽然去掉了边框,但是窗口无法移动,需要重写鼠标的按下,移动事件,在头文件中添加如下代码:void mousePr...

python中os.path.join()的循环用法_Python os.path.join()用法及代码示例_weixin_39827850的博客-程序员信息网

Python中的OS模块提供了与操作系统进行交互的功能。操作系统属于Python的标准实用程序模块。该模块提供了使用依赖于操作系统的功能的便携式方法。 os.path模块是Python中OS模块的sub-module,用于通用路径名操作。os.path.join()Python中的方法会智能地连接一个或多个路径组件。此方法将各个路径组成部分与每个非空部分之后的最后一个路径组成部分恰好用一个目录分隔...

nvidia-jetson系列硬件平台上安装Qt_Zhongyl_的博客-程序员信息网_jetson qt 安装

nvidia-jetson系列硬件平台上安装Qt目标平台:Jetson Nano、Jetson TX2、etson Xavier NX、Jetson AGX Xavier概述:系统环境:我的设备是下列环境,其实只要是L4T版本的应该都是可以的镜像烧录方式:SDKManager系统镜像版本:L4T-32.4.2系统版本:ubuntu18.04安装Qt库步骤:预览sudo apt-get updatesudo apt-get install qt (输入完不要回车,按一下t

SVG相关知识与应用_跑快点的博客-程序员信息网

SVG,即Scalable Vector Graphics 可伸缩矢量图形,这种图像格式在前端中已经使用的非常广泛了。首先要解释下什么是矢量图像,什么是位图图像?1、矢量图像:SVG是W3C 推出的一种开放标准的文本式矢量图形描述语言,他是基于XML的、专门为网络而设计的图像格式,SVG是一种采用XML来描述二维图形的语言,所以它可以直接打开xml文件来修改和编辑。2、位图图像:位图图像的存...

PHP图片加水印,然后将加水印的图片上传到七牛云_临沂码农王老七的博客-程序员信息网

今天项目有这么一个需求,简单实现了一下,当然用起来是没有任何问题的,现在把实现代码分享给小伙伴们public function uploadImgToQiniu($picture_id){ $waterImg = './upload/picture/water/**.png';//这个是水印图片,直接放到服务器即可 $img = './upload/picture/'.$pictureInfo['path'];//原图 $waterImg = $thi

stm32 带通滤波器_带通滤波 - 基于STM32芯片和TFT-LCD的便携式心电图仪设计_weixin_39959569的博客-程序员信息网

相关推荐3月10日,纽约州州长安德鲁-库默(Andrew Cuomo)曾在上月宣布,纽约大都市圈的公共交通系...发表于 2018-04-16 08:50•88次阅读 LCD驱动我们只需要写硬件这一块的代码就可以了,下面有三个函数内核已经帮我们写好了,我们只需要调用就...发表于 2018-04-16 08:43•12次阅读 ...

随便推点

paddleocr打包exe,10大报错的解决。。。。成功打包运行_Joyce1001的博客-程序员信息网_paddle打包exe

打包paddleocr时,出现Error: Can not import avx core while this file exists: xxxxxx(你安装Python的径)\paddle2.0\lib\site-packages\paddle\fluid\core_avx.pyd错误:解决方法:进入paddle安装对应的虚拟环境下,如下图所示,找到paddle/libs,如下所示:Copy所有的dll文件到dist下的:pyinstaller可执行文件报错astor:解决方法:注销这三行.

16S 基础知识、分析工具和分析流程详解_weixin_30249203的博客-程序员信息网

工作中有个真理:如果你连自己所做的工作的来龙去脉都讲不清楚,那你是绝对不可能把这份工作做好的。 这适用于任何行业。如果你支支吾吾,讲不清楚,那么说难听点,你在混日子,没有静下心来工作。 检验标准:随时向别人解释你的工作,让别人提出尖锐的问题,看你是不是答不上来。 16S概念 什么是16S?S是什么意思? 16S分析是用来干嘛的?能分析什么? 16S大致的分析原理是什么? 有点生物学基础的...

IDEA Unable to import maven project 解决方法_kkissyoulove的博客-程序员信息网

    IDEA的maven本来可以正常使用,搁置一段时间报错IDEA Unable to import maven project。点击help-》show log in explorer后发现是网络连接问题。日志如下Caused by: java.rmi.ConnectException: Connection refused to host: localhost; nested except...

计算机phd学校怎么选,科学网—关系一生的选择:申请北美phd应该如何比较学校、导师优劣(一) - 钱辰的博文..._吃三盆糖的猫的博客-程序员信息网

博主是一位在美国高校即将毕业的博士生,专业是计算机科学经过多年混迹于学术圈,对于读博的学校、导师选择颇有心得,想写一篇短文来总结一下个人以为,作为一个新时代的大学生,对于自己的职业应该略有规划。大致来说,到北美读博的人在心中的规划分为两类:A: 如果你意向博士毕业以后从事学术工作(高校教授、研究所研究员等)博主对于选择phd offer的优先程度排序为:A1, 导师和研究小组的历史成绩读博士,找到...

python缺失值插补_时间序列数据如何插补缺失值?_weixin_39894233的博客-程序员信息网

在多元时间序列中,数据缺失的情况十分普遍。最近我在做这方面的literature review,在这里回顾总结一下 。时间序列缺失值处理方法主要分为三大类:第一类是直接删除法,该方法可能会舍弃数据中的一些重要信息;第二类是基于统计学的填充方法,如均值填充,中值填充,常用值填充,但这类方法忽略了数据的时序信息;第三类是基于机器学习的填充方法,常见的方法有基于KNN(K-Nearest Neighbo...

成功解决TypeError: a bytes-like object is required, not ‘str‘_张亚楠·的博客-程序员信息网

出现问题:在文件写操作时出现TypeError: a bytes-like object is required, not ‘str’意思是函数write需要的参数类型是字节对象不是字符串解决办法:把str转换成bytes类型bytes(data,‘utf-8’) 或者 str.encode(data,‘utf-8’)第二个参数是编码,根据需求选择。...

推荐文章

热门文章

相关标签