深度神经网络压缩与加速总结


参考文献:纪荣嵘, 林绍辉, 晁飞,等. 深度神经网络压缩与加速综述[J]. 计算机研究与发展, 2018, 55(09):1871-1888.

1. 深度神经网络压缩与加速的任务

(1)加速——卷积层
(2)压缩——全连接层
压缩和加速深度神经网络是两个不同的任务,具体来说卷积神经网络(Convolutional neural networks,CNNs)分2种类型的计算层,即卷积层和全连接层:1)卷积层——计算耗时最大的层,也是卷积神经网络能够通过获得高层语义信息重要层,在卷积层内,可以通过权值共享,减少了对权值的大量存储。2)全连接层——不同于卷积层的局部感知,在全连接层中,每一个输出单元都与所有输入单元相关,通过密集的权值进行连接,因此需要大量的参数。因此卷积层与全连接层内在的本质区别在于:通常把卷积层的计算加速和全连接层的内存压缩认为是2种不同的任务。这2类计算层之间又是紧密联系的,卷积层为全连接层提供分层的高层特征,全连接层通过分类指导卷积层的高判别力特征提取。

2. 模型压缩与加速方法

(1) 参数剪枝

主要通过设计判断参数重要与否的准则,移除冗余的参数。网络/参数剪枝是通过对已有的训练好的深度网络模型移除冗余的、信息量少的权值,从而减少了网络模型的参数,进而加速模型的计算和压缩模型的存储空间。不仅如此,通过剪枝网络,能防止模型过拟合。以是否一次性删除整个节点或滤波为依据,参数剪枝工作可细分为非结构化剪枝和结构化剪枝,非结构化剪枝考虑每个滤波的每个元素,删除滤波中元素为0的参数,而结构化剪枝直接考虑删除整个滤波结构化信息。

(2) 参数共享

主要探索模型参数的冗余性,利用Hash或量化等技术对权值进行压缩。参数共享是通过设计一种映射将多个参数共享同一个数据。量化作为参数共享的最直接表现形式,得到广泛的应用。此外,Hash函数和结构化线性映射也可以作为参数共享的表现形式。
参数量化压缩与加速深度网络模型主要的核心思想是利用较低的位(bit)代替原始32b浮点型的参数(也可记为全精度权值(full-precision weight))。

(3) 低秩分解

利用矩阵或张量分解技术估计并分解深度模型中的原始卷积核。基于低秩分解的深度神经网络与加速的核心思想是利用矩阵或张量分解技术估计并分解深度模型中的原始卷积核。卷积计算是整个卷积神经网络中计算复杂度最高的计算操作,通过分解4D卷积核张量,可以有效地减少模型内部的冗余性。此外,对于2D的全连接层矩阵参数,同样可以利用低秩分解技术进行处理。

(4) 紧性滤波设计

主要通过设计特殊的结构化卷积核或紧性卷积计算单元,减少模型的存储与计算复杂度

(5) 知识蒸馏

主要利用大型网络的设计,并将其知识迁移到紧性蒸馏的模型中。
如表1所示,简要介绍了上述主流的5种压缩与加速神经网络的方法,一般来说,除了紧性卷积核的设计只能用于卷积核外,剩余的4种均能应用于卷积层和全连接层。低秩分解与紧性卷积核的设计能够在CPU/GPU下简单实现端对端(end-to-end)训练,然而参数共享,参数剪枝需要多步或逐层完成压缩与加速任务,关于训练过程中是否需要重新开始训练还是依赖于预训练模型的问题上,参数共享、低秩分解都较为灵活有效,既能适应重新训练也能适应于预训练模型。然而紧性卷积核的设计和知识蒸馏只能支持重新训练,另外参数剪枝只能依赖于预训练模型。从上述方法能否相应组合方面,紧性卷积核的设计方法和知识蒸馏还不能结合其他方法,参数剪枝与参数共享或低秩分解方法结合甚密,通过2种方法的互相融合,能够在一定程度进一步压缩与加速深度网络。
在这里插入图片描述

3. 深度神经网络压缩与加速算法相关工作

(1) 基于参数剪枝的深度神经网络压缩与加速

1) LeCun等人[1]提出了最优化脑损失(optimal brain damage)算法,大大稀疏化多层网络的系数,同时保证模型预测精度依然处于零损失或最小量化损失状态。其实这种学习方式模仿了哺乳动物的生物学习过程,通过寻找最小激活的突触连接,然后在突触删减过程中大大减少了连接个数。
2) 利用相似的思想,Hassibi和Stork[2]提出了最优化脑手术(optimal brain surgeon)剪枝策略,利用反向传播计算权值的二阶偏导信息(hessian矩阵),同时利用此矩阵构建每个权值的显著性得分,从而删除低显著性的权值。
3) 不同于最优化脑手术剪枝策略,Srinivas等人[3]提出了不依赖于训练数据(data-free pruning)和反向传播,直接构建并排序权重的显著性矩阵,删除不显著冗余的节点。由于不依赖于训练数据及后向传播计算梯度信息,因此该网络剪枝构成较为快速。
4) 韩松等人[4,5]提出了一种基于低值连接的删除策略(low-weight connection pruning),该剪枝方法包括3个阶段,即训练阶段、删除阶段、重训练阶段。第1阶段通过正常训练,学习重要的连接;第2阶段通过计算权值矩阵的范数,删除节点权重的范数值小于指定的阈值的连接,将原始的密集网络(dense network)变成稀疏网络;第3阶段通过重新训练稀疏网络,恢复网络的识别精度。以上剪枝方法通常引入非结构化的稀疏连接,在计算过程中会引起不规则的内存获取,相反会影响网络的计算效率。
5) 近几年,基于结构化剪枝的深度网络的压缩方法陆续被提出,克服了非结构化稀疏连接导致的无法加速问题[1,2,3,4,5],其核心思想依靠滤波显著性准则(即鉴定最不重要的滤波的准则),从而直接删除显著性滤波,加速网络的计算。
6) 2016年,Lebedev等人[6]提出在传统的深度模型的损失函数中加入结构化的稀疏项,利用随机梯度下降法学习结构化稀疏的损失函数,并将小于给定阈值的滤波赋值为0,从而测试阶段直接删除值为0的整个卷积滤波。
7) 温伟等人[7]通过对深度神经网络的滤波、通道、滤波形状、网络层数(filters,channels,filter shape,layer depth)的正则化限制加入到损失函数中,利用结构化稀疏学习的方法,学习结构化的卷积滤波。
8) Zhou等人[8]将结构化稀疏的限制加入目标函数中,并利用前向后向分裂(forward-backward splitting)方法解决结构稀疏化限制的优化问题,并在训练过程中直接决定网络节点的个数和冗余的节点。另外,近年来,直接测量滤波的范数值直接判断滤波的显著性也相继被提出[9],例如:直接删除给定当前层最小L1范数的滤波,即移除相应的特征图(feature map),然后下一层的卷积滤波的通道数也相应地减少,最后通过重训练的方式提高删除后模型的识别精度。由于大量的ReLU非线性激活函数存在于主流的深度网络中,使得输出特征图高度稀疏化。
9) Hu等人[10]利用此特点,计算每个滤波所对应输出特征图的非零比列,作为判断滤波重要与否的标准。NVIDIA公司Molchanov[11]等人提出一种基于全局搜索显著性滤波的策略,对需要删除的滤波用0值代替,并对目标函数紧性泰勒公式展开(taylor expansion),判断使目标函数变换最小的滤波为显著滤波。通过卷积计算方式,可以建立当前层的滤波与下一层的卷积滤波的输入通道存在一一对应关系。
10) 利用通过卷积计算方式,可以建立当前层的滤波与下一层的卷积滤波的输入通道存在一一对应关系这一特点,Luo等人[12]探索下一层卷积核的输入通道重要性,代替直接考虑当前层滤波,并建立一个有效的通道选择优化函数,从而删除冗余的通道以及相应的当前层的滤波。

