深度学习之GoogLeNet解读

深度学习之GoogLeNet解读提出背景相关工作基本思想及过程提出背景 始于LeNet-5,一个有着标准的堆叠式卷积层冰带有一个或多个全连接层的结构的卷积神经网络。通常使用dropout来针对过拟合问题。 为了提出一个更深的网络,GoogLeNet做到了22层,利用inception结构,这个结构很好地利用了网络中的计算资源,并且在不增加计算负载的情况下,增加网络的宽度和深度。同时,为了优化网络质量,采用了Hebbian原

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

提出背景

 始于LeNet-5,一个有着标准的堆叠式卷积层冰带有一个或多个全连接层的结构的卷积神经网络。通常使用dropout来针对过拟合问题。
 为了提出一个更深的网络,GoogLeNet做到了22层,利用inception结构,这个结构很好地利用了网络中的计算资源,并且在不增加计算负载的情况下,增加网络的宽度和深度。同时,为了优化网络质量,采用了Hebbian原理和多尺度处理。GoogLeNet在分类和检测上都取得了不错的效果。
 最近深度学习的发展,大多来源于新的想法,算法以及网络结构的改善,而不是依赖于硬件,新的数据集,更深的网络,并且深度学习的研究不应该完全专注于精确度的问题上,而更应该关注与网络结构的改善方面的工作。

相关工作

 GoogLeNet参考Robust object recognition with cortex-like mechanisms.中利用固定的多个Gabor滤波器来进行多尺度处理的方法,对inception结构中的所有滤波器都进行学习,并运用至整个22层网络。
 GoogLeNet参考Network in network.中对1×1卷积的使用来增加网络深度的做法,GoogLeNet也利用了1×1卷积来进行降维和限制网络尺寸的作用。
 GoogLeNet参考Rich feature hierarchies for accurate object detection and semantic segmentation.即R-CNN将整个检测任务分为两个子问题的做法,即首先利用底层特征如颜色,文本等来进行提取与类别无关的proposals,然后将这些proposals放入CNN中进行训练来确定类别信息的做法。GoogLeNet也借鉴这种方式,并对两个阶段都进行了改进,第一个阶段使用多边框预测,第二个阶段则是使用更好的CNN网络结构。

基本思想及过程

 GoogLeNet提出最直接提升深度神经网络的方法就是增加网络的尺寸,包括宽度和深度。深度也就是网络中的层数,宽度指每层中所用到的神经元的个数。但是这种简单直接的解决方式存在的两个重大的缺点。
(1) 网络尺寸的增加也意味着参数的增加,也就使得网络更加容易过拟合
(2) 计算资源的增加。
 因此想到将全连接的方式改为稀疏连接来解决这两个问题。由Provable bounds for learning some deep representations.提到数据集的概率分布由大又稀疏的深度神经网络表达时,网络拓扑结构可由逐层分析与输出高度相关的上一层的激活值和聚类神经元的相关统计信息来优化。但是这有非常多的限制条件。因此提出运用Hebbian原理,它可以使得上述想法在少量限制条件下就变得实际可行。
 通常全连接是为了更好的优化并行计算,而稀疏连接是为了打破对称来改善学习,传统常常利用卷积来利用空间域上的稀疏性,但卷积在网络的早期层中的与patches的连接也是稠密连接,因此考虑到能不能在滤波器层面上利用稀疏性,而不是神经元上。但是在非均匀稀疏数据结构上进行数值计算效率很低,并且查找和缓存未定义的开销很大,而且对计算的基础设施要求过高,因此考虑到将稀疏矩阵聚类成相对稠密子空间来倾向于对稀疏矩阵的计算优化。因此提出了inception结构。


