1 * 1的卷积核(准备开始写)


原文:https://blog.csdn.net/chaipp0607/article/details/60868689 
原文:https://blog.csdn.net/briblue/article/details/83151475 

1. google inception 里的1*1 conv kernel 用途

 

è¿éåå¾çæè¿°

都有1*1卷积核的出现,那么它到底是做什么的?我们应该如何理解1*1卷积的原理?

当1*1卷积出现时,在大多数情况下它作用是升/降特征的维度,这里的维度指的是通道数(厚度),而不改变图片的宽和高。举个例子,比如某次卷积之后的结果是W*H*6的特征,现在需要用1*1的卷积核将其降维成W*H*5,即6个通道变成5个通道: 
如下图就是一个W*H*6的特征,而1*1的卷积核在图上标出,卷积核自身的厚度也是6(图画的好难看!!) 
 

1. 实现跨通道的交互和信息整合
2. 进行卷积核通道数的降维和升维

 

 

最近研究 GoogLeNet 和 VGG 神经网络结构的时候,都看见了它们在某些层有采取 1x1 作为卷积核,起初的时候,对这个做法很是迷惑,这是因为之前接触过的教材的例子中最小的卷积核是 3x3 ,那么,1x1 的卷积核有什么意义呢?

最初应用 1x1 卷积核的神经网络是 Network In Network,然后 GoogLeNet 和 VGG 也不约而同的更正了。

他们在论文中解释,大概有下面 2 个意义。

1、增加网络的深度
这个就比较好理解了,1x1 的卷积核虽小,但也是卷积核,加 1 层卷积,网络深度自然会增加。

其实问题往下挖掘,应该是增加网络深度有什么好处?为什么非要用 1x1 来增加深度呢?其它的不可以吗?

其实,这涉及到感受野的问题,我们知道卷积核越大,它生成的 featuremap 上单个节点的感受野就越大,随着网络深度的增加,越靠后的 featuremap 上的节点感受野也越大。因此特征也越来越抽象。

但有的时候,我们想在不增加感受野的情况下,让网络加深,为的就是引入更多的非线性。

而 1x1 卷积核,恰巧可以办到。

我们知道,卷积后生成图片的尺寸受卷积核的大小和跨度影响,但如果卷积核是 1x1 ,跨度也是 1,那么生成后的图像大小就并没有变化。

但通常一个卷积过程包括一个激活函数,比如 Sigmoid 和 Relu。

所以,在输入不发生尺寸的变化下,却引入了更多的非线性,这将增强神经网络的表达能力。

2、升维或者是降维
大家可以看下面这张图:


我们可以直观地感受到卷积过程中:卷积后的的 featuremap 通道数是与卷积核的个数相同的

所以,如果输入图片通道是 3,卷积核的数量是 6 ,那么生成的 feature map 通道就是 6,这就是升维,如果卷积核的数量是 1,那么生成的 feature map 只有 1 个通道,这就是降维度。

值得注意的是,所有尺寸的卷积核都可以达到这样的目的。

那为什么要用 1x1 呢

原因就是数据量的大小,我们知道在训练的时候,卷积核里面的值就是要训练的权重,3x3 的尺寸是 1x1 所需要内存的 9 倍,其它的类似。所以,有时根据实际情况只想单纯的去提升或者降低 feature map 的通道,1x1 无疑是一个值得考虑的选项
 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值