首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >了解三维卷积以及何时使用它?

了解三维卷积以及何时使用它?
EN

Stack Overflow用户
提问于 2019-07-25 06:42:12
回答 1查看 1K关注 0票数 0

我对卷积神经网络很陌生,我正在学习三维卷积。我所能理解的是,二维卷积给出了X-Y维中低层特征之间的关系,而三维卷积有助于检测低层特征以及它们在所有三维中的关系。

假设CNN使用2D conv层来识别手写数字。如果一个数字,比如说5,是用不同的颜色写的

严格意义上的2D CNN会表现不佳(因为它们属于z维中的不同频道)?

此外,是否有实用的神经网络,采用三维卷积?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-07-25 08:01:52

问题是图像的二维方面具有局部性。从某种意义上说,附近的事物在某种程度上是相互关联的。例如,头发像素附近的像素被认为是头发像素,先验的。然而,不同的渠道并没有这样的关系。当你只有3个通道时,三维卷积就等于在z中完全连接,当你有27个通道(例如在网络中间)时,为什么任何3个通道都被认为是“近”的?

这个答案很好地解释了这种差异。

在通道上做“完全连接”的关系是默认情况下,大多数库会做什么?。请特别注意这一行:"...a filter / filter_height、filter_width、in_channels、out_channels形状的内核张量“。对于大小为in_channels的输入向量,即大小in_channels的矩阵,out_channels是完全连通的.因此,这个过滤器可以被认为是图像大小为filter_height,filter_width的“补丁”上的一个完全连接的层。

为了说明,在单个通道上,一个普通的普通老图像过滤器获取一个图像补丁,并将该补丁映射到新图像中的单个像素。就像这样:(形象信用)

另一方面,假设我们有多个通道。我们不执行从3x3补丁到1x1像素的线性映射,而是执行从3x3xin_channels补丁到1x1xout_channels像素集的线性映射。我们该怎么做?线性映射只是一个矩阵。请注意,可以将3x3xin_channels修补程序编写为带有3*3*in_channels条目的向量。1x1xout_channels像素集可以编写为带有out_channels条目的向量。由3*3*in_channels行和out_channels列的矩阵给出两者之间的线性映射。该矩阵的条目是网络中该层的参数。该层的工作原理是将in向量与权值矩阵相乘,得到输出向量。在图像的所有补丁中都会重复这种情况。(实际上,与其在所有补丁的循环中这样做,不如用一些幻想实现一个等价的东西--这是库在实践中所做的,但结果是相同的)

为了说明,映射采用了以下3x3xin_channels列:

到这个像素的1x1xout_channels堆栈:

现在,您所建议的是用以下几点来做一些事情:

没有数学上的理由可以解释为什么你不能用3x3x3补丁来做一些事情,这个补丁只包含了整个in_channels的3个通道。然而,无论你选择什么三种渠道都是完全武断的,它们之间没有内在的联系,这意味着把它们当作“近在咫尺”是有帮助的。

要重申的是,在图像中,相邻的像素在某种意义上是“相似的”或“相关的”。这就是为什么卷积完全有效的原因。如果你把像素弄乱了,然后做了一个卷积,那它就毫无价值了。在这一点上,所有的频道都是混乱的。在通道上,没有“邻近相关性”属性。例如,“红色”频道不在“绿色”频道或“蓝色”频道附近,因为“接近”通道之间没有任何意义。由于“近距离”不是通道维的性质,那么在该维中进行卷积可能是没有用的。

另一方面,我们可以简单地接受所有in_channels的输入,同时从所有out_channels生成输出,并让它们以一种线性的方式相互影响。请注意,所描述的线性变换涉及一种参数的交叉授粉。例如,对于网络顶部的一个层,接收一个标记为r_1_1-r_3_3的3x3通道的r,g,b通道,该补丁输出的单个通道中的单个像素如下所示:

A*r_1_1 + B*r_1_2 + ... C*r_3_3 + D*b_1_1 + E*b_1_2 + ... F*b_3_3 + G*g_1_1 + ...

其中大写字母是权重矩阵的条目。

所以你的观察:“一个严格的2D CNN会表现不好吗?”基于这样一个假设,即卷积层不包括各种通道之间的任何“混合”。事实并非如此。in_channels被组合成一个线性映射来获得out_channels。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57195797

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档