这里写图片描述

 inception结构的主要思想在于卷积视觉网络中一个优化的局部稀疏结构怎么样能由一系列易获得的稠密子结构来近似和覆盖。上面提到网络拓扑结构是由逐层分析上一层的相关统计信息并聚集到一个高度相关的单元组中,这些簇(单元组)表达下一层的单元(神经元)并与之前的单元相连接,而靠近输入图像的底层相关的单元在一块局部区域聚集,这就意味着我们可以在一块单一区域上聚集簇来结尾,并且他们能在下一层由一层1×1的卷积层覆盖,也即利用更少的数量在更大空间扩散的簇可由更大patches上的卷积来覆盖,也将减少越来越大的区域上patches的数量。
 为了避免patch对齐问题,因此限制了inception结构中滤波器的大小为1×1,3×3,5×5。由于inception结构中都是互相堆叠的,因此输出相关统计信息一定不同:为了在高层能提取更抽象的特征,就要减少其空间聚集性,因此通过增加高层inception结构中的3×3,5×5卷积数量,捕获更大面积的特征。
 在上述inception结构中,由于滤波器数量的增加,加上池化操作使得5×5大小的滤波器的计算开销非常大,池化层输出与卷积层输出的合并增加了输出值的数量,并且可能覆盖优化稀疏结构,处理十分低效,引起计算爆炸。因此引出下面这个inception结构。
这里写图片描述

 inception结构中有很多嵌套,低维嵌套包含了大量的图片patch信息,且这种嵌套表达了一个稠密且压缩的信息的形式,但我们想要表达的更加稀疏,并且只在大量聚集的时候才对信号进行压缩,因此考虑利用在3×3和5×5卷积操作前进行1×1卷积来进行降维处理,1×1不仅降维,而且还引入了ReLU非线性激活。实际发现,只在高层中使用inception结构对整个网络更加有利。
 inception结构的好处在于在没有计算复杂度不受控制的计算爆炸时,可以增加每个阶段的单元个数,也就是网络的宽度,当然还有深度;同时这种结构也类似于图像中多尺度处理之后将处理结果聚集在一起以便于下一个阶段能同时提取不同尺寸下的特征。
 由于稀疏结构的计算量大的问题,所以采用1×1的卷积来减少参数的计算,其中1×1 卷积解释为:
在3×3和5×5层前,各自增加一个1×1的卷积操作。1×1的卷积(或者网络层中的网络),提供了一个减少维度的方法。比如,我们假设你拥有一个输入层,体积是100x100x60(这并不定是图像的三个维度,只是网络中每一层的输入)。增加20个1×1的卷积滤波器,会让你把输入的体积减小到100x100x20。这意味着,3×3层和5×5层不需要处理输入层那么大的体积。这可以被认为是“池特征”(pooling of feature),因为我们正在减少体积的高度,这和使用常用的最大池化层(maxpooling layers)减少宽度和长度类似。另一个需要注意的是,这些1×1的卷积层后面跟着的是ReLU 单元,这肯定不会有害。
 有了上面的这种结构形式,叫inception:这个inception模型由一个网络层中的网络、一个中等大小的过滤卷积、一个大型的过滤卷积、一个操作池(pooling operation)组成。网络卷积层中的网络能够提取输入体积中的每一个细节中的信息,同时5×5的滤波器也能够覆盖大部分接受层的的输入,进而能提起其中的信息。你也可以进行一个池操作,以减少空间大小,降低过度拟合。在这些层之上,你在每一个卷积层后都有一个ReLU,这能改进网络的非线性特征。基本上,网络在执行这些基本的功能时,还能同时考虑计算的能力。这篇论文还提供了更高级别的推理,包括的主题有稀疏和紧密联结。
这里写图片描述

 上图为GoogLeNet的网络框图细节,其中“#3×3 reduce”,“#5×5 reduce”代表在3×3,5×5卷积操作之前使用1×1卷积的数量。输入图像为224x224x3,且都进行了零均值化的预处理操作,所有降维层也都是用了ReLU非线性激活函数。

