分类损失函数:Log loss,KL-divergence,cross entropy,logistic loss,Focal loss,Hinge loss,Exponential loss

分类损失函数:Log loss,KL-divergence,cross entropy,logistic loss,Focal loss,Hinge loss,Exponential loss

 

在分类算法中,损失函数通常可以表示成损失项和正则项的和,损失项的表达方式有如下等:

 

1、Log loss

分类损失函数:Log loss,KL-divergence,cross entropy,logistic loss,Focal loss,Hinge loss,Exponential loss

其中 N 是输入的样本数或者实例的数量,i 是某一个样本或者实例;M 表示样本可能的分类数量,j 表示某一个分类;yij 表示某个样本 i 属于分类 j 的标签(通常是0或者1),i 只属于一个分类;pij 表示样本 i 预测为分类 j 的概率。

log loss 旨在惩罚错误分类,对于完全正确的分类(预测概率 pij 为1)显然其对 loss 的贡献为0,可以控制其范围避免因为0或者1带来的 log 溢出问题。运用 log loss 的典型分类器是 Logistic 回归算法。

对于二分类问题:

分类损失函数:Log loss,KL-divergence,cross entropy,logistic loss,Focal loss,Hinge loss,Exponential loss

yi 只能取0或1,pi 为1的概率是(正样本数/样本总数),pi为0的概率是(负样本数/样本总数)= 1 -(正样本数/样本总数)。此时 M 为2,图中整个公式还需要乘上(1/N)。

 

2、KL-divergence / cross entropy / logistic loss

相对熵(KL-divergence / relative entropy):

分类损失函数:Log loss,KL-divergence,cross entropy,logistic loss,Focal loss,Hinge loss,Exponential loss

交叉熵(cross entropy):

分类损失函数:Log loss,KL-divergence,cross entropy,logistic loss,Focal loss,Hinge loss,Exponential loss

对于二分类问题:

分类损失函数:Log loss,KL-divergence,cross entropy,logistic loss,Focal loss,Hinge loss,Exponential loss

分类损失函数:Log loss,KL-divergence,cross entropy,logistic loss,Focal loss,Hinge loss,Exponential loss

logistic loss:

分类损失函数:Log loss,KL-divergence,cross entropy,logistic loss,Focal loss,Hinge loss,Exponential loss

p(x) 为真实的概率分布为,q(x) 为预测的概率分布。KL-divergence 和 cross entropy 作为目标函数效果是一样的,从数学上来说相差一个常数;logistic loss 是 cross entropy 的一个特例。

参考:

理解交叉熵损失(Cross-Entropy)

卷积神经网络系列之softmax,softmax loss和cross entropy的讲解

cross entropy,logistic loss 和 KL-divergence的关系和区别

 

3、Focal loss

以二分类为例:

分类损失函数:Log loss,KL-divergence,cross entropy,logistic loss,Focal loss,Hinge loss,Exponential loss

分类损失函数:Log loss,KL-divergence,cross entropy,logistic loss,Focal loss,Hinge loss,Exponential loss

focal loss 是对交叉熵 (cross entropy) 损失的改进(p = pt),既能调整正负样本的权重(αt),又能控制难易分类样本的权重(γ)。当 αt 取1,γ 取0时,图中公式就是 cross entropy 的二分类损失函数。

pt 表示预测得到的概率。

当 y = 1 的时候,αt = a;当 y = 0 的时候,αt = 1-a,a 的范围也是0到1,一般而言假如 1 这个类的样本数比 0 这个类的样本数多很多,那么 a 会取 0 到 0.5 来增加 0 这个类的样本的权重(即降低 1 这个类的样本的权重)。

当一个样本被分错的时候,pt 很小(比如当 y = 1 时,pt 小于 0.5 才是错分类),因此调制系数 γ 就趋于1,相比原来的loss没有什么大的改变。当 pt 趋于1时(此时分类正确而且是易分类样本),调制系数 γ 就趋于0,对于总的 loss 的贡献很小。

参考:

Focal Loss

深度学习系列之Focal Loss个人总结

 

4、Hinge loss

分类损失函数:Log loss,KL-divergence,cross entropy,logistic loss,Focal loss,Hinge loss,Exponential loss

Hinge loss 通常被用于最大间隔算法(maximum-margin),而最大间隔算法又是SVM(支持向量机support vector machines)用到的重要算法(注意:SVM的学习算法有两种解释:1. 间隔最大化与拉格朗日对偶;2. Hinge Loss)。

Hinge loss 专用于二分类问题,标签值 y = ±1,预测值 y^ ∈ R。当 y^ ≥ +1 或者 y^ ≤ -1时,都是分类器确定的分类结果,此时的损失函数 loss 为 0;而当预测值 y^ ∈ (−1,1) 时,分类器对分类结果不确定,loss 不为 0。显然,当 y^ = 0 时,loss 达到最大值。

参考:

Hinge loss

 

5、Exponential loss

分类损失函数:Log loss,KL-divergence,cross entropy,logistic loss,Focal loss,Hinge loss,Exponential loss

运用指数损失(exponential loss)函数的典型分类器是AdaBoost算法。

 

6、其他

分类损失函数:Log loss,KL-divergence,cross entropy,logistic loss,Focal loss,Hinge loss,Exponential loss

分类损失函数:Log loss,KL-divergence,cross entropy,logistic loss,Focal loss,Hinge loss,Exponential loss

参考:

常见的损失函数

【重磅】Loss Function损失函数