loss function 损失函数

引入:机器学习中的precision和recall

GT\predpositvenegative
positivetrue positivefalse negative
negativefalse positivetrue negative

p r e c i s i o n = T P T P + F P precision = \frac{TP}{TP + FP} precision=TP+FPTP r e c a l l = s e n s i t i v i t y = T P T P + F N recall = sensitivity = \frac{TP}{TP + FN} recall=sensitivity=TP+FNTP s p e c i f i c i t y = T N T N + F P specificity=\frac{TN}{TN+FP} specificity=TN+FPTN
precision和recall的分子都是被正确分类(挑选)的部分,分别用挑选为正类的总数(TP+FP)和正类总数(TP+FN)来评估正确的比例。
F1 score便是以相同权重的调和平均去整合在这两个指标:
1 F 1 = 1 P r e c i s i o n + 1 R e c a l l    ⟹    F 1 = 2 ∗ P ∗ R P + R    ⟹    F 1 = 2 ∗ T P 2 ∗ T P + F P + F N \frac{1}{F^1} = \frac{1}{Precision}+\frac{1}{Recall}\implies F^1=\frac{2*P*R}{P+R}\implies F^1=\frac{2*TP}{2*TP+FP+FN} F11=Precision1+Recall1F1=P+R2PRF1=2TP+FP+FN2TP

dice loss

dice系数 s = 2 ∣ X ⋂ Y ∣ ∣ X ∣ + ∣ Y ∣ = 2 ∗ T P 2 ∗ T P + F P + F N s = \frac{2|X\bigcap Y|}{|X|+|Y|}=\frac{2*TP}{2*TP+FP+FN} s=X+Y2XY=2TP+FP+FN2TP
∣ X ⋂ Y ∣ |X\bigcap Y| XY是指X和Y之间的交集,|X|和|Y|分别表示X和Y的元素个数。分子的系数为2,因为分母存在重复计算X和Y之间共同元素。直观上是计算X与Y的相似性,本质上这是同时隐含precision和recall两个指标。
X :分割图像的ground truth
Y:分割图像的predict分割结果
dice系数差异函数为dice loss
d i c e l o s s = 1 − d i c e = 1 − 2 ∣ X ⋂ Y ∣ ∣ X ∣ + ∣ Y ∣ dice loss =1-dice = 1-\frac{2|X\bigcap Y|}{|X|+|Y|} diceloss=1dice=1X+Y2XY训练网络求得极小值
网络最后一层输出为sigmoid

cross-entropy交叉熵损失函数

网络最后一层激活函数为softmax(如果是二分类问题,最后一层用softmax与sigmoid的效果是相同的),softmax适用于二分类多分类,经过softmax之后,各个类别加和为1。
二分类:
第i个神经元的交叉熵为
y i l o g ( y i ) + ( 1 − y i ) l o g ( 1 − y i ) = { − l o g ( y i ) y ^ i = 1 − l o g ( 1 − y i ) y ^ i = 0 y_ilog(y_i)+(1-y_i)log(1-y_i)=\begin{cases} -log(y_i) & \quad \hat y_i=1\\ -log(1-y_i) & \quad \hat y_i=0 \end{cases} yilog(yi)+(1yi)log(1yi)={log(yi)log(1yi)y^i=1y^i=0
最后一层总的交叉熵损失函数是 − ∑ i y i l o g ( y i ) + ( 1 − y i ) l o g ( 1 − y i ) -\sum_iy_ilog(y_i)+(1-y_i)log(1-y_i) iyilog(yi)+(1yi)log(1yi)
y i y_i yi是预测值, y ^ i \hat y_i y^i是标签。

focal loss

focal loss主要是为了解决one stage目标检测中正负样本比例严重失衡的问题。该损失函数降低了大量简单负样本在训练中所占的权重。增加了对难分样本的权重。
focal loss是对交叉熵损失函数的改进
L f l = { − ( 1 − y i ) γ l o g ( y i ) y ^ i = 1 − ( y i ) γ l o g ( 1 − y i ) y ^ i = 0 L_{fl}=\begin{cases} -(1-y_i)^\gamma log(y_i) & \quad \hat y_i = 1\\ -(y_i)^\gamma log(1-y_i) & \quad \hat y_i=0 \end{cases} Lfl={(1yi)γlog(yi)(yi)γlog(1yi)y^i=1y^i=0

在原有的基础上加上一 ( 1 − y i ) γ (1-y_i)^\gamma (1yi)γ(称为调制系数),其中 γ > 0 \gamma >0 γ>0使得减少易分类样本的损失,更关注对于困难的、错分的样本。通过减少易分类样本的权重,从而使模型在训练时更加专注于难分类的样本。
首先预测值 y i y_i yi的范围是0到1,不管 γ \gamma γ值是多少,这个调制系数都是>=0的。易分样本再多,但是他的权重小,因此对总体的loss贡献不会太大。例如,易分样本 x 1 x_1 x1,他的预测值 y i = 0.9 y_i=0.9 yi=0.9,难分样本 x 2 x_2 x2,他的预测值 y i = 0.6 y_i=0.6 yi=0.6。对于前者,他的权重是 0. 1 γ 0.1^\gamma 0.1γ,而对于后者,他的权重这是 0. 4 γ 0.4^\gamma 0.4γ。显然后者对loss的贡献更大。

当一个样本被错分时, y i y_i yi是很小的,比如当 y ^ i = 1 \hat y_i=1 y^i=1时, y i < 0.5 y_i<0.5 yi<0.5才是错分,此时的 y i y_i yi就比较小,反之亦然。因此调制系数趋于1,相比原来的loss就没有什么变化。又当 y i y_i yi趋于1的时候,此时样本分类正确,并且是易分类样本,此时调制系数趋于0,也就对总的loss贡献很小。
γ = 0 \gamma=0 γ=0的时候,focal loss就是传统的交叉熵损失,当 γ \gamma γ增加时,调制系数也会增加。
一般 γ \gamma γ取值为2。
在这里插入图片描述

此外,加入平衡因子 α \alpha α,用来平衡正负样本本身比例不均。注意, α \alpha α不关注难分样本。

L f l = { − α ( 1 − y i ) γ l o g ( y i ) y ^ i = 1 − ( 1 − α ) ( y i ) γ l o g ( 1 − y i ) y ^ i = 0 L_{fl}=\begin{cases} -\alpha(1-y_i)^\gamma log(y_i) & \quad \hat y_i = 1\\ -(1-\alpha)(y_i)^\gamma log(1-y_i) & \quad \hat y_i=0 \end{cases} Lfl={α(1yi)γlog(yi)(1α)(yi)γlog(1yi)y^i=1y^i=0
前面新加了一个系数 α \alpha α。当 y ^ i = 1 \hat y_i=1 y^i=1时,取 α \alpha α,否则取系数取 1 − α 1-\alpha 1α。(资料上说,一般而言正样本的比例比负样本的比例多,所以 α \alpha α取值为0到0.5来增加负样本的权重。)而我的实际应用场景是正样本的比例远远小于负样本,所以这个 α \alpha α的取值应该为0.5到1之间。
论文的实验中, α \alpha α取值为0.25。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值