本文出自论文:Deep Learning With Edge Computing: A Review,主要针对深度学习和边缘计算的交叉进行了一个综述。
边缘计算,将计算节点的精细网格放置于靠近终端设备的位置,是一种可行的方法来满足于在边缘设备上深度学习的高计算和低延迟要求,并在隐私、带宽效率和可伸缩性方面提供额外的好处。本文主要针对于深度学习和边缘计算的交叉进行一个综述,它将提供在网络边缘使用深度学习的应用程序的概述,讨论不同的方法来快速执行跨终端设备、边缘服务器和云结合的深度学习推理,并描述了跨多个边缘设备训练深度学习模型的方法。
一、简介
- 深度学习的高精度对于其训练和推理阶段,带来了高计算和内存要求的代价,而高精度和高资源消耗是深度学习的特征。为了满足深度学习的计算要求,一个常用的方法是利用云计算,而将数据从源地址传输到云上的解决方案引入了几个挑战:(1)延迟(Latency):传输数据到云上做推理或者训练可能会引发来自网络额外的排队和传播延迟,不可能满足实时性交互应用程序所需要的,严格的端到端和低延迟要求。(2)可伸缩性(Scalability):从源地址发送数据到云上引入了可伸缩性问题,正如当所连接设备的数量增长时,连接到云的网络可能成为一个瓶颈。(3)隐私(Privacy):将数据发送到云可能会引起拥有数据或行为被数据捕获的用户的隐私担忧。
- 为了解决延迟挑战,边缘计算接近终端设备上的数据源减少了端到端延迟,于是支持实时性服务。为了解决可伸缩性挑战,边缘计算支持终端设备、边缘计算节点和云数据中心的层次结构,可以提供计算资源并根据客户端数量来进行伸缩,避免在一个中心位置的网络瓶颈。为了解决隐私性挑战,边缘计算支持数据在接近源地址来被分析,可能是通过一个本地可信的边缘服务器,于是避免了穿越公众互联网和减少暴露于隐私和安全攻击。
- 相比较于日益增长的资源受限设备的深度学习工作,边缘计算在跨多个边缘设备共享通信和计算资源方面存在额外的挑战。
二、背景、衡量和框架
- 深度学习的背景:在深度学习训练中,计算按照相反的顺序进行。给定真实的训练标签集,在各层进行传递来优化各层矩阵乘法的参数,从最后一层开始到第一层结束。该算法通常被称为随机梯度下降。在每次传递中,一个随机选择的"mini-batch"样本被选中,然后被用来在最大程度上减少训练损失的方向下更新梯度。一个通过整个训练数据集的传递过程被称为一个训练迭代。在矩阵乘法中有着大量的参数,导致了许多计算被执行,于是我们在终端设备上可以看到延迟问题。另外一个问题是这里有着很多选择来决定如何设计DNN模型,例如每层的参数数量以及网络层数。