卷积神经网络 – 多通道

当输入层存在多个通道时,卷积操作是如何进行的?(例如RGB)

在研究了CNN的架构/实现后,我了解到特征图中的每个神经元引用了由卷积核大小定义的图像的NxM像素。然后每个像素通过特征图学习的NxM权重集(即卷积核/滤波器)进行加权,求和后输入到激活函数中。对于简单的灰度图像,我想象操作会遵循以下伪代码:

for i in range(0, image_width-kernel_width+1):    for j in range(0, image_height-kernel_height+1):        for x in range(0, kernel_width):            for y in range(0, kernel_height):                sum += kernel[x,y] * image[i+x,j+y]        feature_map[i,j] = act_func(sum)        sum = 0.0

然而,我不明白如何扩展这个模型来处理多个通道。每个特征图是否需要三个独立的权重集,这些权重集在每个颜色之间共享?

参考这个教程的“共享权重”部分: http://deeplearning.net/tutorial/lenet.html 每个特征图中的神经元引用层m-1,颜色从不同的神经元中引用。我不理解他们在这里表达的关系。神经元是卷积核还是像素,为什么它们引用图像的不同部分?

基于我的例子,似乎单个神经元的卷积核是特定图像区域的专属。为什么他们要将RGB组件分成几个区域?


回答:

当输入层存在多个通道时,卷积操作是如何进行的?(例如RGB)

在这种情况下,你对每个输入通道(也称为平面)有一个二维卷积核

因此,你分别进行每个卷积(二维输入,二维卷积核),然后将贡献相加,得到最终的输出特征图。

请参考CVPR 2014教程的第64张幻灯片,由Marc’Aurelio Ranzato提供:

enter image description here

每个特征图是否需要三个独立的权重集,这些权重集在每个颜色之间共享?

如果你考虑一个给定的输出特征图,你有3个二维卷积核(即每个输入通道一个卷积核)。每个二维卷积核在整个输入通道(这里是R、G或B)上共享相同的权重。

因此,整个卷积层是一个4D张量(输入平面数 x 输出平面数 x 卷积核宽度 x 卷积核高度)。

为什么他们要将RGB组件分成几个区域?

如上所述,将每个R、G和B通道视为一个独立的输入平面,每个平面有其专用的二维卷积核。

Related Posts

L1-L2正则化的不同系数

我想对网络的权重同时应用L1和L2正则化。然而,我找不…

使用scikit-learn的无监督方法将列表分类成不同组别,有没有办法?

我有一系列实例,每个实例都有一份列表,代表它所遵循的不…

f1_score metric in lightgbm

我想使用自定义指标f1_score来训练一个lgb模型…

通过相关系数矩阵进行特征选择

我在测试不同的算法时,如逻辑回归、高斯朴素贝叶斯、随机…

可以将机器学习库用于流式输入和输出吗?

已关闭。此问题需要更加聚焦。目前不接受回答。 想要改进…

在TensorFlow中,queue.dequeue_up_to()方法的用途是什么?

我对这个方法感到非常困惑,特别是当我发现这个令人费解的…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注