GoogleNet的发展

Inception V1:

Inception V1中精心设计的Inception Module提高了参数的利用率;nception V1去除了模型最后的全连接层,用全局平均池化层(将图片尺寸变为1x1),在先前的网络中,全连接层占据了网络的大部分参数,很容易产生过拟合现象;(详细见下面论文分析)

Inception V2:

Inception V2学习了VGGNet,用两个3*3的卷积代替5*5的大卷积核(降低参数量的同时减轻了过拟合),同时还提出了注明的Batch Normalization(简称BN)方法。BN是一个非常有效的正则化方法,可以让大型卷积网络的训练速度加快很多倍,同时收敛后的分类准确率可以的到大幅度提高。

BN在用于神经网络某层时,会对每一个mini-batch数据的内部进行标准化处理,使输出规范化到(0,1)的正态分布,减少了Internal Covariate Shift(内部神经元分布的改变)。BN论文指出,传统的深度神经网络在训练时,每一层的输入的分布都在变化,导致训练变得困难,我们只能使用一个很小的学习速率解决这个问题。而对每一层使用BN之后,我们可以有效的解决这个问题,学习速率可以增大很多倍,达到之间的准确率需要的迭代次数有需要1/14,训练时间大大缩短,并且在达到之间准确率后,可以继续训练。以为BN某种意义上还起到了正则化的作用,所有可以减少或取消Dropout,简化网络结构。

当然,在使用BN时,需要一些调整:

  • 增大学习率并加快学习衰减速度以适应BN规范化后的数据
  • 去除Dropout并减轻L2正则(BN已起到正则化的作用)
  • 去除LRN
  • 更彻底地对训练样本进行shuffle
  • 减少数据增强过程中对数据的光学畸变(BN训练更快,每个样本被训练的次数更少,因此真实的样本对训练更有帮助)

Inception V3:

Inception V3主要在两个方面改造:

  • 引入了Factorization into small convolutions的思想,将一个较大的二维卷积拆成两个较小的一位卷积,比如将7*7卷积拆成1*7卷积和7*1卷积(下图是3*3拆分为1*3和3*1的示意图)。 一方面节约了大量参数,加速运算并减去过拟合,同时增加了一层非线性扩展模型表达能力。论文中指出,这样非对称的卷积结构拆分,结果比对称地拆分为几个相同的小卷积核效果更明显,可以处理更多、更丰富的空间特征、增加特征多样性。

3*3卷积核拆分为1*3卷积和3*1卷积示意图: 

  • 另一方面,Inception V3优化了Inception Module的结构,现在Inception Module有35*35、17*17和8*8三种不同的结构,如下图。这些Inception Module只在网络的后部出现,前部还是普通的卷积层。并且还在Inception Module的分支中还使用了分支。

Inception V3中三种结构的Inception Module:

Inception V4:

Inception V4相比V3主要是结合了微软的ResNet,有兴趣的可以查看《Inception-v4, Inception-ResNet and the Impact of Residual Connections on Learning》论文。

对于Inception的实现,截取一段tf的googleNet代码:

 with tf.Variable_scope('inception_1_m1'):with tf.Variable_scope('Branch_0'):branch_0=slim.conv2d(net, 64, [1,1], scope='conv2d_0a_1xa')with tf.Variable_scope('Brance_1'):branch1_1=slim.conv2d(net, 48, [1,1], scope='conv2d_1a_1x1')branch1_2=slim.conv2d(branch1_1, 64, [5,5], scope='conv2d_1b_5x5')with tf.Variable_scope('Branch_2'):branch2_1 = slim.conv2d(net, 64, [1,1], scope='conv2d_2a_1x1')branch2_2 = slim.conv2d(branch2_1, 96, [3,3], scope='conv2d_2b_3x3')branch2_3 = slim.conv2d(branch2_2, 96, [3,3], scope='conv2d_2c_3x3')with tf.Variable_scope('Branch_3'):branch3_1 = slim.avg_pool2d(net, [3,3], scope='avgPool_3a_3x3')branch3_2 = slim.conv2d(branch3_1, 32, [1,1], scope='conv2d_3b_1x1')##四个branch net合并,output的xXy维度相同,在channel维度叠加net = tf.concat([branch_0, branch1_2, branch2_3. branch3_2], 3)

把最终的output变成如图:

转载于:https://www.cnblogs.com/ChrisInsistPy/p/9532180.html

