美文网首页
损失计算(2):Focal Loss【类别、难易不均衡问题的处理

损失计算(2):Focal Loss【类别、难易不均衡问题的处理

作者: DeepNLPLearner | 来源:发表于2020-12-09 17:30 被阅读0次

    1 类别不均衡问题

    类别不均衡是指在机器学习的分类问题中,预测目标不同类别之间样本数量存在较大差异。如二分类中,正例1000个,负例10个,那模型只要简单将所有样本预测为正,就可以获得超高准确率,但是往往这并不是我们想要的结果。比如新冠感染者的检查,感染者明显是人群中的少数,采用上述策略,就会倾向于认为所有人都是未感染者,这是不可以的,因为这种情况下,感染者虽然是少数,但是带来的影响却是巨大的,因此我们需要模型在训练阶段更好地找出每个感染者,而不是一味追求准确率。

    2 交叉熵损失

    交叉熵损失是分类问题中使用最为普遍的损失函数,其公式如下:

    CE=-\frac{1}{n} \sum_{i=0}^n [y_{i}log(p_{i}) + (1-y_{i})log(1-p_{i})]

    其中,y是真实标签,p为预测概率。

    在某个二分类问题中,假设正例样本数为a,负例样本数为b,那么,交叉熵损失为:

    CE_{tol}  = -[\frac{a}{n} \cdot log(p_{i}) + \frac{b}{ n} \cdot log(1-p_{i})]

    当a>>b时,对于所有样本,正样本对于损失函数的贡献就远大于负样本,因此模型会倾向于将样本预测为正例。所以样本不均衡问题的应对方法之一就是更换损失函数。

    最简单的方式,就是为不均衡类别赋予不同的样本权重,让少数类别的样本获得更大的重要度,如下,通过引入权重\pi 来均衡正负样本对损失的影响:

    CE=-\frac{1}{n} \sum_{i=0}^n [\pi \cdot y_{i}log(p_{i}) +(1-\pi ) (1-y_{i})log(1-p_{i})]

    3 Focal Loss

    从另外一个角度来看类别不均衡问题,可以认为少数类样本是一种难以分类的样本,因为模型总容易把它们分错。定义一个指标来衡量样本的难易程度:

    p_{t} = |p - y|

    其中,p是模型预测值,y是真实值。

    p_{t} 越大说明模型越容易分错。通常,简单样本是难样本的指数倍数。因此,即使难样本单个样本被分错,损失较大,但是奈何其群体数少,不能影响全局,模型会“战略性”放弃这些样本。为了在战略上重视错分个体,我们同样引入样本权重来进行操作:

    FL=-\{\alpha \beta(p_{t})log(p) + (1-\alpha) \beta(1- p_{t}) log(1-p)\}

    其中,\alpha 用来做类别均衡(同\pi ),\beta(p_{t})用来均衡难易样本。而\beta(p_{t})可以定义为指数函数:

    \beta(p_{t}) = p_{t}^r

    最终,Focal Loss可以写成:

    FL=-\{\alpha (1-p)^rlog(p) + (1-\alpha)p^r log(1-p)\}

    在何老师的原文中,通过实验发现\alpha =0.25,r=2时,模型能够取得比较好的效果。

    相关文章

      网友评论

          本文标题:损失计算(2):Focal Loss【类别、难易不均衡问题的处理

          本文链接:https://www.haomeiwen.com/subject/kkibvktx.html