之前我们的例子中只是对灰度值进行了检测,但对一个彩色图片来说,它有3个通道(channel):R,G,B。

多通道检测

这时我们就可以将RGB三个通道堆叠起来,形成一个新的维度。同时Filter矩阵也必须从两维增加RGB这个维度。但是需要注意的是,三维的原始输入,和三维的filter对应元素相乘累加后,生成的输出是两维的,并没有RGB这个维度。

比如对于原始图片右上角和三维Filter卷积计算的示意图:

这样你一个Filter里也有RGB三个通道。如果三个通道里都是我们之前说的竖直边缘检测Filter,那么它就是一个对颜色不敏感的竖直边缘检测Filter。如果只有R通道是数据边缘Filter,G,B通道上的Filter元素都为0,那么这个三维的Filter就只对红色竖直边缘感兴趣。通过添加Filter的维度,让我们的Filter更加强大了。

多Filter检测

一个Filter对一个特征感兴趣,那么在我们卷积神经网络的一层里,我们能不能添加多个Filter,比如同时对竖直边缘,也对水平边缘进行检测呢?答案是可以的。

向上图那样,我们添加了两个Filter,一个用来检测竖直边缘,一个用来检查水平边缘。两个Filter分别产生一个4乘4的矩阵的输出。意味着这一层的输出也有了第三个维度。新增的这个维度我们用channel来量度,说它有两个channel。就像输入图片有RGB 3个channel一样。

这样就形成了一个闭环,输入原始图像是由RGB 3个channel组成的一个矩阵组,经过多个Filter,生成了一个新的多个channel组成的一个矩阵组。每个channel是由一个Filter与输入矩阵组卷积生成的。

总结

  1. 原始输入层的RGB构成了3个channel,这样一个平面的图片就增加第3个维度RGB层。
  2. 3维的输入矩阵,需要3维的Filter 矩阵来进行卷积计算。计算方式就是在3维空间每个元素相乘并累加。
  3. 输入层和矩阵都是3维,但是他们进行卷积运算的结果为2维矩阵。
  4. 我们可以一次加入多个Filter来进行多feature的检测。
  5. 每一个Filter生成一个2维矩阵,对应一个channel。多个Filter就生成多个2维矩阵,对应多个channel。

现在我们已经可以在多个channel上进行卷积了,而且可以在卷积神经网络的一层用多个Filter来进行多个Feature的检测。生成多channel的输出了。下一篇文章我们就正式的定义卷积神经网络中的一层是如何计算的。

发表评论

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

%d 博主赞过: