首页 > 五种CNN模型的尺寸,计算量和参数数量对比详解

五种CNN模型的尺寸,计算量和参数数量对比详解

互联网 2021-11-29 13:36:37
五种CNN模型的尺寸,计算量和参数数量对比详解2019-11-11 17:52必威体育艋洲195°cA+ A-

这一策略很好理解,因为1个1x1卷积核的参数是3x3卷积核参数的1/9,这一改动理论上可以将模型尺寸压缩9倍。

五种CNN模型的尺寸,计算量和参数数量对比详解

训练的损失为上述两项损失的加权和,通常第二项要小很多。

图4 权值量化前向和后向计算过程[6]

图5 BWN训练过程[7]

五种CNN模型的尺寸,计算量和参数数量对比详解

霍夫曼编码采用变长编码将平均编码长度减小,进一步压缩模型尺寸。

由于全连接层的参数数量巨大,因此借鉴NIN[11]的思想,去除了全连接层而改用global average pooling。

基于以上三个策略,作者提出了一个类似inception的网络单元结构,取名为fire module。一个fire module 包含一个squeeze 卷积层(只包含1x1卷积核)和一个expand卷积层(包含1x1和3x3卷积核)。其中,squeeze层借鉴了inception的思想,利用1x1卷积核来降低输入到expand层中3x3卷积核的输入通道数。如图1所示。

图7 Depthwise Convolution[9]

上面两步合称depthwise separable convolution

卷积神经网络日益增长的深度和尺寸为深度学习在移动端的部署带来了巨大的挑战,CNN模型压缩与加速成为了学术界和工业界都重点关注的研究领域之一。

ShuffleNet的shuffle操作如图11所示。

四、Distilling

Distilling算法是Hinton等人在论文Distilling the Knowledge in a Neural Network中提出的一种类似网络迁移的学习算法。

五种CNN模型的尺寸,计算量和参数数量对比详解

3.1 BWN

上述三个策略中,前两个策略都是针对如何降低参数数量而设计的,最后一个旨在最大化网络精度。

即最优的二值化滤波器张量B即为原始参数的符号函数,最优的尺度因子为每个滤波器权值的绝对值的均值。

表2 几种经典压缩方法及对比

提出了核心的shuffle操作将不同group中的通道进行打散,从而保证不同输入通道之间的信息传递。

在卷积神经网络中,每层输出的特征图(feature map)是否下采样是由卷积层的步长或者池化层决定的。而一个重要的观点是:分辨率越大的特征图(延迟降采样)可以带来更高的分类精度,而这一观点从直觉上也可以很好理解,因为分辨率越大的输入能够提供的信息就越多。

Pointwise Convolution的计算复杂度为 MNDFDF

无需预训练,可实现training from scratch。

因此,通过将标准卷积分解成两层卷积操作,可以计算出理论上的计算效率提升比例:

五种CNN模型的尺寸,计算量和参数数量对比详解

此外,作者还借鉴ResNet思想,对原始网络结构做了修改,增加了旁路分支,将分类精度提升了约3%。

图11 不同group间的shuffle操作[10]

五种CNN模型的尺寸,计算量和参数数量对比详解

在卷积计算中,输入和权值均量化成了二值,因此传统的乘法计算变成了异或操作,而非二值化数据的计算只占了很小一部分。

其中,训练小模型(distilled model)的目标函数由两部分组成

五种CNN模型的尺寸,计算量和参数数量对比详解

图3 LeNet conv1层权值分布图

策略 1.将3x3卷积核替换为1x1卷积核。

我们知道,对于一个采用3x3卷积核的卷积层,该层所有卷积参数的数量(不考虑偏置)为:

最后对上述压缩后的模型进一步采用变长霍夫曼编码,实现约1x的压缩率。

表4 不同网络采用Deep Compression后的压缩率[6]

与ALexNet相比,BWN网络能够达到精度基本不变甚至略好,XNOR-Net由于对输入也做了二值化,性能稍降。

[8] XNOR-Net: ImageNet Classification Using Binary Convolutional Neural Networks

[9] MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Applications

二、Deep Compression

Deep Compression出自S.Han 2016 ICLR的一篇论文《Deep Compression: Compressing Deep Neural Networks with Pruning Trained Quantization and Huffman Coding》。该文章获得了ICLR 2016的最佳论文奖,同时也具有里程碑式的意义,引领了CNN模型小型化与加速研究方向的新狂潮,使得这一领域近两年来涌现出了大量的优秀工作与文章。

通过SqueezeNet+Deep Compression可以将原始240M的AlexNet压缩至0.47M,实现约510x的压缩率。

5.3 实验结果

一、SqueezeNet

1.1 设计思想

我们知道,卷积中的group操作能够大大减少卷积操作的计算次数,而这一改动带来了速度增益和性能维持在MobileNet等文章中也得到了验证。然而group操作所带来的另一个问题是:特定的滤波器仅对特定通道的输入进行作用,这就阻碍了通道之间的信息流传递,group数量越多,可以编码的信息就越丰富,但每个group的输入通道数量减少,因此可能造成单个卷积滤波器的退化,在一定程度上削弱了网络了表达能力。

图1 Fire module结构示意图[5]

训练算法如图5所示,值得注意的是,只有在前向计算和后向传播时使用二值化后的权值,在更新参数时依然使用原始参数,这是因为如果使用二值化后的参数会导致很小的梯度下降,从而使得训练无法收敛。

表6 蒸馏模型与原始模型精度对比[8]

标准卷积操作的计算复杂度为DKDKMNDFDF

MobileNet的卷积单元如上图所示,每个卷积操作后都接着一个BN操作和ReLU操作。在MobileNet中,由于3x3卷积核只应用在depthwise convolution中,因此95%的计算量都集中在pointwise convolution 中的1x1卷积中。而对于caffe等采用矩阵运算GEMM实现卷积的深度学习框架,1x1卷积无需进行im2col操作,因此可以直接利用矩阵运算加速库进行快速计算,从而提升了计算效率。

初始化聚类中心,实验证明线性初始化效果最好;

五种CNN模型的尺寸,计算量和参数数量对比详解

Pointwise Convolution

图6 传统卷积单元与XNOR-Net卷积单元对比[7]

2.4 速度考量

五种CNN模型的尺寸,计算量和参数数量对比详解

为了训练二值化权值网络,令

4.2 实验结果

策略 3.尽可能的将降采样放在网络后面的层中。

[11] Network in Network

6.2 网络架构

[2] Very Deep Convolutional Networks for Large-Scale Image Recognition

表3 不同压缩方法在ImageNet上的对比实验结果[5]

本文地址:http://www.ncyhjt.com/hlwjy/52106.html

版权声明:如无特别注明转载请注明本文地址!

免责声明:非本网注明原创的信息,皆为程序自动获取互联网,目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责;如此页面有侵犯到您的权益,请给站长发送邮件,并提供相关证明(版权证明、身份证正反面、侵权链接),站长将在收到邮件12小时内删除。