AttoNets,一种新型的更快、更高效边缘计算神经网络

目录

题目:AttoNets:紧凑和高效的深度神经网络的边缘通过人机协同设计

摘要:

1 介绍

2 方法

2.1 基于规则的网络设计原型开发

2.2 机器驱动的设计探索

3 AttoNet 架构设计

3.1 模块层级的微架构

3.2 创建 AttoNet网络架构

4 结果与讨论

4.1 物体识别

5 结论

 

题目:AttoNets:紧凑和高效的深度神经网络的边缘通过人机协同设计

摘要:

尽管机器学习已经在很多复杂的任务中取得了进展,但现有模型仍然面临许多边缘计算实践的困难,这些边缘计算场景包括移动设备、消费设备、无人机和车辆。现有针对低功率边缘设备的深度神经网络设计主要包括两种方法:一是通过网络设计原则手工调整,二是自动进行的网络架构搜索

在本研究中,作者进一步探索了人机结合的深度神经网络设计方法,该方法结合了基于规则的网络设计原型开发以及机器驱动的网络设计研究。本文提出了一种新的神经网络 AttoNets ,该网络类型能够基于设备进行高效的边缘深度学习。AttoNets 基于人为规定的设计要求搭建网络,其包含一个由定制模块构成的人工设计的网络级宏观架构,由机器设计的模块层级的宏观架构以及微观架构。

在物体检测中的实验结果表明, 在使用更少的参数以及更低的计算花销的情况下,AttoNets 的效率与现有最优模型相当,并在准确率指标上大幅超越现有模型(与 MobileNet-V1相比,最小的 AttoNet 的准确率提升约 1.8%,使用的乘-加操作数和参数量减小了10倍)。另外,本文也在实例分割和物体探测应用中检测了 AttoNets 的效果,并发现与基于 ResNet-50 的 Mask R-Cnn 相比,通过使用基于 AttoNet的 Mask R-Cnn 网络,参数量和计算花销得到了大幅度降低(乘-加操作减少5倍,参数量减少2倍)。

1 介绍

随着深度学习的不断发展,现有模型在许多复杂任务中都实现了非常好的效果,尤其是视觉感知领域,具有代表性的应用包括图片分类、物体检测和图片分割。尽管如此,随着网络复杂度的不断升高,网络在应用和实践领域也遇到了更多挑战,例如在基于设备的边缘计算场景中,包括算力、存储、贷款、能源在内的资源都非常稀缺。因此,很多研究都开始尝试设计小规模的深度神经网络,以适应低功率边缘设备的需求。

为了解决采用和部署边缘上的深度学习的挑战,人们越来越重视探索在多个不同方向上生成高效深度神经网络的策略。已经探索的一个方向是,首先设计一个复杂但功能强大的深度神经网络,然后执行精度降低,其中设计的深度神经网络的内部组件表示为定点或整数精度精度,2位精度,甚至1位精度。这种方法的一个局限性是,在精度和精度之间可能存在很大的权衡,并且需要在目标处理器上提供特殊的降低精度的加速支持。同样,科学家们已经探索首先设计一个复杂的策略,但强大的深层神经网络模型,然后利用压缩,在传统的数据压缩方法,如体重阈值、散列,和哈夫曼编码,以及师生策略涉及更大的教师网络培训一个较小的学生网络。

针第二种:方向是深度神经网络本身的基础设计,这是近年来被大量探索的方向,通过引入架构设计原则来实现更高效的深度神经网络架构。例如,He等人引入了瓶颈模块级宏观架构,首先使用1*1的卷积层来降低进入3*3卷积层的维度,然后在3*3卷积层之后再使用1*1的卷积层来恢复维度。因此,这在输入/输出维数较低的3*3卷积层上造成了瓶颈,并使更深层次的架构能够以较低的计算和内存复杂度构建。Iandola等人的[14]以压缩扩展宏架构的形式引入了一个替代的瓶颈模块级宏架构,该宏架构由一个1*1压缩卷积层和一个由1*1和3*3卷积滤波器组合组成的扩展卷积层组成。霍华德等人杠杆的概念切除可分离旋转减少计算和内存需求,在传统的卷积层被一个映像(i)组成的一个变体切除卷积层在一个卷积滤波器应用于每个输入通道,紧随其后的是(2)1 1卷积层执行点态分布计算新特性通过输入通道的线性组合。此外,Sandler等人不仅利用了深度可分卷积,还引入了较薄的线性瓶颈层,进一步提高了建模性能和效率之间的平衡。

