Hinge loss和Focal loss

83 篇文章 2 订阅
16 篇文章 0 订阅

Hinge loss:

  1. 用途:用于二分类问题,增加分类间隔(如SVM中最大化分类间隔),当间隔大于1时不再奖励

  2. 思想:
    L o s s = m a x ( 0 , 1 − y ∗ y ^ ) Loss = max(0,1-y*\hat{y}) Loss=max(0,1yy^)
    y y y y ^ \hat{y} y^一个是真实值(+1或-1,即样本属于正类或者负类),一个是预测值(-1~1之间的连续数值)。
    这个loss最小值为0

  3. 不足:预测值不一定都是在-1到1的范围内,也可能考虑的是预测的概率关系

  4. 改进:思路是让分类正确的概率比分类错误的概率大一个margin
    L o s s = m a x ( 0 , m a r g i n − ( p T r u e − p F a l s e ) ) Loss = max(0,margin-(p_{True}-p_{False})) Loss=max(0,margin(pTruepFalse))
    化简后得到:
    L o s s = m a x ( 0 , m a r g i n + p F a l s e − p T r u e ) Loss = max(0,margin+p_{False}-p_{True}) Loss=max(0,margin+pFalsepTrue)
    p F a l s e 和 p T r u e p_{False}和p_{True} pFalsepTrue分别是分类正确的概率和分类错误的概率。目的是希望分类正确的概率要比分类错误的概率大出一个margin(视为安全),那样的情况下loss为0


Focal loss:

  1. 用途:解决难样本与容易样本的不平衡问题(不是正负样本的不平衡问题),如目标检测中存在很多容易的负样本(离GT很远的预测框)
  2. 思想:在交叉熵loss基础上做的改进。在模型训练的过程中更多地关注难样本,减少容易的样本的loss(这些样本分类概率置信度p很高,做法是用1-p和它的loss相乘),因为觉得这些样本对提升模型性能的帮助不大
    L o s s = { − α ∗ ( 1 − p ) γ ∗ l o g ( p ) y = 1 − ( 1 − α ) ∗ p γ ∗ l o g ( 1 − p ) y = 0 Loss=\left\{\begin{aligned} & -\alpha*(1-p)^\gamma*log(p) & y=1 \\ & -(1-\alpha) * p^\gamma * log(1-p) & y=0 \end{aligned}\right. Loss={α(1p)γlog(p)(1α)pγlog(1p)y=1y=0
    p p p为分类概率, y = 1 y=1 y=1表示真实值label, α \alpha α γ \gamma γ为超参数,一般取 α = 0.25 \alpha=0.25 α=0.25 γ = 2 \gamma=2 γ=2

疑问:alpha = 0.25<0.75,反而是降低了正样本(难样本)的重要性?
解释:通过gamma去降低负样本(容易样本)的重要性,指数gamma的作用会强于系数alpha,但是可能会过分降低了负样本的重要性,因此希望通过alpha再找回。(alpha = 0.25作用于正样本,0.75作用于负样本,正(少数)样本衰减的要比 负样本快,更关注正样本)

  1. Python实现:
pass
  1. 不足:难样本可能是离群点,不能过于关注
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值