CNN结构演变总结(二)轻量化模型

CNN结构演变总结(一)经典模型

导言:

上一篇介绍了经典模型中的结构演变,介绍了设计原理,作用,效果等。在本文,将对轻量化模型进行总结分析。

轻量化模型主要围绕减少计算量,减少参数,降低实际运行时间,简化底层实现方式等这几个方面,提出了深度可分离卷积,分组卷积,可调超参数降低空间分辨率和减少通道数,新的激活函数等方法,并针对一些现有的结构的实际运行时间作了分析,提出了一些结构设计原则,并根据这些原则来设计重新设计原结构。

注:除了以上这种直接设计轻量的、小型的网络结构的方式外,还包括使用知识蒸馏,低秩剪枝、模型压缩等方法来获得轻量化模型。在本文的侧重点是介绍结构设计,因此对后面这几种方法在本文不予总结,在技术总结系列文章里后续会出一些关于模型压缩,知识蒸馏等方面的技术总结,欢迎持续关注。在CV技术指南中回复 “CNN模型 ”可获取这些模型的论文及论文解读。

Xception(2017)

Xception是基于Inception_v3上做轻量化的改进而来,可认为是extreme Inception。

创新之处有一:

1. 提出深度可分离卷积(Depthwise Separable Convolution)。

Inception_v3的结构图如下左图,去掉平均池化路径后变成右图。

图片

对上右图做一个简化,可变成如下左图的形式。当其极端化时,就变成了如下右图所示结构。

图片

因此,当使用一个3x3卷积对应一个通道时,也就形成了extreme Inception。同时作者认为先进行3x3卷积,再进行1x1卷积不会有什么影响。因此对extreme Inception进行镜像,先进行深度卷积,再进行1x1卷积,形成了深度可分离卷积。

此外,经过实验证明,在使用深度卷积后,不能再使用ReLU这种非线性激活函数,转而使用了线性激活函数,这样收敛速度更快,准确率更高。

MobileNet_v1(2017)

MobileNet v1 提出了一种有效的网络架构和一组两个超参数,这些超参数允许模型构建者根据问题的约束条件为其应用选择合适尺寸的模型,以构建非常小的,低延迟的模型,这些模型可以轻松地与移动和嵌入式视觉应用的设计要求匹配。

创新之处有二:

1. 提出使用深度可分离卷积构建网络,并对计算量做了分析。

图片

深度可分离卷积是将标准的卷积分解为深度卷积和 1x1 点卷积。深度卷积将单个滤波器应用于每个输入通道,点卷积将深度卷积的输出加权结合,这样的分解效果是大大减少了计算量和模型大小。

例如,给定一个Df x Df x M 的 feature maps 生成Df x Df x N 的 feature maps,假设卷积核大小为Dk。则深度可分离卷积与标准卷积的计算量的比值为:

图片

因此,当使用3x3卷积时,这种卷积方式可减少8-9倍计算量,而进度只降低了一点点。

此外,这种深度可分离卷积不只是减少了计算量这么简单。

对于无结构的稀疏的矩阵,其计算量虽然比密集矩阵要少,但由于密集矩阵在底层是使用了通用矩阵乘法(general matrix multiply function,即 GEMM)来进行优化(这种优化是在内存中通过 im2col 对卷积进行初始重新排序,再进行矩阵乘法计算),因此密集矩阵计算速度更快。

这里深度可分离卷积中的1x1 卷积不需要进行·im2col 重排序,直接就可以使用矩阵运算,至于深度卷积部分,其参数量和计算量极少,按照正常卷积的优化计算即可。因此深度可分离卷积计算速度同样极快。

2. 提出根据具体环境 使用超参数调整模型大小。

    使用超参数alpha调整深度卷积核的个数,即在原模型的深度卷积核个数M和N的基础上乘以缩小因子alpha。使用超参数P降低空间分辨率,在原来输入图尺寸的基础上乘以缩小因子P。

注:这种使用超参数的方式只降低了计算量,参数量仍然不变。

MobileNet_v2(2018)

MobileNet_v2 在轻量化结构设计方面没有创新,但提出了一些 MobileNet_v1 存在的一些问题,并在此基础上提出了改进方案。

创新之处有二:

1. 提出线性瓶颈(Linear Bottlenecks)

MobileNet_v2 提出 ReLU 会破坏在低维空间的数据,而高维空间影响比较少。因此,在低维空间使用 Linear activation 代替 ReLU。经过实验表明,在低维空间使用 linear layer 是相当有用的,因为它能避免非线性破坏太多信息。

此外,如果输出是流形的非零空间,则使用 ReLU 相当于是做了线性变换,将无法实现空间映射,因此 MobileNet_v2 使用 ReLU6 实现非零空间的非线性激活。

因此,其结构如下图所示:

图片

2. 提出倒残差(Inverted Residuals)

MobileNet_v2引入了残差连接和残差块,但不同的是,ResNet中的bottleneck residual是沙漏形的,即在经过1x1卷积层时降维,而MobileNet_v2中是纺锤形的,在1x1卷积层是升维。这是因为MobileNet使用了Depth wise,参数量已经极少,如果

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值