(2) 基于参数共享的深度神经网络压缩与加速

1) 龚云超等人[15]及Wu等人[16]利用向量量化的技术,在参数空间内对网络中的权值进行量化。
2) 近年来,利用低比特位的量化被提出用于加速与压缩深度神经网络。Gupta等人[17]将全精度浮点型参数量化到16b固定长度表示,并在训练过程中使用随机约束(stochastic rounding)技术,从而缩减网络存储和浮点计算次数。使用动态固定点(dynamic fixed point)量化。在量化AlexNet网络时,几乎可以做到无损压缩。
3) Ma等人[18]将权值和激活分别量化到8b和10b,且没有利用微调权值,随后Gysel等人[19]利用微调,将权值和激活全部量化到8b。
4) 为了更大程度地缩减内存和浮点计算次数,对网络参数进行二值化表示已被大量提出。其主要思想是在模型训练过程中直接学习二值权值或激活。BinaryConnect(BC)[20]通过直接量化权值为-1或1,只需要加和减计算,减少了卷积计算,但因激活为全精度,无法大幅度加速网络计算。为此,通过同时量化权值和激活为-1和1,Courbariaux等人[21]提出了BNN,将原始的卷积计算变成Bitcount和XNOR,大幅度加速和压缩深度网络时(如AlexNet),分类精度大大降低。
5) 为了减少精度的丢失,Rastegari等人[22]分别提出了BWN和XNOR-Net引入了尺度因子(Scale factor),用于缩小量化误差,并保存第一层和最后一层的权值和输入为32b的浮点型。同时,改变卷积核正则化的顺序,即先执行正则化、后卷积,减少了激活的动态幅度范围。伴随着这些改变,BWN和XNOR-Net分别获得了相对于原始AlexNet0.8%和11%的分类错误率增加。
6) 在近期的工作中[23,24],通过增加激活的位数(大于1),并探索不同的低比特权值与激活的组合量化全精度权值和激活,提高量化后的网络在ImageNet数据集分类上的效果。但是在训练这些量化网络中会出现梯度不匹配问题。
7) Cai等人[25]通过分析权值和激活的分布情况,设计一种新的半波高斯量化器(half-wave Gaussian quantizer)及其BP过程中不同的梯度近似,提出了HWGQ-Net,有效解决了训练过程中梯度不匹配的问题。
8) 由于权值近似分布于均值为0的高斯分布,即 ,进一步考虑0作为量化后的值,可能减少量化误差。基于此思想,三元权值网络(ternary weight nets,TWN)[26]将全精度权值网络量化到三元网络(即 ,0和 ),其中 通过统计估计得到的量化值。通过改变对称的 ,训练的三元量化[27](trained ternary quantization,TTQ)引入了不同的量化(即 ,0和 ),且通过训练得到该因子,在量化AlexNet时分类错误率只增加了0.6%。
如表4所示,列出了以上量化网络的性能比较及相应的量化比特数比较结果
在这里插入图片描述