神经网络-GoogleNet的发展,介绍,贡献相关推荐

  1. 神经网络的主要应用领域,神经网络发展介绍视频

    神经网络的历史是什么? 沃伦·麦卡洛克和沃尔特·皮茨(1943)基于数学和一种称为阈值逻辑的算法创造了一种神经网络的计算模型.这种模型使得神经网络的研究分裂为两种不同研究思路. 一种主要关注大脑中的生 ...

  2. StyleGAN2发展介绍 花卉图像生成 模型修改

    第一部分-----StyleGAN2发展介绍 stylegan发展:gan要做的事情是通过生成器由简单分布生成复杂图像分布,生成的图片分布和真实图片分布的差距越小越好,这一步通过判别器实现.生成大的. ...

  3. seq2seq发展介绍

    seq2seq发展介绍 因为seq2seq相关介绍博客很多,之前只是通过博客学习,一直没有读过相关论文.虽然通过博客对seq2seq大体框架有所了解,但是对于实现细节和发展并不是很清楚.近日在学习co ...

  4. 深度学习入门(三十一)卷积神经网络——GoogLeNet

    深度学习入门(三十一)卷积神经网络--GoogLeNet 前言 卷积神经网络--GoogLeNet 课件 最好的卷积层超参数? Inception:全都要 Inception块 GoogLeNet 段 ...

  5. 国内pinterest发展介绍------瀑布流效果

    国内pinterest发展介绍 pinterest的成功,源于互联网的开放与分享,还有读图时代的到来和社交网络的推动.pinteres创新了视觉分享的社交模式--兴趣图谱,简化了图片这种具有互联网传播 ...

  6. 递归神经网络教程(1)-RNN介绍

    递归神经网络教程(1)-RNN介绍 Source: http://www.wildml.com/2015/09/recurrent-neural-networks-tutorial-part-1-in ...

  7. 易云维医院后勤综合管理平台为医院智慧后勤的建设与发展做出贡献

    近年来,随着国家医疗卫生改革进程的不断推进,越来越多的医院开始关注运营成本控制问题,医院后勤管理服务模式的创新和优化变得越来越重要.利用医院后勤综合管理平台将医院后勤管理信息化将极大地提高医院智慧后勤 ...

  8. 感谢这10所高校师生!为边缘计算发展做出贡献!

    Gartner每年会根据分析预测把各种新科技的发展阶段及要达到成熟所需的时间绘制在一条曲线上,这条曲线被称为"Gartner新兴技术成熟度曲线"(The Gartner Hype ...

  9. 《深度学习实战》第1章 深度学习的发展介绍

    参考书籍<深度学习实战>杨云.杜飞著 第1章 深度学习的发展介绍 介绍 python是一种非常简单易学的解释性语言.由于强大的开源库支持(numpy,scipy,matplotlib),其 ...

  10. 人工神经网络研究的发展及特性,以前不叫人工智能

    https://www.toutiao.com/a6644776351553290755/ 2019-01-10 16:05:54 人工神经网络研究的先锋麦卡洛克和皮茨曾于1943年提出一种叫做&qu ...

最新文章

  1. 彻底明白IP地址——计算相关地址
  2. Gartner:到2020年人工智能将创造出230万个工作岗位
  3. python操作access数据库未发现数据源名称_ASP连接ACCESS数据库失败,提示“未发现数据源名称并且未指定默认驱动程序”...
  4. 有温度的技术,改善上亿人的生活
  5. 封装(构造方法,构造器)
  6. sdut 2074 区间覆盖问题(贪心)
  7. 简单入门Buffer
  8. C语言如何调用REFPROP软件,coolprop调用refprop计算流体的热力学性质和传输特性
  9. VC网络编程实战视频教程
  10. 我们应该能够识别的表象和本质
  11. js转换金钱为中文单位元、万元、亿元、万亿
  12. 霍华德大学计算机科学,霍华德大学有哪些专业
  13. Error:Attempt to invoke virtual method ‘void android.widget.TextView.setText(java.lang.CharSeq
  14. 使用KCP 加速游戏消息,让全球玩家流畅联网
  15. ICPR 2018|阿里巴巴读光OCR及MTWI数据集亮相引关注
  16. Hive的Parquet存储与LZO压缩
  17. python有哪些细节描写_细节描写的句子有哪些
  18. U8引入账套提示:出现系统错误5 拒绝访问
  19. KEGG注释(生信学习)
  20. 电脑桌面云便签怎么设置字体字号大小?

热门文章

  1. shell中exec命令
  2. 关于 it行业未来 的个人判断
  3. Trip to Canvas(1)
  4. ACL2021 | 知识对比:基于外部知识的图神经虚假新闻检测
  5. 【阿里巴巴】面向2022届应届生,阿里启动史上最大规模校招
  6. BERT中CLS效果真的好嘛?这篇文章告诉你答案
  7. 【CV学习笔记】OpenCV基本操作
  8. 深度学习TF—13.对抗生成网络—GAN
  9. 通过Gradle为APK瘦身
  10. 内容营销——网络营销的杀手级武器