【网络结构】GoogLeNet inception-v1:Going deeper with convolutions论文笔记
@
0. 论文链接
1. 概述
GoogLeNet是谷歌团队提出的一种大体保持计算资源不变的前提下,通过精妙的设计来增加网络的深度和宽度,基于Hebbian法则和多尺度处理来进行设计,在ILSVRC2014中获得了分类和检测第一的好成绩。
通过实验,可以发现神经网络的效果可以通过网络更深、更宽来提升。但也有两个很明显的问题:过拟合和极大的增加了计算量,作者想通过增加网络的稀疏性的同时加深与加宽网络,但是计算机的基础结构在遇到稀疏数据计算时会很不高效,使用稀疏矩阵会使得效率大大降低,所以作者提出了一种既能利用稀疏性,又可以利用稠密计算的网络结构。
ps:读论文的时候,文章中很多sparse,十分不理解,在网上查阅了一些资料,1.CNN具有稀疏性跟参数共享的特性,稀疏性指的是他相比于同规格的全连接,输出的数值量较少。2.稀疏性就是有输出的神经元比例比较少的意思(某 UCLA大神在知乎上的回答)
总得来说,1.inception-v1引入了inception结构,并针对一些问题进行了改进。2.因为网络很深,训练的时候增加辅助分类器防止梯度消失。3.巧用1x1卷积。
2. inception
inception结构主要考虑了如何设计近似卷积视觉网络的最优稀疏结构并用容易获得的密集组件进行覆盖,然后在网络中重复这个局部结构。他们先提出了这个“naive inception”,如下图

针对结构图做以下说明
1)采用不同大小的卷积核意味着不同大小的感受野,最后拼接意味着不同尺度特征的融合;
2) 之所以卷积核大小采用1、3和5,主要是为了方便对齐。设定卷积步长stride=1之后,只要分别设定pad=0、1、2,那么卷积之后便可以得到相同维度的特征,然后这些特征就可以直接拼接在一起了;
3) 文章说很多地方都表明pooling挺有效,所以Inception里面也嵌入了;
4) 网络越到后面,特征越抽象,而且每个特征所涉及的感受野也更大了,因此随着层数的增加,3x3和5x5卷积的比例也要增加;
可以发现,这样设计,网络结构不但更宽了而且融合不同尺度的特征,同时他们的输出拼接起来组成一个输出向量,因此相当于一个“神经元”,这样保证了网络结构的稀疏性,算是设计的十分巧妙了。
但是,使用5x5的卷积核仍然会带来巨大的计算量。 为此,论文借鉴NIN结构,采用1x1卷积核在进行3x3以及5x5卷积之前先进行降维,这样在增加宽度与深度的同时平衡计算量。改进的inception如下:

3. GoogleNet
这是他们团队在比赛中使用的模型,基于inception模型,采用模块化结构,方便添加和修改。为了防止梯度消失,同时网络中间的层次生成的特征会非常有区分性,所以给这些层增加一些辅助分类器。这些分类器以小卷积网络的形式放在Inception(4a)和Inception(4b)的输出上。在训练过程中,损失会根据折扣后的权重(折扣权重为0.3)叠加到总损失中(详细的可以看下图)。
把全连接层改成average pooling层,想法来自NIN,经过试验可以将top-1 acc提高0.6%,即使去掉了FC层同样需要dropout,但是,实际在最后还是加了一个全连接层,主要是为了方便以后大家finetune(原因是网上同学解释的),在总得结构图中也可以发现在每个分类器之前都有一个average pooling层。

总体结构:
- 包括Inception模块的所有卷积,都用了修正线性单元(ReLU);
- 网络的感受野大小是224x224,采用RGB彩色通道,且减去均值;
- #3x3 reduce和#5x5 reduce分别表示3x3和5x5的卷积前缩减层中1x1滤波器的个数;pool proj表示嵌入的max-pooling之后的投影层中1x1滤波器的个数;缩减层和投影层都要用ReLU;
- 网络包含22个带参数的层(如果考虑pooling层就是27层),独立成块的层总共有约有100个;
- 添加辅助分类器

