卷积神经网络中通道(Channel)的理解

1.定义

卷积神经网络中的通道(channel)也叫特征图(featrue map)

channel是在tensorflow中首先给出的,定义如下:

channels : Number of color channels in the example images. For color images, the number of channels is 3 (red, green, blue). For monochrome images, there is just 1 channel (black).
一般的RGB图片,channels数量是 3 (RGB);而monochrome图片,channels数量是 1。

mxnet 中的channel定义如下:

channels (int) : The dimensionality of the output space, i.e. the number of output channels (filters) in the convolution.
每个卷积层中卷积核的数量。

卷积网络中主要有两个操作,一个卷积(Convolution),一个池化(Pooling)。其中,池化层并不会对通道之间的交互有影响,只是在单个通道中进行操作;而卷积层则可以在通道与通道之间进行交互,之后在下一层生成新的通道。

一般大家说通道指的是图片的色彩通道,而特征图是卷积过滤器输出的结果。但实际上,两者本质上是相同的,都是表示之前输入上某个特征分布的数据。

通道这个概念最初指的是电子图片中RGB通道,或者CMYK通道这样的配色方案,比如说一张RGB的64x64的图片,可以用一个64x64x3的张量来表示。这里的3指的就是通道,分别为红色(Red)、绿色(Green)、蓝色(Blue)三个通道。

卷积神经网络中通道(Channel)的理解_第1张图片

吴恩达老师在他的深度学习课程中也给出了直观的例子:

卷积神经网络中通道(Channel)的理解_第2张图片

假设现有一个为 6×6×3 的图片样本,使用 3×3×3 的卷积核(filter)进行卷积操作。此时输入图片的 channels 为 3 ,而卷积核中的 in_channels 与 需要进行卷积操作的数据的 channels 一致。

卷积神经网络中通道(Channel)的理解_第3张图片

接下来,进行卷积操作,卷积核中的27个数字与分别与样本对应相乘后,再进行求和,得到第一个结果。依次进行,最终得到 4×4 的结果。

卷积神经网络中通道(Channel)的理解_第4张图片

上面步骤完成后,由于只有一个卷积核,所以最终得到的结果为 4×4×1 , out_channels 为 1 。

在实际应用中,都会使用多个卷积核。这里如果再加一个卷积核,就会得到 4×4×2 的结果。

2.作用

通道数,又叫做神经网络的宽度。

深度学习模型之所以在各种任务中取得了成功,足够的网络深度起到了很关键的作用。深度神经网络本质上是一层层的函数进行拟合,网络更深带来的一个非常大的好处,就是逐层的抽象,不断精炼提取知识,如下图第一层学习到了边缘,第二层学习到了简单的形状,第三层开始学习到了目标的形状,更深的网络层能学习到更加复杂的表达。如果只有一层,那就意味着要学习的变换非常的复杂,这很难做到。

而宽度就起到了另外一个作用,那就是让每一层学习到更加丰富的特征,比如不同方向,不同频率的纹理特征。

卷积神经网络中通道(Channel)的理解_第5张图片

上面是AlexNet模型的第一个卷积层的96个通道,尽管其中有一些形状和纹理相似的卷积核(这将成为优化宽度的关键),还是可以看到各种各种的模式。

有的是彩色有的是灰色,说明有的侧重于提取纹理信息,有的侧重于提取颜色信息。太窄的网络,每一层能捕获的模式有限,此时网络再深都不可能提取到足够的信息往下层传递。

参考:

【AI不惑境】网络宽度对模型性能有什么影响? - 知乎 (zhihu.com)

理解卷积神经网络中的通道 channel - 知乎 (zhihu.com)

你可能感兴趣的:(深度学习,OpenMMLab,cnn,深度学习,python)