Inception v2/Inception v3详解

1.Inception v2改进策略

(1)卷积核分解5*5——3*3

        从计算代价上考虑,更大的卷积核(比如5x5或者7x7)计算代价的增长具有不对称性。比如,5x5滤波器参数量是3x3滤波器参数量的25/9=2.78倍。当然,在网络的前几层,5x5的卷积核可以获得更大的视野范围,以及获取空间信息之间的相关性,所以降低卷积核大小的代价会降低网络的表达能力。当然,我们是不是可以用多层的网络(参数更少)代替5x5卷积层,并且保持输入和输出的大小不变。如果我们放大5x5的卷积计算图,我们可以看到,每一个输出相当于一个在5x5卷积核上滑动的全连接网络,见图1所示:

        由于我们试图创建一个视觉网络,很自然地,我们会利用图像平移不变性, 用两层的卷积结构代替全连接模块:第一层是3x3卷积,第二层是连接在第一层的全连接层。因此,滑动第二层,等同与用两个3x3的卷积核代替5x5的卷积核,参考如下图4和图5:

 (2)卷积核分解5*5——3*3

        上 述的结果表明,由于任何大的卷积核都可以分解为3x3的卷积核,那么大于3x3的滤波器似乎没有什么意义。那么,我们仍然有一个疑问,是否需要将大卷积核分解为更小的卷积核,比如2x2的卷积核。但是,实时证明,非对称卷积核由于小的2x2卷积核,比如Nx1。 例如,3x1conv + 1x3conv等价于一个3x3conv的视野范围,见图3;在输入和输出等同的情况下,参数降低33%,。作为对比,将3x3卷积核分解为两个2x2卷积核,只是降低了11%.

         理论上,往更深的讨论,我们可以分解大小为NxN卷积核为1xN以及Nx1,N越大,参数量更少,节约更多的计算资源,见图6,实际中,在网络的前几层分解并不会有很好的效果,在中等feature map大小的图上有更好的效果(比如m x m 特征图,m范围在12-20之间)。这种层面上,1x7conv+7x1conv会有更好的结果。

 (3)辅助分类器的设置

        GoogLeNet引入了辅助分类器的概念,它可以提高网络的收敛能力。最初的动机是为了将有用的梯度反向传递到网络低层,也是为了解决梯度消失的问题,保证网络训练正常进行。Lee表明,辅助分类器促进网络训练的稳定以及更好的收敛。有趣的是,我们发现辅助分类器并不能保证收敛更快:实验表明,有无辅助分类器,训练过程基本保持一致。在训练的最后阶段,有辅助分类器略微高于无辅助分类器的网络。

        GoogLeNet在不同的阶段使用了两个辅助分类器,移除网络低层的辅助分类器并不会对网络的最终性能有影响。根据当时实验的观察,最初GoogLeNet的辅助分支有助于低层特征学习的假设可能不太合适。相反地,如果在辅助分类器添加BN或者添加Dropout后,主分类器表现更好,所以我们认为辅助分类器更像是正则化的作用。也进一步推测,BN更像是个正则项。

(4)有效减少网格大小

传统上,卷积网络使用池化操作降低特征图的大小。为了避免表达瓶颈(representational bottleneck),在使用最大或者均值池化,先将其维度扩大。比如,假设有k个滤波器,大小为dxd,如果要得到d/2 x d/2的大小,个数为2k的滤波器,我们首先要计算滑动为1,个数为2k的卷积运算,然后添加池化操作。那么额外的计算代价就是卷积的操作,总共操作为(d*d*k)*2*k。一个可能性是:pooling+conv,那么总共操作为(d/2*d/2*k)*2k,降低了1/4的代价。但是,这会将表达维度降低为(d/2*d/2)*k,可能会导致更低的网络表达能力,见图9;那么另一种既可以降低计算代价,又可以消除表达瓶颈的操作,见图10;我们可以使用两个并行的,滑动为2的模块:P和C。P是Pool层(最大或者平均),他们滑动距离均为2,最终进行合并。

(4)Inception v2结构 

 基于上面的讨论,我们提出了新的网络架构,网络的具体见表1。值得注意的是,根据3.1的讨论,我们将7x7卷积分解为3个3x3卷积。对于Inception模块,我们是使用了3个传统的Inception模块,输入大小为35x35,288(见表1),维度被降为17*17,大小为768(见Section 5)。然后紧跟5个分解的Inception模块,见图5。参考图10,将其维度降为8x8x1280。这样将两个Inception模块连接为2048的数量。详细的Inception结构信息,在补充材料中(model.txt)。但是,我们观察到,如同准则2描述的,网络的性能相对是稳定的。尽管我们的网络有42层,但是计算代价比GoogLeNet2.5倍,仍比VGG效率高。

