深度学习 比较三种损失函数的使用(交叉熵、平方、绝对值)

注意:本文中的 y ∗ y^* y代表的是标签值仅有 0 、 1 0、1 01两个值, y y y是获得的语义值( s o f t m a x softmax softmax后的逻辑值)

交叉熵:

L o s s 1 = − y ∗ ∗ l o g y Loss1 = - y^**log^y Loss1=ylogy

  • y ∗ y^* y为0时:Loss的值为0
  • y ∗ y^* y为1时:Loss的值为 − l o g y -log^y logy

平方:

L o s s 2 = y ∗ ∗ ( 1 − y ) 2 Loss2 = y^**(1-y)^2 Loss2=y(1y)2

  • y ∗ y^* y为0时:Loss的值为0
  • y ∗ y^* y为1时:Loss的值为 ( 1 − y ) 2 (1-y)^2 (1y)2

绝对值:

L o s s 3 = y ∗ ∗ ∣ 1 − y ∣ 2 Loss3 = y^**|1-y|^2 Loss3=y1y2

  • y ∗ y^* y为0时:Loss的值为0
  • y ∗ y^* y为1时:Loss的值为 ∣ 1 − y ∣ |1-y| 1y

这是三种求损失函数的表达式

我们可以对这三种损失函数就行求偏导

这样我们可以得到:

L o s s 1 ′ = − y ′ y Loss1' = - \frac{y'}{y} Loss1=yy

L o s s 2 ′ = − 2 ∗ ( 1 − y ) ∗ y ′ Loss2' = - 2*(1-y)*y' Loss2=2(1y)y

L o s s 3 ′ = − y ′ Loss3' = -y' Loss3=y

通过上面的表达式,我们可以进行比较一下

这三个 L o s s Loss Loss的值在进行梯度下降的时候,其中梯度的变化程度

因为 y y y是概率值,是大于0小于1的

所以按照公式进行比较的话,会有如下的答案:

L o s s 1 > L o s s 3 > L o s s 2 Loss1 > Loss3 > Loss2 Loss1>Loss3>Loss2


你可能感兴趣的:(深度学习)