文献精读——(第五篇)GoogleNet

一、文献梳理

1、文献背景

GoogLeNet在2014年的ImageNet比赛中获得第一名。一般来说,提升网络性能最直接的办法就是增加网络深度和宽度,这也就意味着更巨量的参数。但是,巨量参数容易产生过拟合,也会大大增加计算量。文献将全连接甚至一般的卷积都转化为稀疏连接,在提升网络性能的同时,减少了参数量。

2、研究成果

1)模型意义:

  • 此网络架构的主要意义就是提升了对网络内部计算资源的利用。
  • 增加了网络的深度和宽度,网络深度达到22层(不包括池化层和输入层),但没有增加计算代价。
  • 参数比2012年冠军队的网络少了12倍,但是更加准确。对象检测得益于深度架构和传统的计算机视觉算法(R-CNN)

2)实验及其结果:

(1)训练设置

  • 利用分布式机器学习系统和数据平行
  • 采用ASGD异步随机梯度下降,动量为0.9

(2)实验设置

  • 训练集120万,验证集5万,测试集10万
  • 报告top-1、top-5

(3)结果及分析

  • 其验证集结果与测试集结果均排名第一

  • 比较了单个模型的结果,而googleNet在模型集成时效果更好

二、文献核心思想

1、1*1conv:

  • 在相同尺寸的感受野中叠加更多的卷积,能提取到更丰富的特征
  • 使用1*1卷积进行降维,降低了计算复杂度

2、多尺度聚合卷积

在多尺度上聚合能够提取到不同尺度的特征,利用稀疏矩阵分解成密集矩阵计算的原理来加快收敛速度,在Inception上就是在维度上进行分解! 

  • 在直观上多个尺度同时进行卷积,能提取到不同尺度的特征。特征更加丰富。
  • 利用稀疏矩阵分解成密集矩阵计算的原理加快收款速度,此原理应用到inception上就是要在特征维度进行分解。
  • 赫布原理:两个神经元,如果总是同时兴奋,就会形成一个组合,其中一个神经元的兴奋会出尽另一个的兴奋。反映在inception上就是把相关性强的特征汇聚的一起。

3、inception V1结构

基本组成结构有四个成分。1*1卷积,3*3卷积,5*5卷积,3*3最大池化。最后对四个成分运算结果进行通道上组合。这就是Inception Module的核心思想。通过多个卷积核提取图像不同尺度的信息,最后进行融合,可以得到图像更好的表征

在3*3卷积,5*5卷积前加1*1卷积,目的是为了先进行降维,相比较于原来结构减少了较多参数。而把1*1卷积放在3*3最大池化之后,相比较放在前面,也是为了参数量的减少。

4、inception V2结构

学习VGGNet的特点,用两个3*3卷积代替5*5卷积,可以降低参数量。

提出BN算法。BN算法是一个正则化方法,可以提高大网络的收敛速度。简单介绍一下BN算法。就是对输入层信息分布标准化处理,使得规范化为N(0,1)的高斯分布,收敛速度大大提高。

5、inception V3结构

学习Factorization into small convolutions的思想,将一个二维卷积拆分成两个较小卷积,例如将7*7卷积拆成1*7卷积和7*1卷积。这样做的好处是降低参数量。paper中指出,通过这种非对称的卷积拆分,比对称的拆分为几个相同的卷积效果更好,可以处理更多,更丰富的空间特征。

                                        

6、inception V4结构

inception V4采用inception模块与残差网络进行结合,V4主要利用残差连接来改进V3结构,此时的GoogleNet已经开始借鉴其他网络的优点不断优化了。

                                                      

三、文献重点

1、摘要

  • ImageNet比赛中提出inception模块模块,在检测与分类上取得了新的最好结果
  • inception结构增加了网络的深度与宽度,提高了计算资源的利用率
  • inception结构基于赫步原则与多尺度处理
  • gooleNet是一个22层深的网络

2、动机与高层次思考

1)提高网络性能最直接的方法就是增加网络的尺寸(深度和宽度)这样会带来两个问题:

  • 扩大后的网络含有大量的参数,容易产生过拟合,大量的带标签的训练样本不容易得到。
  • 扩大后的网络要消耗大量的计算资源。

2)解决这两个问题的基本方法:

将全连接变成稀疏连接,包括卷积层。即Dropout理论,符合赫布原理,在非严格条件下,实际上是可行的。同时GoogLeNet还参考了以下方法:

  • CNN典型的结构:一堆卷积层+若干全连接层。
  • 针对大规模数据集问题,现在的趋势是增加层数和层的尺寸,并且使用dropout解决过拟合问题。
  • 使用Max Pool和Average Pool。
  • 使用Network in Network方法,增加网络的表现能力,这种方法可以看做是一个额外的1*1卷积层再加上一个ReLU层。NIN最重要的是降维,解决了计算瓶颈,从而解决网络尺寸受限的问题。这样就可以增加网络的深度和宽度了,而且不会有很大的性能损失。
  • 当前最好的对象检测方法是R-CNN。R-CNN将检测问题分解为两个子问题:首先利用低级特征(颜色和超像素一致性)在分类不可知时寻找潜在目标,然后使用CNN分类器识别潜在目标所属类别。GoogLeNet在这两个阶段都进行了增强效果。

