Joh*_*lin 4 deep-learning deep-residual-networks
我正在阅读 Deep Residual Network 论文,论文中有一个我无法完全理解的概念:
题:
“希望 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
Run Code Online (Sandbox Code Playgroud)
H(x)得到F(x)如下。
F(x) + x -> ReLU
Run Code Online (Sandbox Code Playgroud)
所以,我不明白你问题的第二部分。残差为F(x)。
作者假设残差映射(即F(x))可能比 更容易优化H(x)。为了用一个简单的例子来说明,假设理想的H(x) = x. 然后对于直接映射,由于存在如下非线性层的堆栈,因此很难学习恒等映射。
x -> weight_1 -> ReLU -> weight_2 -> ReLU -> ... -> x
Run Code Online (Sandbox Code Playgroud)
因此,在中间使用所有这些权重和 ReLU 来近似身份映射将是困难的。
现在,如果我们定义所需的映射H(x) = F(x) + x,那么我们只需要F(x) = 0如下获取。
x -> weight_1 -> ReLU -> weight_2 -> ReLU -> ... -> 0 # look at the last 0
Run Code Online (Sandbox Code Playgroud)
实现上述目标很容易。只需将任何权重设置为零,您的输出就会为零。添加回来x,您将获得所需的映射。
残差网络成功的另一个因素是从第一层到最后一层的不间断梯度流。这超出了您的问题的范围。您可以阅读论文:“深度残差网络中的身份映射”以获取更多信息。
| 归档时间: |
|
| 查看次数: |
968 次 |
| 最近记录: |