医学影像分割---Dice Loss
Posted 渔牧村风
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了医学影像分割---Dice Loss相关的知识,希望对你有一定的参考价值。
Dice Loss 最先是在VNet 这篇文章中被提出,后来被广泛的应用在了医学影像分割之中。
1、Dice系数与Dice Loss
Dice系数是一种集合相似度度量函数,通常用于计算两个样本的相似度,取值范围在[0,1]:
其中 |X∩Y| 是X和Y之间的交集,|X|和|Y|分表表示X和Y的元素的个数,其中,分子的系数为2,是因为分母存在重复计算X和Y之间的共同元素的原因。
Dice Loss:
Laplace smoothing:
Laplace smoothing 是一个可选改动,即将分子分母全部加 1:
带来的好处:
(1)避免当|X|和|Y|都为0时,分子被0除的问题
(2)减少过拟合
2、Dice 系数计算
首先将 |X∩Y| 近似为预测图pred和label GT 之间的点乘,并将点乘的元素的结果相加:
(1)预测分割图与 GT 分割图的点乘:
(2)逐元素相乘的结果元素的相加和:
对于二分类问题,GT分割图是只有0,1两个值的,因此 |X∩Y| 可以有效的将在 Pred 分割图中未在 GT 分割图中激活的所有像素清零. 对于激活的像素,主要是惩罚低置信度的预测,较高值会得到更好的 Dice 系数.
(3)计算|X|和|Y|,这里可以采用直接元素相加,也可以采用元素平方求和的方法:
3、Dice Loss VS CE
语义分割中一般用交叉熵来做损失函数,而评价的时候却使用IOU来作为评价指标,(GIOU这篇文章中说道:给定优化指标本身与代理损失函数之间的选择,最优选择就是指标本身。)为什么不直接拿类似IOU的损失函数来进行优化呢?
(1)首先采用交叉熵损失函数,而非 dice-coefficient 和类似 IoU 度量的损失函数,一个令人信服的愿意是其梯度形式更优:
交叉熵损失函数中交叉熵值关于 logits 的梯度计算形式类似于p−t,其中,p是 softmax 输出;t为 target;而关于 dice-coefficient 的可微形式,loss 值为 2pt/(p2+t2) 或 2pt/(p+t),其关于p的梯度形式是比较复杂的:2t2/(p+t)2 或 2t*(t2−p2)/(p2+t2)^2. 极端场景下,当p和t的值都非常小时,计算得到的梯度值可能会非常大. 通常情况下,可能导致训练更加不稳定.
(2) 直接采用 dice-coefficient 或者 IoU 作为损失函数的原因,是因为分割的真实目标就是最大化 dice-coefficient 和 IoU 度量. 而交叉熵仅是一种代理形式,利用其在 BP 中易于最大化优化的特点.
Dice Loss 存在的问题:
(1)训练误差曲线非常混乱,很难看出关于收敛的信息。尽管可以检查在验证集上的误差来避开此问题。
代码:
dilligencer-zrj/code_zoo
github.com
图标
参考:
医学图像分割之 Dice Loss
www.aiuai.cn
图标
Dice-coefficient loss for image segmentation
blog.masterliu.net
图标
另外给各个研友分享一个科研学术交流平台仅供大家参考,有同做医学影像,影像分割,影像组学,图像处理的给大家分享一个共同的交流平台。为了防止广告推销偷买卖论文的加入请加我联系方式进行信息验证, 加群需要学生证/胸牌,单位.姓名.科室,微信18339237911,快来和大家一起交流学习吧.群内大佬干货多多哦.
以上是关于医学影像分割---Dice Loss的主要内容,如果未能解决你的问题,请参考以下文章
医学图像分割 基于matlab GVF算法医学图像分割含Matlab源码 1213期