深度解读GoogleNet之Inception V1
GoogleNet设计的目的
GoogleNet设计的初衷是为了提高在网络里面的计算资源的利用率。
Motivation
网络越大,意味着网络的参数较多,尤其当数据集很小的时候,网络更容易发生过拟合。网络越大带来的另一个缺点就是计算资源的利用率会急剧增加。例如,如果两个卷积层是串联的,他们滤波器数量中任何一个均匀增加都会导致计算资源的二次方浪费。解决这两个问题的方法是用稀疏连接的结构代替全连接。在早期为了打破网络的对称性和提高学习能力,传统的网络都使用随机的稀疏连接,但是计算机硬件对非均匀的稀疏连接的计算效率很差,所以在Alexnet中又启用了全连接,为的是更好的优化并行运算。Incpetion结构因此被提出,它既能保持网络结构的稀疏性,又能利用密集矩阵的高性能计算。
Inception结构
a

1.该结构采用了不同大小的卷积核,较小的卷积能够提取局部特征,较大的卷积能够渐近全局特征,而且不同大小的卷积有不同的感受野,能够提高网络的鲁棒性,最后通过concatenate合并这些特征。
2.之所以用1x1,3x3,5x5的卷积是为了方便对齐,假设卷积核的步长为1,则只需pad=0、1、2,卷积之后便可得到相同维度的特征映射,就可以直接将他们拼接起来。
3.在该结构中还加入最大池化,最大池化作用的是之前层的输出,目的应该是提供转移翻转不变性。
4.在网络的较高层,特征越抽象,并且网络的感受野变大,所以通常3x3和5x5的卷积数量会增加,会引入大量的参数。当引入池化单元后,参数更多,因为输出滤波器的数量等于前一个阶段滤波器的数量,会导致不可避免的参数膨胀。
b

为了解决参数过多的问题,在Inception中引入了1x1的卷积。1x1的卷积有以下两个好处:
(1) 最重要的是1x1的卷积起到了维度衰减的作用,移除了计算瓶颈。假设原来Inception模块的输入特征映射为28x28x192,其中1x1卷积的通道数为64,3x3卷积通道数为128,5x5卷积通道数为32,则卷积核的参数为1x1x192x64+3x3x192x128+5x5x192x32,而在b结构中加入通道数为96和16的1x1卷积,则参数为1x1x192x64+(1x1x192x96+3x3x96x128)+(1x1x192x16+5x5x16x32),参数减少到了原来的1/3。
(2) 通常在1x1的卷积后面会引入一个非线性激活函数,也就是Relu,相当于引入了更多的非线性变换,提高了网络的表示能力。
GoogleNet

由图可知,Googlenet是由多个Inception模块堆叠而成,它的深度达到了22层,并且网络最后没有使用全连接层而是采用了平均池化层,这样做的好处是减少了参数,防止过拟合。并且为了避免梯度消失,网络额外增加了2个辅助的softmax用于向前传播梯度,在测试阶段这两个softmax会被移除。至于为什么不是在一开始就堆叠Inception模块,而是用几个卷积层加池化层是因为在网络的早期,输出的特征映射尺度通常很大,使用单独的卷积层和池化层能够降低特征映射的大小,减少参数,防止过拟合。
深度解读GoogleNet之Inception V1的更多相关文章
- 网络结构解读之inception系列二:GoogLeNet(Inception V1)
		网络结构解读之inception系列二:GoogLeNet(Inception V1) inception系列的开山之作,有网络结构设计的初期思考. Going deeper with convolu ... 
- GoogLeNet 之 Inception v1 v2 v3 v4
		论文地址 Inception V1 :Going Deeper with Convolutions Inception-v2 :Batch Normalization: Accelerating De ... 
- 深度学习面试题20:GoogLeNet(Inception V1)
		目录 简介 网络结构 对应代码 网络说明 参考资料 简介 2014年,GoogLeNet和VGG是当年ImageNet挑战赛(ILSVRC14)的双雄,GoogLeNet获得了第一名.VGG获得了第二 ... 
