我正在阅读深度残差网络论文,论文中有一个我无法完全理解的概念:
问题:
“希望 2 个权重层适合 F(x)”是什么意思?
这里 F(x) 用两个权重层(+ ReLu 非线性函数)处理 x,所以所需的映射是 H(x)=F(x)?残差在哪里?
我正在阅读深度残差网络论文,论文中有一个我无法完全理解的概念:
问题:
“希望 2 个权重层适合 F(x)”是什么意思?
这里 F(x) 用两个权重层(+ ReLu 非线性函数)处理 x,所以所需的映射是 H(x)=F(x)?残差在哪里?
“希望 2 个权重层适合 F(x)”是什么意思?
所以显示的残差单元是通过两个权重层F(x)
处理获得的。x
然后它添加x
到F(x)
获得H(x)
。现在,假设这H(x)
是您的理想预测输出,与您的基本事实相匹配。因为H(x) = F(x) + x
,获得理想H(x)
取决于获得完美F(x)
。这意味着残差单元中的两个权重层实际上应该能够产生期望的F(x)
,然后H(x)
保证得到理想的 。
这里 F(x) 用两个权重层(+ ReLu 非线性函数)处理 x,所以所需的映射是 H(x)=F(x)?残差在哪里?
第一部分是正确的。F(x)
从x
如下获得。
x -> weight_1 -> ReLU -> weight_2
H(x)
从F(x)
如下获得。
F(x) + x -> ReLU
所以,我不明白你问题的第二部分。残差为F(x)
。
作者假设残差映射(即F(x)
)可能比 更容易优化H(x)
。用一个简单的例子来说明,假设理想的H(x) = x
. 然后对于直接映射,学习恒等映射将很困难,因为有如下非线性层堆栈。
x -> weight_1 -> ReLU -> weight_2 -> ReLU -> ... -> x
因此,用所有这些权重和中间的 ReLU 来近似恒等映射是很困难的。
现在,如果我们定义了所需的映射H(x) = F(x) + x
,那么我们只需要F(x) = 0
如下所示。
x -> weight_1 -> ReLU -> weight_2 -> ReLU -> ... -> 0 # look at the last 0
实现上述目标很容易。只需将任何权重设置为零,您将获得零输出。添加回来x
,你得到你想要的映射。
残差网络成功的其他因素是从第一层到最后一层的不间断梯度流。这超出了您的问题的范围。您可以阅读论文:“深度残差网络中的身份映射”以获取更多信息。