注意:“*”表示该方法不应用于第一层或最后一层,并且“↑”表示增加
9) 对于传统网络(如AlexNet和VGG-16),全连接层的参数存储占整个网络模型的95%以上,所以探索全连接层参数冗余性将变得异常重要。利用Hash函数和结构化线性映射相继提出,可用于实现全连接层的参数共享,大大降低模型的内寸开销。
10) Chen等人[28]提出了HashNet模型,利用2个低耗的Hash函数对不同的网络参数映射到相同的Hash桶中,实现参数共享。
11) Cheng等人[29]提出基于一种简单有效的循环投影方法,即利用存储量极小的循环矩阵替代原始矩阵,同时使用快速傅里叶变换(fast Fourier transform,FFT)加速矩阵的乘积计算。
12) 另外,Yang等人[30]引入了新的Adaptive Fastfood变换,重新定义了全连接层的矩阵与向量之间的乘积计算,减少了参数量和计算量。
(3) 基于低秩分解的深度神经网络压缩与加速
但由于卷积层与全连接层的分解方式不同,本文分别从卷积层和全连接层2个不同角度回顾与分析低秩分解技术在深度神经网络中的应用。
1) 在2013年Denil等人[31]从理论上利用低秩分解的技术并分析了深度神经网络存在大量的冗余信息,开创了基于低秩分解的深度网络模型压缩与加速的新思路。如图1所示,展示了主流张量分解后卷积计算
2) Jaderberg等人[32]利用张量的低秩分解技术,将原始的网络参数分解成2个小的卷积核。
3) 利用相同的策略,Denton等人[33]先寻找对卷积层参数的低秩近似,然后通过微调的方式恢复模型的识别精度。此外,利用经典的CP分解[34],将原始的张量参数分解成3个秩为1的小矩阵。相似地利用Tucker分解[35]将原始的张量分解成3个小的张量的乘积。
4) Tai等人[36]提出了新的低秩分解张量算法,同时也提出了引入批量正则化,从头开始训练有低秩限制的卷积神经网络。
5) Ioannou等人[37]利用卷积核的低秩表示,代替分解预训练的卷积核参数,并设计了一种有效权值初始化方法,从头开始训练计算有效的卷积神经网络。同样地代替直接分解预训练的模型参数。
6) 温伟等人[38]从训练的角度探讨如何更有效地聚集更多参数于低秩空间上,提出了新的强力正则化项(force regularization),迫使更多的卷积核分布于更为低秩空间中。以上低秩分解卷积核的方法,虽然减少了卷积核的冗余性,即考虑了卷积神经网络内部结构的冗余性,但全盘接受了视觉输入的全部,极大地影响了模型加速比。
7) 为此,林绍辉等人[39]提出了ESPACE卷积计算加速框架,考虑了视觉输入的冗余性,即从输入计算空间和通道冗余性两方面移除低判别性和显著性的信息。
8) 对于全连接层特定的2D矩阵形式,虽然可以通过转变2D矩阵计算为1×1的卷积计算,从而利用上述低秩分解技术进行应用,但对于特定的全连接层也存在相关低秩分解方法。
9) Denil等人[31]利用了低秩分解方法减少了深度神经网络中的动态参数个数。
10) 林绍辉等人[40]分析了直接对层内参数低秩分解压缩无法获得高精度分类效果的缺点,提出考虑层间的各种非线性关系,参数层间的联合优化,代替单层的优化,构建全局误差最小化优化方案
(4) 基于紧性卷积核的深度神经网络压缩与加速
1)2016年,SqueezeNet[41]的提出是将原始的卷积结构替换成Fire Module,即包括Squeeze层和Expand层。在Squeeze层将3×3的卷积滤波替换成1×1的卷积滤波,并在Expand层中加入1×1和3×3的卷积滤波,同时减少3×3的卷积滤波个数,减少池化(pooling),从而简化网络复杂度,降低卷积网络模型参数的数量,同时也达到AlexNet识别精度。最终的模型参数降低了50倍,大大压缩了深度网络模型。
2)另外,Google公司Howard等人[42]提出了MobileNets,利用计算和存储更小的深度分割卷积(depthwise separable convolution)代替原始的标准卷积计算。
3)Zhang等人[43]提出ShuffleNet,利用组卷积(group convolution)和通道重排(channel shuffle)两个操作设计卷积神经网络模型,从而减少模型使用的参数。一般情况下,使用组卷积会导致信息流通不,通过通道重排改变通道的序列,得到与原始卷积相似的计算结果。
4)Chollet[44]提出Xception网络结构,在原始Inception-V3的基础上引入深度分割卷积计算,不同于原始MobileNet中的深度分割卷积,Xception先进行1×1的点卷积计算(point convolution),然后再逐通道卷积,提高了模型的计算效率。在同参数量情况下,分类效果优于Inception V3。
(5)基于知识蒸馏的深度神经网络压缩与加速
1)2006年,Bucilua等人[45]首先提出利用知识迁移(Knowledge transfer,KT)来压缩模型。他们通过集成强分类器标注的伪数据(pseudo-data)训练了一个压缩模型,并重现了原大型网络的输出结果,然而他们的工作仅限于浅层网络。
2)近年来,知识蒸馏[46]提出了可以将深度和宽度的网络压缩为浅层模型,该压缩模型模仿了复杂模型所能实现的功能。Hinton等人[47]提出了知识蒸馏的压缩框架,通过软化教师网络输出指导和惩罚学生网络(student network)。该框架将集成的深度网络压缩成为相同深度的学生网络。为此利用教师软输出的结果作为标签,训练压缩学生网络。
3)Romero等人[48]提出了基于知识蒸馏的FitNet,通过训练窄且深网络(学生网络),压缩宽且浅网络(教师网络)
4)近几年,知识蒸馏也得到了改进和拓展,例如:Balan等人[49]通过在线训练的方式学习带有参数的学生网络近似蒙特卡洛(Monte Carlo)教师网络。不同于原来的方法,该方法使用软标签作为教师网络知识的表达,代替原来的教师网络的软输出。
5)Luo等人[50]利用高层隐含层神经元的输出作为知识,它比使用标签概率作为知识能保留更多的知识。
6)Zagoruyko等人[51]提出了注意力迁移(attention transfer,AT),通过迁移注意力图(attention maps)松弛了FitNet的假设条件。
(6)其他类型的深度神经网络压缩与加速
GoogLeNet为了减少全连接层的参数个数,全局均匀池化代替传统的3层全连接层,减少了全连接层的参数。在近几年提出的最新的网络结构中,全局均匀池化方法广泛其中,例如:Network in Network(NIN),GoogLeNet,ResNet,ResNeXt[52]等,在很多基准(benchmark)任务中取得了最优的(state-of-the-art)性能。
1) 但该类型结构在ImageNet数据集上学习到的特征很难直接迁移到其他任务上,为了解决此问题,Szegedy等人在原始结构的基础上加入了线性层。
2) 此外,基于卷积的快速傅里叶变化[53]和使用Winograd算法[54]的快速卷积计算,大大减少了卷积计算的开销。Zhai等人[55]提出了随机空间采样池化(stochastic spatial sampling pooling),用于加速原始网络中的池化操作,但是这次工作仅仅为了加速深度网络计算,无法达到压缩网络的目的。
4. 模型压缩与加速方法的优缺点
(1) 基于参数剪枝的深度神经网络压缩与加速:
优点:以上基于结构化剪枝的深度网络的压缩方法,通过删除卷积层的整个滤波,没有引入其他额外的数据类型存储,从而直接压缩网络的同时加速整个网络的计算。
缺点:简单利用非结构化剪枝,无法加速稀疏化矩阵计算。虽然近年来,相关软件[13]与硬件[14]已被利用进行加速计算,但以拷软硬件的结构化剪枝方案还无法在所有深度学习框架下使用,另外硬件的依赖性会使得模型的使用成本提高,结构化剪枝不依赖软硬件的支持,且能很好地嵌入目前主流的深度学习框架,但逐层固定的剪枝方法(layer-by-layer fixed manner)导致了网络压缩的低自适应能力、效率和效果。此外,上述的剪枝策略需要手动判断每层的敏感性,因此需要大量的精力分析及逐层微调(fine-tuning)
(2) 基于参数共享的深度神经网络压缩与加速
缺点:量化权值,特别是二值化网络存在以下的缺点:1)对于压缩与加速大的深度网络模型(如GoogLeNet和ResNet),存在分类精度丢失严重现象;2)现有方法只是采用简单地考虑矩阵近似,忽略了二值化机制对于整个网络训练与精度损失的影响;3)对于训练大型二值网络,缺乏收敛性的理论验证,特别是对于同时量化权值和激活的二值化网络(如XNOR-Net,BNN等)。对于限制于全连接层的参数共享方法,如何泛化到卷积层成为一个难题,此外,结构化矩阵限制可能引起模型偏差,造成精度的丢失。
(3) 基于低秩分解的深度神经网络压缩与加速
优点:利用矩阵或张量分解技术估计并分解深度模型种的原始卷积核,通过分解4D卷积核张量,可以有效地减少模型内部地冗余性。
缺点:基于低秩分解的深度网络模型压缩算法,在特定场景下取得良好的效果,但增加了模型原有的层数,极易在训练过程中造成梯度消失的问题,从而影响压缩后网络的精度恢复。另外,逐层低秩分解优化参数,无法从全局进行压缩,延长了离线分解时间开销。
(4) 基于紧性卷积核的深度神经网络压缩与加速
优点:对深度网络模型的卷积核使用紧性的滤波直接代替,将有效地压缩深度网络。基于该思想,直接将原始较大的滤波大小(如5×5,3×3)分解成2个1×1卷积滤波,大大加速了网络的计算同时获得了较高的目标识别性能。
缺点:基于紧性卷积核的深度神经网络压缩与加速采用了特定的卷积核的设计或新卷积计算方式,大大压缩神经网络模型或加速了卷积计算。但压缩与加速方法的扩展性和结合性较弱,即较难在紧性卷积核的深度神经网络中利用不同压缩或加速技术进一步提高模型使用效率。另外跟原始模型相比,基于紧性卷积核设计的深度神经网络得到特征普适性及泛化性较弱。
(5) 基于知识蒸馏的深度神经网络压缩与加速
优点:知识蒸馏(KD)的基本思想是通过软softmax变换学习教师输出的类别分布,并将大型教师模型(teacher model)的知识精炼为较小的模型。如图所示展示了简单的知识蒸馏的过程。
缺点:虽然基于知识蒸馏的深度神经网络压缩与加速方法能使深层模型细小化,同时大大减少了计算开销,但是依然存在2个缺点:1)只能用于具有softmax损失函数分类任务,这阻碍了其应用;2)模型的假设较为严格,以至于其性能可能比不上其他压缩与加速方法。
5. 常用的相关数据集及指标
(1) 数据集
在深度神经网络压缩与加速中常见并具有代表性的数据集主要包括MNIST、CIFAR-10/100、ImageNet,如表5所示,罗列了这些数据集的基本统计信息:
Table5 Comparison of the Widely Used Dataset for DNN Compression and Acceleration表5 常见深度神经网络压缩与加速数据集统计信息Dataset	#Class	#Train	#Validation	#Test	SizeMNIST	10	6×104		1×104	28×28CIFAR-10	10	5×104		1×104	32×32CIFAR-100	10	5×104		1×104	32×32ImageNet	1000	1.2×106	5×104	1×105

