Inception 系列学习小记

参考很多,仅为个人学习记录使用

Inception 系列网络是 Google 提出的网络结构

 

  • InceptionV1(GoogLeNet)发表于 2014 年并获得了 ILSVRC 2014 的冠军;test error: 6.67%
  • InceptionV2,提出了 BN 初始化方法,也使用了多个小卷积层来代替大卷积层;test error: 4.8%
  • InceptionV3,加入了分解卷积,即将一个 7*7 卷积分解成 1*7 和 7*1 两步,增加了网络的非线性,并且更精细的设计了 35*35,17*17,8*8 的卷积模块;test error: 3.5%
  • InceptionV4,尝试了更深的 Inception 网络结构,也在 Inception 中加入了残差模块,构成 Inception-Resnet-v1 和 Inception-Resnet-v2;test error: 3.08%

一、InceptionV1(GoogLeNet)

简介

 

  • GoogLeNet的参数量相比AlexNet要少很多,是AlexNet参数的1/12;
  • 由于手机终端和嵌入式设备的发展,深度学习算法的运行效率和内存控制显得尤其重要,深度神经网络不仅具有学术性,更应该能够应用于现实生活中;
  • 论文起源于NIN(Network in network),并且在网络深度上进行了研究;

研究动机

 

  • 深度。网络采用了一个22层的结构,9个 Inception 模块(2-5-2结构)。为了避免梯度消失问题,GoogLeNet在不同层增加了Loss 的输出;
  • 宽度。网络在每一个小的结构中,利用了 1x1, 3x3, 5x5 的卷积核和直接 MaxPooling 操作(为了保证输出的特征层的大小与卷积核输出大小相同,步长设置为1)。为了避免由于宽度的增加带来每一个卷积核或者 MaxPooling 输出的特征层 cancatenate 之后,特征层的深度过深,也为了减少网络参数,在每一个 3x3,5x5 的卷积核前面和 3x3 MaxPooling 后面都利用了一个 1x1 的卷积核进行降维,如下图:

网络结构

 

  • 输入尺寸为 224*224;
  • 前四层是普通的卷积和池化计算,第一层用 7*7/stride=2 的卷积层,目的是降低图像的特征层大小,减少后面的计算量;
  • 网络中的池化层都是 3*3/stride=2 的结构;
  • 网络结构为:Inception module * 2 -> MaxPooling -> Inception module * 5 -> MaxPooling -> Inception module * 2,表格中的数字表示对应 Inception 模块中不同卷积层的维度设置,#3*3 reduce 表示 3*3 卷积前面用于降维的 1*1 卷积层的输出维度,pool proj 表示模块中池化层的输出维度;
  • 网络中的所有卷积层,后面都接一个 ReLU 激活函数;
  • 网络最后,对输出的 7*7*1024 特征图进行 average pooling 操作,得到一个 1*1*1024 输出;
  • 在 average pooling 的后面接了一个 Dropout 层;
  • 在 Inception(4a) 和 Inception(4d) 分别接了一个 5*5/stride=3 的 average pooling 层,从而得到了 4*4*512 和 4*4*528 的特征层,然后跟一个输出维度为 128 的 1*1 卷积层用来降维,第一个 FC 输出为 1024 并使用 Dropout,第二个 FC 输出为 1000,然后接 Softmax 函数得到分类结果。得到的 loss 用于反向传播,减少梯度消失带来的影响;

 

二、InceptionV2

加入 BN 层,减少了 Internal Covariate Shift(内部数据分布发生变化),使每一层的输出都规范化到一个 N(0, 1) 的高斯。

三、InceptionV3

InceptionV3 对网络结构重新进行了规划,引入了“多个小卷积层代替一个大卷积层”、“分解卷积”、"NIN in NIN" 等思想。同时,将输入图像尺寸改为了 299*299。

 

  • 多个小卷积层代替一个大卷积层:用两个 3*3 的卷积层替换一个 5*5 的卷积层,在减少参数的同时不会改变网络的表达能力;
  • 使用分解卷积:用 1×n 和 n×1 两步卷积来代替 n×n 的卷积核,即可以减少参数,还可以增加非线性。这种结构在前几层效果不太好,但对特征图大小为12~20的中间层效果明显;
  • NIN in NIN:利用分解的卷积再聚合,来提高高纬度的表达能力;

上述三种方法分别用在 35*35,17*17,8*8 三种尺寸下,可以说是为这三种尺寸精心设计了网络结构,如下图所示:

 

四、InceptionV4 & Inception-ResNet

InceptionV4 受到 ResNet 网络的启发,将 Inception 模块和残差模块进行结合,得到 Inception-resnet-v1 和 Inception-resnet-v1。同时,也探索了 Inception 模块本身是不是也能做到更深,更宽。

InceptionV4

  • 只有 Inception 模块
  • 如果模块中含有”V”,表示采用”VALID”的Padding,否则为”SAME”
  • 深度达到了75层(卷积)
  • Reduction-A: k=192,l=224,m=256,n=384
  • Inception V4 与 V3 相比,高层的结构相同,但底层的特征提取不同
  • Inception V4 相比 Inception-ResNet 模型,更强调宽度,尤其是在高层上

Inception-ResNet

 

  • 使用带有残差的 Inception 模块,即 Inception-ResNet-A、Inception-ResNet-B、Inception-ResNet-C
  • Stem 部分的输出深度与 Inception-v4 不同
  • Reduction A 部分的深度设置与 Inception-v4 不同,同时也是 Inception-ResNet-v1 和 Inception-ResNet-v2 的不同之处

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值