【深度学习CV-baseline】GoogleNet-更深的卷积神经网络

《going deeper with Convolutions》更深的卷积神经网络

一、研究背景、成果及意义

1、学习目标
训练技巧中认识googleNet提出的数据增强技巧;测试技巧中一张图片怎样变成144张图片。
【深度学习CV-baseline】GoogleNet-更深的卷积神经网络_第1张图片
2、背景、成果及意义
【深度学习CV-baseline】GoogleNet-更深的卷积神经网络_第2张图片
相关研究
1、NIN(Network in Network网中网):首个采用1*1卷积的卷积神经网络,舍弃全连接层,大大减少网络参数;压缩特征图的厚度,为后续卷积计算提供更少的feature map及通道数量
2、Robust Object Recognition with Cortex-Like Mechanisms[15]:多尺度Gabor滤波器提取特征;
参考文献[15]用了多尺度的gabor滤波器提取特征,从而得到启发,做卷积时能不能同时用多尺度卷积核对上一层输出的特征图进行特征提取。
3、Hebbian principle(赫布理论):“Cells that fire together , wire together”(一起激发的神经元通常是连接在一起)生物神经元中的经典理论

1、NIN:首个采用11卷积的卷积神经网络,其特点:11卷积、GAP输出
从AlexNet、VGG观察可以发现,网络中的参数大多都集中在FC层,如果剔除掉FC层可以明显减少网络层中的参数。本文中借鉴了NIN中的1*1卷积,从而使得由特征图直接输出分类概率。
【深度学习CV-baseline】GoogleNet-更深的卷积神经网络_第3张图片
2、Robust Object Recognition with Cortex-Like Mechanisms特点:在S1层采用8种尺度Gabor滤波器进行提取不同尺度特征
在S1层采用了8种Gabor滤波器对特征进行提取,由于不同尺度滤波器的感受野不同,感受的信息也有所不同,因此采用不同尺度滤波器提取特征得到多样化的特征再融合。

研究意义
1、开启多尺度卷积时代
2、拉开1 * 1卷积广泛应用序幕
3、为GoogleNet系列开辟道路(V1→V2→V3→V4)

二、论文摘要及图表

摘要核心(Abstract)
1、本文主题:提出名为Inception的深度卷积神经网络,在ILSVRC-2014获得分类及检测双料冠军
2、模型特点1:Inception特点是提高计算资源利用率,增加网络深度和宽度时,参数少量增加
3、模型特点2:借鉴Hebbain理论和多尺度处理

论文图表(Figure、Table)
1、图1举例说明分类任务难度大
2、Inception结构示意图
3、GoogleNet结构示意图(GoogleNet V1的22层卷积神经网络结构图,其中对1个特征图有很多操作,把这些各个分支操作的结构再汇总起来)
4、表1 GoogleNet参数计算
5、表2 历年分类成绩
6、表3 GoogleNet提升过程(numbers of mode单模型、多模型;numbers of Crops 不裁剪、裁剪)
7、表4 历年检测成绩
8、表5 单模型检测成绩(自身提出单模型未取得最优成绩,inception是否适用于多模型融合)

三、GoogleNet结构

【深度学习CV-baseline】GoogleNet-更深的卷积神经网络_第4张图片
1、Inception模块
(1)特点
【深度学习CV-baseline】GoogleNet-更深的卷积神经网络_第5张图片
(2)问题:观察naïve version简单版本存在什么问题,如何进化的?
缺点:①数据量激增;②计算量大
【深度学习CV-baseline】GoogleNet-更深的卷积神经网络_第6张图片

解决方法:采用1*1卷积
【深度学习CV-baseline】GoogleNet-更深的卷积神经网络_第7张图片
2、GoogleNet结构特点
(1)三阶段:conv-pool-conv-pool快速降低分辨率;堆叠Inception;FC层分类输出
(2)堆叠使用Inception Module,达22层;
(3)增加两个辅助损失,缓解梯度消失(中间层特征具有分类能力)

关于前2个阶段的解释:
(1)三阶段:conv-pool-conv-pool快速降低分辨率;堆叠Inception;FC层分类输出
(2)堆叠使用Inception Module,达22层;
【深度学习CV-baseline】GoogleNet-更深的卷积神经网络_第8张图片
第3个阶段的解释:
【深度学习CV-baseline】GoogleNet-更深的卷积神经网络_第9张图片

