Inception

推荐一个翻译了很多经典神经网络论文的github

介绍

Inception V1是来源于《Going deeper with convolutions》,论文主要介绍了,如何在有限的计算资源内,进一步提升网络的性能。

提升网络的性能的方法有很多,例如硬件的升级,更大的数据集等。但一般而言,提升网络性能最直接的方法是增加网络的深度和宽度。其中,网络的深度只的是网络的层数,宽度指的是每层的通道数。但是,这种方法会带来两个不足

a) 容易发生过拟合。当深度和宽度不断增加的时候,需要学习到的参数也不断增加,巨大的参数容易发生过拟合。

b) 均匀地增加网络的大小,会导致计算量的加大

Inception是GoogleNet中的模块,它的目的是设计一种具有优良局部拓扑结构的网络,即对输入图像并行地执行多个卷积运算或池化操作,并将所有结果拼接为一个非常深地特征图。因为1 * 1 , 3 * 3 , 5 * 5 等不同卷积地运算与池化操作可以获得输入图像的不同信息,并行处理这些运算并结合所有结果将获得更好的图像表征。

另一方面,Inception网络是复杂的(需要大量工程工作)。它使用了大量的trick来提升性能,包括速度和准确率两方面。它的不断进化带来了多种Inception网络版本的出现。常见的版本有:

  • Inception V1
  • Inception V2和Inception V3
  • Inception V4和Inception ResNet

每个版本都是前一个版本的迭代进化。了解Inception网络的升级可以帮助我们构建自定义分类器,优化速度和准确率。不过,一般情况下,或许较低版本的Inception模块工作效果更好。

结构

在这里插入图片描述
对于上图中的(a)做出几点解释:

  • 采用不同大小的卷积核意味着不同大小的感受野,最后拼接意味着不同尺度特征的融合;
  • 之所以卷积核大小采用1、3和5,主要是为了方便对齐;
  • 文章说很多地方都表明pooling挺有效,所以Inception里面也嵌入了;
  • 网络越到后面,特征越抽象,而且每个特征所涉及的感受野也更大了,因此随着层数的增加,3x3和5x5卷积的比例也要增加。

但是,使用5x5的卷积核仍然会带来巨大的计算量。 为此,文章借鉴NIN,采用1x1卷积核来进行降维,如图中(b)所示。

例如:上一层的输出为100x100x128,经过具有256个输出的5x5卷积层之后(stride=1,pad=2),输出数据的大小为100x100x256。其中,卷积层的参数为5x5x128x256。假如上一层输出先经过具有32个输出的1x1卷积层,再经过具有256个输出的5x5卷积层,那么最终的输出数据的大小仍为100x100x256,但卷积参数量已经减少为1x1x128x32 + 5x5x32x256,大约减少了4倍。

在inception结构中,大量采用了1x1的矩阵,主要是两点作用:(可以想想深度可分离卷积,有点那味~)

  • 对数据进行降维;
  • 引入更多的非线性,提高泛化能力,因为卷积后要经过ReLU激活函数。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值