前言
本文介绍1维到3维的卷积,并且描述了1乘1 的卷积为什么能升维降维
一、背景
一般来说,一维卷积用于文本数据,二维卷积用于图像数据,对宽度和高度都进行卷积,三维卷积用于视频及3D图像处理领域(检测动作及人物行为),对立方体的三个面进行卷积 。二维卷积的用处范围最广,在计算机视觉中广泛应用。
而在多维空间使用1*1的卷积核可以有升降维度的作用,
二、不同维度的卷积计算
1.一维
- 图中的输入的数据维度为8,过滤器的维度为5。卷积后输出的数据维度为8−5+1=4
- 如果过滤器数量仍为1,输入数据的channel数量变为16,则输入数据维度为8×16
- 一维卷积常用于序列模型,自然语言处理领域。
2.二维
单通道单核
- 图中的输入的数据维度为14×14,卷积核维度5x5数量为1,图片通道数为1
- 二维卷积输出的数据尺寸为8−5+1=4,即4×4
多通道单核
卷积核的通道数应该和原图的通道数相同
假定图片通道是3,卷积核的通道也应该是3,卷积核数量为1。输出一个4x4的feature map
3通道多核
卷积核的个数和输出的通道数相同
假定图片通道是3,卷积核的通道也应该是3,卷积核数量为2。输出两个个4x4的feature map
3.三维卷积
三维卷积具体思想与一维卷积、二维卷积相同,假设卷积核大小为f1f2f3(类似于二维卷积,三维卷积实际计算的时候卷积核是四维的,另一个维度由输入源的通道数决定)
- 假设输入数据的大小为a1×a2×a3
- 基于上述情况,三维卷积最终的输出为(a1−f1+1)×(a2−f2+1)×(a3−f3+1)
- 三维卷积常用于医学领域(CT影响),视频处理领域(检测动作及人物行为)
三、1乘1 的卷积升维降维
直接原因是卷积核的个数等于输出的通道数。
升维
如果卷积核的个数等于输入图片的通道数,什么都没改变
卷积核的个数大于输入图片的通道数:比如输入6x6x1,卷积核是1x1x1xM,输出的就应该是6X6X1XM
降维度
当输入为6x6x32时,1x1卷积的形式是1x1x32,当只有一个1x1卷积核的时候,此时输出为6x6x1。此时便可以体会到1x1卷积的实质作用:降维。当1x1卷积核的个数小于输入channels数量时,即降维[3]。
注意,下图中第二行左起第二幅图像中的黄色立方体即为1x1x32卷积核,而第二行左起第一幅图像中的黄色立方体即是要与1x1x32卷积核进行叠加运算的区域。
其实1x1卷积,可以看成一种全连接(full connection)。
第一层有6个神经元,分别是a1—a6,通过全连接之后变成5个,分别是b1—b5,第一层的六个神经元要和后面五个实现全连接,本图中只画了a1—a6连接到b1的示意,可以看到,在全连接层b1其实是前面6个神经元的加权和,权对应的就是w1—w6,到这里就很清晰了。
第一层的6个神经元其实就相当于输入特征里面那个通道数:6,而第二层的5个神经元相当于1*1卷积之后的新的特征通道数:5。
w1—w6是一个卷积核的权系数,若要计算b2—b5,显然还需要4个同样尺寸的卷积核[4]。
上述列举的全连接例子不是很严谨,因为图像的一层相比于神经元还是有区别的,图像是2D矩阵,而神经元就是一个数字,但是即便是一个2D矩阵(可以看成很多个神经元)的话也还是只需要一个参数(1*1的核),这就是因为参数的权值共享。
跨通道信息交互(channal 的变换)
例子:使用1x1卷积核,实现降维和升维的操作其实就是channel间信息的线性组合变化,3x3,64channels的卷积核后面添加一个1x1,28channels的卷积核,就变成了3x3,28channels的卷积核,原来的64个channels就可以理解为跨通道线性组合变成了28channels,这就是通道间的信息交互[7]。
参考
https://blog.csdn.net/qq_37555071/article/details/107541194
https://zhuanlan.zhihu.com/p/40050371