本文经AI新媒体量子位(公众号ID:QbitAI)授权转载,转载请联系出处。
在相同准确率下,实际参数量的压缩,相对之前方法最大可以提高超120倍。
这就是滴滴实习生提出的自动结构化减枝压缩算法框架带来的性能提升,名为AutoCompress。
核心在于自动化的去寻找深度模型剪枝中的超参数,去除模型中不同层的参数冗余。
在CIFAR和ImageNet数据集的大量测试表明,AutoCompress的效果显著超过各种神经网络压缩方法与框架。
这一研究也被AAAI2020接收。
研究人员表示,这一研究能替代人工设计的过程,并实现超高的压缩倍率,满足嵌入式端上运行深度模型的实时性能需求。
他们是如何实现的?我们下面一一解读。
自动化设置深度模型剪枝中的超参数
近年来,随着深度神经网络模型性能不断刷新,模型的骨干网络参数量愈发庞大,存储和计算代价不断提高,从而导致难以部署在资源受限的嵌入式平台上。
深度神经网络模型压缩技术,成为解决这一问题不可或缺的关键,也成为近年来研究热点之一。
也出现了不少方法,其中之一便是结构化剪枝(structured pruning),能够在平台层面上,解决硬件执行效率低,内存访问效率差,计算平行度不高问题,从而受到了学术界与工业界的重视。
但它也有“硬伤”,在算法实现过程中涉及到到大量的超参数设置。比如如何确定模型的压缩维度,或者如何确定模型中每层的压缩比例等等。
这都需要专家们一点点“掉头发”地去设计指导,而且人工上去设计这些超参数的过程冗长且复杂。
效果也不一定好,毕竟这在很大程度上还依赖于相关人员的参数调节经验。
然后就有研究人员心思开始活泛起来了,能不能自动设置超参数?如果实现了,将能够大幅度提高算法实现效率,想想都挺让人激动。
于是就有人开始干起来了,比如MIT、CMU和谷歌的研究学者们提出了一种名为AMC的方法,利用了深度增强学习(Deep Reinforcement Learning (DRL))的方法去决策每层的剪枝比例。
虽然实现了自动化调参的设想,但也有一些局限性。
一方面,这个研究只采用了单一的输出通道(filter)剪枝维度;另外一方面,为了得到稀疏化模型,其所采用的剪枝方法仅仅是在模型训练过程中引入一个静态的正则项。
但更深层次的局限性在于,其所采用的基于DRL框架的剪枝方法,本质上与剪枝问题难以兼容。在结果中,最高压缩率只有非结构化(non-structured)的5倍压缩倍率。
滴滴的研究中,改进了这些不足,提出了一个通用流程(generic flow),专门用于神经网络权重剪枝问题超参数设置自动化过程。
整体上,一共分为4步。先是行为抽样(步骤1),然后快速评估(步骤2),接着确定决策(步骤3),最后是剪枝操作(步骤4)。
基于上述通用流程,并针对之前方法的局限性,通过综合现有的深度神经网络与机器学习框架,他们实现了目前最高效的深度神经网络自动化结构化剪枝的通用框架,并命名AutoCompress。
实际参数量的压缩,最大能提高120多倍
那AutoCompress是如何工作的呢?论文中提到了三大新的设计:
(1)提出混合型的结构化剪枝维度;(2)采用高效强大的神经网络剪枝算法ADMM(交替乘子优化算法)对训练过程中的正则项进行动态更新;(3)利用了增强型引导启发式搜索的方式进行行为抽样。
基于这些新设计,他们提出的框架是这样的:
整体上来说,AutoCompress框架进行模型自动化剪枝主要有两个步骤,先是通过基于ADMM算法的结构化剪枝,得到权重分布结构性稀疏化的模型;
然后通过网络结构净化(Purification)操作,将ADMM过程中无法完全删除的一小部分冗余权重找到并删除。
值得注意的是,这两个步骤都是基于相同的启发式搜索机制。
举例来讲,给定一个原始模型,他们会设置两种目标函数——根据权重数量设置或根据运算量(FLOPs)设置。
搜索过程进行若干轮,比如第一轮目标为压缩两倍权重数量,第二轮为压缩四倍权重数量。在每一轮搜索过程中,首先初始化一个行为(超参数),然后每次对行为进行一个扰动(超参数的小幅变化)生成新的行为。
根据模拟退火算法原理,评估两个行为,如果新的行为评估结果优于原结果则接受该行为,如果新的行为评估结果劣于原结果则以一定概率接受该行为。
每一轮算法中的温度参数T会下降,直到T下降到某个阈值后即停止搜索。最后,根据搜索得到的超参数,对神经网络进行结构化剪枝操作。
效果如何?他们也进行了测试:
在VGG-16在CIFAR-10数据集上,结构化剪枝压缩率高达52.2倍,无精度损失,在 Samsung Galaxy S10智能手机上测试(使用代码生成优化版编译器),其运行速度为2.7ms。
ResNet-18在CIFAR-10数据集上更是达到了54.2倍结构化剪枝压缩率无精度损失。
相比之前的方法,如果考虑到ResNet-18与ResNet-50本身的大小差距,可以在准确率有所上升的情况下比之前的方法减小120倍权重参数。
在ImageNet数据集上,VGG-16达到了6.4倍结构化压缩率,精度损失仅为0.6%,ResNet-18达到了3.3倍的结构化压缩率,无精度损失。
而且, AutoCompress框架也可以应用于非结构化剪枝,其压缩结果使ResNet-50在ImageNet数据集上可以做到9.2倍无精度损失的压缩,更能达到17.4倍的压缩率,仅损失0.7%的精度。
所以,他们得出结论,与其他方法相比,AutoCompress的效果超过各种神经网络压缩方法与框架,得到的高效神经网络模型可以在嵌入式移动系统中实现实时推理运算。
滴滴AI Lab实习生
研究的第一作者,名为刘宁,是美国东北大学的在读博士生,师从美国东北大学王言治教授。
高中时曾获得北京市高中物理竞赛二等奖,本科是电子信息工程专业,曾获得全国大学生物联网竞赛三等奖。
2015年在雪城大学获得硕士学位。这次介绍的研究,是他2019年在滴滴实习时的成果之一,实习导师是滴滴智能控制首席科学家唐剑。
在滴滴实习之前,他也在网易、360实习过。
根据滴滴的报道,他也谈到了自己的研究规划:希望继续在深度学习模型压缩、设计上深入研究,把学习到的知识和研究成果应用到现实场景。
目前,这个框架已经在滴滴已经得到了实际有效应用。