【问题标题】:Backpropagation in Gradient Descent for Neural Networks vs. Linear Regression神经网络梯度下降中的反向传播与线性回归
【发布时间】:2016-10-31 04:07:46
【问题描述】:

我试图理解“反向传播”,因为它用于使用梯度下降优化的神经网络。通读文献似乎可以做一些事情。

  1. 使用随机权重开始并获取错误值
  2. 使用这些权重对损失函数执行梯度下降以获得新的权重。
  3. 使用这些新权重更新权重,直到损失函数最小化。

上述步骤似乎是解决线性模型(例如回归)的确切过程? Andrew Ng 在 Coursera for Machine Learning 上的优秀课程正是针对线性回归所做的。

所以,我试图了解 BackPropagation 是否在损失函数上做的不仅仅是梯度下降。如果没有,为什么它只在神经网络的情况下被引用,为什么不用于 GLM(广义线性模型) .他们似乎都在做同样的事情——我可能会错过什么?

【问题讨论】:

    标签: machine-learning neural-network linear-regression backpropagation gradient-descent


    【解决方案1】:

    主要的部分恰好隐藏在显而易见的地方:线性度。事实上,将问题扩展到一阶导数的连续性,您将封装大部分差异。

    首先,请注意神经网络 (NN) 的一个基本原理:具有线性权重和线性依赖关系的 NN GLM。此外,拥有多个隐藏层相当于一个隐藏层:它仍然是从输入到输出的线性组合。

    “现代”神经网络具有非线性层:ReLU(将负值更改为 0)、池化(最大值、最小值或多个值的平均值)、dropout(随机删除一些值)和其他方法会破坏我们的能力以平滑地将梯度下降 (GD) 应用于模型。相反,我们采用许多原理并向后工作,逐层应用有限的校正,一直回到第 1 层的权重。

    起泡、冲洗、重复直至收敛。

    这是否为您解决了问题?


    你明白了

    一个典型的 ReLU 是

    f(x) = x if x > 0,
           0 otherwise
    

    典型的池化层将输入长度和宽度减少了 2 倍;在每个 2x2 方格中,只有最大值通过。 Dropout 只是简单地消除随机值,以使模型从“主要来源”重新训练这些权重。每一个都让GD头疼,所以我们要一层一层的做。

    【讨论】:

    • 非常感谢!这有助于澄清很多!如果我理解正确,在“复杂”的神经网络中,我们可能有可能无法区分的函数(我想你可以有一个有中断的 ReLU)——所以如果我们构造损失函数从头到尾,因此必须将其分解并逐层应用。 ...
    • 我没有得到的部分是关于线性的。据我了解,GD 可以用于非线性函数.. 那么考虑更多的是计算效率吗?
    • 对。多层梯度在每个非线性处迅速变得困难。事实上,在 CNN 的 dropout 层中,它在迭代之间不是确定性的。当我们得到一个大型 NN 时——例如具有 10^6 参数和 10^7 权重的 CNN——逐层反向传播快得多
    • 太棒了。谢谢!!
    【解决方案2】:

    所以,我试图了解 BackPropagation 是否在损失函数上做的不仅仅是梯度下降。如果没有,为什么它只在神经网络的情况下被引用

    我认为(至少最初)错误的反向传播意味着少于您所描述的:术语“错误的反向传播”仅指计算损失函数导数的方法,而不是例如automatic differentiation,符号微分,或numerical differentiation。不管梯度被用于什么(例如梯度下降,或者可能是 Levenberg/Marquardt)。

    他们似乎都在做同样的事情——我可能会错过什么?

    他们使用不同的模型。如果你的神经网络使用线性神经元,它就相当于线性回归。

    【讨论】:

      猜你喜欢
      • 2019-04-16
      • 1970-01-01
      • 2011-02-21
      • 2014-10-10
      • 2015-03-03
      • 2012-02-21
      • 2011-01-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多