MNIST是用于手写字符分类被广泛使用的数据集。在1998年,该数据集被公开作为字符识别算法评测的公共数据集。在该数据集中,包含了来自10个类别(即手写体数字0~9),像素为28×28的手写体字符灰度图,总计有6万张训练图像和1万张测试图像。LeNet-5作为经典模型在MNIST上分类错误率达到0.9%。MNIST已作为简单且公开的数据集用于评测深度神经网络压缩与加速性能。
CIFAR是用于分类小图像的数据集,它是8千万张Tiny Image数据集的子集。在2009年,该数据集被公开作为分类小型彩色图像算法评测的公共数据集。CIFAR数据集有2个版本,分别为CIFAR-10和CIFAR-100,包含了像素均为32×32的自然彩色图像。在CIFAR-10数据集中,包含了来自10个互不交叉的类别,总计有5万张训练图像(每类5千张)和1万张测试图像(每类1千张)。在CIFAR-100数据集中,包括了100个类别不同的图像,其中5万张训练图像(每类500张)和1万张测试图像(每类100张)。在不引入任何数据扩展方法时,经典模型NIN在CIFAR-10和CIFAR-100分类错误率达到10.41%和35.68%。
ImageNet是一个大尺度图像数据集。2010年首次被提出,并在2012年得到稳定使用。该数据集包含1000个类别彩色图像,且一般先缩放至像素大小为256×256。不同于以上2种数据集,该数据集的类别标签可用字网络(WordNet)表示,即由主类别标签词表示并包含相同目标的近义词,相当于词汇的分层结构。该数据集总计约有0.13亿张训练图像(每类100张)和5万张验证图像(每类50张)。由于测试数据集标签未公开,一般情况下,测试该数据集性能时通过验证集上性能作为测试依据。另外,top-1分类错误率和top-5分类错误率是判断ImageNet分类准确率指标。Top-1指的是得分最高的类别刚好是标签类别时,分类正确;top-5指的是得分前5的类别种包含正确标签时,分类正确。AlexNet,VGG-16,ResNet-50作为ImageNet数据集上经典的网络模型,分别获得42.24%top-1分类错误率和19.11%top-5分类错误率、31.66%分类错误率和11.55%top-5分类错误率以及24.64%top-1分类错误率和7.76%top-5分类错误率。
综上所述,MNIST是较为简单的小型数据集,而ImageNet是一个大尺度类别多样的复杂数据集,充满着挑战。另外,对于同一个网络,在不同数据集下表现出不一样的性能,因此判断网络性能时一般需要考虑所采用的数据集。
(2) 评价准则
率失真(rate-distortion)作为评价深度神经网络压缩与加速性能标准,既考虑了模型的压缩与加速比,同时需要计算压缩与加速后的模型分类误差率。为了计算模型的压缩与加速比,我们假设a和b分别为原始模型M和压缩后模型N所有参数所占的内存开销,那么模型的压缩比C可计算为
C(M,N) = a/b

相似地,假设x和y分别为原始模型M和压缩后模型N推测(inference)整个网络的时间,那么模型的加速比S可定义为
S(M,N) = x/y

关于分类误差率需要根据不同的数据集,如上述所述的数据集中,MNIST和CIFAR只存在top-1分类错误率,而ImageNet有top-1和top-5两种分类错误率。根据数据集不同,选择相应模型性能评价标准。一般情况下,好的深度神经网络压缩与加速方法表现出:压缩与加速后的模型具有相似于原始模型的分类错误率,同时伴随有少量的模型参数和计算复杂度。因此模型的错误率和压缩比(或加速比)需要统一考虑。
目前深度学习框架层出不穷,包括Caffe,Tensorflow,Torch等。为了公平评测各压缩模型的实际速度,对于深度神经网络压缩与加速邻域,采用Caffe作为主流的深度学习框架进行比对。
(3) 代表性的深度神经网络压缩与加速性能
目前已有工作的实验所用数据集一般是3个数据集:MNIST,CIFAR,ImageNet。使用模型包括:LeNet-5,AlexNet,VGG-16,ResNet等。下面是比较代表性深度神经网络压缩与加速方法在不同模型上的压缩与加速效果。
如表6所示,列出了包括剪枝与参数共享在内的压缩与加速方法在LeNet-5上的比较结果。#FLPOs表示浮点型计算次数个数,#Param表示模型中参数的数量,errtop-1↑表示相比较于原始模型,压缩后的模型top-1分类错误率增加值,从整体上看,在该模型上压缩与加速比取得了较好的结果。从压缩与加速两方面比较,非结构化剪枝在压缩模型参数上能取得12×更好的结果,而结构化剪枝SSL在加速模型上取得3.62×的结果,基本保证模型不丢失精度。
Method	#FLOPs	#Param (Cr)	Sr	errtop-1↑/%LeNet-5	2.3×106	0.43×106(1×)	1×	0Pruning		3.44×104(12×)		-0.1SSL	1.62×105	4.5×105(9.5×)	3.62×	0.05Circulant		7.4×104(5.8×)	1.43×	0.03AFT		5.2×104(8.3×)		-0.16