3、Inception模块和普通卷积结构的差异    参考链接

1)Inception的主要思想就是如何找出最优的局部稀疏结构并将其覆盖为近似的稠密组件,这里就是将不同的局部结构组合到了一起。

2)原始的卷积是广义线性模型GLM(generalized linear model),GLM的抽象等级较低,无法很好的表达非线性特征,这种1×1的卷积操作将高相关性的节点聚集在一起。

什么是高相关性节点呢?两张特征图中相同位置的节点就是相关性高的节点,使用1×1的卷积相当于对这些特征再次进行提取,增加了卷积层的非线性。

假设当前层的输入大小是28×28×256,卷积核大小为1×1×256,卷积得到的输出大小为28×28×1。可以看出这种操作一方面将原来的线性模型变成了非线性模型,将高相关性节点组合到了一起,具有更强的表达能力,另一方面减少了参数个数。

3)卷积核与接受域对齐方式不同。没有Padding的对齐方式是让卷积核的左上角和接受域的左上角对齐,这种对齐方式卷积核始终在接受域的内部,不会跑到接受域的外部。GoogLeNet的卷积过程加了Padding让卷积核的中心和接受域的左上角对齐(padding作用)

4、算法流程

1)模块演化(a到b)

首先,inception架构的形式的卷积核尺寸仅限于1*1、3*3、5*5,经过这些卷积核进行拼接(可以通过padding是这些卷积核输出的特征图的大小一致,而这三种尺寸最小,因此只限于他们)。由于池化操作对于目前卷积网络至关重要,因此每个卷积核后面都再加一个并池化,这些池化相互并行。

同时我们思考,如果大规模使用5*5卷积,会增大计算量。还有池化操作输出的通道数与输入一致,四个途径的池化结果合并后会导致特征通道数,逐层大量增加。针对这两个问题,使用以下方式解决:

将1*1卷积放在3*3和5*5卷积之前,这样使通道数进行压缩。即减少了参数还增加了卷积层的非线性程度(因为增加了卷积层中激活函数的使用)

2)网络结构 

  • 3*3和5*5reduce:在3*3和5*5卷积核之前使用的1*1滤波器的个数
  •  pool proj:在最大池化后使用的1*1滤波器的个数
  • 根据实验数据,发现神经网络的中间层也具有很强的识别能力,为了利用中间层抽象的特征,某些中间层中添加含有多层的分类器。

四、补充    参考链接

1、训练以及样本预处理

  • 训练7个GoogLeNet模型,其中包含一个加宽版本,其余6个模型初始化和超参数都一样,只是采样方法和样本顺序不同。
  • 采用模型和数据并行技术,用几个高端GPU训练一周可得到收敛(估算)。
  • 多个模型的训练是不同步的,超参数的变化也是不一样的,比如dropout和学习率。
  • 有些模型主要训练小尺寸样本,有些模型训练大尺寸样本。
  • 采样时,样本尺寸缩放从8%到100%,宽高比随机选取3/4或4/3(多尺度)。
  • 将图像作光度扭曲,也就是随机更改图像的对比度,亮度和颜色。这样可以增加网络对这些属性的不变性
  • 使用随机插值方法重置图像尺寸(因为网络输入层的大小是固定的),使用到的随机插值方法:双线性插值,区域插值,最近邻插值,三次方插值,这些插值方法等概率的被选择使用。图像放大时,像素也相应地增加 ,增加的过程就是“插值”程序自动选择信息较好的像素作为增加的像素,而并非只使用临近的像素,所以在放大图像时,图像看上去会比较平滑、干净

2、测试以及测试样本处理

  • 对于一个测试样本,将图像的短边缩放成4种尺寸,分别为256,288,320,352。
  • 从每种尺寸的图像的左边,中间,右边(或者上面,中间,下面)分别截取一个方形区域。
  • 从每个方形区域的4个拐角和中心分别截取一个224×224区域,再将方形区域缩小到224×224,这样每个方形区域能得到6张大小为224×224的图像,加上它们的镜像版本(将图像水平翻转),一共得到4×3×6×2=144张图像。这样的方法在实际应用中是不必要的,可能存在更合理的修剪方法。
  • 改变超参数(反向传播若干次之后改变超参数,或者误差达到某阈值时改变超参数)
  •  

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值