目标检测向:Going deeper with convolutions -- GoogLeNet

Part1: 总结

λ 2014年ILSVRC(ImageNet Large Scale Visual Recognition Challenge)挑战赛冠军
λ 神经网络特点:更深( 22层)、更宽 
λ Inception


Part2: 近期成果
LeNet-5 :共7层,主要有卷积层、下采样层(思想: 利用图像局部相关性的原理,对图像进行子抽样,可以减少数据处理量同时保留有用信息)、全连接层3种


Part3: Motivation and Consideration
λ 改善表现的两种方式:更深(layer更多)、更宽(neuron更多)
λ 可能导致的两大后果:过多参数导致过拟合、计算资源利用是否有效
λ 解决上述问题的根本方法:将全连接甚至一般的卷积都转化为稀疏连接。


Part4: Architectural Details -- Naïve version
λ 在接近输入层的低层中,相关单元集中在某些局部区域,最终得到在单个区域中的大量聚类,可在下一层通过1x1的卷积覆盖
λ 也可以通过在更大的patch上卷积,覆盖少量的在空间上更大的聚类,区域越来越大,patch数越来越少。
λ 设置filter大小为1x1,3x3和5x5,主要是为了方便,不是必要的
λ Max pooling可以起到优化作用,因此最后的最初版本的结构为
λ Inception模块之间互相堆放,它们的输出相关性统计一定会改变:高层次提取高抽象性的特征,空间集中性会降低,因此3x3和5x5的conv在更高层会比较多
λ 结论:采用naïve version,有一个大问题是filter太多。Pooling的加入更会加重这一问题。pooling层的输出和conv的输出融合导致输出数量随着layer增多而增长。因此即使我们采用稀疏结构,还是会出现效率低以及计算爆炸这样的后果。
Part5: Inception module with dimension reductions
λ 第二个模型的核心:在计算要求多的地方进行降维和映射
λ 实现这一想法的理论基于:embedding(将sparse vector 转换成dense vector, 这一dense vector存储了更多信息),
λ 但由于压缩信息的建模难度,作者的做法实际上是需要压缩的地方就压缩,其余的地方继续保持sparse状态,即,在3x3和5x5的卷积前用一个1x1的卷积用于减少计算,还用了reLu(节省计算量,达到稀疏性)。
λ 优点:
ν 自然而然地增加了模型宽度,但计算复杂性又得到了控制 
ν 二是信息在不同的尺度上处理之后然后聚合,这样下一步可以同时从不同尺度提取特征。 


Part6: 总体结构
λ 包括Inception模块在内的所有卷积,都用了ReLU
λ #3x3 reduce和#5x5 reduce分别表示3x3和5x5的卷积前reduction layer中1x1滤波器的个数;
λ pool proj表示嵌入的max-pooling之后的projection layer中1x1滤波器的个数; reduction 和projection layer都要用ReLU; 
λ 包含22个带参数的层(考虑pooling层就是27层)
λ 如果给网络中间的层增加一些辅助分类器,则它们生成的特征会很有区分性,它们以convNet的形式放在Inception(4a)和Inception(4b)的输出上,其损失计算方式: 在训练过程中,根据折扣后的权重(折扣权重为0.3)叠加到总损失中。
λ 关于辅助分类器的一些细节:
ν Average pooling层filter大小为5x5,步长为3
ν 1x1的卷积有用于降维的128个filter和relu
ν 全连接层有1024个单元和relu
ν dropout层的dropped的输出比率为70%
ν 线性层用softmax损失作为分类器
Part7: 训练方法
λ 利用分布式机器学习系统DistBelief和数据并行来训练网络
λ DistBelief ---- 普通服务器  并行计算平台 异步(一种分布式算法)算法  SGD并行化
λ Momentum = 0.8
λ 学习率每8个epoch下降4%
λ 最后建模用的是Polyak averaging 
λ patch大小从图像的8%到100%不等,长宽比介于3/4到4/3,利用光度扭曲缓解过拟合,还运用了随机插值法,并同时调整其他超参数来进行模型训练

Part8: ILSVRC 2014 Classification Challenge Setup
ILSVRC 2014 : 
λ 分类数:1000
λ 训练集大小:120万
λ 验证集大小:5万
λ 测试集大小:10万
λ 预测标准:基于得分最高的分类器预测
λ 两个指标为top-1准确率和top-5错误率
λ 如果top-5中包含真实分类,则认为分类正确
λ 作者测试时采用的一些技巧:  
ν 训练了7个GoogLeNet,初始化方法、权重以及学习率的调整方法都相同,不同之处在于采样方法和图像输入的随机顺序
ν 重构每一张图片的短边成256、288、320、352四种尺度。取图像的左中右square(或上中下square )。每一个square取四个角和中间的224x224的crop ,然后把四个corner和中间的224x224的crop以及这个square缩放到224x224以及镜像(mirrored version)。这样每个图像就分为4x3x6x2=144个,但可能实际中不需要这么多
ν softmax概率在多种crop和在所有分类器上取平均值来得到最后的预测结果,简单的平均结果最好(和max pooling相比)。

Part9: ILSVRC 2014 Detection Challenge Setup
λ 标准:1.是否正确分类 2.bbox与groundtruth的overlap大于50% 3.计算mAP
λ 和classification不同之处:图像中可能包含多个目标或者不包含目标,尺度多样 
λ 特点: 采用的目标检测方法同R-CNN类似,但将Inception模块作为区域分类器。将multi-box方法和Selective Search结合来提高bbox的召回率,没有采用bbox回归。 


Part10: 结论
λ 证明了用稀疏连接来改善表现的可行性
λ 虽然更深、更宽,但计算要求增加幅度不大,而且质量提高
λ 模型并没有利用context、没有进行bbox回归——证明Inception结构的强大




谷歌这篇文章提出的神经网络框架,个人认为其最大的亮点在于我们每个人都知道要改善神经网络的表现,最直接的两个点就是加宽以及加深,但这样也就不可避免地对算力以及运行时间长短提出了更高的要求,基于此种考虑提出的Inception结构被证明是可以改善神经网络表现,同时在算力的要求上又没有增加太多。
最终谷歌提出的GoogleNet在2014年ILSVRC(ImageNet Large Scale Visual Recognition Challenge)挑战赛上,获得了冠军,GoogleNet实现了更深和更宽的目标,是一个22层的深层神经网络。
GoogleNet名字的由来还是很有意思的,不仅仅是表明这是谷歌团队自己的作品,更是对LeNet的一个致敬,因此作者在近期成果中对LeNet-5进行了一个回顾。LeNet-5是一个7层卷积神经网络,主要包括卷积层、下采样层、全连接层3种。它的大致结构如下图所示:


卷积层和全连接层比较好理解,接下来主要介绍一下什么是下采样层。下采样层的主要思想是:利用图像局部相关性的原理,对图像进行子抽样,可以减少数据处理量同时保留有用信息


每邻域四个像素求和变为一个像素,然后通过标量Wx+1加权,再增加偏置bx+1,然后通过一个sigmoid激活函数,产生一个大概缩小四倍的特征映射图Sx+1。

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值