Dice和Dice Loss之间的区别
在使用 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之间的区别相关推荐
- FPGA与ASIC:它们之间的区别以及使用哪一种?
FPGA与ASIC:它们之间的区别以及使用哪一种? FPGA Vs ASIC: Differences Between Them And Which One To Use? VL82C486 Sing ...
- 【机器学习】一文详解GBDT、Xgboost、Boosting与Bagging之间的区别
GBDT与Xgboost的区别 N问GBDT 1. 怎么设置单棵树的停止生长条件? 2. 如何评估特征的权重大小? 3. 当增加样本数量时,训练时长是线性增加的吗? 4. 当增加树的颗数时,训练时长是 ...
- Python 应用领域以及版本之间的区别
Python 应用领域以及版本之间的区别 一.Python应用领域 Python+人工智能,给你更多研究方向选择! 企业级综合实战项目,集六大前沿技术为一体 二. Python 2与Python 3的 ...
- java中separator_java - File.separator和路径中的斜杠之间的区别
java - File.separator和路径中的斜杠之间的区别 在Java Path-String中使用/和普通的File.separator有什么区别? 与双反斜杠相比,/平台独立似乎不是原因, ...
- 机器学习、数据科学、人工智能、深度学习和统计学之间的区别!
↑↑↑关注后"星标"Datawhale 每日干货 & 每月组队学习,不错过 Datawhale干货 作者:Vincent Granville,来源:机器之心 在这篇文章中, ...
- Python里面None True False之间的区别
None虽然跟True False一样都是布尔值. 虽然None不表示任何数据,但却具有很重要的作用. 它和False之间的区别还是很大的! 例子: >>> t = None > ...
- 2.javascript之缓存 localStorage 和sessionStorage之间的区别
2018-08-04 前言 今天做项目的时候遇到了这个问题,用户登录成功之后如何改变将登录的链接切换为用户名 解决方案:使用了sessionstorage缓存 和js的onload加载事件 用户登录成 ...
- java se 与j2se_关于java:J2EE和J2SE项目之间的区别
本问题已经有最佳答案,请猛点这里访问. 我已经从github下载了一个开源项目. 这是一个基于Maven的项目. 我如何理解该项目是J2SE项目还是J2EE项目? 这两种项目在结构上有何不同? Jav ...
- oracle类型sql转为mysql_Oracle和MySql之间SQL区别(等效转换以及需要注意的问题)...
>本篇博文是Oracle和MySQL之间的等效SQL转换和不同,目前市面上没有转换两种SQL的工具,小编觉得以后也不一定会有,于是在业余时间整理了一下,如果有什么错误之处请留言告知,小编也是刚 ...
最新文章
- Codeforce DIV2 614 SZU的cf集训round1 C ~ D
- mfc窗口添加背景图片
- C#入门篇5-5:流程控制语句 dowhile
- C++使用数组实现queue之一(附完整源码)
- 2010年下半年计算机专业技术资格考试工作安排
- linux fg 命令,Linux fg 命令 command not found fg 命令详解 fg 命令未找到 fg 命令安装 - CommandNotFound ⚡️ 坑否...
- python上传文件 request_Python request post上传文件常见要点
- 大话 | 大话程序猿眼里最全的高并发,快收藏!
- python中 [::-1]的含义和用法
- PyCharm:Error running xxx: Cannot run program D:\Python27\python.exe
- K近邻算法(K-NN)
- 新型软件生命周期模型-RUP统一过程模型 迭代增量
- 五种最火供应链金融模式分析(附详细案例)
- C语言之求两个数的最大公因数和最小公倍数
- Matlab画图,坐标轴范围设置和间隔设置
- oracle 00314,【案例】Oracle报错ORA-00314 数据库异常关机导致redo SCN不一致无法启动...
- leetcode33. 搜索旋转排序数组
- OTU的定义与解读----了解笔记
- 《Windows 8 权威指南》——2.5 Windows 8 Metro应用内存回收机制
- Tomcat优化思路
热门文章
- wps、excel表格增加一列 序列 1到任意大小
- POI 3.17后版本设置边框
- Ubuntu开机进入BIOS界面,检测不到已安装的系统解决办法
- 苹果怎么测是原装屏_如何鉴别买到的二手IPHONE手机它是不是国产屏?
- 期刊投稿时的编辑部职位名称缩写(EIC,AE,ADM)
- [4] SQL 注入(七月最佳)
- Error: PostCSS plugin postcss-discard-comments requires PostCSS 8
- 【项目管理】项目实战笔记之一:高效会议的组织方法
- 适配linux的机械键盘,完美适配macOS的机械键盘又多一款 买买买
- 阿里云轻量应用服务器实例id找不到无法备案