深度学习之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的训练很有裨益。
这里写图片描述

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

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • 亚信安全发布2021年挖矿病毒专题报告,聚焦挖矿病毒进化与治理

    亚信安全发布2021年挖矿病毒专题报告,聚焦挖矿病毒进化与治理供稿|亚信安全出品|CSDN云计算近日,《亚信安全2021年挖矿病毒专题报告》正式发布(以下简称《报告》)。《报告》以2021年亚信安全威胁情报与服务运营部门所监测、分析和处置的挖矿病毒事件为基础,对各类挖矿病毒和攻击进行分析梳理与情况总结,并且深度探究未来可能会演化的方向,以此帮助更多用户,以更安全、更高效、更全面的行动做出安全规划,为挖矿病毒治理提供了参考路径。2021年挖矿病毒大事件全面回顾2021全年,亚信安全共拦截挖矿病毒516,443次。《报告》基于此整体梳.

  • 偏度和峰度的计算

    偏度和峰度的计算偏度(skewness)和峰度(kurtosis):偏度能够反应分布的对称情况,右偏(也叫正偏),在图像上表现为数据右边脱了一个长长的尾巴,这时大多数值分布在左侧,有一小部分值分布在右侧。峰度反应

  • 计算机设备问题代码43,win10系统提示由于该设备有问题windows已将其停止(代码43)的修复方案…「建议收藏」

    计算机设备问题代码43,win10系统提示由于该设备有问题windows已将其停止(代码43)的修复方案…「建议收藏」有关win10系统提示由于该设备有问题windows已将其停止(代码43)的操作方法想必大家有所耳闻。但是能够对win10系统提示由于该设备有问题windows已将其停止(代码43)进行实际操作的人却不多。其实解决win10系统提示由于该设备有问题windows已将其停止(代码43)的问题也不是难事,小编这里提示两点:1、双击unknowndevice查看是否出现如下代码由于该设备有问题,wi…

  • Selenimu Chrome驱动下载地址「建议收藏」

    Selenimu Chrome驱动下载地址「建议收藏」S

  • local port是什么意思_tracert命令的用法

    local port是什么意思_tracert命令的用法使用talnet[ip][port]命令,在命令窗口下,让输入的字符回显。 1、cmd进入命令窗口。2、telnet127.0.0.19769连接。3、同时按下Ctrl+]4、输入setLOCALECHO5、再按回车。6、再输入字符,就可以看到了。 …

  • JVM指令重排[通俗易懂]

    JVM指令重排[通俗易懂]参考http://www.infoq.com/cn/articles/java-memory-model-2/点击打开链接数据依赖性如果两个操作访问同一个变量,且这两个操作中有一个为写操作,此时这两个操作之间就存在数据依赖性。数据依赖分下列三种类型:名称代码示例说明写后读a=1;b=a;写一个变量之后,再读这个位置。写后写a=1;a=2;写一个变量之后,再写这个变量。读后写a=…

    2022年10月18日

发表回复

您的电子邮箱地址不会被公开。

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