【问题标题】:Intuition on Deep Residual Network对深度残差网络的直觉
【发布时间】:2017-09-03 13:13:07
【问题描述】:

我正在阅读深度残差网络论文,论文中有一个我无法完全理解的概念:

问题:

  1. “希望 2 个权重层适合 F(x)”是什么意思?

  2. 这里 F(x) 是用两个权重层(+ ReLu 非线性函数)处理 x,所以所需的映射是 H(x)=F(x)?残差在哪里?

【问题讨论】:

    标签: deep-learning deep-residual-networks


    【解决方案1】:

    “希望 2 个权重层适合 F(x)”是什么意思?

    所以显示的残差单元通过使用两个权重层处理x 获得F(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 即可获得所需的映射。

    残差网络成功的其他因素是从第一层到最后一层的不间断梯度流。这超出了您的问题的范围。您可以阅读论文:“深度残差网络中的身份映射”以获取更多信息。

    【讨论】:

    • 感谢您的回答。对于简单的 H(x)=x,残差是 F(x) = H(x) - x,但我在维基百科中阅读了“残差”的定义。当 H(x) 不是一个简单的函数时,这让我感到困惑,为什么我们仍然可以将残差表示为 H(x) - x?
    • 问题不在于为什么我们仍然可以将残差“表示”为H(x) - x,因为那是通过构造实现的。你学习 F(x) 并添加 x 所以 H(x) - x 自动成为残差。这里的问题应该是为什么学习F(x) 可能比H(x) 更容易。我认为没有任何具体的答案,因为作者自己在原始论文中对此进行了假设。成功更多地归功于残差网络通过构建允许梯度不间断地流动,这与传统的非残差网络不同。
    猜你喜欢
    • 2020-05-06
    • 1970-01-01
    • 2017-09-28
    • 2018-08-23
    • 2017-11-08
    • 2021-05-04
    • 2018-10-23
    • 2018-07-28
    • 2017-05-17
    相关资源
    最近更新 更多