在使用 CNN 进行图像分割时,我们经常听到 Dice 系数,有时我们会看到术语 Dice Loss。我们很多人对这两个指标感到困惑。

在物理上它们是相同的,但是当我们查看它们的值时,我们会发现它们并不相同!

答案很简单,但是在说它们之间的区别之前,我们先来谈谈什么是 Dice 系数,因为 Dice Loss是Dice 系数的一个特例。

1.Dice 系数

例如,当我们进行语义分割时,我们希望在训练期间(即在验证步骤中)或在训练后(即在测试步骤中)评估模型。我们总是需要计算一个度量,它是Ground Truth(真实值)和 Predicted Mask(预测值)之间的等式。通过查看这些指标的值,我们可以说模型学习得好不好。因此,可以用作度量的Dice系数方程是Ground Truth(真实值)和Predicted Mask(预测值)之间的交集的两倍,除以Ground Truth(真实值)和Predicted Mask(预测值)之和。


让我们更清楚地说明一下:

圆圈 A 表示Ground Truth(真实值),圆圈 B 表示Predicted Mask(预测值)。

你可以看到这个黄色部分是Ground Truth(真实值)和Predicted Mask(预测值)之间的交集。

这将是Dice系数,所以随着交集的增加,Dice系数也在增加。

Dice系数可以取的最小值为 0,即Ground Truth(真实值)和Predicted Mask(预测值)之间没有交集。此时分子值 0,当然 0 除以任何值都会得到 0。

Dice系数可以取的最大值为 1,这意味着预测正确率为 100%。此时,我们将有等于 A 或 B(Ground Truth(真实值)或Predicted Mask(预测值))的交集,因为它们是相同的。让我在图表中向您展示这一点。

我希望你了解Dice系数的原理。由此我们可以知道Dice系数的值介于 0 和 1 之间,我们越接近 1 意味着模型预测的结果很好。

2.Dice Loss

现在你明白了 Dice 系数的含义,Dice Loss也很容易。您还记得我们说过Dice的最佳值是接近 1 的值,并且我们知道对于损失值,我们需要较小的值来校正反向传播中的权重。

所以我们可以使用 Dice 系数做一个小方程来得到小值而不是接近 1 的值。

通过查看这个等式,我们可以得出结论,当 dice 值上升时,dice loss 会下降,当我们得到 dice 的最大值时,损失值为 0,这意味着模型是完美的。

参考目录

https://pycad.co/the-difference-between-dice-and-dice-loss/

Dice和Dice Loss之间的区别相关推荐

  1. FPGA与ASIC:它们之间的区别以及使用哪一种?

    FPGA与ASIC:它们之间的区别以及使用哪一种? FPGA Vs ASIC: Differences Between Them And Which One To Use? VL82C486 Sing ...

  2. 【机器学习】一文详解GBDT、Xgboost、Boosting与Bagging之间的区别

    GBDT与Xgboost的区别 N问GBDT 1. 怎么设置单棵树的停止生长条件? 2. 如何评估特征的权重大小? 3. 当增加样本数量时,训练时长是线性增加的吗? 4. 当增加树的颗数时,训练时长是 ...

  3. Python 应用领域以及版本之间的区别

    Python 应用领域以及版本之间的区别 一.Python应用领域 Python+人工智能,给你更多研究方向选择! 企业级综合实战项目,集六大前沿技术为一体 二. Python 2与Python 3的 ...

  4. java中separator_java - File.separator和路径中的斜杠之间的区别

    java - File.separator和路径中的斜杠之间的区别 在Java Path-String中使用/和普通的File.separator有什么区别? 与双反斜杠相比,/平台独立似乎不是原因, ...

  5. 机器学习、数据科学、人工智能、深度学习和统计学之间的区别!

    ↑↑↑关注后"星标"Datawhale 每日干货 & 每月组队学习,不错过 Datawhale干货 作者:Vincent Granville,来源:机器之心 在这篇文章中, ...

  6. Python里面None True False之间的区别

    None虽然跟True False一样都是布尔值. 虽然None不表示任何数据,但却具有很重要的作用. 它和False之间的区别还是很大的! 例子: >>> t = None > ...

  7. 2.javascript之缓存 localStorage 和sessionStorage之间的区别

    2018-08-04 前言 今天做项目的时候遇到了这个问题,用户登录成功之后如何改变将登录的链接切换为用户名 解决方案:使用了sessionstorage缓存 和js的onload加载事件 用户登录成 ...

  8. java se 与j2se_关于java:J2EE和J2SE项目之间的区别

    本问题已经有最佳答案,请猛点这里访问. 我已经从github下载了一个开源项目. 这是一个基于Maven的项目. 我如何理解该项目是J2SE项目还是J2EE项目? 这两种项目在结构上有何不同? Jav ...

  9. oracle类型sql转为mysql_Oracle和MySql之间SQL区别(等效转换以及需要注意的问题)...

    >本篇博文是Oracle和MySQL之间的等效SQL转换和不同,目前市面上没有转换两种SQL的工具,小编觉得以后也不一定会有,于是在业余时间整理了一下,如果有什么错误之处请留言告知,小编也是刚 ...

最新文章

  1. Codeforce DIV2 614 SZU的cf集训round1 C ~ D
  2. mfc窗口添加背景图片
  3. C#入门篇5-5:流程控制语句 dowhile
  4. C++使用数组实现queue之一(附完整源码)
  5. 2010年下半年计算机专业技术资格考试工作安排
  6. linux fg 命令,Linux fg 命令 command not found fg 命令详解 fg 命令未找到 fg 命令安装 - CommandNotFound ⚡️ 坑否...
  7. python上传文件 request_Python request post上传文件常见要点
  8. 大话 | 大话程序猿眼里最全的高并发,快收藏!
  9. python中 [::-1]的含义和用法
  10. PyCharm:Error running xxx: Cannot run program D:\Python27\python.exe
  11. K近邻算法(K-NN)
  12. 新型软件生命周期模型-RUP统一过程模型 迭代增量
  13. 五种最火供应链金融模式分析(附详细案例)
  14. C语言之求两个数的最大公因数和最小公倍数
  15. Matlab画图,坐标轴范围设置和间隔设置
  16. oracle 00314,【案例】Oracle报错ORA-00314 数据库异常关机导致redo SCN不一致无法启动...
  17. leetcode33. 搜索旋转排序数组
  18. OTU的定义与解读----了解笔记
  19. 《Windows 8 权威指南》——2.5 Windows 8 Metro应用内存回收机制
  20. Tomcat优化思路

热门文章

  1. wps、excel表格增加一列 序列 1到任意大小
  2. POI 3.17后版本设置边框
  3. Ubuntu开机进入BIOS界面,检测不到已安装的系统解决办法
  4. 苹果怎么测是原装屏_如何鉴别买到的二手IPHONE手机它是不是国产屏?
  5. 期刊投稿时的编辑部职位名称缩写(EIC,AE,ADM)
  6. [4] SQL 注入(七月最佳)
  7. Error: PostCSS plugin postcss-discard-comments requires PostCSS 8
  8. 【项目管理】项目实战笔记之一:高效会议的组织方法
  9. 适配linux的机械键盘,完美适配macOS的机械键盘又多一款 买买买
  10. 阿里云轻量应用服务器实例id找不到无法备案