Note:↑denotes increase
Table7 Comparison of Different CNN Acceleration Methods on AlexNet表7 不同卷积神经网络加速方法在AlexNet上的对比Method	errtop-5↑/%	Conv1	Conv2	Conv3	Conv4	Conv5	Average SpeedupAlexNet	0	1.00×	1.00×	1.00×	1.00×	1.00×	1.00×CPD	1.00		4.00×				1.27×TD	1.70	1.48×	2.30×	3.84×	3.53×	3.13×	2.52×SSL	-0.39	1.00×	1.27×	1.64×	1.68×	1.32×	1.35×1.66	1.05×	3.37×	6.27×	9.73×	4.93×	3.13×LRA	0.17	2.61×	6.06×	2.48×	2.20×	1.58×	2.69×1.71	2.65×	6.22×	4.81×	4.00×	2.92×	4.05×

如表7和表4所示,主要比较了不同压缩与加速方法在AlexNet上的结果,如表7所示,主要比较了不同低秩分解技术在AlexNet上加速效果(除SSL外)。从比较结果可以看出,LRA不仅在准确率和加速比高于传统的CPD和TD,而且在加速比(4.05×vs. 3.13×)上也高于SSL,top-5分类错误率增加几乎一样(1.71%vs. 1.66%)。如表4所示,主要列出了关于量化网络在AlexNet上的性能比较。原始的权值和激活的保存形式为32b浮点型,通过用低比特位数量化网络,减少模型存储和计算开销。增加比特位的位数,模型的性能得到提升,量化到8b几乎无损压缩模型,如利用动态固定点量化。若只对模型的权值进行量化,保持激活位数不变,BWN,TWN,TTQ能够较好地控制模型误差增加(除了BC外),但加速效果有限。通过进一步量化激活,特别是量化激活为2b时,HWGQ-Net取得了top-5分类错误率增加仅为5.2%。
在压缩与加速VGG-16上,如表8所示,展示了部分比较有代表性的剪枝算法的评测结果。为了进一步压缩VGG-16,借鉴NIN全局均匀池化,代替原始模型中的3层全连接层。我们把压缩后的模型记为“X-GAP”,指的是利用“X”方法剪枝完所有的卷积层后,加入GAP进行微调整个压缩后的网络。特别地,VGG-GAP不删除任何卷积层的滤波,反而取得了较高的分类错误率,即top-1分类错误率和top-5分类错误率分别为37.97%和15.65%。另外,ThiNet较其他方法,取得了较低的分类错误率(即top-1分类错误率和top-5分类错误率分别增加了1.00%和0.52%),但加速和压缩比相对较低于L1,APoZ,通过进一步增加剪枝卷积核的数量(记为“ThiNet-T”),取得106.5×压缩比和4.35×加速比,但压缩后的模型的top-1分类错误率和top-5分类错误率分别增加了9%和6.46%。
在这里插入图片描述

如表9所示,展示了主流的二值量化方法在ImageNet数据集上压缩与加速ResNet-18的比较结果。全精度的ResNet-18能达到30.7%top-1分类错误率及10.8%top-5分类错误率。虽然BWN和DeReFa-Net取得较好的分类性能,但它们分别使用了全精度的激活和4b的激活。若同时二值化权值和激活,计算卷积时,只需要bitcount和XNOR计算,大大提高卷积计算效率,但降低了模型的分类效果,例如BNN和XNOR-Net分别增加了27.1%和18.1%的top-1分类错误率。
Table9 Results of Binary Network on ImageNet for Compressing ResNet-18表9 二值化网络在ImageNet上压缩ResNet-18的结果Model	W-bit	A-bit	errtop-1↑/%	errtop-5↑/%ResNet-18	32	32	0	0BWN	1	32	8.5	6.2DoReFa-Net	1	4	10.1	7.7XNOR-Net	1	1	18.1	16.0BNN	1	1	27.1	22.1

如表10所示,比较MobileNet和ShuffleNet在ImageNet上性能比较结果。一个a MobileNet-224指的是在基准模型框架下(即一个MobileNet-224),以a倍缩放基准结构的每层卷积核滤波个数;ShuffleNet , 指的是在组的个数为c的情况下,以b倍缩放基准结构(即ShuffleNet 1×)的每层卷积核滤波个数。通过不同层次的浮点型计算复杂度对比结果,可以明显得出ShuffleNet的性能优于MobileNet。特别值得注意的是,在小的浮点型计算复杂度情况下(如0.4亿浮点型计算次数),ShuffleNet取得了更好的分类结果,即高于相同复杂度等级的MobileNet6.7%分类错误率。
在这里插入图片描述

  1. 压缩与加速方法选择因素
    如何选择不同的压缩与加速算法是一个难题。事实上,上述介绍的5种主流的深度神经网络压缩与加速方法各有优缺点,也没有固定和可量化的准则来判断哪种方法是最优的。所以压缩与加速方法的选择依赖于不同的任务和需要。总结出压缩与加速方法选择有6条需要考虑的因素:
    1) 对于在线计算内存存储有限的应用场景或设备,可以选择参数共享和参数剪枝方法,特别是二值化量化权值和激活、结构化剪枝。其他方法虽然能够有效的压缩模型中的权值参数,但无法减小计算中隐藏的内存大小(如特征图)。
    2) 如果在应用中用到的紧性模型需要利用预训练模型,那么参数剪枝、参数共享以及低秩分解将成为首要考虑的方法。相反地,若不需要借助预训练模型,则可以考虑紧性滤波设计及知识蒸馏方法。
    3) 若需要一次性端对端训练得到压缩与加速后模型,可以利用基于紧性滤波设计的深度神经网络。
    4) 一般情况下,参数剪枝、特别是非结构化剪枝,能大大压缩模型大小,且不容易丢失分类精度。对于需要稳定的模型分类的应用,非结构化剪枝成为首要选择。
    5) 若采用的数据集较小时,可以考虑知识蒸馏方法。对于小样本的数据集,学生网络能够很好地迁移教师模型地知识,提高学生网络的判别性。
    6) 主流的5个深度神经网络压缩与加速算法相互之间是正交的,可以结合不同技术进行进一步的压缩与加速。如:韩松等人结合了参数剪枝和参数共享;温伟等人以及Alvarez等人结合了参数剪枝和低秩分解。此外对于特定的应用场景,如目标检测,可以对卷积层和全连接层使用不同的压缩与加速技术分别处理。
  2. 本文相关模型说明
    8层AlexNet:600000个网络节点、0.61亿个网络参数,需要花费240MB内存存储和7.29亿浮点型计算次数(FLOPs)分类一幅分辨率224×224的彩色图像。
    16层VGGNet:1500000个网络节点、1.44亿个网络参数,需要花费528MB内存存储和150亿浮点型计算次数。
    152层ResNet-152:0.57亿个网络参数,需要花费230MB内存存储和113亿浮点型计算次数。
    Table11 Summary of Popular DNNs表11 常用深度神经网络总结Metrics	LeNet-5	AlexNet	VGG-16	Inception-V1	ResNet-50errtop-1/%	0.9	43.4	29.7	31.1	24.9errtop-5/%		19.8	10.6	10.9	7.7Input Size	28×28	227×227	224×224	224×224	224×224#Conv Layers	2	5	13	57	53Depth of CONV Layers	2	5	13	21	49Filter Sizes	5	3,5,11	3	1,3,5,7	1,3,7#Channels	1,20	3-256	3-512	3-832	3-2048#Filters	20,50	96-384	64-512	16-384	64-2048Stride	1	1,4	1	1,2	1,2#Param	2.6×103	2.8×106	1.47×107	6.0×106	2.35×107#FLOPs	1.72×105	6.71×108	1.55×1010	1.43×109	3.86×109#FC Layers	2	3	3	1	1Filter Sizes	1,4	1,6	1,7	1	1#Channels	50,500	256-4096	512-4096	1024	2048#Filters	10,500	1000-4096	1000-4096	1000	1000#Param	5.8×104	5.86×107	1.23×108	1×106	2×106#FLOPs	5.8×104	5.86×107	1.23×108	1×106	2×106Total Param	6.0×104	6.14×107	1.38×108	7×106	2.55×107Total FLOPs	2.3×106	7.29×108	1.56×1010	1.43×109	3.9×109

