选自arXiv
作者:李大为、Xiaolong Wang、Deguang Kong
机器之心编译
参与:刘晓坤、李泽南
如何让手机等移动端设备运行神经网络一直是科研人员努力的方向。三星研究院发表论文提出了全新的针对移动设备的深度学习模型加速框架:DeepRebirth,它通过「轻量化」现有连续和平行的非张量层与张量层达到压缩模型的效果。实验表明,DeepRebirth 在 GoogLeNet 上可以实现 3-5 倍的加速,同时也节省了大量计算资源。该论文已入选即将在 2 月份举行的 AAAI 2018 大会。
近年来,很多应用深度学习技术的计算机视觉任务例如图像分类和目标检测都取得了重大突破。越来越多的移动设备应用了深度学习以提供准确、智能和有效的服务。然而,由于计算资源有限,深度学习模型在移动设备上的执行速度仍然是很多应用部署的瓶颈。在这篇论文中,研究人员重点关注于提高深度学习模型在移动 CPU 上的执行效率。一方面,大部分的移动设备都配置了移动 GPU,然而,相较于移动端 CPU,前者所获得的加速效果非常有限,更别提由不同的移动 GPU 架构带来的复杂性。另一方面,主流深度学习框架例如 Caffe 和 TensorFlow 目前只支持在移动设备上的 CPU 实现,因此实现高效的 CPU 模型更有价值。目前在实际应用中,在三星 Galaxy S5(参见表 4)上使用 GoogLeNet 识别一张图像需要消耗超过 651ms 的时间,以及 984mJ 的能量(参见表 5)。一个有效的解决方案是通过应用广泛的深度学习框架(例如 GoogLeNet 和 ResNet)结合对不同类型的层的深度模型加速,从而最小化准确率的损失。
在这篇论文中,研究人员发现非张量层在模型执行过程中消耗了太多的时间(参见图 2),其中张量层和非张量层基于该层是否包含张量类型的参数而定义。例如,全连接层和卷积层是张量层,因为它们分别包含 2D 和 4D 张量类型的权重参数。受此启发,这篇论文提出了 DeepRebirth,一种新的深度学习模型加速框架,可以显著减少非张量层上的执行时间,其中重点发展了两个方向:(a)流程轻量化(streaming slimming);(b)分支轻量化(branch slimming)。
图 1:本文提出的 DeepRebirth 模型加速管道的图示。DeepRebirth 将一个已训练的深度学习模型(图左)优化为一个加速「slim」(轻量化)模型(图右)。该优化过程包括两种操作:流程轻量化,用于合并非张量层(即池化层和归一化层)到它们底部的卷积层(如浅蓝色框内所示);分支轻量化,用于合并非张量分支、小尺寸卷积核(例如 1×1)的卷积分支到大尺寸卷积核的卷积分支(如浅黄色框内所示)。新生成的层被称为 slim 层。
图 2:每个层的时间消耗分解。非张量层(例如 dropout、ReLU、LRN、softmax、池化层,等)以红色字体表示,张量层(例如,卷积、内积)以黑色字体表示。
表 1:DeepRebirth 和已有的加速方法在三星 Galaxy S6 移动设备 CPU 上的运行效果对比。
3. DeepRebirth
图 3:流程轻量化:以 GoogLeNet 为例,运行时间是在三星 Galaxy S5 的 Caffe 中的 bvlc googlenet 的模型上测量的。图左:卷积层(绿色)、LRN(红色)、池化层(红色);图右:单个卷积层(绿色)。即将图左的三个层合并为图右的单个卷积层(即 slim 层)。
图 4:分支轻量化:以 GoogLeNet 为例,运行时间是在三星 Galaxy S5 的 Caffe 中的 bvlc googlenet 的模型上测量的。图左:有四个并行分支,分别是卷积层、卷积层+卷积层、卷积层+卷积层、卷积层+池化层。图右:有两个并行分支,分别是卷积层+卷积层、卷积层+卷积层。即将图左的四个分支合并为图右的两个分支。
4. 评估
4.1. GoogLeNet
表 3:分别轻量化每个层所得的 GoogLeNet 准确率。
表 4:在 GoogleNet 的所有层上使用不同加速方法获得的前向传播消耗时间的分解。
表 5. GoogLeNet 在不同移动设备上使用不同加速方法的运行时间比较(包括 SqueezeNet)。
表 6. GoogLeNet 存储用量 vs. 能耗 vs. 运行时内存用量
4.2. AlexNet 和 ResNet
表 7. AlexNet 结果(准确率 vs. 速度 vs. 能耗)
表 8.ResNet(conv1-res2a)上的结果(准确率 vs. 速度)。在每一步上,我们都将「BatchNorm」和「Scale」层合并到底部的卷积层。
论文:DeepRebirth: Accelerating Deep Neural Network Execution on Mobile Devices
论文地址:https://arxiv.org/pdf/1708.04728.pdf
摘要:由于计算复杂性和内存紧张,在移动设备上部署深度神经网络是一个具有挑战性的任务。当前的模型压缩方法(如使用 SVD 进行矩阵逼近)不能满足实时处理的要求。本研究第一次发现了问题的瓶颈在于非张量层(有类张量参数),如池化层和归一化层。因此,我们设计了一个全新的加速框架:DeepRebirth,它通过「轻量化」现有连续和平行的非张量与张量层达到压缩模型的效果。层压缩是通过不同的子结构实现的:(a)通过垂直合并连续的非张量和张量层来使进行流程压缩;(b)通过横向合并非张量和张量分支来减少分支。这些不同的优化操作可以加速模型执行速度并显著减少运行时的存储消耗。为了最大限度地减少准确率损失,新生成层中的参数是基于理论分析和实际验证进行精细调节完成的。在实验中,DeepRebirth 在 GoogLeNet 上实现了 3-5 倍的加速,同时也节省了同样比例的算力,而 ImageNet top-5 分类任务的识别精度只下降了 0.4%。此外,在三星 Galaxy S6 上,DeepRebirth 的图片平均模型转发时间仅需要 65ms,top-5 准确率为 86.54%,内存用量减小了 2.5 倍。
其它 AAAI 2018 论文:
本文为机器之心编译,转载请联系本公众号获得授权。