发布时间:2024-03-11 12:01
论文地址:https://arxiv.org/pdf/1602.07360.pdf
1.1 改造方案
(1)减少输入通道channel数量、使用1×1卷积核代替3×3卷积核:可显著减少参数数量
(2)将max pooling的下采样层置后,给卷积层提供更大的激活图:保留了更多的信息,提高分类准确率
(3)使用模型压缩技术:保证模型性能的前提下减小模型的体量
1.2 实现方法
(2)SqueezeNet的网络架构:
SqueezeNet网络架构参数:
(3)常见模型压缩技
1.3 实验结果
列出了SqueezeNet与AlexNet的对比,可以发现SqueezeNet在模型体量明显小于AlexNet的情况下精度与AlexNet媲美(ImageNet数据集)
分析了压缩比和3×3卷积核占比对模型精度的影响,如图所示
比较了原始SqueezeNet与带有简单旁路和复杂旁路连接的SqueezeNet的模型精度,对比结果如下:带有简单旁路连接的SqueezeNet精度最高。
论文地址:https://arxiv.org/abs/1610.02357
2.1 改造方案
(1)卷积过程中通道间卷积和空间卷积相互分开
(2)对Inception v3基础模块的一种改进
2.2 实现方法
(1)Xception的设计思想是基于Inception v3基础模块,结合深度可分离卷积(Depthwise Separable Conv)设计的。其演变过程如下:
(2)Xception的网络架构:输入经过Entry flow后重复经过Middle flow8次,最后经过Exit flow输出,其中每个卷积后都经过批归一化处理(BatchNorm)
其中Depthwise Separable Conv与Xception中的Separable Conv的区别:
2.3 实验结果
列出来Xception与其他网络结构在ImageNet数据集上的准确率对比
通过实验发现再用于学习通道见相关性的1×1卷积和用于学习空间相关性的3×3卷积之间不使用非线性激活函数时,收敛过程更快,准确率更高
潜在问题:由于Xception其中分离卷积计算过程较零散,当时现有的卷积网络实现分离卷积效率不高;理论计算量小于Inception V3,但迭代速度反而更慢
注:Xception网络架构提出不在于压缩模型,而是通过Inception v3基础上改进网络,在参数量基本持平的前提下提高网络本身的性能
论文地址:https://arxiv.org/pdf/1704.04861.pdf
3.1.1 改造方案
(1)使用深度可分离卷积(Depthwise Separable Conv)代替常规卷积,大大减少计算量和参数量
(2)引入超参数宽度因子(Width Multiplier)和分辨率因子(Resolution Multiplier),调整参数量和计算量
3.1.2 实现方法
(1)深度卷积(Depthwise Conv)和逐点卷积(Pointwise Conv)组合成深度可分离卷积
深度可分离卷积先由深度卷积提取各通道的特征后经过逐点逐点卷积将各通道的特征关联起来
有关计算量(只考虑乘法,不考虑加法)和参数量计算如下:
常规卷积的计算量: D K × D K × D F × D F × M × N D_K × D_K × D_F × D_F × M × N DK×DK×DF×DF×M×N、参数量: D K × D K × M × N D_K × D_K × M × N DK×DK×M×N
深度卷积的计算量: D K × D K × D F × D F × M D_K × D_K × D_F × D_F × M DK×DK×DF×DF×M、参数量: D K × D K × M D_K × D_K × M DK×DK×M
逐点卷积的计算量: D F × D F × M × N D_F × D_F × M × N DF×DF×M×N、参数量: M × N M × N M×N
其中DK为卷积核尺寸,DF为输入特征图尺寸,M、N分别为输入、输出特征图通道数量
深度可分离卷积与常规卷积计算量比较: D K × D K × D F × D F × M + D F × D F × M × N D K × D K × D F × D F × M × N = 1 N + 1 D K 2 \\frac {D_K × D_K × D_F × D_F × M + D_F × D_F × M × N}{D_K × D_K × D_F × D_F × M × N} = \\frac {1}{N} + \\frac{1} {D_K^2} DK×DK×DF×DF×M×NDK×DK×DF×DF×M+DF×DF×M×N=N1+DK21,参数量比较: D K × D K × M + M × N D K × D K × M × N = 1 N + 1 D K 2 \\frac {D_K × D_K × M + M × N}{D_K × D_K × M × N} = \\frac {1}{N} + \\frac{1}{D_K^2} DK×DK×M×NDK×DK×M+M×N=N1+DK21,可以发现将常规卷积替换为深度可分离卷积可大大减少计算量和参数量
(2)为了满足定制化场景更快、更小的模型要求,设置了宽度因子(Width Multiplier)α和分辨率因子(Resolution Multiplier)ρ的超参数来调整网络结构。其中宽度因子α:调整特征图通道数量的大小;分辨率因子ρ:调整特征图尺寸的大小
加上两个超参数之后,深度可分离卷积的计算量为: D K × D K × ρ D F × ρ D F × α M + ρ D F × ρ D F × α M × α N D_K × D_K × ρD_F × ρD_F × αM + ρD_F × ρD_F × αM × αN DK×DK×ρDF×ρDF×αM+ρDF×ρDF×αM×αN
宽度因子α对网络的计算量和参数量都有影响,而分辨率因子ρ只影响网络的计算量,对参数量无影响
3.1.3 实验结果
比较了常规卷积和深度可分离卷积的MobileNet v1在ImageNet数据集的精度、(乘法和加法)计算量以及参数量
分析了分辨率为224,不同宽度因子α(1.0、0.75、0.5、0.25)以及宽度因子为1,不同分辨率(224、192、160、128)在ImageNet数据集的精度、(乘法和加法)计算量以及参数量
比较了MobileNet v1与其他常见网络模型在ImageNet数据集的精度、(乘法和加法)计算量以及参数量
比较MobileNet v1与不同模型应用于目标检测框架在COCO数据集上的mAP、(乘法和加法)计算量以及参数量
论文地址:https://arxiv.org/pdf/1801.04381.pdf
3.2.1 改造方案
(1)引入线性瓶颈(Linear Bottleneck)结构
(2)引入反向残差(Inverted Residuals)结构
3.2.2 实现方法
(1)线性瓶颈(Linear Bottleneck)是由ResNet网络中Bottleneck结构演变而来的,并且引入深度可分离卷积思想
线性瓶颈结构中第一层升维的逐点卷积设置扩张系数t用来控制输出通道升维数量,当t>1时输出通道数量增加,逐点卷积起升维作用;最后一层降维的逐点卷积采用线性(Linear)激活函数而不用ReLU6激活函数,原因:ReLU激活函数在提取低维特征时会有比较大的信息损失,提取高维特征造成的损失较小。而线性瓶颈结构的输出是一个低维特征信息,所以使用一个线性激活函数避免特征信息的损失
其中线性瓶颈结构使用的激活函数为ReLU6,即对ReLU设置阈值,超过6的部分设置为0其目的是保证在移动端低精度的情况下,有好的数值分辨率,避免数值过大带来精度损失;
采用先升维,后降维的思想:深度卷积只关注空间特征没有将通道间关联起来导致部分特征无法提取,故为了得到更多的特征对其先升维度
其中步长(Stride)为1的使用残差连接,步长为2因其输出特征图与原始特征图的尺寸不相同,不进行残差连接。有残差连接的线性瓶颈结构与无残差连接的线性瓶颈结构及尺寸关系变化如图
MobileNet v2网络架构:
3.2.3 实验结果
与MobileNet v1等模型在ImageNet数据集上不同分辨率及通道数比较精度,(乘法和加法)计算量以及参数量等,在性能和参数量上都比MobileNet有所提升
在目标检测领域,与利用深度可分离卷积的SSD模型结合发现比MobileNet v1推理速度更快,但检测精度mAP略低…
论文地址:https://arxiv.org/pdf/1905.02244.pdf
3.3.1 改造方案
(1)引入Squeeze and Excitation(SE)架构
(2)引入5×5卷积核,修改网络整体架构
(3)引入h-swish激活函数
3.3.2 实现方法
(1)借鉴SENet网络,通过引入SE架构显式的建模特征图各个通道之间的作用关系提高网络网络模型的表达能力。是一种注意力机制模型,通过自动学习获取每个特征通道的重要性,并依据重要程度对相应特征通道进行促进或抑制。
SE架构包含Squeeze、Excitation、Scale部分:
SE架构的使用灵活方便,可以在不破坏原有网络模型基础上任意添加;使用SE架构会增加一定的计算量和参数量但对性能的提升大
(2)使用神经结构搜索(NAS)相关技术(MnasNet)优化MobileNet v3各个模块来搜索全局网络架构,其中发现使用5×5卷积核的准确率要高于3×3卷积核;然后通过NetAdapt算法搜索每层特征图通道数量。
通过相关技术的互补有效地(为特定的硬件平台)找到优化的模型(MobileNet v3-Large、MobileNet v3-Small),其网络架构:
(3)swish激活函数能够有效改进网络精度然后存在计算量过大的问题,借鉴hard-sigmoid对sigmoid的改进,为提高计算效率提出了hard(h)-swish激活函数
3.3.3 实验结果
与MobileNet v2等模型在ImageNet数据集上不同分辨率及通道数比较精度,(乘法和加法)计算量、参数量、浮点性能等
比较了h-swish激活函数及其插入位置和有无优化实现对网络框架推理速度和精度的影响
在目标检测领域,比较在COCO数据集上的mAP精度,推理速度等
感谢阅读,非科班出身,请批评指正
mybatis日期查询的坑:具体查询某一天的数据,数据库中能查询到结果,但是mybatis中却查询不到
Nginx 0.8.x + PHP 5.2.13(FastCGI)搭建胜过Apache十倍的Web服务器(第6版)[原创]
SAP UI5 表格行项目内的按钮点击之后,如何获得当前所在的表格行项目的数据
初识C语言 六 (#define定义常量和宏、指针、结构体)
IO流 InputStream输入流、OutputStream简单介绍
基于Ubuntu 18.04.3操作系统的TensorFlow 2.1.0、PyTorch 1.4.0、OpenCV 4.2.0、Darknet深度学习环境搭建