Inception

1. Inception-v1

1.1 为什么提出Inception

一般来说,提升网络性能最保险的方法就是增加网络的深度和宽度,但这样做同时也会伴随着副作用:

1、当越深越宽的网络往往会有着巨大的参数量,当数据量很少的时候,训练出来的网络容易过拟合

2、需要更多的计算资源

3、网络越深,梯度容易消失,优化困难(这时还没有提出BN时,网络的优化极其困难)

基于此,我们的目标就是,提高网络计算资源的利用率,在计算量不变的情况下,提高网络的宽度和深度。作者认为,解决这种困难的方法就是,把全连接改成稀疏连接,卷积层也是稀疏连接,但是不对称的稀疏数据数值计算效率低下,因为硬件全是针对密集矩阵优化的,所以,我们要找到卷积网络可以近似的最优局部稀疏结构,并且该结构下可以用现有的密度矩阵计算硬件实现,产生的结果就是Inception。

1.2 网络结构

Inception Module基本组成结构有四个成分。1*1卷积核,3*3卷积核,5*5卷积核,3*3最大池化。最后对四个成分运算结果进行通道上组合。

Inception结构如下图:

图(a)是原始版本的Inception模型,它的结构特点有:

1、如此大小的卷积核,并没有特殊的意义,主要是为了方便对齐,后期可以得到相同大小的特征图易于拼接

2、使用不同大小的卷积核,则使感受野的大小也不同,这样即可得到不同尺度的特征。

图(b)是相对于图(a)增加了1*1卷积核进行降维,作用是

3、由于5*5的卷积核计算量太大,降低维度可以减少计算量

4、增加网络的深度和宽度,提高网络的表达能力

1.3 作用

Inception的核心思想:通过多个卷积核提取图像不同尺度的信息,最后进行融合,可以得到图像更好的表征

具体来说,假设我们要提取狗的脸部特征,不同图片中狗脸占比显然是不一样的,那么我们就需要使用不同大小的卷积核提取不同的信息。信息分布比较全局性的图像采用大卷积核,信息分布比较局部性的图像采用小卷积核。

作者提出的Inception的优点:

1、显著增加了每一步的单元数目,计算复杂度不会不受限制,尺度较大的特征在卷积之前先降维

2、视觉信息在不同尺度上进行处理融合,这样下一步可以从不同尺度提取特征

1.4 GoogLeNet

GoogLeNet是由Inception Module组成的,它的结构图:

它的特点:

1、采用模块化结构,方便增加和修改。整个网络结构其实就是叠加Inception Module

2、使用Dropout层,防止过拟合

3、使用Averagepool来代替全连接层的思想。实际在最后一层还是添加了一个全连接层,是为了大家做finetune。

4、另外增加了两个辅助的softmax分支,作用有两点,一是为了避免梯度消失,用于向前传导梯度。反向传播时如果有一层求导为0,链式求导结果则为0。二是将中间某一层输出用作分类,起到模型融合作用。最后的loss=loss_2 + 0.3 * loss_1 + 0.3 * loss_0。实际测试时,这两个辅助softmax分支会被去掉。

2. Inception-v2

2.1 创新点

谷歌团队在2015年提出了Inception-v2,首次提出了批量归一化(Batch Normalization)方法,同时也改进了网络结构。具体的创新点:

2.1.1 Batch Normalization

在神经网络的每层计算中,参数变化导致数据分布不一致,会产生数据的协方差偏移问题,通过对第i层的数据进行BN操作,也就是对数据进行归一化。可以将数据控制在一定的范围内,在输入到第i+1层。可以提高网络的收敛能力,减少dropout的使用。

2.1.2 拆分卷积核

问题:

减少特征的表征性瓶颈。直观上来说,当卷积不会大幅度改变输入维度时,神经网络可能会执行地更好。过多地减少维度可能会造成信息的损失,这也称为「表征性瓶颈」。

使用更优秀的因子分解方法,卷积才能在计算复杂度上更加高效。

解决方法:

使用小的感受野代替大的感受野,v1版本中使用了5*5的卷积核,v2版本使用两个3*3的卷积核可以替代它。这样保证了感受野的范围还减少了参数量。并且增加了网络的深度,使表达能力更强。

2.2 作用

1、批量归一化解决了协方差偏移的问题。让数据可控。即使使用大的学习率,网络也不会发生梯度消失或梯度爆炸的问题。减少了梯度对参数大小或初始值的依赖。还可以使用非线性饱和激活函数,因为可以避免陷入饱和状态。

2、卷积核的替换则可以保证感受野的同时,增加网络的表达能力。

3. Inception-v3

3.1 创新点

Inception V3对 Inception V2 主要进行了两个方面的改进。

首先,Inception V3 对 Inception Module 的结构进行了优化,现在 Inception Module有了更多的种类(有 35 × 35 、 1 7× 17 和 8× 8 三种不同结构),并且 Inception V3 还在 Inception Module 的分支中使用了分支(主要体现在 8x8 的结构中),如下图所示。

其次,在 Inception V3 中还引入了将一个较大的二维卷积拆成两个较小的一维卷积的做法。例如, 7× 7 卷积可以拆成 1×7 卷积和7 × l卷积。当然3x3 卷积也可以拆成 Ix3 卷积和 3 × l卷积。这被称为Factorizationinto small convolutions 思想。在论文中作者指出,这种非对称的卷积结构拆分在处理更多、更丰富的空间特征以及增加特征多样性等方面的效果能够比对称的卷积结构拆分更好,同时能减少计算量。例如,2个33代替1个55减少28%的计算量,如下图所示。

3.2 作用

1、由于 Inception 网络是全卷积的, 每一个权重都会与多处响应相关联, 计算成本的降低会带来参数量的降低. 这意味着通过恰当的因式分解(factorizationinto convolutions), 作者可以得到更多解耦的参数, 从而可以带来更快的训练速度。

2、论文中也提了辅助分类器的效用。带有辅助分类器和不带辅助分类器的两个网络,在模型达到较高精度以前,他们的性能看起来是差不多的。但是当到了训练后期,带有辅助分支的网络开始超越没有任何辅助分支的网络,进而达到更高的精度。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值