GoogLeNet系列网络原理深度解析

正文

1.原理解析

inception结构

2.网络结构

3.衍生版本

inception v2

inception v3

参考资料


论文名:Going Deeper with Convolutions

下载地址:https://arxiv.org/pdf/1409.4842.pdf

正文

        自从AlexNet模型取得显著成果之后,大量的研究者致力于进一步提升网络性能,Google从网络结构的稀疏表达入手,设计了GoogLeNet,在2014年ImageNet竞赛中获得分类赛的冠军。

1.原理解析

        论文中明确指出,提升网络模型性能的最直接的方式就是增加网络的规模:深度和宽度,然而它们会带来一些问题:

  • 网络模型的规模越大,模型越复杂(非线性表达能力越强),越容易产生过拟合,特别是在数据有限的情况下
  • 网络模型的规模越大,意味着模型的参数量越多,代表着模型的计算量越大,对计算资源的消耗越大。

         那么如何避免上述问题呢?文章认为将全连接层甚至是一般的卷积层转化为稀疏连接能有效解决上述问题,依据有二:生物神经系统的连接也是稀疏的;有文章指出对于大规模稀疏的神经网络,可以通过分析激活值的统计特性和对高度相关的输出进行聚类来逐层构建出一个最优网络。稀疏连接引发了一个新的问题:计算机软硬件对非均匀稀疏数据的计算效率很差,所以现在的新问题是:既能保证网络结构的稀疏性,又能利用密集矩阵的高计算性能。基于此,Google设计了inception结构来实现该目的。

inception结构

inception结构的主要作用是用密集成分来近似最优的局部稀疏结构

       上图是原始的inception结构,首先采用不同大小(1、3和5)的卷积核进行卷积运算,然后把运算结果进行拼接处理,对其进行以下几点说明:

  • 不同大小的卷积核意味着不同大小的感受野,对不同大小卷积运算进行拼接意味着不同尺度的特征融合,其作用有

1)提取不同尺度的特征且进行融合,能获取更加丰富的特征,有利于最后的分类判断准确性

2)稀疏矩阵的运算可以等价于分解成几个小的密集矩阵进行运算,如下图所示。 inception结构具有相同的作用,我们可以这么理解它:传统的卷积层的输入数据只和一种尺度(比如3x3)的卷积核进行卷积,输出固定维度(比如256个特征)的数据,所有256个输出特征基本上是均匀分布在3x3尺度范围上,这可以理解成输出了一个稀疏分布的特征集;而inception模块在多个尺度上提取特征(比如1x1,3x3,5x5),输出的256个特征就不再是均匀分布,而是相关性强的特征聚集在一起(比如1x1的的96个特征聚集在一起,3x3的96个特征聚集在一起,5x5的64个特征聚集在一起),这可以理解成多个密集分布的子特征集。这样的特征集中因为相关性较强的特征聚集在了一起,不相关的非关键特征就被弱化,同样是输出256个特征,inception方法输出的特征“冗余”的信息较少。用这样的“纯”的特征集层层传递最后作为反向计算的输入,自然收敛的速度更快。

  

  • 文章说很多地方都表明pooling挺有效,所以Inception里面也嵌入了。
  •  网络越到后面,特征越抽象,而且每个特征所涉及的感受野也更大了,因此随着层数的增加,3x3和5x5卷积的比例也要增加。

        使用5x5的卷积核仍然会带来巨大的计算量。 为此,文章借鉴NIN,采用1x1卷积核来进行降维。 改进后的Inception结构如下:

         1x1卷积核的作用

  • 可以进行数据降维,减少参数量。
  • 相同尺寸的感受野叠加不同通道的卷积,能得到更加丰富的特征。

2.网络结构

3.衍生版本

GoogLeNet又称为inception v1,Google对inception结构进行了改进优化,得到了inception v2、v3、v4。

inception v2

        inception v2主要有两点改进:

  • 采用2个3*3的卷积代替1个5*5的大卷积核,降低参数量的同时减轻了过拟合
  • 提出了Batch Normalization(BN)正则化方法防止模型过拟合,使用BN需要进行以下几项调整:

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

inception v3

        inception v2主要是引入了Factorization into small convolutions的思想,将一个二维卷积拆成两个一维卷积,这样可以减少参数量,同时增加了非线性表达能力(增加了一层),如下图所示,3*3的卷积拆分成1*3和3*1两个卷积

参考资料

https://zhuanlan.zhihu.com/p/32702031

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
GoogLeNet是由Google团队发布的一个深度卷积神经网络模型,它在ILSVRC-2014图像分类竞赛中获得了第一名。GoogLeNet采用了一种名为Inception的模块化架构,它可以有效地减少模型中的参数数量,提高了模型的准确率。 GoogLeNet的基本原理是使用卷积神经网络对输入图像进行多级特征提取,并使用全局平均池化层对特征进行处理,最后使用全连接层对图像进行分类。GoogLeNet采用了多层卷积神经网络结构,其中每一层都包含了多个卷积核和池化层,可以提取出不同尺度和不同层次的特征。 GoogLeNet的结构采用了Inception模块,一个Inception模块包含多个不同的卷积核和池化层,可以提取出不同尺度和不同层次的特征。Inception模块中的卷积核和池化层可以并行处理,然后将它们的输出进行拼接,形成一个更加丰富的特征图。GoogLeNet中的网络结构如下: 输入层 -> 卷积层 -> 池化层 -> Inception模块 -> Inception模块 -> Inception模块 -> Inception模块 -> Inception模块 -> 池化层 -> Dropout层 -> 全连接层 -> 输出层 其中,输入层接收输入图像,卷积层和池化层提取图像的特征,Inception模块对特征进行多级处理,池化层和全连接层对特征进行分类,最后输出层输出分类结果。 总的来说,GoogLeNet采用了多层卷积神经网络和Inception模块的结构,可以有效地提取出不同尺度和不同层次的特征,从而提高了图像分类的准确率。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值