文章目录
论文《 DeepMaker: A multi-objective optimization framework for deep neural
networks in embedded systems》-2020-**
论文链接
一、摘要及主要贡献
1.1 摘要
深度神经网络(DNNs)是一种计算密集型的学习模型,在广泛的领域中越来越适用。由于其计算复杂性,DNNs受益于利用自定义硬件加速器来满足性能和响应时间以及分类精度限制的实现。
在本文中,论文提出了DeepMaker框架,旨在自动为嵌入式设备设计一套高度鲁棒的DNN架构,作为离传感器最近的处理单元。深度制造者探索和修剪了设计空间,以找到改进的神经结构。论文提出的框架利用了多目标进化方法,利用了受密集架构的修剪设计空间的启发。DeepMaker将精度和网络大小因子视为两个目标,以建立一个高度优化的具有有限计算资源预算的网络拟合,同时提供一个可接受的精度水平。
与CIFAR-10数据集上的最佳结果相比,由DeepMaker生成的网络呈现了高达26.4倍的压缩率,而只损失了4%的精度。此外,DeepMaker将生成的CNN映射到可编程的商品设备上,包括ARM处理器、高性能CPU、GPU和FPGA
1.2 主要贡献
开发了一种多目标神经进化方法,以发现在精度和网络大小方面接近最优的DNN架构。
论文将网络剪枝方法应用于DeepMaker设计的优化神经网络架构上,以获得更高层次的网络压缩率。
支持多层感知器(MLP)和卷积神经网络(CNN)模型,符合从数学函数到图像分类的各种应用所需的精度。
可自适应地查找有关资源预算和执行时间约束的最佳体系结构。然后,将生成的网络映射到不同的平台上来评估DeepMaker的适用性是论文最后的贡献。
二、论文相关
2.1 深度神经网络体系结构的自动设计
1.超参数优化方法简介
如网格搜索、梯度搜索、随机搜索(RS)和基于贝叶斯优化的方法等。
2.强化学习
q-learning代理探索并利用了具有贪婪策略和经验回放的模型架构空间。尽管强化学习模型取得了成功,但它们速度太慢,在训练和预测步骤中都需要大量的计算资源。
3.基于进化的方法
通过遗传进化方法,构建一个自动设计图像分类CNN架构的系统。
但是它们并不能保证它们所提出的优化方案的收敛性。
2.2 神经网络剪枝
通过删除网络中所有不必要的滤波器及其连接特征映射,降低了计算成本。
虽然解决方案似乎合理,但这项工作需要大量额外的额外计算,压缩比不满意。
2.3.自动代码近似化框架
这些代码的近似框架的主要思想是为代码的一个子部分生成一个DNN,然后在自定义硬件平台上加速生成的DNN。然而,它们的主要弱点是N网络架构选择过程。
三、论文方法部分
DeepMaker使用两种网络优化解决方案:1)设计空间探索来设计网络架构,2)神经网络修剪来压缩模型大小
DeepMaker框架由前端层和后端层组成。前端负责生成优化的DNN,而后端层则处理硬件配置和映射。
该网络的底层模板架构如图3所示。生成的网络包括用于特征提取的back-to-back Condense
Blocks,而每个层包括多个卷积层。每个卷积块分别包括批归一化、激活函数、二维卷积和Drop-out层。最终分类采用最大池和完全连接层作为SoftMax激活功能的输出层。
3.1 设计探索空间
为了优化CNN架构,卷积包括卷积层数、每层大小和滤波器大小在内的卷积参数应该被视为网络优化超参数。
表1列出了DNNs的主要体系结构超参数。为了减少搜索空间,每个超参数的范围都是有限的。
网络超参数使用直接编码表示为一系列基因组,这些基因的重组发生与一点交叉操作如图4所示。神经结构探索算法的四个步骤解释如下:
1.在生成一个大小为N的随机初始父种群Pt后,深度制造者DeepMaker基于父种群中每个基因组的超参数生成一个网络模型。然后,DeepMaker训练每个模型,以计算所有模型的网络精度和网络大小。在本文中,利用轮盘赌车轮选择方法,因为给所有可用的个人选择机会。
2.填充Ut的后代将通过使用GP创建,包括交叉和突变步骤。
3.NSGA-II对Ut和Pt的组合进行分类,以找到N个可接受的个体的下一代父母群体,它们在准确性和网络大小方面不能相互占主导地位。
4.此过程将持续到达到预定义的最大迭代数为止。
算法1总结了整个搜索过程。与DenseNet网络相比,DeepMaker生成更准确的网络,具有关于后端平台资源限制的优越灵活性。为了提高最佳发现的速度,论文监测了所有前几代人的所有基因组。前端层的输出是在具有不同网络精度和大小的帕累托曲线上改进网络体系结构的一种依据。
3.2 神经网络剪枝
为了选择适当的过滤器进行修剪,已经采用了k均值算法。首先,剪枝算法采用k-均值算法来强制执行过滤器以进入特定的集群。
其次,它将保留最靠近集群中心的过滤器,并修剪每个集群中的其他过滤。
然后,对修剪后的模型进行微调,以恢复精度。如果滤波器的大多数输出为零,则可以选择滤波器为可忽略的滤波器。在算法2中,给出了剪枝过程的伪代码。
四、试验部分
- 设计搜索空间
DeepMaker只使用16个时期搜索最优网络架构,因为这个时代数足够决定,因为我们在16个时代后获得了大约90%的最大可实现精度。
网络大小与推理时间的关系
帕累托边界图
将DeepMaker与表2所示的其他前沿方法的错误率和可训练参数总数的有效性进行了比较
- 神经网络修剪
说明了网络剪枝对最密集的架构的精度级别的影响
- 硬件实现
为了验证DeepMaker的实际影响,使用了四种流行的硬件平台具体情况详见表3。
与ARM平台上的网络规模和准确性相比,DeepMaker生成的网络的加速。
与CPU平台上的网络规模和准确性相比,DeepMaker生成的网络的加速。
与FPGA平台上的网络规模和准确性相比,DeepMaker生成的网络的加速。
与GPU平台上的网络规模和准确性相比,DeepMaker生成的网络的加速。
五、总结
DeepMaker将网络大小和网络精度视为两个因子,利用多目标进化的思想,搜索出网络精度和大小都可以接受的轻量级网络。