当输入层上存在多个通道时,卷积运算如何进行?(例如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)
在这种情况下,每个输入通道(也称为平面)有一个2D内核。
因此,您分别执行每个卷积(2D输入,2D内核),然后对贡献进行求和,从而得出最终的输出特征图。
请参阅本的幻灯片64 CVPR 2014教程通过Marc'Aurelio Ranzato:
每个特征图是否需要三个单独的权重集,并且在每种颜色之间共享?
如果考虑给定的输出要素图,则有3 x 2D内核(即每个输入通道一个内核)。每个2D内核在整个输入通道(此处为R,G或B)上共享相同的权重。
因此整个卷积层是一个4D张量(nb。输入平面x nb。输出平面x内核宽度x内核高度)。
他们为什么将RGB分量分成几个区域?
如上所述,可以将每个R,G和B通道视为具有专用2D内核的单独输入平面。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句