深入理解1*1卷积作用

1 . 前言

1*1 卷积在很多模型结构中都使用过, 例如最出名的Inception网络

在这里插入图片描述
其主要目的就是 进行一次1 × 1 的卷积来减少特征映射的深度.

在实际操作中, 对于1*1的卷积操作, 我们可以通过改变输出的out channel 来使得输出维度的变化,也就是降维和升维, 例如 112 * 112 * 3 经过一个一维卷积 当我们的out channel 设置为32时候, 输出为112 * 112 * 32

2. 二维卷积过程概述

因为1*1的卷积也是一个二维卷积, 所以我们可以先了解一下二维卷积是如何操作的

还是以112 * 112 * 3 的图片为例:

在这里插入图片描述
在图中, 高度 宽度 都是 112, 深度为3 , 我们经过一个3 * 3 的卷积,步长为1, padding 为1, out channel 为 3, 输出的图像还是 112 * 112 * 3, 具体计算的话可以自己画个55的图 过 33 的卷积来操作, 一般公式为 :

新维度 = (图片长 - 卷积核长 + 2 * padding )/ 步长

我们的卷积核的维度为 3 * 3 * 3(深度), 最后一维和图片本身的深度相同

一次卷积的过程如下:

  • 每一层的112*112 和 对应的 卷积核的 3 * 3 进行卷积

  • 每一个 channel卷积的结果进行求和

  • 最后加上偏置

  • 就得到 一个新的输出 我们前面计算过, 长和宽 维度 依然不变 112 * 112 也就是图中的yp,

每一个卷积核只得到一个yp, out channel 数 表示着 用多少不同的卷积核 做相同工作,每一个yp 就代表着一个channel(通道)
在这里插入图片描述
然后 out channel 则是对应 一共有多少个卷积核, 每一个卷积核操作都是和前面相同, 所以最终的output 是
112 * 112 * out channel

3. 1×1卷积 作用

在理解了二维卷积后, 我们就想一下, 1维卷积 因为是1*1 ,那么它的感受野就是 一个像素, 所以它没法感受到它旁边的像素,但是由于 我们前面讲过的 , 二维卷积有一个求和的过程,也就是将不同channel的卷积结果进行求和

在这里插入图片描述
1*1的卷积也不例外, 所以1x1卷积实际上是对每个像素点,在不同的channels上进行线性组合(信息整合),且保留了图片的原有平面结构,调控depth,从而完成升维或降维的功能。

我借用知乎大佬的回答里面的图进行分析
在这里插入图片描述

我们可以脑海中走一遍 1 * 1 卷积的过程
实际上就是同一像素点, 不同 channel 的值进行 加权求和 加偏置

在这里插入图片描述
然后 重复out channel

虽然我们知道可以用1*1 来进行特征的升维和降维, 但是我们更加应该取深入的思考这样一些问题,才能对卷积更加的理解:

  • 先降维本质上是具体代表什么意义?
  • 1*1 的卷积, 也就是单个像素不同channel 进行加权的意义?
  • 应用于其他的特征降维的实际作用?

4. 参考资料

《神经网络与深度学习》 https://nndl.github.io/
卷积神经网络中用1*1 卷积有什么作用或者好处呢?

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值