最近,研究人员采取的一个有趣的新方向是探索完全自动化的网络架构搜索策略,用于算法设计用于边缘和移动场景的高效深度神经网络。值得注意的策略包括MONAS和ParetoNASH,其中高效深度神经网络的搜索被表述为一个多目标优化问题,目标包括模型大小和精度,分别通过增强学习和进化算法求解。最后,Tan等人提出了一种基于强化学习的网络架构搜索策略,用于搜索高效的深度神经网络架构,为特定的移动硬件提供最佳的精度和延迟之间的权衡。

正如所看到的,针对边缘和移动场景的高效深度神经网络的直接设计最近的重点主要落在两个极端之一:(i)通过设计原则手工制作,或(ii)完全自动化的网络架构搜索。在这项研究中,我们采取了一个有趣的新方向,并对人机协同设计方法的有效性进行了更深入的探索,以创建高效的深度神经网络人驱动原则的网络设计原型和机器驱动的设计探索之间的协作。这种更平衡的方法充分利用了人类的经验和创造力的细致和原始的速度的机器。通过创建AttoNets(一组用于设备边缘深度学习的高效深度神经网络),证明了人机协作设计的有效性。 

本文组织如下。第二部分详细描述了为边缘和移动场景创建高效深度神经网络的人机协作设计策略。第3节介绍了通过提出的设计策略创建的AttoNets家族的模块化宏观体系结构和微观体系结构设计。第4节给出并讨论了对象识别、实例分割和对象检测任务的实验结果,第5节给出了结论。

2 方法

本文所提出的人机结合的深度神经网络设计策略主要包含两个阶段:i)基于规则的网络设计原型开发,ii)机器驱动的设计探索。首先,本文作者基于设计原则对网络级的宏观架构进行设计,并搭建一个人为设定的针对视觉领域的初始设计原型。之后,作者通过机器驱动的设计探索,基于人为设定的初始原型以及人为规定的设计要求对模块级别的宏观结构以及微观结构设计进行开发,并产生一系列备选的好笑深度神经网络模型。通过对两个阶段进行平衡,使用者能够在设计约束和要求的规定下获得针对神经网络架构的创造性解决方案。

2.1 基于规则的网络设计原型开发

由于已有研究已经针对模型的效率进行了大量的探索,本文作者在这一阶段将主要关注点集中在如何使用更广泛的网络层级宏观架构来提升模型效果。尽管这一目标似乎与提升模型效率相违背,但作者认为,机器更善于通过降低模型规模来提升效率,因此提升模型效率的工作将主要在第二阶段由机器驱动的方法完成。

在本文中,作者使用了两个已有文献中提到的在视觉领域的人工驱动的设计原则,这两个原则主要针对视觉领域中物体识别的任务提出,并主要关注如何设计高效的深度神经网络。在物体识别任务中,模型需要判断给定场景所包含的一系列对象所属的种类。针对该任务,作者使用的第一个网络设计模型原则为大幅增加网络的深度,该原则在许多已有研究中已经进行了详细阐述。这一原则是的模型能够对更深层次的特征嵌入进行学习

这一原则的一大问题在于,当模型过深时,模型训练将变的非常困难。为了解决这一问题并提高模型的准确率,作者湿了了第二个设计原则,即在网络中增加捷径连接(shortcut connections)。通过在残差架构中增加捷径,即使在深层的网络中,包括随机梯度下降在内的迭代优化方法也将更加有效。

通过使用上述两个设计原则,人工驱动的初始设计原型能够通过模块设计提供一个深层卷积神经网络的架构,网络中间的表示层被放置在网络模块当中,且模块中包含捷径结构。基于已有研究,作者将初始设计原型的模块数量设定为16,使得后续机器驱动的网络设计能够具有较大的灵活性。在中间表示层之后,作者添加了一个平均池化层,之后是一个全连接层。

最后,作者添加了一个 softmax 层来得到输入图片所属的类别。图1展示了人工驱动的初始设计原型。正如在之前提到的,实际的宏观结构和微观结构设计都将由机器驱动的方法来完成。

2.2 机器驱动的设计探索

这一步中,作者基于人工设计的初始原型、数据和任务目标,通过机器驱动的方法,对模块级别的宏观架构和微观架构设计进行了探索。通过这一步骤,作者得到了一系列备选的高效的神经网络。另外,作者在此步骤中也考虑了人为设置的设计要求和约束,使得机器驱动的设计所得到的深度神经网络能够适用于边缘和移动场景下基于设备的物体识别任务。

在本研究中,作者通过细粒度的生成性综合体(generative synthesis)来完成了机器驱动的设计探索过程。生成性综合体的高度灵活性使得其非常适用于人机结合的高效深度神经网络设计。