这里写图片描述

 如上图用到了辅助分类器,Inception Net有22层深,除了最后一层的输出,其中间节点的分类效果也很好。因此在Inception Net中,还使用到了辅助分类节点(auxiliary classifiers),即将中间某一层的输出用作分类,并按一个较小的权重(0.3)加到最终分类结果中。这样相当于做了模型融合,同时给网络增加了反向传播的梯度信号,也提供了额外的正则化,对于整个Inception Net的训练很有裨益。
这里写图片描述

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/170453.html原文链接:https://javaforall.net

(0)
上一篇 2022年8月14日 下午10:16
下一篇 2022年8月14日 下午10:16


相关推荐

  • Unity安装 ILRuntime插件

    Unity安装 ILRuntime插件unity2019.4.2f1c1在packagemanager里面找不到ILRuntime插件解决办法:编辑项目下Packages的manifest.json文件,添加如下代码贴出来方便大家复制自己需要的部分{“scopedRegistries”:[{“name”:”ILRuntime”,”url”:”https://registry.npmjs.org”,”scopes”:[…

    2022年6月27日
    82
  • django官方入门教程_DJango

    django官方入门教程_DJangoDjango入门教程Django是一个开放源代码的Web应用框架,由Python写成。采用了MTV的框架模式,即模型M,模板T和视图V。其最大特点自带一个后台管理系统,可以让只要少量代码就能实现后台管理,尤其适合内容管理网站(如博客,新闻,公司首页等信息类网站),适合中小型web网站。Django基本介绍Django安装HelloDjango开发工具

    2025年10月1日
    5
  • 方差、标准差以及协方差

    方差、标准差以及协方差方差 标准差以及协方差今天在看最优化基础的时候 看到一个协方差的使用 但是映像却不是很清晰 特写一篇博文记录协方差 说到协方差 那我们还是从方差开始看起 方差 标准差以及协方差都是用来衡量样本数据的变化情况的 不同的是方差和标准差只能衡量一组数据的变化情况 协方差可以衡量两组数据之间的变化情况 那我们先来看方差 方差方差是样本各数据与均值 数学期望 之差的平方的平均数 反映的是样本与其均

    2026年3月16日
    2
  • linux 删除中文文件夹,Linux删除文件夹命令是什么

    linux 删除中文文件夹,Linux删除文件夹命令是什么Linux 删除文件夹命令有 1 rmdir 命令 用于删除空的文件夹 语法格式 rmdir p 文件夹名称 2 rm 命令 用于删除一个文件或者文件夹 语法格式 rm rf 文件夹名称 本教程操作环境 RedHatEnterp 1 系统 DellG3 电脑 Linux 删除文件夹命令 rmdirrmdir 命令使用场景 当有空目录要删除时 可使用 rmdir 指令 若所

    2026年3月16日
    3
  • 哈佛幸福课-幸福笔记

    哈佛幸福课-幸福笔记幸福笔记“我是真的什么都有,我就是想有什么我都可以买什么,但是我居然这么痛苦,所以我就知道了这个幸福跟这个钱多少真的是没关系,而且钱多的话或者名气大,如果成功,如果你没有管理好你自己往往更容易让你陷入精神的痛苦。”-张朝阳接受杨澜采访时说脑子里经常闪过一些天真的想法,比如:如果我有张朝阳那样的成就和财富,就一定会一辈子开开心心没有烦恼亚克西。虽然非常愚蠢,但我们往往还是会把

    2022年7月25日
    8
  • java递归函数详解_java保存递归结果

    java递归函数详解_java保存递归结果一、递归函数,通俗的说就是函数本身自己调用自己…如:n!=n(n-1)!你定义函数f(n)=nf(n-1)而f(n-1)又是这个定义的函数。。这就是递归二、为什么要用递归:递归的目的是简化程序设计,使程序易读三、递归的弊端:尽管非递归函数效率高,但较难编程,可读性较差。递归函数的缺点是添加�了系统开销,也就是说,每递归一次,栈内存就多占用一截四、递归的条件:需有完毕任务的语句,需满足递归的要求…

    2026年1月18日
    5

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号