TensorFlow学习记录:GoogleNet模型

GoogleNet最核心的亮点就是它的Inception,最大的特点就是去除了最后的全连接层,用全局平均池化层(即使用与特征图尺寸相同的过滤器来做平均池化)来取代它。
这么做的原因是:在以往的AlexNet和VGGNet网络中,全连接层几乎占据90%的参数量,占用了过多的运算量内存使用率,而且还会引起过拟合。
GoogleNet的做法是去除全连接层,使得模型训练更快并且减轻了过拟合。之后GoogleNet的Inception还在继续发展,目前己经有v2、v3和v4版本,主要针对解决深层网络的以下3个问题产生的。
(1)参数太多,容易过拟合,训练数据集有限 。
(2)网络越大计算复杂度越大,难以应用。
(3)网络越深,梯度越往后传越容易消失(梯度弥散),难以优化模型 。
Inception的核心思想是通过增加网络深度和宽度的同时减少参数的方法来解决问题。例如,Inception v1有22层深,比AlexNet的8层或者VGGNet的19层更深。但其计算量只有15亿次浮点运算,同时只有500万的参数量,仅为AlexNet参数量(6000万)的1/12,却有着更高的准确率。

下面将沿着Inception的进化来一步步了解Inception。

1.1 Inceptinon原始Moudle

Inception的原始Module相对于MLP卷积层更加稀疏,它采用了MLP卷积层的思想,将中间的全连接层换成了多通道卷积层。Inception与MLP在卷积网络中的作用一样,把封装好的Inception Module作为一个卷积单元,堆叠起来形成了原始的GoogleNet网络。
Inception Module的结构是将1*1,3*3,5*5的卷积核对应的卷积操作和3*3的滤波器对应的池化操作堆叠在一起,一方面增加了网络的宽度,另一方面增加了网路对尺度的适应性,结构如下图所示:
在这里插入图片描述
Inception Module中包含了3种不同尺寸的卷积和一个最大池化,增加了网络对不同尺度的适应性,这和Multi-Scale的思想类似。早期计算机视觉的研究中,受灵长类神经视觉系统的启发,Serre使用不同尺寸的Gabor滤波器处理不同尺寸的图片,Inception v1借鉴了这种思想。Inception V1的论文中指出,Inception Module可以让网络的深度和宽度高效率地扩充,提升了准确率且不致于过拟合。
形象的解释就是Inception Module本身如同大网络中的一个小网络,其结构可以反复堆叠在一起形成更大网络。

1.2 Inception V1 Module

Inception V1 Module在原有的Inception Module基础上做了一些改进,原因是由于Inception的原始Module是将所有的卷积核都在上一层的输出来做,那么5*5的卷积核所需的计算量就比较大,造成了特征图很厚大。
为了避免这一现象,Inception V1 Module在3*3前,5*5前,最大池化层后分别加上了1*1的卷积核,起到了降低特征图厚度的作用(其中1*1卷积主要用来降维),Inception V1 Module结构如下图所示
在这里插入图片描述
Inception V1Moudle中有以下4个分支:
(1)第1个分支对输入进行1*1卷积,这其实也是NIN中提出的一种重要结构。1*1卷积可以跨通道组织信息,提高网络的表达能力,同时可以对输出通道进行升维和降维。
(2)第2个分支先使用了1*1卷积,然后连接3*3卷积,相当于进行了两次特征变换。
(3)第3个分支与第2个分支类似,先是1*1卷积,然后连接5*5卷积。
(4)第4个分支则是3*3最大池化后直接使用1*1卷积。
可以发现4个分支都用到了1*1卷积,有的分支只使用1*1卷积,有的分支在使用了其他尺寸的卷积的同时会再使用1*1卷积,这是因为1*1卷积的性价比很高,增加一层特征变换和非线性转化所需的计算量更小。
1*1的卷积作用:

  • 可以进行跨通道的特征变换,把这些相关性很高的、在同一个空间位置但是不同通道的特征连接在一起,提高网络的表达能力;
  • 同时可以对输出通道升维(拉伸)和降维(压缩),计算量小。

Inception V1 Module的4个分支在最后再通过一个聚合操作合并(使用tf.concat函数在输出通道数的维度上聚合)。

1.3 Inception V2 Module

Incept

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值