CNN中1×1卷积核的作用

版权声明:本文为博主原创文章,转载请注明出处。

近年来的一些知名CNN模型中常常可以见到1×1的卷积核。相关介绍可以看这里。

1*1的卷积核与Inception

卷积神经网络中用1*1 卷积有什么作用或者好处呢?

 

以下是我的理解。

其实CNN中1×1卷积层就相当于将输入的特征图(feature maps)按照不同的加权进行线性组合,并输出对应维数的特征图。这里,我们可以规定1×1的卷积层的输出是多少。因此,1×1卷积层可以用来特征升维或者降维。当然我们见的更多的是用其进行降维。

例如,若上一层的feature maps有1000个,尺寸为32×32,经过一个输出为16的1×1的卷积层后,输出16个尺寸为32×32的特征图。这一过程中,1×1 conv层中的权值矩阵的shape为[1000,1,1,16],也就是有1000×16个参数,输出的每一个特征层都由1000个输入map经过1000个权值进行线性组合,这样的组合一共有16个。

也就是说1×1conv本质上就是特征图的线性组合,之所以用1×1卷积层进行表述,是由于这一操作刚好与卷积核为1×1的卷积层计算过程相同。

1×1conv的意义在于,在它流行起来之前,常见的用于降维的方式,一个是池化操作,另一个是全连接层。相较于1×1卷积层,池化操作在特征图内进行,通过采样将特征图的尺寸降低,而没有将不同的特征图联系起来。全连接层则是将所有特征图展开成列,丢失了特征的空间信息,全连接后不能继续用卷积层进行特征提取。而利用1×1卷积层进行降维,实际上是减少了特征图的数量,可继续接卷积层进行特征提取。

One Comment

  1. Pingback: 利用深度学习进行语义分割学习笔记 | MV Studio | LLZ's Blog

发表评论

电子邮件地址不会被公开。 必填项已用*标注