zoukankan      html  css  js  c++  java
  • Dice Loss

    DiceLoss介绍

    Desc: Generalised Dice overlap as a deep learning loss function for highly unbalanced segmentations; 骰子损失
    Tags: 损失函数, 骰子损失

    资源链接:https://zhuanlan.zhihu.com/p/50539347

    骰子损失:

    1、不平衡数据的损失函数

    ​ 由于损失函数在解决类别不平衡问题上的潜力,本文比较了损失函数所做的工作。所有损失函数都在二元分类(前景与背景)公式下进行了分析,因为它代表了类别不平衡的量化最简单设置。请注意,将这些损失函数中的一些公式化为一类问题将在一定程度上缓解不平衡问题,但结果不会轻易推广到多个类。

    ​ 令 (R)前景分割(金标准),它的体素值为(r_{n});令(P) 是前景label的预测概率图,背景概率是(1 - P),概率图是面向于图像中的(n)体素(p_{n})而言。

    2、加权交叉熵损失WCE

    二分类的交叉熵损失:

    [WCE=frac{1}{-N}sum_{n=1}^{N}wr_{n}logleft ( p_{n} ight ) + left ( 1 - r_{n} ight )logleft ( 1 - p_{n} ight ) ]

    这个公式看起来是不是有点晕?为什么是这的公式?下面我们先简单介绍一下为什么是这样的:

    • 首先,上面的公式来源于统计学的极大似然估计;
    • 其次,对于二分类问题,我们可以使用(p^{r}(1-p)^{1-r})来表示似然函数,去对数即可得到上面的结果;
    • 为什么要使用似然函数?因为我们认为已经发生的事情是大概率事件,这里也为后面使用(predigcap gt)埋下伏笔。
    • 注意去对数之后的求和符号是因为,一般情况下变量是连续的,而实际使用过程中是离散的,这里就是使用微分的思想。

    其中的加权参数(w)是:

    [frac{N-sum_{n}p_{n}}{sum_{n}p_{n}} ]

    这里实际上是将正例与负例的占比进行交叉加权,实现正负样本损失重要度一样,但是这样真的合理吗?加权交叉熵可以推广到两类以上。

    3、Dice Loss 骰子损失

    当我们的金标准或GT对象是可用的时候,骰子损失被广泛用于度量分割的表现。二分类的骰子损失函数为:

    [DL_{2}=1-frac{sum_{n=1}^{N}p_{n}r_{n}+varepsilon }{sum_{n=1}^{N}p_{n} + r_{n}+varepsilon}-frac{sum_{n=1}^{N}left (1 - p_{n}  ight )left ( 1- r_{n}  ight )+varepsilon}{sum_{n=1}^{N}2 - p_{n} - r_{n}+varepsilon} ]

    这里的前景特征图R,概率图P实际上对应的是一个对象,即对分割区域的预测,那么两者应该是差不多的吧,即差异性应该非常小才对。

    • 前景:上式右边第二项,我们可以看作金标准与概率图两者在前景预测的交集比上两者在前景预测上的并集。如果两者完全一样,这一项应该为(frac{1}{2}),对应的后景相也是(frac{1}{2}),则损失为0。

    • 后景上式右边第三项,参考前景即得此项是对背景的预测性能。

    4、敏感性和特异性 Sensitivity and specificity(SS)

    在评估分割结果时,敏感性和特异性是两个备受重视的特征。将其作为损失函数可记为:

    [SS=lambda frac{sum_{n=1}^{N}left ( r_{n} - p_{n} ight )^{2}r_{n}}{sum_{n=1}^{N}r_{n} + varepsilon }+left ( 1-lambda  ight )frac{sum_{n=1}^{N}left ( r_{n} - p_{n} ight )^{2}left (1 -r_{n}  ight )}{sum_{n=1}^{N}left (1 - r_{n}  ight ) + varepsilon } ]

    参数(lambda)是平衡敏感性与特异性的参数,我们默认设置其为0.05。

    5、广义骰子损失 Generalized Dice Loss(GDL)

    ​ Crum等人[2]提出了广义Dice分数(GDS)作为一种用单一分数评价多类分割的方法,但尚未用于判别模型训练。我们建议使用GDL作为训练深度卷积神经网络的损失函数。计算方式为:

    [GDL=1 - 2 imes frac{sum_{l=1}^{2}w_{l}sum_{n}r_{ln}p_{ln}}{sum_{l=1}^{2}w_{l}sum_{n}r_{ln} + p_{ln}} ]

    (w_{l}=1 / left ( sum_{n=1}^{N} r_{ln} ight )^{2})时,,记(GDL)(GDL_{v})。每个标签的贡献通过其体积的倒数进行校正,从而减少区域大小和骰子分数之间众所周知的相关性。

    注意这里作者进行了部分改进,之前是在像素级别上进行计算,现在是分类别进行计算的,也即这里的优化策略是将像素先分类,在逐像素计算骰子损失。如 (p_{ln}) 是概率图,那么假设 (p_{1n}) 是前景概率图, (r_{1n}) 是前景分割特征图,那么两者的乘积是同时预测为正的体素个数,同理(r_{2n} imes p_{2n})为同时预测为后景的的体素个数,加权求和,即为正确预测的数量;分母类似分析可得:将预测为正的并集乘以权值与预测为负的并集乘以权值相加 。

    清澈的爱,只为中国
  • 相关阅读:
    第一次被队友说给力
    An Unfair Game-[ACdream1035]
    男人八题解题报告
    it's hard to say
    剪花布条[HDU2087]
    1117: 无序字母对 character
    20181101
    20181104
    20181102
    20181031
  • 原文地址:https://www.cnblogs.com/dan-baishucaizi/p/14455495.html
Copyright © 2011-2022 走看看