2014年ImageNet ILSVRC冠军论文学习 - GoogleNet

GoogleNet

GoogleNet的创新点:在借鉴1*1卷积思想的基础上,通过滤波器组合构建Inception模块,使得网络可以更深、更宽,提高了网络的表达能力。其中,1*1卷积主要用来降低模块的维度(dimension reduction module),减少计算量,使得网络可以更深更宽。Inception模块的基本思想是:不需要人为的决定使用哪个卷积结构或者池化结构,而是由网络自己决定使用这些参数,决定用哪种滤波器组合。

1*1卷积

1*1卷积也是一种卷积核,它的作用主要是用来降维。例如,用一个1*1*32的卷积核对6*6*32的图片进行卷积,会产生6*6*1的输出。相当于压缩了数据的depth,或者说压缩了通道数。它在接下来要讲的Inception module中起着降维的作用,有效的减少了参数的数量。此外,1*1卷积还引入了ReLU非线性激活,能组合出更多的非线性特征

Inception Module

通常在构建卷积神经网络时,我们需要考虑如何设计网络的每一层,是使用1*1卷积、3*3卷积还是5*5卷积,以及是否使用池化操作。而GoogleNet的Inception Module就是出于让网络自己决定使用什么样的层结构而设计的。

简单来说,Inception模块就是分别采用1*1,3*3,5*5的卷积以及一个3*3的最大池化构造起来的组合,其输出的组合为Inception模块的输出。Naive Inception Module的基本组成如下图:

                                                   

上图中,Inception的输入为28*28*192的图像块,分别采用64个1*1的卷积核,128个3*3的卷积核,32个5*5的卷积核以及32个3*3的最大池化对输入进行操作,采用zero-padding保持输出的width和height不变,共得到:32+32+128+64=256个切片,因此输出为大小为28*28*256。 综上可以看出,Inception Module的作用就是不需要人为的去决定使用哪个卷积结构或者池化,而是由网络自己决定这些参数,决定有哪些滤波器组合。

在论文中,Inception Module有两种类型,分别为naive Inception,以及带降维的Inception。其结构如下图:

           

其中(b)图的Inception Module采用了大量的1*1卷积进行depth压缩,减少计算量。

GoogleNet 网络结构

                      

上图为GoogleNet使用的网络结构,即:Inception-V1版本。可以看到GoogleNet有如下优点:

  • GoogleNet的网络更深,更宽,进而可以更加充分的提取各种层次的特征。
  • GoogleNet还是用了全局平均池化层来替代前两个全连接层,进而减少参数的数量,降低过拟合

这是因为全连接层参数数量庞大,容易造成过拟合。

  • GoogleNet还使用了2个辅助分类器:softmax0和softmax1所对应的结构

在Inception Net中,还使用到了辅助分类节点(auxiliary classifiers)即将中间某一层的输出用作分类,并按一个较小的权重(0.3)加到最终分类结果中。这样相当于做了模型融合同时给网络增加了反向传播的梯度信号也提供了额外的正则化,对于整个Inception Net的训练很有裨益。 

Inception v1版本的具体结构如下表:

                

继Inception V1后,又不断对其进行优化和改进,提出了V2,V3和V4版本,以及后来的Xception等等,成为了深度卷积网络架构中的一大分支。文章开头已经附上各个版本的论文链接,就不在本文中对其进行一一介绍了。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值