GoogleNet的结构特点总结:
1、具有5个Block(Block1:conv-pool-conv-max pool;Block2: incepetion3;Block3: inception4; Block4:inception5;Block5:Linear层)
2、图像特征图分辨率一共下降5次,下降32倍;(3 * 3卷积最多,5 * 5卷积最少的)
3、卷积核数量变化魔幻;
4、输出层为1层FC层 前面VGG、AlexNet输出层为3个FC层,并且占了绝大多数的参数

GoogleNet结构针对Inception(3a)网络层结构图,可以得到Inception(3a)的branch操作
【深度学习CV-baseline】GoogleNet-更深的卷积神经网络_第10张图片

四、训练及测试技巧,实验结果及分析

Ⅰ. 训练技巧
1、辅助损失 在inception4b和inception4e增加两个辅助分类层,用于计算辅助损失。
【深度学习CV-baseline】GoogleNet-更深的卷积神经网络_第11张图片
2、学习率下降策略 每8个epoch下降4%:fixed learning rate schedule(decreasing the learning rate by 4% every 8 epochs)
【深度学习CV-baseline】GoogleNet-更深的卷积神经网络_第12张图片
3、数据增强的技巧
①图像尺寸均匀分布在8%-100%之间;②广泛应用在各种框架中 长宽比在[3/4,4/3]之间;
③色彩畸变,如亮度、饱和度和对比度等进行扰动。

Ⅱ. 测试技巧
1、Multi Crop 1张图变144张图
【深度学习CV-baseline】GoogleNet-更深的卷积神经网络_第13张图片
2、Model Fusion模型融合
要融合的模型应当具有一定的差异,差异主要来自于训练时设置不同的超参数或者样本的不同,来实现这些要融合的模型具备不同的表现能力。文中提到了所用的7个模型特点如下所述:
【深度学习CV-baseline】GoogleNet-更深的卷积神经网络_第14张图片
Ⅲ. 实验结果及分析
1、分类结果 ①模型融合:多模型比单模型精度高;②Multi Crops:Crop越多,精度越高
【深度学习CV-baseline】GoogleNet-更深的卷积神经网络_第15张图片
2、目标检测结果
【深度学习CV-baseline】GoogleNet-更深的卷积神经网络_第16张图片
3、为什么GoogleNet这样设计inception,稀疏结构对其有什么影响?
【深度学习CV-baseline】GoogleNet-更深的卷积神经网络_第17张图片
五、论文总结

Ⅰ. 关键点&创新点
【深度学习CV-baseline】GoogleNet-更深的卷积神经网络_第18张图片
Ⅱ. 启发点
1、池化损失空间分辨率,但在定位、检测和人体姿态识别中仍被应用。延申拓展:定位、检测和人体姿态识别任务十分注重空间分辨率信息;
在这里插入图片描述

2、增加模型深度和宽度,可有效提升性能,但有两个缺点:容易过拟合,以及计算量过大
在这里插入图片描述

3、为节省内存消耗,先把分辨率降低,再堆叠使用inception module
在讲三、GoogleNet结构特点中讲到三阶段时,第一阶段,GoogleNet利用conv-pool-conv-pool快速下降特征图的分辨率,这是为了节省内存消耗和加速运算
在这里插入图片描述

4、最后一个全连接层,是为了更方便的微调,迁移学习
GoogleNet网络第三阶段仅使用了1个FC层,这个FC层方便可以直接替换来做迁移学习,并且1个FC层具有的权重参数也较少
在这里插入图片描述

5、网络中间层特征对于分类也具有判别性
正是基于下述文字的假设和结论,GoogleNet才会在inception4b和inception4e中引出两个softmax分类层
在这里插入图片描述

6、学习率下降策略为每8个epochs下降4%(Loss曲线很平滑)
在这里插入图片描述

7、数据增强指导方针:1、尺寸在8%-100%;2、长宽比在[3/4,4/3];3、光照畸变有效;
在这里插入图片描述

8、随机采用插值方法可提升性能
在resize图片时随机采用不同的插值方法(双线性、最近邻等)可提升网络性能
在这里插入图片描述

9、实际应用中没必要144crops
简单点用tencrops就可以
在这里插入图片描述

10、总结

【深度学习CV-baseline】GoogleNet-更深的卷积神经网络_第19张图片

你可能感兴趣的:(CVbaseline论文精读,深度学习,cnn,神经网络)