卷积神经网络 – 多通道

当输入层存在多个通道时,卷积操作是如何进行的?(例如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

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

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