具体细节:
- 均值pooling层滤波器大小为5x5,步长为3,(4a)的输出为4x4x512,(4d)的输出为4x4x528;
- 1x1的卷积有用于降维的128个滤波器和修正线性激活;
- 全连接层有1024个单元和修正线性激活;
- dropout层的dropped的输出比率为70%;
- 线性层将softmax损失作为分类器(和主分类器一样预测1000个类,但在inference时移除)。
参考链接
https://www.jianshu.com/p/ffae362527f0
https://blog.csdn.net/xjz18298268521/article/details/52381919
https://blog.csdn.net/wspba/article/details/61921619
【网络结构】GoogLeNet inception-v1:Going deeper with convolutions论文笔记的更多相关文章
- 图像分类(一)GoogLenet Inception_V1:Going deeper with convolutions
论文地址 在该论文中作者提出了一种被称为Inception Network的深度卷积神经网络,它由若干个Inception modules堆叠而成.Inception的主要特点是它能提高网络中计算资源 ...
- 深度学习面试题20:GoogLeNet(Inception V1)
目录 简介 网络结构 对应代码 网络说明 参考资料 简介 2014年,GoogLeNet和VGG是当年ImageNet挑战赛(ILSVRC14)的双雄,GoogLeNet获得了第一名.VGG获得了第二 ...
- Inception V1、V2、V3和V4
Inception模块分为V1.V2.V3和V4. V1(GoogLeNet)的介绍 论文:Going deeper with convolutions 论文链接:https://arxiv.org/ ...
- 深度学习面试题29:GoogLeNet(Inception V3)
目录 使用非对称卷积分解大filters 重新设计pooling层 辅助构造器 使用标签平滑 参考资料 在<深度学习面试题20:GoogLeNet(Inception V1)>和<深 ...
- 网络结构解读之inception系列二:GoogLeNet(Inception V1)
网络结构解读之inception系列二:GoogLeNet(Inception V1) inception系列的开山之作,有网络结构设计的初期思考. Going deeper with convolu ...
- Going Deeper with Convolutions(Inception v1)笔记
目录 Abstract Introduction First of All Inception Depth Related Work Motivation and High Level Conside ...
- GoogLeNet 之 Inception v1 v2 v3 v4
论文地址 Inception V1 :Going Deeper with Convolutions Inception-v2 :Batch Normalization: Accelerating De ...
- 解读(GoogLeNet)Going deeper with convolutions
(GoogLeNet)Going deeper with convolutions Inception结构 目前最直接提升DNN效果的方法是increasing their size,这里的size包 ...
- Going Deeper with Convolutions (GoogLeNet)
目录 代码 Szegedy C, Liu W, Jia Y, et al. Going deeper with convolutions[C]. computer vision and pattern ...
随机推荐
- Cookies Client Identification
HTTP The Definitive Guide Cookies are the best current way to identify users and allow persistent se ...
- 苏宁易购微信端 wx ios android other 通过js来控制样式
<!DOCTYPE HTML><html><head><meta charset="UTF-8"><meta name=&qu ...
- Random/Stochastic
---恢复内容开始--- ===================================================== A random variable's possible valu ...
- 并发编程 - IO模型 - 1.io模型/2.阻塞io/3.非阻塞io/4.多路复用io
1.io模型提交任务得方式: 同步:提交完任务,等结果,执行下一个任务 异步:提交完,接着执行,异步 + 回调 异步不等结果,提交完任务,任务执行完后,会自动触发回调函数同步不等于阻塞: 阻塞:遇到i ...
- vue监听浏览器窗口大小变化
首先,页面初始化mounted的时候,通过 document.body.clientWidth 和 document.body.clientHeight 来获取到浏览器的宽和高,然后通过 window ...
- spring常见注解说明
1. @ActiveProfiles("test") 我理解这个注解的主要用途是区分不同的环境.一般公司开发一个项目时,会区分测试环境.生产环境等.添加该注解,说明读取的profi ...
- 关于Unix时间戳转北京时间的问题
工具在这里:http://tool.chinaz.com/Tools/unixtime.aspx?qq-pf-to=pcqq.group 今天踩了坑,无论参数是多少,年份总是1970.才发现原来参数必 ...
- redis的客户端medis
medis是用js写的redis客户端工具,界面很好用,也很有用.点击这里可以下载到mac下的软件包. 下面是截图: 完结.
- HDU1003:Max Sum(简单dp)
题目:http://acm.hdu.edu.cn/showproblem.php?pid=1003 题意一目了然就不说了,算法是从左往右扫,一个暂时保存结果的值,如果区间结果<0,那么就更改左右 ...
- FileLoadTools
/** * Created by dev013 on 9/9/14. */ var FileLoadTools = (function () { var my = {}; var htmlFile = ...