2.Inception v3改进策略

(1)更新优化算法,用RMSProp代替SGD 

SGD是一种比较单纯的算法,下式为SGD的参数更新方式:

         然而,学习率不应该是全局的。每个参数都应该有一个合适的学习率,从而使参数中那些梯度方向变化不大的维度加速更新。因此,RMSProp算法增加了累积项,让历史梯度也能够以一定的权重参与习率的变化。

(2) 标签平滑化


        通过模型得到的样本是包含标签的。在一般的模型训练中,都认为标签是正确的。不过,在少数情况下,标签有可能是错误的,而这会对模型的训练产生负影响。为了减小由标签错误引起的负影响,GoogLeNet团队采用了标签平滑处理的方法。
样本的损失函数定义为如式3.11所示的交叉嫡。对于某个类别,它的标签kE(0,1)(k)是模型对标签k计算得到的概率,q(k)是标签样本的真实分布。在标签正确的前提下,q(k)=1。如果标签可能有错误,则q(k)<1。 

        标签平滑化针对标签样本的真实分布q(k),使得其输出不再是纯粹的1或0,而是接近1的0.8或0.88、接近0的0.1或0.11,以实现标签平滑化。假设有一个真实的标签y,它使得q(y)=1,而标签k的q(k)=0。对于这个表达,可以采用狄拉克函数\delta _{_{_{x,y}}}来表示:当k=y时,\delta _{_{_{x,y}}}=1;否则,\delta _{_{_{x,y}}}=0。 

        设定一个错误率c,表示某一标签有误的概率,因此有式3.12。其中,u(k)表示固定分布,建议将其设置为标签的先验分布。GoogLeNet 团队采用了均匀分布.

        若标签为真,那么(1-\varepsilon )\delta ^{_{x,y}}=1-\varepsilon。因为\varepsilon通常很小,所以(\varepsilon\frac{\tfrac{}{1}}{k}→0,最终使q^{'}(k)→1。当标签为假时,亦可推得q^{'}(k)→0。最后,用q^{'}(k)代替q(k),得下式 ,实现了标签平滑化,从而避免了过拟合的出现和模型适应能力的降低。

(3)在辅助分类器的全连接层后添加批标准化操作 

批标准化参见我的上一篇博客

批量归一化_梦回沈园外的博客-CSDN博客

参考博客:https://blog.csdn.net/kxh123456/article/details/102676054

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
本课程适合具有一定深度学习基础,希望发展为深度学习之计算机视觉方向的算法工程师和研发人员的同学们。基于深度学习的计算机视觉是目前人工智能最活跃的领域,应用非常广泛,如人脸识别和无人驾驶中的机器视觉等。该领域的发展日新月异,网络模型和算法层出不穷。如何快速入门并达到可以从事研发的高度对新手和中级水平的学生而言面临不少的挑战。精心准备的本课程希望帮助大家尽快掌握基于深度学习的计算机视觉的基本原理、核心算法和当前的领先技术,从而有望成为深度学习之计算机视觉方向的算法工程师和研发人员。本课程系统全面地讲述基于深度学习的计算机视觉技术的原理并进行项目实践。课程涵盖计算机视觉的七大任务,包括图像分类、目标检测、图像分割(语义分割、实例分割、全景分割)、人脸识别、图像描述、图像检索、图像生成(利用生成对抗网络)。本课程注重原理和实践相结合,逐篇深入解读经典和前沿论文70余篇,图文并茂破译算法难点, 使用思维导图梳理技术要点。项目实践使用Keras框架(后端为Tensorflow),学员可快速上手。通过本课程的学习,学员可把握基于深度学习的计算机视觉的技术发展脉络,掌握相关技术原理和算法,有助于开展该领域的研究与开发实战工作。另外,深度学习之计算机视觉方向的知识结构及学习建议请参见本人CSDN博客。本课程提供课程资料的课件PPT(pdf格式)和项目实践代码,方便学员学习和复习。本课程分为上下两部分,其中上部包含课程的前五章(课程介绍、深度学习基础、图像分类、目标检测、图像分割),下部包含课程的后四章(人脸识别、图像描述、图像检索、图像生成)。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

樱花的浪漫

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值