反向传播的不同损失函数

Different loss functions for backpropagation

我遇到了一些不同的反向传播误差计算函数: 来自 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))

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

此外,由于我了解到第二个示例使用了该层使用的激活函数的导数,所以第一个示例是否也以某种方式这样做?对于任何损失函数(如果有更多)是否成立?

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

这是一个非常广泛的问题,但我可以阐明误差/成本函数部分。

成本函数

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

范围内

不同的成本函数具有不同的收敛性,各有利弊。您必须阅读您感兴趣的内容。

成本函数列表

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


旁注

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

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

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

输出层的delta定义为:

所有成本函数都是如此。