1) LeNet:包含了2个卷积层和2个全连接层,每1层的卷积计算都使用了5×5的空间维度,第1层使用了20个3-D卷积核,第2层使用50个卷积核,每个卷积之后加入Sigmoid非线性变换作为激活函数,然后接着使用2×2的平均池化降采样特征图。整个网络分类1张图像总共需要6万个参数,34.1万浮点型计算次数。
2) AlexNet:该模型由5个卷积层和3个全连接层组成。第1个卷积层使用了96个维度为11×11×3的3-D卷积核,第2层使用了256个维度为5×5×96的3-D卷积核,后续的卷积层使用了空间维度为3×3的卷积核。AlexNet引入了多种加速训练与提高模型分类准确率的技巧,如:○1引入了ReLu非线性激活函数,代替原始的Sigmoid或tanh非线性激活;○2在每个最大池化(max pooling)之前加入局部响应正则化(Local response normalization,LRN),用于统一输出激活的数据分布,在AlexNet中,LRN应用于第1,2和5卷积层。○3利用2个GPU加速训练。○4通过扩充训练样本数和引入Dropout方法,防止模型训练过程过拟合。AlexNet在ImageNet验证集上获得了42.3%top-1分类错误率和19.1%top-5分类错误率,且需要0.61亿个参数,7.29亿浮点型计算次数处理尺寸大小为227×227的彩色图像。
3) VGGNet:VGG有2种形式,即VGG-16和VGG-19。VGG-16由13个卷积层和3个全连接层构成的16层网络。不同于AlexNet,VGG-16利用多个小空间维度的卷积核(例如3×3)代替原始大的卷积核(例如5×5),获得相同的接受域(receptive fields)。在VGG-16中,所有的卷积层都采用了空间维度为3×3的卷积核。为此VGG-16分类1张大小为224×224的彩色图像,需要1.38亿个参数,156亿浮点型计算次数。虽然VGG-19比VGG-16低0.1%top-5分类错误率,但需要1.27倍浮点型计算次数于VGG-16。
4) GoogLeNet:Inception拥有多种版本,包括Inception-V1,Inception-V2,Inception-V3和Inception-V4,其中Inception-V1也称为GoogLeNet。Inception-V1拥有22层深的网络结构,引入了核心组件——Inception module。Inception module主要组成部件是由平行连接(parallel connection)构成。在每个平行连接中,使用了不同空间维度的卷积核,即1×1,3×3,5×5,并在每个卷积后紧跟3×3最大池化(其中一个1×1卷积核除外),所有卷积核输出结果全串在一起(concatenate)构成该模块的输出。GoogLeNet利用3种不同尺度的适应性,同时可以让网络的深度和宽度高效率地扩充,提升准确率且不会过拟合。22层的GoogLeNet包括了3个卷积层,9个Inception层(每个Inception层拥有2层深的卷积层)和1个全连接层,由于采用了全局平均池化(globel average pooling,GAP),并采用1个全连接层取代传统的3个全连接层,大大缩小了模型的存储空间。对于分类一张224×224的彩色图像,GoogLeNet需要700万个参数,14亿个浮点型计算次数。
5) ResNet:能够克服训练过程中梯度消失问题,即在反向传播(back-propagation)种梯度不断衰减,影响了网络底层的权值更新能力。ResNet的核心组件是残差块(residual block),每个残差块中引入了快捷模块(shortcut module),该模块包含了恒等连接或线性投影连接,并且学习残差映射( ),而不是直接学习权值层(weight layers)函数 。同样地,ResNet使用了1×1卷积核减少参数个数,并在每个卷积后加入批量正则化(batch normalization,BN)。ResNet有很多种结构表现形式,以ResNet-50为例,它包含了1个卷积层,紧接着16个残差块(每个残差块拥有3层深的卷积层),及1个全连接层。对于分类一张224×224的彩色图像,ResNet-50需要0.25亿个参数和39亿个浮点型计算次数。
8. 问题需求
一方面,拥有百万级以上的深度神经网络模型内部存储大量冗余信息,因此并不是所有的参数和结构都对产生深度神经网络高判别起作用;另一方面,用浅层或简单的深度神经网络无法在性能上逼近百万级的深度神经网络。因此通过压缩和加速原始深度网络模型,使之直接应用于移动嵌入式设备端,将成为一种有效的解决方案。
9. 未来发展趋势
就目前研究成果而言,深度神经网络与加速还处于早期阶段,压缩与加速还处于早期阶段,压缩与加速方法本身性能还有待提高,合理压缩与加速评价标准还需完善,为深入地研究提供帮助。
合理的性能评价标准的建立,虽然率失真率能同时考虑压缩与加速、分类性能分布情况,但不同压缩与加速方法无法统一到同一指标下,即同一压缩与加速率下判断分类性能的优劣,或同一分类性能下判断压缩与加速比。
压缩与加速的模型的多样性得到推广。目前深度神经网络压缩与加速的模型多使用卷积神经网络,除卷积神经网络外,还存在大量其他不同结构的网络,如递归神经网络(recurrent neural network,RNN)、长短时记忆网络(long short-term memory,LSTM),广泛应用于人工智能领域。对于递归神经网络、长短时记忆网络等不同于卷积神经网络结构的网络,是否可以使用上述介绍的压缩与加速方法进行处理,这将有待于研究。
更多深度神经网络压缩与加速技术嵌入终端设备,实现实际应用落地。随着深度神经网络压缩与加速方法的快速推进与发展,对于分类任务的压缩与加速方面已取得较大进步,但对于其他视觉任务较少涉及。设计基于视觉任务(如目标检测、目标跟踪、图像分割等)为一体的深度神经网络压缩与加速,将是实现实际应用落地的研究热点。

