1x1的卷积能做什么呢?

所谓信道压缩,Network in Network是怎么做到的?

对于如下的二维矩阵,做卷积,相当于直接乘以2,貌似看上去没什么意义。

这里写图片描述

但是,对于下面这种32通道的数据,如果我用1个1x1x32的卷积核与其做卷积运算,得到的就是1个6x6的矩阵。

这里写图片描述

在这个过程中,发生了如下的事情:

  • (1)遍历36个单元格(6x6)
  • (2)计算左图中32个信道中截面与卷积核中32个元素的乘积
  • (3)此时得到的结果,仍然是6x6x32的矩阵
  • (4)每个6x6的矩阵都叠加起来,得到一个6x6的矩阵
  • (5)接下来用Relu函数作用于这个6x6的矩阵
  • (6)得到6x6的输出

同理,如果我用N个1x1x32的卷积核与其做卷积运算,得到的就是N个6x6的矩阵。

所以,1x1的卷积,可以从根本上理解为:有一个全连接的神经网络,作用在了不同的32个位置上。

这种做法,通常称为1x1卷积Network in Network。它的主要作用,就是降低信道数量。如下图

这里写图片描述

28x28x192的数据,被32个1x1x192的卷积核作用后,就变为28x28x32的数据。这也就是所谓信道压缩信道降维。当然如果你愿意,也可以增加信道维度。这在Inception网络中很有用。

本篇参考了AndrewNG的Deep Learning课程。

猜你喜欢

转载自blog.csdn.net/ybdesire/article/details/80314925