如何理解卷积神经网络中的通道(channel)

在卷积神经网络中我们通常需要输入 in_channelsout_channels ,即输入通道数和输出通道数,它们代表什么意思呢?本文将给出一个形象的理解。

对于通道的理解可以参考下面的这篇文章:

【CNN】理解卷积神经网络中的通道 channel

这里我稍微总结一下核心观点:

  1. 对于最初输入图片样本的通道数 in_channels 取决于图片的类型,如果是彩色的,即RGB类型,这时候通道数固定为3,如果是灰色的,通道数为1。
  2. 卷积完成之后,输出的通道数 out_channels 取决于过滤器的数量。从这个方向理解,这里的 out_channels 设置的就是过滤器的数目。
  3. 对于第二层或者更多层的卷积,此时的 in_channels 就是上一层的 out_channelsout_channels 还是取决于过滤器数目。

在第2条我用的是过滤器,而不是卷积核,跟原作者观点有些不同,因为我认为在这里用过滤器描述更合适。卷积核和过滤器的区别可以看我的这篇文章 卷积核(kernel)和过滤器(filter)的区别

对于第1点可以参考下图:
如何理解卷积神经网络中的通道(channel)

这里输入通道数是3,每个通道都需要跟一个卷积核做卷积运算,然后将结果相加得到一个特征图的输出,这里有4个过滤器,因此得到4个特征图的输出,输出通道数为4。

单个特征图的计算可看下图:

如何理解卷积神经网络中的通道(channel)

再来看一下单通道的例子:

如何理解卷积神经网络中的通道(channel)

输入是灰色图片,输入通道数是1,卷积核有3个,做三次卷积操作,生成3个特征图,输出通道数为3。

单通道特征图的计算为:

如何理解卷积神经网络中的通道(channel)

这里可能会有人有疑惑为什么图片的类型是RGB的,它的通道数就是3呢?

这里要从计算机如何识别图片来考虑。在人眼中看到的图片是五颜六色,对于计算机来说就只是数字。那么计算机如何分辨图片颜色呢?——RGB。所有颜色都可以用这三种颜色来表示,因此我们只需要三个数字就可以表示一种颜色。

下图是我随机选择的几个颜色的RGB表示:

如何理解卷积神经网络中的通道(channel)

计算机要表示整张图片,就是用数字去表示整张图片的所有像素,但是每个像素需要三个数值来表示,于是就有了图片的3通道。每个通道分别表示RGB三种颜色。

如何理解卷积神经网络中的通道(channel)

最初的通道数是3,但是有的神经网络通道数目多达100多个,怎么理解呢?

我们依然可以类比RGB通道,对于多通道我们可以看做是颜色表示的更抽象版本,每一个通道都表示图像某一方面的信息。