五、卷积神经网络CNN5(卷积相关问题1)

每层卷积只能用一种尺寸的卷积核?

传统的层叠式网络,基本上都是一个个卷积层的堆叠,每层只用一个尺寸的卷积核,例如VGG结构中使用了大量的3×3卷积层。事实上,同一层 feature map 可以分别使用多个不同尺寸的卷积核,以获得不同尺度的特征,再把这些特征结合起来,得到的特征往往比使用单一卷积核的要好,谷歌的 GoogLeNet,或者说 Inception 系列的网络,就使用了多个卷积核的结构:

如上图所示,一个输入的feature map分别同时经过 1×1、3×3、5×5的卷积核的处理, 得出的特征再组合起来,获得更佳的特征。

怎样才能减少卷积层参数量?

发明 GoogleNet 的团队发现,如果仅仅引入多个尺寸的卷积核,会带来大量的额外的参数,受到 Network In Network 中 1×1 卷积核的启发,为了解决这个问题,他们往Inception结构中加入了一些 1×1 的卷积核,如图所示

 加入 1×1 卷积核的 Inception 结构

根据上图,我们来做个对比计算,假设输入 feature map 的维度为 256 维,要求输出维度也是 256 维。有以下两种操作:

(1)256 维的输入直接经过一个 3×3×256 的卷积层,输出一个 256 维的 feature map,那么参数量为:256×3×3×256 = 589,824

(2)256 维的输入先经过一个 1×1×64 的卷积层,再经过一个 3×3×64 的卷积层,最后经过一个 1×1×256的卷积层,输出256维,参数量为:256×1×1×64 + 64×3×3×64 + 64×1×1×256 = 69,632。足足把第一种操作的参数量降低到九分之一!

1×1 卷积核也被认为是影响深远的操作,往后大型的网络为了降低参数量都会应用上 1×1 卷积核.

卷积操作时必须同时考虑通道和区域吗?

标准的卷积过程可以看上图,一个 2×2 的卷积核在卷积时,对应图像区域中的所有通道均被同时考虑,问题在于,为什么一定要同时考虑图像区域和通道?我们为什么不能把通道和空间区域分开考虑?

Xception网络就是基于以上的问题发明而来。我们首先对每一个通道进行各自的卷积操作,有多少个通道就有多少个过滤器。得到新的通道feature maps之后,这时再对这批新的通道feature maps 进行标准的 1×1 跨通道卷积操作。

这种操作被称为 “DepthWise convolution” ,缩写“DW”。这种操作是相当有效的,在imagenet 1000 类分类任务中已经超过了InceptionV3的表现, 而且也同时减少了大量的参数,我们来算一算,假设输入通道数为 3,要求输出通道数为 256, 两种做法:

1. 直接接一个 3×3×256 的卷积核,参数量为:3×3×3×256 = 6,912

2. DW 操作,分两步完成,参数量为:3×3×3 + 3×1×1×256 = 795,又把参数量降低到九分之一!

因此,一个depthwise操作比标准的卷积操作降低不少的参数量,同时论文中指出这个模 型得到了更好的分类效果。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

满满myno

非常感谢对我创作的支持,爱你呦

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

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

打赏作者

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

抵扣说明:

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

余额充值