反向传播的不同损失函数
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定义为:
所有成本函数都是如此。
我遇到了一些不同的反向传播误差计算函数: 来自 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定义为:
所有成本函数都是如此。