InceptionV1/GoogLeNet

GoogLeNet通过引入InceptionModule解决了深层网络的梯度问题,采用不同大小卷积核并列结构,平衡网络深度与参数规模。1*1卷积核降低channel,控制参数规模,为后续网络发展奠定基础。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Paper : Going deeper with convolutions
Code : torchvision

概要

GoogLeNet 的核心思想其实与之后的ResNet有一定的相关性,都是在尝试解决梯度爆炸/梯度消失的问题,只不过ResNet采用了更加激进的方式。GoogLeNet 尝试在网络深度与参数规模达到一种平衡,采用的方法相对来说比较trick,GoogLeNet引入了对于同一层输入使用不同大小的卷积核进行特征提取的观点。

网络结构

更深的网络可以带来更好的表现,因此加深加宽网络结构是发展的趋势,但是更深的网络会带来以下几个问题

  1. 参数规模增大,难以训练
  2. 参数规模增大,更容易带来过拟合问题
  3. 梯度爆炸/梯度消失

因此,GooLeNet 提出了两个有意思的结构:Inception Module和辅助分类器。Inception Module具有一定的可取之处,而在这篇论文作者认为辅助分类器的作用是协助梯度的反向传播,加快收敛速度,但是在不久以后就被证实辅助分类器的真实作用是正则化,因此之后就没什么人去研究辅助分类器了。

Inception Module 的初始版本如下
image.png

既然深度增大可能会导致梯度爆炸/梯度消失的问题,那么控制网络的最大深度即可。而我们又希望输入可以经过更多的、不同的卷积层与池化层,提取出更多有用的特征,因此设计出来的结构如上。有以下几个特点

  1. MaxPool层并不是用于缩小输入数据的长宽,它的步长为1。
  2. 1*1的卷积核的作用原文并没有特别说明,可能是为了提高channel。

    We assume that each unit from the earlier layer corresponds to some region of the input image and these units are grouped into filter banks. In the lower layers (the ones close to the input) correlated units would concentrate in local regions. This means, we would end up with a lot of clusters concentrated in a single region and they can be covered by a layer of 1×1 convolutions in the next layer, as
    suggested in [12]

  3. filter concatenation 是指卷积后的四个输出在channel维度上进行连接,不妨设输出为 (batch, channel_x, width, height),那么连接之后的输出为 (batch, channel_1 + channel_2 + channel_3 + channel_4, width, height)。
  4. 在一个或几个inception module 连接之后再连接MaxPool + ReLU 缩小长宽。

以上的结构虽然理论可行,但是存在以下的问题:对于卷积层来说,5*5的卷积核带来的参数规模和训练过程中的计算量实在是太大了,参数规模大致为 in_channel*filter_height*filter_width*out_channel,因此如果我们可以在经过大的卷积核之前将in_channel尽可能降低,那么计算量和参数规模将会大大下降。Inception Module V2 如下所示
image.png

这里,1*1的卷积核作用就是在经过卷积层之前降低channel,减少参数规模。这样做的前提是即使channel的个数很低,输出也可以包含足够的信息。这是因为MaxPool是一种信息损失很大的操作,而大多数神经网络在经过多次MaxPool之后仍能有较好的表现,这说明对于每层的输出而言,有效信息较少,冗余性较高。这种观点其实在之后的Pyramidal Net中也可以有所体现。GoogLeNet的总体结构如下

image.png

接下来简要谈一下辅助分类器,辅助分类器长成这个样子

image.png

其中黄色代表softmax层,每个softmax都可以输出一个对答案的预测,三个softmax的输出可以同时进行反向传播,论文作者认为如果从最深的一层反向传播会发生梯度爆炸/梯度消失问题,那么多设置几个反向传播开的位置就可以了,除了最上面的softmax提供预测称作分类器,其他几个被称为辅助分类器,辅助分类器还可以提供额外的正则化,也可以看作是部分参数共享的集成学习。尽管后来有Paper证明辅助分类器没他想的那么好。

核心观点

  1. 网络不只有层叠一种方式,引入了多卷积核并列的结构。
  2. 更深的网络如果带来的问题不好解决,尝试将网络的宽度(channel)变宽,也可以达到很好的效果。
  3. 1*1的卷积核可以自由控制channel的大小,可以降低卷积核带来的参数规模,为ResNet中著名的bottleneck结构奠定了基础。
  4. 引入模块化的概念,神经网络开始以模块为单位,便于操作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值