Dice Loss

摘要:
第二种分类的骰子损失函数是:[DL_{2}=1-frac{sum{n=1}^{n}p_{n}r_{n}+varepsilon}{sum_{n}^{n}}p_{n}+r_{n}+varepsilon{-frac{sum{n=1}^{n}leftleft+varepssilon}{sum_,分段区域的预测应该是相似的,即差异应该很小。我们建议使用GDL作为训练深度卷积神经网络的损失函数。
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})为同时预测为后景的的体素个数,加权求和,即为正确预测的数量;分母类似分析可得:将预测为正的并集乘以权值与预测为负的并集乘以权值相加 。

免责声明:文章转载自《Dice Loss》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇swift 设置tableHeaderView 和tableFooterViewansible 批量安装yum包下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

深入研究自监督单目深度估计:Monodepth2

作者:Gus 来源:微信公众号|3D视觉工坊(系投稿) 3D视觉精品文章汇总:https://github.com/qxiaofan/awesome-3D-Vision-Papers/ 单目深度估计模型Monodepth2对应的论文为Digging Into Self-Supervised Monocular Depth Estimation,由伦敦大学学...

003 机器学习中的基础知识

有些知识还是记录下来比较容易复习。 懂原理, 会使用平台,使用语言实现常见算法。 1.大纲 机器学习的基本概念 机器学习的实质 机器学习方法的三要素 经验风险与结构风险 常见损失函数 一:基本概念 1.机器学习的方法流程 用监督学习为例 首先,有一个输入数据,然后根据这个输入数据做一些特征的加工和整理,基于特征进行模型的训练,去建模,然后做模型评估,得到...

《python深度学习》笔记---3.1、神经网络剖析

《python深度学习》笔记---3.1、神经网络剖析 一、总结 一句话总结: |||-being 训练神经网络主要围绕以下四个方面,构建好架构,还是非常简单的 |||-end 层,多个层组合成网络(或模型)。 输入数据和相应的目标。 损失函数,即用于学习的反馈信号。 优化器,决定学习过程如何进行。 1、层:深度学习的基础组件 ? 输入张量转化为输出张量:...

统计学习方法 李航---第5章 决策树

第5章 决策树 决策树(decision tree)是一种基本的分类与回归方法。本章主要讨论用于分类的决策树。决策树模型呈树形结构,在分类问题中,表示基于特征对实例进行分类的过程。它可以认为是if-then规则的集合,也可以认为是定义在特征空间与类空间上的条件概率分布。其主要优点是模型具有可读性,分类速度快。学习时,利用训练数据,根据损失函数最小化的原则建...

损失函数

机器学习中的损失函数 (着重比较:hinge loss vs softmax loss) 1. 损失函数 损失函数(Loss function)是用来估量你模型的预测值 f(x)f(x) 与真实值 YY 的不一致程度,它是一个非负实值函数,通常用 L(Y,f(x))L(Y,f(x)) 来表示。损失函数越小,模型的鲁棒性就越好。损失函数是经验风险函数...

Keras同时有多个输出时损失函数计算方法和反向传播过程

来源:https://stackoverflow.com/questions/57149476/how-is-a-multiple-outputs-deep-learning-model-trained Keras calculations are graph based and use only one optimizer. The optimizer...