Deep learning 关于深剩余网络的直觉

Deep learning 关于深剩余网络的直觉,deep-learning,deep-residual-networks,Deep Learning,Deep Residual Networks,我在读《深度剩余网络》的论文,论文中有一个我无法完全理解的概念: 问题: “希望2层重量适合F(x)”是什么意思 这里F(x)用两个权重层(+ReLu非线性函数)处理x,所以期望的映射是H(x)=F(x)?剩余的在哪里 “希望2层重量适合F(x)”是什么意思 因此,所示的剩余单位通过使用两个权重层处理x获得F(x)。然后将x添加到F(x)以获得H(x)。现在,假设H(x)是理想的预测输出,它与基本事实相匹配。由于H(x)=F(x)+x,因此获得所需的H(x)取决于获得完美的F(x)。这意味着剩

我在读《深度剩余网络》的论文,论文中有一个我无法完全理解的概念:

问题:

  • “希望2层重量适合F(x)”是什么意思

  • 这里F(x)用两个权重层(+ReLu非线性函数)处理x,所以期望的映射是H(x)=F(x)?剩余的在哪里

  • “希望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
    
    F(x) + x -> ReLU 
    
    x -> weight_1 -> ReLU -> weight_2 -> ReLU -> ... -> x
    
    x -> weight_1 -> ReLU -> weight_2 -> ReLU -> ... -> 0  # look at the last 0
    
    H(x)
    F(x)
    中获取,如下所示

    x -> weight_1 -> ReLU -> weight_2
    
    F(x) + x -> ReLU 
    
    x -> weight_1 -> ReLU -> weight_2 -> ReLU -> ... -> x
    
    x -> weight_1 -> ReLU -> weight_2 -> ReLU -> ... -> 0  # look at the last 0
    
    所以,我不明白你问题的第二部分。残差为
    F(x)

    作者假设残差映射(即
    F(x)
    )可能比
    H(x)
    更容易优化。为了用一个简单的例子来说明,假设理想的
    H(x)=x
    。那么对于直接映射来说,学习身份映射是很困难的,因为有一堆非线性层,如下所示

    x -> weight_1 -> ReLU -> weight_2
    
    F(x) + x -> ReLU 
    
    x -> weight_1 -> ReLU -> weight_2 -> ReLU -> ... -> x
    
    x -> weight_1 -> ReLU -> weight_2 -> ReLU -> ... -> 0  # look at the last 0
    

    这样,用所有这些权重和Relu在中间进行近似映射是困难的。

    现在,如果我们定义所需的映射
    H(x)=F(x)+x
    ,那么我们只需要得到
    F(x)=0
    ,如下所示

    x -> weight_1 -> ReLU -> weight_2
    
    F(x) + x -> ReLU 
    
    x -> weight_1 -> ReLU -> weight_2 -> ReLU -> ... -> x
    
    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)
    容易。我不认为有任何具体的答案,因为作者自己在原始论文中假设了这一点。这种成功更多地归功于这样一个事实:通过构造,残余网络允许梯度不间断地流动,这与传统的非残余网络不同。