生成性综合体的概念可以简单概括如下。其目标为学习一个生成器 G ,该生成器能够基于种子集合 S 生成深度神经网络,该过程通过最大化一个全局效果函数 U 实现,并能够满足指示函数 1r(·) 所定义的定量要求。公式如下:

见论文。。。

通过对上述公式进行迭代优化,作者得到了一系列满足指示函数的生成器,并进一步利用这些生成器构造了一系列高效深度神经网络,这些神经网络均满足约束要求,仅在模型准确率和效率间的权衡上存在差异。

在本文中,作者依据已有研究的方法定义了效果函数 U ,使得该函数能够同时衡量模型效果、计算复杂性以及架构复杂性。另外,作者将指示函数设置为在 ImageNet50 上的最高验证准确率不低于 65% ,以使得本文所得到的网络的效果不低于包括 MobileNet-V1 和 ShuffleNet-V2在内的目前最优模型。

3 AttoNet 架构设计

在本部分钟,作者首先描述了机器驱动设计探索阶段所得到的模块级宏观架构的设计情况,之后详细介绍了基于本文方法得到的四种 AttoNets 网络的细节。

3.1 模块层级的微架构

图2展示了两个基于本文方法得到的模块级宏观架构设计。这两种类型的主要差别在于,B 类型在捷径中包含了一个额外的 1*1 的卷积层,并在卷积层中增加了 stride 。如表1所示,在模型所生成的网络中,每一个模块的宏观架构设计都不尽相同。下文展示了结构中所包含的一些有趣的现象。

 

逐点压缩。 两个网络都在第一个构件中使用了一个包含 1*1 的卷积核的压缩层。这种结构能够有效降低输入到下一层的维度,使得网络架构和计算的复杂性都大幅减少。

使用包含 stride 的卷积组。 两个网络都在压缩层后使用了多组 3*3 的卷积核。通过使用卷积组而非单个卷积层,网络能够将压缩层的输出特征划分为更小的组并进行独立的处理,因此能够进一步降低计算和架构的复杂度。特别的,第二种网络在卷积组中包含了 stride ,而第一组网络没有使用,stride 的使用能够进一步降低复杂度。

背靠背的逐点卷积。 两个网络结构都使用多个了背靠背的 1*1 卷积层,其中第一个 1*1 的卷进层能够将卷积组中的信息相结合,第二个 1*1 卷积层则作为解压缩层,恢复模块所对应的输出维度。因此,这一方式能够使得网络在复杂度降低的情况下仍然保持甚至提升其效果。

3.2 创建 AttoNet网络架构

作者依据本文方法创建的4个 AttoNet 网络的情况如表1所示。与之前的边缘计算网络不同, AttoNets 包含了一个69层的深度卷积神经网络架构。通过观察 AttoNets 网络的结构,作者得到了如下有趣的发现。第一,不同网络间的微架构存在很大差异。第二,架构的整体复杂度从 AttoNet-A 到 AttoNet-D 逐渐降低,与本文中的机器驱动的设计探索阶段所采用的策略一致。第三,网络内部同样存在微观架构和宏观架构的差异。网络间和网络内部架构的多样性仅能通过细粒度的机器驱动的设计探索来实现。

4 结果与讨论

本文在i)物体识别和ii)实体分割与物体探测这两个任务中对 AttoNets 的效果进行了评估,这两个任务是边缘和移动场景最常见的任务类型。下文展示了实验设置及结果。

4.1 物体识别

作者在 ImageNet50 数据集上对 AttoNets的最高准确率进行了评估,该数据集是最近构建的一个新数据集,其区别于 ImageNet 数据集,并专门针对基于设备的移动视觉应用评估。作者将 AttoNet 和目前效果最优的三种针对边缘和移动应用所设计的深度神经网络(MobileNet-V1, MobileNet-V2, ShuffleNet-V2)进行了比较。实验结果如表2所示。可以发现, AttoNet 在准确率和复杂性指标上均有所提升。

5 结论

本文提出了一种人机结合的方法以设计在设备上使用的高效深度神经网络。通过结合人工驱动的基于原则的网络设计原型开发,以及机器驱动的设计探索,人们能够在满足人为设定的网络宏观架构的基础上,得到机器设计的模块级宏观架构和微观架构设计。实验结果表明,使用本文方法所得到的 AttoNets 网络能够在显著减少参数量和计算开销的情况下,达到与目前网络相当的准确率。

在未来的研究中,作者计划进一步探究在其他任务中这一人机结合的设计方法的有效性,例如视频动作识别,视频姿势检测,图片捕捉,超分辨率图片重建,以及图片生成。另外,作者认为,不同的人为设置的设计要求的组合对网络生成的影响也非常值得探讨。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章