【问题标题】:What does the derivative of the sigmoided output of an ANN tell me?ANN 的 sigmoided 输出的导数告诉我什么?
【发布时间】:2017-10-20 02:17:16
【问题描述】:

我对人工神经网络 (ANN) 非常感兴趣,并且非常喜欢它。但有一件事我似乎无法弄清楚。

在评估应调整多少权重以减少 ANN 产生的误差时:

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

但是最后一点有什么关系呢?我知道它应该代表 ANN 对这个特定权重的信心,但错误不是应该调整多少权重的关键吗?如果输出只是错误的,我为什么要关心我的 ANN 对这个权重的信心?

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

【问题讨论】:

    标签: neural-network


    【解决方案1】:

    关于某事如何运作的直觉通常是正确的,但在具体情况下,它们可能并不正确。您对误差函数的直觉就是这种情况,这是不对的。让我们记住错误是如何构造的,单个神经元的输出是:

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

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

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

    要使用梯度下降,您需要对误差进行导数,即:

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

    这取决于 o 的导数,根据链式法则,这是:

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

    聚合误差的导数:

    e'(w) = sum 2 * (o(x, w) - l) * delta'(sum w_j x_j + b) * x_j
    

    所以我们有误差(差异),在神经元输出(减去激活)处评估的激活的导数乘以神经元输入。 请注意,我可能犯了一两个错误,但总体结构是正确的。最后,由于链式法则的应用,您的案例中激活的导数(sigmoid)出现了。

    【讨论】:

    • 首先感谢您的回答。这是一个相当数学的方法:/。我真的只是想了解为什么必须考虑我的问题的第 3 点。我什至使用了帖子中提供的formula,没有衍生部分,结果更准确。我真的很难理解它的目的。
    • @JonasBergner 好吧,必须考虑到这一点,因为如果不是,那就错了。没有它,你只是有一个似乎有效的随机公式,但没有关于它为什么有效的理论基础。当然,您还没有证明它在所有情况下都有效。可能没有特定的目的,它是公式的一部分。输出取决于激活,因此误差导数取决于激活导数是明智的。
    • 啊,我明白了。之所以如此,是因为必须应用链式法则,因为我(可以这么说)函数中有一个函数。这就是为什么第 3 部分必须在那里。谢谢,现在有道理了
    • @JonasBergner 没错,函数组合。
    • @JonasBergner 梯度是接受多个输入且只有一个输出的函数的导数的泛化。梯度总是指向函数中最大增长的方向,所以要下降,你要走相反的方向。
    猜你喜欢
    • 1970-01-01
    • 2019-02-27
    • 2013-12-07
    • 1970-01-01
    • 2012-10-25
    • 2017-12-20
    • 1970-01-01
    • 2014-03-18
    • 1970-01-01
    相关资源
    最近更新 更多