感知训练 - 三角洲规则

时间:2013-01-20 19:46:45

标签: machine-learning artificial-intelligence neural-network perceptron

根据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

我很乐意阅读正确的解释!

提前谢谢。

1 个答案:

答案 0 :(得分:3)

如果你对激活函数g使用步长函数,你是正确的,渐变总是为零(除了0),所以delta规则(也就是梯度下降)什么都不做({{ 1}})。这就是阶梯函数感知器不能很好地适应梯度下降的原因。 :)

对于线性感知器,dw = 0g'(x) = 1

您见过使用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)。我之前没有遇到过这种情况,但我在网上看到了一些参考资料。对于有界输出(具有已知边界的分类或回归),Logistictanh激活更常见。