【发布时间】:2012-10-17 06:01:32
【问题描述】:
我最近在 Coursera 上完成了 Ng 教授的机器学习课程,虽然我喜欢整个课程,但我从来没有真正理解过用于训练神经网络的反向传播算法。
我理解它的问题是,他只为全连接的前馈网络教授它的矢量化实现。我的线性代数生疏了,如果有人能教我通用算法,我认为会更容易理解。也许以面向节点的方式。
我会尝试简单地表述问题,但我可能误解了反向传播的工作原理,所以如果这没有意义,请忽略它:
对于任何给定的节点 N,给定输入权重/值、输出权重/值以及 N 输出到的所有节点的误差/成本,我如何计算 N 的“成本”并使用它来更新输入权重?
【问题讨论】:
-
这是一个相当广泛的问题。在dsp.stackexchange.com,你可能会有更好的运气。
-
你可以在galaxy.agh.edu.pl/~vlsi/AI/backp_t_en/backprop.html找到一个很好的解释,有图片,@
-
这是一个很好的解释,马克!我不太确定我是否理解差异位。 df(e)/de 是指相对于整个加权和 (e) 的导数,还是仅表示我们要更新的权重的连接输入?假设节点具有线性激活函数,df(e)/de 是否总是等于 1 (f(e) = e --> df(e)/de = 1)?或者它是否总是等于我们正在更新的权重 (f(e) = w1x1 + w2x2 --> df(e)/dx1 = w1)
-
嘿@J.Ashworth,我现在正在上这门课。可以回答下面的问题吗? - 为什么最后一层的目标函数的导数是观察值和预测值之间的差异?假设我们正在使用 sigmoid 函数来获取输入并将其转换为非线性值......
-
我的意思是我查看了逻辑回归的目标函数的导数,并且我知道导数等于(预测之间的差异)*x_varaiable...所以为什么在神经网络的情况下我们摆脱x_variable 并仅保留(预测之间的差异)部分?
标签: algorithm neural-network backpropagation