神经网络梯度下降中的反向传播与线性回归

Backpropagation in Gradient Descent for Neural Networks vs. Linear Regression

我试图理解 "Back Propagation",因为它在使用梯度下降优化的神经网络中使用。翻阅文献似乎做了一些事情。

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

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

所以,我试图了解反向传播是否除了对损失函数进行梯度下降之外还有其他作用。如果没有,为什么它只在神经网络的情况下被引用,而为什么不在 GLM 中引用(广义线性楷模)。他们似乎都在做同样的事情——我可能遗漏了什么?

主要部门 恰好 隐藏在众目睽睽之下:线性。事实上,将问题扩展到一阶导数的连续性,您将封装大部分差异。

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

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

起泡沫,冲洗,重复直至收敛。

这是否为您解决了问题?


你明白了

典型的 ReLU 是

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

典型的池化层将输入的长度和宽度减少了 2 倍;在每个 2x2 正方形中,只有最大值通过。 Dropout 简单地杀死随机值,使模型从 "primary sources" 重新训练这些权重。这每一个都让GD很头疼,所以我们要一层一层的来做。

So, I'm trying to understand if BackPropagation does anything more than gradient descent on the loss function.. and if not, why is it only referenced in the case of Neural Nets

我认为(至少最初)错误的反向传播意味着比您描述的少:术语"backpropagation of errors"仅指计算导数的方法损失函数,而不是例如automatic differentiation, symbolic differentiation, or numerical differentiation。无论梯度用于什么(例如梯度下降,或者 Levenberg/Marquardt)。

They all seem to be doing the same thing- what might I be missing?

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