3

根据wikipedia,使用 delta 规则,我们通过以下方式调整权重:

dw = alpha * (ti-yi)*g'(hj)xi

当 alpha = 学习常数时,ti - 真实答案,yi - 感知器的猜测,g' = 激活函数 g 相对于感知器输入的加权和的导数,xi - 输入。

在这个公式中我不明白的部分是乘以导数 g'。让 g = sign(x)(加权和的符号)。所以 g' 总是 0,并且 dw = 0。但是,在我在互联网上看到的代码示例中,作者只是省略了 g' 并使用了公式:

dw = alpha * (ti-yi)*(hj)xi

我会很高兴阅读正确的解释!

先感谢您。

4

1 回答 1

4

你是对的,如果你对激活函数使用阶跃函数g,梯度总是为零(0 除外),所以 delta 规则(又名梯度下降)什么都不做(dw = 0)。这就是为什么阶跃函数感知器不能很好地用于梯度下降的原因。:)

对于线性感知器,您将拥有g'(x) = 1, for dw = alpha * (t_i - y_i) * x_i

您已经看到使用dw = alpha * (t_i - y_i) * h_j * x_i. 我们可以对这里发生的事情进行逆向工程,因为显然g'(h_j) = h_j,这意味着记住我们必须拥有的微积分g(x) = e^x + constant。显然,您找到的代码示例使用了指数激活函数。

这必须意味着神经元输出被限制为开启(0, infinity)(或者我猜(a, infinity)对于任何有限a的,对于g(x) = e^x + a)。我以前没有遇到过这种情况,但我在网上看到了一些参考资料。Logistictanh激活对于有界输出(分类或已知边界的回归)更为常见。

于 2013-01-20T20:43:30.730 回答