dice系数 交叉熵_图像分割的损失函数

图像分割的损失函数

基于分布相似度的损失

在此类损失函数中,主要使用信息论中的交叉熵机制来度量模型输出和真实目标之间所包含的信息的相似性。

交叉熵损失

假设$P(Y=0)=p$,$P(Y=1)=1-p$。预测值由logistic/sigmoid函数计算得出:

$P(\hat Y=0)= \frac{1}{1+e^{-z}}$和$P(\hat Y=1)=1- \frac{1}{1+e^{-z}}=1-\hat p$

交叉熵损失函数的定义形式如下:

上述交叉熵损失为二维交叉熵损失。

加权交叉熵损失

加权交叉熵损失(weighted corss entropy, WCE)是交叉熵损失的一种变体,其中,所有的正样本都被乘以一个系数以进行加权。该损失函数常用于类别不平衡问题中。例如,当你有一张有10%的黑像素和90%的白像素的图片时,常规的CE效果不会太好。

WCE定义如下式:

减少假负样本的数目,将$\beta$设置为大于1.增加假正样本的数目,将$\beta$设置为小于1。

weighted bce代码实现:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16def criterion_pixel(logit_pixel, truth_pixel):

logit = logit_pixel.view(-1)

truth = truth_pixel.view(-1)

assert(logit.shape==truth.shape)

loss = F.binary_cross_entropy_with_logits(logit, truth, reduction='none')

if 0:

loss = loss.mean()

if 1:

pos = (truth>0.5).float()

neg = (truth<0.5).float()

pos_weight = pos.sum().item() + 1e-12

neg_weight = neg.sum().item() + 1e-12

loss = (0.25*pos*loss/pos_weight + 0.75*neg*loss/neg_weight).sum()

return loss

均衡交叉熵损失

均衡交叉熵损失(balanced corss entropy, BCE)和WCE类似,唯一的不同之处在于也对负样本进行了加权。

如下式所示:

Focal loss

在机器学习任务中,除了会遇到严重的类别样本数不均衡问题之外,经常也会遇到容易识别的样本数目和难识别的样本数目不均衡的问题。为了解决这一问题,何凯明大神提出了Focal loss。

Focal loss尝试降低easy example对损失的贡献,这样网络会集中注意力在难样本上。

FL定义如下:

上述公式为二分类问题的Focal loss,可以看出对于每一个样本,使用$(1-\hat p)^\gamma$作为其识别难易程度的指标,预测值$\hat p$越大代表对其进行预测越容易,因而其在总体损失中的占比应该越小。

对于多分类问题,其形式为:

对于每一个样本,$p_t$为模型预测出其属于其真实类别的概率,$\alpha_t$可用于调节不同类别之间的权重。将$\lambda$设置为0便可以得到BCE。

下述代码既可以计算二分类问题,也可以计算多分类问题的focal loss。

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值