1x1卷积方法及其作用

Introduction

1x1 的卷积核被广泛使用在各种网络中,又称为网中网 (Network in Network [1])。

首先举一个简单的例子,CxHxW大小的输入 (其中C为channel, H为高, W为宽),经过1x1xd卷积后,得到的输出为dxHxW。

其实1x1卷积可以看成是一种全连接 (full connection),只不过这种全连接是对于不同通道同一位置的点来说的。

比如,一个3xHxW的feature,其中2为channels,对这个feature做1x1x2卷积 (其中2为维度),那么第一个运算结果卷等价于:

把(1,1)位置,所有通道的特征取出,用$y_1,y_2,y_3$表示,那么输出的$z_1,z_2$为:
$$
\begin{aligned}
z_1&=a_1y_1+a_2y_2+a_3y_3\
z_2&=b_1y_1+b_2y_2+b_3y_3
\end{aligned}
$$
这个过程其实也就是在通道层面做全连接操作。

Effect

升维|降维

和前文中举例一样,1x1 并不会改变 height 和 width,只会将原本数据量进行增加或者减少,也就是只改变 height x width x channels中 channels 这一个维度的大小。所以它可以实现升维/降维。

增加非线性

1x1 卷积核,可以在保持 feature map 尺度不变的前提下大幅增加非线性特性 (利用后接的非线性激活函数),把网络做得很deep。

跨通道信息交互

使用1x1卷积核,实现降维和升维的操作其实就是channel间信息的线性组合变化,3x3,64channels的卷积核后面添加一个1x1,28channels的卷积核,就变成了3x3,28channels的卷积核,原来的64个channels就可以理解为跨通道线性组合变成了28channels,这就是通道间的信息交互。

Reference

  • [1] Lin M, Chen Q, Yan S. Network in network[J]. arXiv preprint arXiv:1312.4400, 2013.

1x1卷积方法及其作用
https://pandintelli.github.io/2022/03/20/1x1convolution/
作者
Pand
发布于
2022年3月20日
许可协议