何时在神经网络中“添加”层以及何时“连接”?

机器算法验证 神经网络 喀拉斯
2022-02-11 16:04:48

我正在使用 keras 中定义的“添加”和“连接”。基本上,据我了解add将对输入求和(它们是层,本质上是张量)。因此,如果第一层具有特定的权重 as0.4并且具有相同确切形状的另一层具有相应的权重存在0.5,那么之后add新的权重变为0.9

但是,对于串联,假设第一层有维度64x128x128,第二层有维度32x128x128,然后在串联之后,新维度是96x128128(假设您将第二层作为第一个输入传递给串联)。

假设我的上述直觉是正确的,我什么时候会使用其中一个?从概念上讲,add似乎是一种可能导致信息失真的信息共享,而连接是字面意义上的信息共享。

2个回答

如果您想将其中一个输入解释为另一个输入的残余“校正”或“增量”,则添加是很好的。例如,ResNet 中的残差连接通常被解释为对特征图的连续细化。如果两个输入不是非常密切相关,则连接可能会更自然。但是,差异比您想象的要小。

请注意其中表示 concat 并且水平拆分为将此与进行比较。因此,您可以将添加解释为一种连接形式,其中权重矩阵的两半被限制为W[x,y]=W1x+W2y[ ]WW1W2W(x+y)=Wx+WyW1=W2

我不是专家,但根据我的浅见,“加法”用于残基块等结构中的“身份链接”,以在卷积之前保留信息,正如专业人士所说,随着网络的深入,这很有用。

当涉及到“它如何帮助?”时,连接非常令人困惑。正如你所说,它是在字面意义上添加信息,它似乎专注于通过将来自不同操作(在拆分特征图之后)到达的过滤器堆叠到一个块中来进行更广泛的拍摄。它似乎被广泛用于“pre-stemming”。

这两者一开始听起来很相似,但在功能上似乎不应该放在一起比较。