我正在尝试理解“Back Propagation”,因为它在使用Gradient Descent优化的神经网络中使用。阅读文献似乎做了一些事情。
上述步骤似乎是解决线性模型的精确过程(例如回归)? Andrew Ng关于机器学习Coursera的优秀课程完全符合线性回归的要求。
所以,我试图理解BackPropagation是否在损失函数上做了除梯度下降之外的任何事情..如果没有,为什么它仅在神经网络的情况下引用,为什么不用于GLM(广义线性模型) 。他们似乎都在做同样的事情 - 我可能会缺少什么?
答案 0 :(得分:3)
主要部门发生隐藏在明显的视线中:线性。实际上,将问题延伸到一阶导数的连续性,并且您将封装大部分差异。
首先,请注意神经网络(NN)的一个基本原理:具有线性权重和线性依赖性的NN 是 GLM。此外,拥有多个隐藏层相当于一个隐藏层:它仍然是从输入到输出的线性组合。
A"现代' NN具有非线性层:ReLU(将负值更改为0),汇集(多个值的最大值,最小值或平均值),丢失(随机删除一些值),以及其他方法破坏我们平滑应用梯度下降(GD)的能力)到模型。相反,我们采用了许多原则并向后工作,逐层应用有限的修正,一直回到第1层的权重。
泡沫,冲洗,重复直至收敛。
这能为你解决问题吗?
你明白了!
典型的ReLU
f(x) = x if x > 0,
0 otherwise
典型的汇集层将输入长度和宽度减少了2倍;在每个2x2平方中,只传递最大值。 Dropout只是简单地删除随机值,使模型重新训练来自"主要来源的权重"。这些都是GD的头疼,所以我们必须逐层进行。
答案 1 :(得分:0)
所以,我试图了解BackPropagation是否在损失函数上做了除梯度下降之外的任何事情..如果没有,为什么它只在神经网络的情况下被引用
我认为(至少最初)错误的反向传播意味着少于比你描述的更多:术语“错误的反向传播”仅指计算损失函数的导数的方法,而不是例如documentation,象征性差异,或automatic differentiation。无论当时使用的是什么梯度(例如Gradient Descent,或者Levenberg / Marquardt)。
他们似乎都在做同样的事情 - 我可能会缺少什么?
他们使用不同的模型。如果您的神经网络使用线性神经元,它将等同于线性回归。