深度解读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 报告(上篇)
欢迎大家前往腾讯云社区,获取更多腾讯海量技术实践干货哦~ 张钦坤 腾讯研究院秘书长蔡雄山 腾讯研究院法律研究中心副主任祝林华 腾讯研究院法律研究中心助理研究员曹建峰 腾讯研究院法律研究中心高级研究员 ...
随机推荐
- DataContractJsonSerializer序列化时间类型时转换为UTC溢出问题
问题描述 如下一个实体类,含有非空时间类型属性,默认是C#的最小时间,在使用DataContractJsonSerializer将该类对象序列化成JSON时,抛出异常信息:System.Runtime ...
- Java:逐行读、写文件、文件目录过滤的用法
import java.io.BufferedReader; import java.io.File; import java.io.FileInputStream; import java.io.I ...
- 南京邮电大学java第二次实验报告
实 验 报 告 ( 2017 / 2018学年 第2学期) 课程名称 JAVA语言程序设计 实验名称 Java集成开发环境的安装与使用. Java变量.表达式与控制结构 实验时间 2018 年 4 月 ...
- POJ-3255 Roadblocks---Dijkstra队列优化+次短路
题目链接: https://vjudge.net/problem/POJ-3255 题目大意: 给无向图,求1到n的次短路长度 思路: 由于边数较多,应该使用dijkstra的队列优化 用d数组存储最 ...
- html5之一些通用属性
dir属性:定义元素内容排序方式(rtl,ltr,auto)contentEditable属性:内容是否可编辑tabindex属性:按tab键激活元素 <!DOCTYPE html>< ...
- 三,前端---JS最基本的创建对象的方法
1:工厂模式 function createPerson(name, job){ var person = new Object(); person.name = name; person.job = ...
- VINS 估计器之检查视差
为什么检查视差 VINS里为了控制优化计算量,在实时情况下,只对当前帧之前某一部分帧进行优化,而不是全部历史帧.局部优化帧的数量就是窗口大小.为了维持窗口大小,需要去除旧的帧添加新的帧,也就是边缘化 ...
- [LeetCode] Prime Number of Set Bits in Binary Representation 二进制表示中的非零位个数为质数
Given two integers L and R, find the count of numbers in the range [L, R] (inclusive) having a prime ...
- .NET CORE 2.0 踩坑记录之ConfigurationManager
在之前.net framework 中使用的ConfigurationManager还是很方便的,不过在.NET CORE 2.0中SDK默认已经不存在ConfigurationManager. 那么 ...
- 利用 pyspider 框架抓取猫途鹰酒店信息
利用框架 pyspider 能实现快速抓取网页信息,而且代码简洁,抓取速度也不错. 环境:macOS:Python 版本:Python3. 1.首先,安装 pyspider 框架,使用pip3一键安装 ...