参考文献
[1] Y. LeCun, J. Denker, S. Solla, and R. E. Howard, “Optimal Brain Damage,” in Advances in Neural Information Processing Systems, 1989, pp. 598-605.
[2] B. Hassibi and D. G. Stork, “Second Order Derivatives for Network Pruning: Optimal Brain Surgeon,” in Advances in Neural Information Processing Systems, 1993, pp. 164-171.
[3] S. Srinivas and R.V. Babu, “Data-free Parameter Pruning for Deep Neural Networks,” in Proceedings of the British Machine Vision Conference, 2015.
[4] S. Han, H. Mao, and W. J. Dally, “Deep Compression: Compressing Deep Neural Networks with Pruning, Trained Quantization and Huffman Coding,” in Proceedings of International Conference on Learning Representations, 2016.
[5] S. Han, J. Pool, J. Tran, and W. J. Dally, “Learning Both Weights and Connections for Efficient Neural Network,” in Advances in Neural Information Processing Systems, 2015, pp.1135-1143.
[6] V. Lebedev and V. Lempitsky, “Fast Convnets Using Group-wise Brain Damage,” in Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition, 2016, pp. 2554-2564.
[7] W. Wen, C. Wu, Y. Wang, Y. Chen, and H. Li, “Learning Structure Sparsity in Deep Neural Network,” in Advances in Neural Information Processing Systems, 2016, pp. 2074-2082.
[8] H. Zhou, J. M. Alvarez, and F. Porikli, “Less is More: Towards Compact CNNs,” in the Proceedings of European Conference on Computer Vision, 2016, pp. 662-677.
[9] H. Li, A. Kadav, I. Durdanovic, H. Samet, and H. P. Graf, “Pruning Filters for Efficient Convnets,” in Proceeding of International Conference on Learning Representations, 2016.
[10] H. Hu, R. Peng, Y. W. Tai, and C. K. Tang, “Network Trimming: A Data-Driven Neuron Pruning Approach towards Efficient Deep Architectures,” arXiv preprint, arXiv: 1607.03250, 2016.
[11] P. Molchanov, S. Tyree, T. Karras, T. Aila, and J. Kautz, “Pruning Convolutional Neural Networks for Resource Efficient Transfer Learning” in Proceeding of International Conference on Learning Representations, 2016.
[12] J. Luo, J. Wu, and W. Lin, “Thinet: A Filter Level Pruning Method for Deep Neural Network Compression,” in Proceedings of the IEEE International Conference on Computer Vision, 2017, pp. 5058-5066.
[13] B. Liu, M. Wang, H. Foroosh, M. Tappen, and M. Penksy, “Sparse Convolutional Neural Networks,” in Proceedings of the IEEE International Conference on Computer Vision and Pattern Recognition, 2015, pp. 806-814.
[14] S. Han, X. Liu, H. Mao, J. Pu, A. Pedram, M. A. Horowitz, and W. J. Dally, “EIE: Efficient Inference Engine on Compressed Deep Neural Network,” in Proceedings of the International Symposium on Computer Architecture, 2016, pp. 243-254.
[15] Y. Gong, L. Liu, M. Yang, and L. Bourdev, “Compressing Deep Convolutional Networks Using Vector Quantization,” arXiv preprint, arXiv: 1412.6115, 2014.
[16] J. Wu, C. Leng, Y. Wang, Q. Hu, and J. Cheng, “Quantized Convolutional Neural Networks for Mobile Devices,” in Proceedings of the IEEE International Conference on Computer Vision and Pattern Recognition, 2016, pp. 4820-4828.
[17] S. Gupta, A. Agrawal, K. Gopalakrishnan, and P. Narayanan, “Deep Learning with Limited Numerical Precision,” in Proceedings of the International Conference on Machine Learning, vol. 37, no. 10, pp. 1737-1746, 2015.
[18] Y. Ma, N. Suda, Y. Cao, J. Seo, and S. Vrudhula, “Scalabel and Modularized RTL Compilation of Convolutional Neural Networks onto FPGA,” in Proceedings of the International Conference on Field Programmable Logic and Applications, 2016, pp. 1-8.
[19] P. Gysel, M, Motamedi, and S. Ghiasi, “Hardware-oriented Approximation of Convolutional Neural Networks,” arXiv preprint, arXiv: 1604.03168, 2016.
[20] M. Courbariaux, Y. Bengio, and J. P. David, “Binaryconnect: Training Deep Neural Networks with Binary Weights during Propagations,” in Advances in Neural Information Processing Systems, 2015, pp. 3123-3131.
[21] M. Courbariaux, I. Hubara, and D. Soudry, “Binarized Neural Networks: Training Deep Neural Networks with Weights and Activations Constrained to +1 or -1,” arXiv preprint, arXiv: 1602.02830, 2016.
[22] M. Rastegari, V. Ordonez, J. Redmon, and A. Farhadi, “Xnor-net: ImageNet Classification Using Binary Convolutional Neural Networks,” in Proceedings of the European Conference on Computer Vision, 2016, pp. 525-542.
[23] S. Zhou, Y. Wu, and Z. Ni, “DoReFa-Net: Training Low Bitwidth Convolutional Neural Networks with Low Bitwidth Gradients,” arXiv preprint, arXiv: 1606.06160, 2016.
[24] I. Hubara, M. Courbariaux, D. Soudry, R. E. Yaniv, and Y. Bengio, “Quantized Neural Networks: Training Neural Networks with Low Precision Weights and Activations,” arXiv preprint, arXiv: 1609.07061, 2016.
[25] Z. Cai, X. He, and J. Sun, “Deep Learning with Low Precision by Half-wave Gaussian Quantization,” in Proceedings of the IEEE International Conference on Computer Vision and Pattern Recognition, 2017, pp. 5918-5926.
[26] F. Li, B. Zhang, and B. Liu, “Ternary Weight Networks,” arXiv preprint, arXiv: 1605.04711, 2016.
[27] C. Zhu, S. Han, H. Mao, and W. J. Dally, “Trained Ternary Quantization,” arXiv preprint, arXiv: 1612.01064, 2016.
[28] W. Chen, J. Wilson, S. Tyree, K. Q. Weinberger, and Y. Chen, “Compressing Neural Networks with the Hashing Trick,” in Proceedings of the International Conference on International Conference on Machine Learning, vol. 37, no. 10, pp. 2285-2294, 2015.
[29] Y. Cheng, F. Yu, R. Feris, S. Kumar, A. Choudhary, and S. Chang, “An Exploration of Parameter Redundancy in Deep Networks with Circulant Projections,” in Proceedings of the IEEE International Conference on Computer Vision, 2015, pp. 2857-2865.
[30] Z. Yang, M. Moczulski, M. Denil, N. D. Freitas, L. Song, and Z. Wang, “Deep Fried Convnets,” in Proceedings of the IEEE International Conference on Computer Vision, 2015, pp. 1476-1483.
[31] M. Denil, B. Shakibi, L. Dinh, M. A. Ranzato, and N. D. Freitas, “Predicting Parameters in Deep Learning,” in Advances in Neural Information Processing Systems, 2013, pp. 2148-2156.
[32] M. Jaderberg, A. Vedaldi, and A. Zisserman, “Speeding Up: Convolutional Neural Networks with Low Rank Expansions,” arXiv preprint, arXiv: 1405,3866, 2014.
[33] E. Denton, W. Zaremba, J. Bruna, Y. LeCun, and R. Fergus, “Exploiting Linear Structure within Convolutional Networks for Efficient Evaluation,” in Advances in Neural Information Processing System, 2014, pp. 1269-1277.
[34] V. Lebedev, Y. Ganin, M. Rakhuba, I. Oseledets, and V. Lempitsky, “Speeding-up Convolutional Neural Networks Using Fine-tuned Cp-decomposition,” arXiv preprint, arXiv: 1412.6553, 2014.
[35] Y. Kim, E. Park, and S. Yao, “Compression of Deep Convolutional Neural Networks for Fast and Low Power Mobile Application,” in Proceeding of International Conference on Learning Representations, 2015.
[36] C. Tai, T. Xiao, and Y. Zhang, “Convolutional Neural Networks with Low-Rank Regularization,” arXiv preprint, arXiv: 1511.06067, 2015.
[37] Y. Ioannou, D. Robertson, J. Shotton, R. Cipolla, and A. Criminisi, “Training CNNs with Low-rank Filters for Efficient Image Classification,” arXiv preprint, arXiv: 1511.06744, 2015.
[38] W. Wen, C. Xu, C. Wu, Y. Wang, Y. Chen, and H. Li, “Coordinating Filters for Faster Deep Neural Networks,” in Proceedings of the IEEE International Conference on Computer Vision, 2017, pp. 658-666.
[39] S. Lin, R. Ji, C. Chen, and F. Huang, “ESPACE: Accelerating Convolutional Neural Networks via Eliminating Spatial and Channel Redundancy,” in Proceeding of the Conference on Association for the Advance of Artificial Intelligence, 2017, pp. 1424-1430.
[40] S. Lin, R. Ji, X. Guo, and X. Li, “Towards Convolutional Neural Networks Compression via Global Error Reconstruction,” in Proceedings of the International Joint Conference on Artificial Intelligence, 2016, pp. 1753-1759.
[41] F. N. Iandola, S. Han, M. W. Moskewicz, and K. Ashraf, “SqueezeNet: AlexNet-level Accuracy with 50× Fewer Parameters and <0.5MB Model Size,” arXiv preprint, arXiv: 1602.07360, 2016.
[42] A. Howard, M. Zhu, B. Chen, D. Kalenichenko, W. Wang, T. Weyand, M. Andreetto, and H. Adam, “MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Application,” arXiv preprint, arXiv: 1704.04861, 2017.
[43] X. Zhang, X. Zhou, M. Lin, and J. Sun, “ShuffleNet: An Extremely Efficient Convolutional Neural Network for Mobile Devices,” arXiv preprint, arXiv: 1707.01083, 2017.
[44] F. Chollet, “Xception: Deep Learning with Depthwise Separabel Convolutions,” in Proceedings of the IEEE International Conference on Computer Vision and Pattern Recognition, 2017, pp. 1251-1258.
[45] C. Buvilua, R. Caruana, A. Niculescu-Mizil, “Model Compression,” in Proceedings of the International Conference on Knowledge Discovery and Data Mining, 2006, pp. 535-541.
[46] J. Ba, R. Caruana, “Do Deep Nets Really Need to be Deep,” in Advances in Neural Information Processing Systems, 2014, pp. 2654-2662.
[47] G. Hinton, O. Vinyals, and J. Dean, “Distilling the Knowledge in A Neural Network,” arXiv preprint, arXiv: 1503.02531, 2015.
[48] A. Romero, N. Ballas, S. E. Kahou, A. Chassang, C. Gatta, and Y. Bengio, “FitNets: Hints for Thin Deep Nets,” arXiv preprint, arXiv: 1412.6550, 2014.
[49] A. K. Balan, V. Rathod, K. P. Murphy, and M. Welling, “Bayesian Dark Knowledge,” in Advances in Neural Information Progressing Systems, 2015, pp. 3438-3446.
[50] P. Luo, Z. Zhu, Z. Liu, X. Wang, and X. Tang, “Face Model Compression by Distilling Knowledge from Neurons,” in Proceeding of the Conference on Association for the Advance of Artificial Intelligence, 2016, pp. 3560-3566.
[51] S. Zagoruyko and N. Komodakis, “Paying More Attention to Attention: Improving the Performance of Convolutional Neural Networks via Attention Transfer,” arXiv preprint, arXiv: 1612.03928, 2016.
[52] S. Xie, R. Girshick, P. Dollar, T. Zhuowen, and H. Kaiming, “Aggregated Residual Transformations for Deep Neural Networks,” in Proceedings of the IEEE International Conference on Computer Vision and Pattern Recognition, 2017, pp. 5987-5995.
[53] M. Mathieu, M. Henaff, and Y. LeCun, “Fast Training of Convolution Neural Networks,” arXiv prepint, arXiv: 1312.5851, 2013.
[54] A. Lavin and S. Gray, “Fast Algorithms for Convolutional Neural Networks,” in Proceedings of the IEEE International Conference on Computer Vision and Pattern Recognition, 2016, pp. 4013-4021.
[55] S. Zhai, H. Wu, A. Kumar, Y. Cheng, Y. Lu, Z. Zhang, and R. Feris, “S3Pool: Pooling with Stochastic Spatial Sampling,” Proceedings of the IEEE International Conference on Computer Vision and Pattern Recognition, 2016, pp. 4970-4978.

  • 0
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值