【问题标题】:Different loss functions for backpropagation反向传播的不同损失函数
【发布时间】:2016-04-01 12:04:11
【问题描述】:

我遇到了一些不同的反向传播误差计算函数: 来自http://mattmazur.com/2015/03/17/a-step-by-step-backpropagation-example/的平方误差函数

或a nice explanation 用于推导 BP 损失函数

Error = Output(i) * (1 - Output(i)) * (Target(i) - Output(i))

现在,我想知道还有多少,它对训练有什么影响?

另外,由于我知道第二个示例使用层使用的激活函数的导数,第一个示例是否也在某种程度上这样做?对于任何损失函数(如果有更多),这是否正确?

最后,如何知道使用哪一个以及何时使用?

【问题讨论】:

标签: neural-network backpropagation


【解决方案1】:

这是一个非常广泛的问题,但我可以对误差/成本函数部分有所了解。

成本函数

在使用神经网络时可以应用许多不同的成本函数。没有特定于神经网络的成本函数。 NN 中最常见的成本函数可能是均方误差 (MSE) 和交叉熵成本函数。在使用逻辑或 softmax 输出层时,后一种成本函数通常是最合适的。另一方面,MSE 成本函数很方便,因为它不需要输出值在[0, 1] 范围内。

不同的成本函数具有不同的收敛特性,各有优缺点。你必须阅读那些你感兴趣的东西。

成本函数列表

Danielle Ensign 编译了a short, nice list of cost functions over at CrossValidated。


旁注

您混淆了平方误差函数的导数。您定义为误差函数导数的方程实际上是误差函数的导数乘以输出层激活函数的导数。这个乘法计算输出层的delta。

平方误差函数及其导数定义为:

而 sigmoid 激活函数及其导数定义为:

输出层的delta定义为:

这适用于所有成本函数。

【讨论】:

  • 是的,我正要改变我的问题,因为我意识到第一个问题只是部分问题,并且稍后还乘以激活函数导数:-) 但你完美地回答了我的问题,告诉我那里也是损失函数的派生用途!只是现在我想知道为什么,何时何地使用它......
  • 我回答的最后三行涉及时间和地点。您将成本函数的导数与输出层中激活函数的导数相乘,以计算输出层的增量。
猜你喜欢
  • 2018-06-14
  • 2021-07-27
  • 2020-09-10
  • 2019-11-14
  • 1970-01-01
  • 2022-01-18
  • 1970-01-01
  • 2018-12-23
  • 1970-01-01
相关资源
最近更新 更多