ANN的sigmoided输出的衍生物告诉我什么?

时间:2017-02-01 14:27:36

标签: neural-network

我对人工神经网络(ANN)非常感兴趣,并对其进行了深入研究。但有一件事我似乎无法弄明白。

在评估应调整多少重量以减少ANN所考虑的误差时:

  • 错误(显然),*
  • 输入(对我来说也是不言自明的)*
  • 输出(???)。

但最后一点怎么回事呢?我知道它应该代表人工神经网络对这个特定重量有多大的信心,但错误不应该是重量应该调整多少的关键?如果输出错误,为什么我会关心我的ANN对这个重量的信心?

我从this帖子中得到了我的见解(以及我的困惑)。

1 个答案:

答案 0 :(得分:1)

关于某些事情如何运作的直觉总的来说是正确的,但具体而言,它们可能并不正确。这是你对错误函数的直觉的情况,这是不正确的。让我们记住错误是如何构建的,单个神经元的输出是:

@Id
@GeneratedValue(strategy = GenerationType.TABLE)
@TableGenerator(name = "my_sequence", initialValue = 1000, allocationSize = 10)
private long id;

delta是激活函数。误差,假设均方误差,只是神经元输出和标签之间的平方差的总和:

o(x, w) = delta(sum w_j x_j + b)

要使用渐变下降,您可以得到误差的导数,即:

e(w) = sum (o(x, w) - l)^2

这取决于o的导数,而链规则是:

e'(w) = sum 2 * (o(x, w) - l) * o'(x, w)

汇总错误的衍生物:

o'(x, w) = delta'(sum w_j x_j + b) * x_j

因此,当我们得到误差(差异)时,在神经元输出(减去激活)时评估的激活的导数是神经元输入的倍。 请注意,我可能犯了一两个错误,但整体结构是正确的。最后,由于链规则的应用,出现了案例中激活(sigmoid)的导数。