Rethinking the Inception Architecture for Computer Vision 论文笔记

0 摘要自从2014之后,深度卷积网络成为了计算机视觉解决方案的主流。模型的大小和计算成本的增加可以直接转换成质量收益。但是对于像移动视觉和大数据场景,计算效率和低参数计算仍是限制因素。本论文探索一种扩大网络的方法,目标是通过适当的分解卷积和积极的正则化来尽可能地有效利用增加的计算。1 介绍从2014年开始,通过利用更深更宽的网络,网络架构的质量得到了明显改善。VGGNet和Goo...
摘要由CSDN通过智能技术生成

0 摘要

自从2014之后,深度卷积网络成为了计算机视觉解决方案的主流。模型的大小和计算成本的增加可以直接转换成质量收益。但是对于像移动视觉和大数据场景,计算效率和低参数计算仍是限制因素。本论文探索一种扩大网络的方法,目标是通过适当的分解卷积和积极的正则化来尽可能地有效利用增加的计算。

1 介绍

从2014年开始,通过利用更深更宽的网络,网络架构的质量得到了明显改善。VGGNet和GoogLeNet在2014 ILSVRC分类挑战上取得了类似的高性能。一个有趣的发现是在分类性能上的收益趋向于转换成各种应用领域上的显著质量收益。这意味着深度卷积架构上的架构改进可以用来改善大多数越来越多地依赖于高质量、可学习视觉特征的其它计算机视觉任务的性能。

VGGNet的架构简洁,但这样做成本很高,评估网络需要大量计算。Inception架构在被设计为在内存和计算预算严格限制的情况下也能表现良好。GoogLeNet仅有500万参数,是AlexNet的1/12;VGGNet的参数是AlexNet的1/3。

Inception架构的计算成本远低于VGGNet,而且它的性能也高于其他后继者。在大量数据需要以合理成本处理的情况下或在内存或计算能力固有地受限情况下,利用Inception网络变得可行。然而,Inception架构的复杂性使得更难以对网络进行更改。如果单纯地放大架构,大部分的计算收益可能会立即丢失,使得它难以在适应新用例的同时保持其效率。如果增大Inception模型的容量,如果只是双倍增加滤波器组的数量,参数量和计算量将会增大4倍;在许多场景中,不允许这样设计。在本文中,我们描述一些一般原则和优化思想,能够以有效的方式扩展卷积网络。这些原则不局限于Inception网络。

2 通用设计原则

原则1

设计网络的时候需要避免 representational bottlenecks(表示瓶颈)。
层与层之间进行信息传递时,要避免这个过程中的数据的extreme compression,也就是说,特征图的尺寸不能减小的太快,数据从输入到输出大致是减少的,这个变化过程一定要缓慢,而不是快速的。如果信息过度压缩,将会丢失大量的信息,对模型的训练也造成了困难。
理论上来说,不能仅仅通过增加维度得到信息,因为它已经丢弃了许多重要特征例如相关结构,维度只能代表信息的粗略估计。(个人理解:一个不合理的例子,比如在网络输出层的shape是227x227x3,经过第一层卷积层之后可能会变成200x200x64,维度的增加可以理解成通道数由原来的3增加到64,通道数的增加获得的信息不能弥补特征图尺寸的急剧压缩丢失的信息。)

原则2

不太容易理解。原文如下:
Higher dimensional representations are easier to process locally within a network. Increasing the activations per tile in a convolutional network allows for more disentangled features. The resulting networks will train faster。
结合 figure7 下面的注释,个人理解在高维表示时,稀疏表示是最重要的。对于局部的特征更容易处理,意思就是local卷积,用1x1或者3x3,不要用太大的。

原则3

空间聚合可以在较低维度嵌入上完成,而不会在表示能力上造成许多或任何损失。例如,在执行大尺度卷积(3x3)之前,可以在空间聚合之前,先对输入进行降维,这样不会带来严重影响。鉴于这些信号应该易于压缩,因此降维甚至会促进更快的学习。

原则4

平衡网络的宽度和深度。要使得计算资源平衡的分配在模型的深度和宽度上面,才能最大化的提高模型的性能。

3 大滤波器尺寸分解卷积

GoogLeNet性能优异很大程度在于使用了降维。降维可以看做分解卷积的一种特例。比如在1x1卷积之后接3x3卷积。我们将在各种设定中探索卷积分解的方法,是为了提高解决方案的计算效率。因为Inception结构是全卷积,每个权重对应每个激活的一次乘法。因此减小计算量意味着减少参数。通过适当的分解,我们可以得到更多的解耦参数,可以加快训练。利用节省下来的计算和内存增加filter-bank大小,来提升网络性能。

3.1 分解到更小的卷积

这里写图片描述
大的卷积(5x5或者7x7)计算量更大,例如filter相同情况下,5x5卷积核比3x3卷积核计算量大25/9=2.78倍。5x5卷积核相比3x3卷积核有广阔“视野”,可以捕捉到更多信息,单纯减小卷积核大小会造成信息损失。那么是否可以通过使用具有相同输入尺寸和输出深度的参数较小的多层网络替代5x5卷积?把5x5网络看做全卷积,每个输出是卷积核在输入上滑动,可以通过2层的3x3的全卷积网络替换。这样,我们最终得到一个计算量减少到(9+9)/25倍的网络,通过这种分解减少了28%的参数。这种替换是否会导致任何表征力的丧失?如果我们的主要目标是对计算的线性部分进行分解,是不是建议在第一层保持线性激活?实验结果表明,在分解的所有阶段中使用线性激活总是逊于使用修正线性单元。也就是全部使用 relu 激活函数会好一些。我们将这个收益归因于网络可以有更多的非线性变化,使得网络对特征的学习能力更强。

下图为GoogLeNet中的Inception模块结构
GoogLeNet中的Inception模块结构

下图为按原则3设计,改进的Inception模块结构
按原则3设计,改进的Inception模块结构

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值