- 论文阅读笔记四十二:Going deeper with convolutions (Inception V1 CVPR2014 )
		论文原址:https://arxiv.org/pdf/1409.4842.pdf 代码连接:https://github.com/titu1994/Inception-v4(包含v1,v2,v4) ... 
- 【转】CNN卷积神经网络_ GoogLeNet 之 Inception(V1-V4)
		http://blog.csdn.net/diamonjoy_zone/article/details/70576775 参考: 1. Inception[V1]: Going Deeper with ... 
- 从Inception v1,v2,v3,v4,RexNeXt到Xception再到MobileNets,ShuffleNet,MobileNetV2
		from:https://blog.csdn.net/qq_14845119/article/details/73648100 Inception v1的网络,主要提出了Inceptionmodule ... 
- 从GoogLeNet至Inception v3
		从GoogLeNet至Inception v3 一.CNN发展纵览 我们先来看一张图片: 1985年,Rumelhart和Hinton等人提出了后向传播(Back Propagation,BP)算法( ... 
- 我就是认真:Linux SWAP 深度解读(必须收藏)
		我就是认真:Linux SWAP 深度解读(必须收藏) http://mp.weixin.qq.com/s?__biz=MzA4Nzg5Nzc5OA==&mid=2651660097& ... 
- AI 新技术革命将如何重塑就业和全球化格局?深度解读 UN 报告(上篇)
		欢迎大家前往腾讯云社区,获取更多腾讯海量技术实践干货哦~ 张钦坤 腾讯研究院秘书长蔡雄山 腾讯研究院法律研究中心副主任祝林华 腾讯研究院法律研究中心助理研究员曹建峰 腾讯研究院法律研究中心高级研究员 ... 
随机推荐
- SourceTree 01 - git 客户端介绍
			SourceTree - git客户端介绍 SourceTree系列第1篇 --->> SourceTree 01 - git 客户端介绍(http://www.cnblogs.com/g ... 
- re模块中的compile函数
			compile compile(pattern,flag=0) compile a regular expression pattern,return a pattern object compile ... 
- z-index的学习整理转述
			前言:这是笔者第一次写博客,主要是学习之后自己的理解.如果有错误或者疑问的地方,请大家指正,我会持续更新! z-index属性描述元素的堆叠顺序(层级),意思是A元素可以覆盖B元素,但是B元素并没有消 ... 
- Java进阶篇(二)——抽象类、内部类
			之前在类和对象中我们说到了类的普通特性,本篇将介绍类的一些高级特性. 一.抽象类 抽象类:抽象类是只声明方法的存在而不去具体实现它的类.抽象类不能被实例化,也就是不能创建其对象.使用abstract关 ... 
- 两个css之间的切换
			需求: 头部两个按钮 两种样式之间的切换 解决办法: 结合JQ 三目运算 来处理 第一步: 把需要切换的样式设置为样式里背景,这样做的目的为了避免 js里出现过多 css代码 二来这样会显得更加的清 ... 
- 使用控制台调试WinForm窗体程序
			.程序代码结构 .Win32DebuggerHelper.cs using System.Runtime.InteropServices; /* TODO:使用方法 Win32.AllocConsol ... 
- HTML笔记05------AJAX
			AJAX初探01 AJAX概念 概念:即"Asynchronous JavaScript And XML" 通过在后台与服务器进行少量数据交换,AJAX可以使网页实现异步更新.这意 ... 
- angular的时间指令 以及防止闪烁问题
			1.点击事件 <!doctype html><html lang="en"><head> <meta charset="UTF- ... 
- kafka知识体系-kafka设计和原理分析-kafka leader选举
			kafka leader选举 一条消息只有被ISR中的所有follower都从leader复制过去才会被认为已提交.这样就避免了部分数据被写进了leader,还没来得及被任何follower复制就宕机 ... 
- 用redis的订阅发布解决了扫码支付实时响应的问题
			一.场景描述: PC收银台的浏览器展示了收款二维码,用户扫了支付二维码,支付完成后,浏览器需要实时响应支付结果. 二.问题描述: 扫码支付的支付结果一般通过服务端回调和主动查询来获取,显示二维码之后, ... 
