反向传播的不同损失函数

时间:2016-04-01 12:04:11

标签: neural-network backpropagation

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

的平方误差函数

enter image description here

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

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

现在,我想知道还有多少,以及它对培训有何影响?

此外,由于我理解第二个例子使用了图层使用的激活函数的导数,第一个例子是否也以某种方式执行此操作?对于任何损失函数(如果还有更多)会是真的吗?

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

1 个答案:

答案 0 :(得分:5)

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

成本函数

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

不同的成本函数除了不同的收敛性外,各有利弊。你必须阅读那些你感兴趣的内容。

成本函数列表

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

<小时/>

旁注

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

平方误差函数及其导数定义为:
enter image description here

虽然S形激活函数及其导数定义为:
enter image description here

输出层的增量定义为:
enter image description here
所有成本函数都适用。