深度学习用于疾病诊断-第一课第三周5-6节-数据增强以及dice损失函数

本文主要是介绍深度学习用于疾病诊断-第一课第三周5-6节-数据增强以及dice损失函数,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

既然我们已经讨论了分割体系结构,那么让我们来讨论一种可以应用于这种模型训练的技术,即数据扩充(数据增强 data augumentation)。

我们在前面学过,我们可以对输入胸部X光片的变换,这样每个例子的分类标签都是一样的。

现在让我们看看如何将相同的原则应用于分割,但有几个关键的区别。

分割过程中数据扩充的一个关键区别是我们把图像旋转了,同时标签也得跟着转,保证对齐。

所以当我们将输入图像旋转90度以产生变换后的输入。我们还需要将标签旋转90度以获得变换后的标签。

第二个区别是,我们现在有了三维体积,而不是二维图像。所以这些变换必须应用于整个三维体。

有了这个,我们几乎拥有了训练我们的脑肿瘤分割模型所需的所有部件。

最后我们要看的是损失函数。

让我们举一个非常简单的例子。实际上,我们会有一个更高分辨率的图像,我们会看到一个三维的体积。

但是我们这里简单的二维例子可以让我们快速的理解。

这里P表示分割模型在9个像素上的输出。在每个位置,我们都有肿瘤的预测概率。

G指定每个像素位置上ground truth(gt)。9个像素中有3个是肿瘤,表示为1,其余6个是正常脑组织,表示为0。

表格的每一行是一个单元位置,以及它们对应的预测值和gt。

例如,这里的i4指定概率输出为0.8,gt为0。在这个表中表示p和g将使我们更清楚地理解损失函数。

我们将使用 dice损失 来优化分割模型。dice损失是分割模型中常用的损失函数。

它优点是在不平衡数据的存在下工作良好。在我们的脑肿瘤分割任务中,这一点尤其重要,因为大脑中很小的一部分会成为肿瘤区域。

dice损失 将测量P和G之间的误差。我们希望分子很大,当gi等于1时,我们希望Pi接近1。

我们也希望分母较小, 所以当gi等于0时,我们希望Pi接近0,否则这个项会很大,分母也会很大。

现在,我们取1减去这个分数,这样重叠区域越小,损失越大,相反,重叠区域越大,损失越小。

为了计算这个例子中的损失,我们将P和G元素相乘得到pigi。例如,0.9乘以1等于0.9。

为了计算分母,我们需要求pi平方和 和 gi的平方和。类似地,我们可以通过将p列平方得到pi的平方和g列得到gi的平方来计算这些。

我们可以将这些值代入这个特殊例子的dice损失中,结果大约是0.2。

下一步我们将研究分割模型的评估。

文章持续更新,可以关注微信公众号【医学图像人工智能实战营】获取最新动态,一个关注于医学图像处理领域前沿科技的公众号。坚持已实践为主,手把手带你做项目,打比赛,写论文。凡原创文章皆提供理论讲解,实验代码,实验数据。只有实践才能成长的更快,关注我们,一起学习进步~

我是Tina, 我们下篇博客见~

白天工作晚上写文,呕心沥血

觉得写的不错的话最后,求点赞,评论,收藏。或者一键三连
在这里插入图片描述

这篇关于深度学习用于疾病诊断-第一课第三周5-6节-数据增强以及dice损失函数的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/328458

相关文章

深度解析Spring Security 中的 SecurityFilterChain核心功能

《深度解析SpringSecurity中的SecurityFilterChain核心功能》SecurityFilterChain通过组件化配置、类型安全路径匹配、多链协同三大特性,重构了Spri... 目录Spring Security 中的SecurityFilterChain深度解析一、Security

MySQL常用字符串函数示例和场景介绍

《MySQL常用字符串函数示例和场景介绍》MySQL提供了丰富的字符串函数帮助我们高效地对字符串进行处理、转换和分析,本文我将全面且深入地介绍MySQL常用的字符串函数,并结合具体示例和场景,帮你熟练... 目录一、字符串函数概述1.1 字符串函数的作用1.2 字符串函数分类二、字符串长度与统计函数2.1

SpringBoot多环境配置数据读取方式

《SpringBoot多环境配置数据读取方式》SpringBoot通过环境隔离机制,支持properties/yaml/yml多格式配置,结合@Value、Environment和@Configura... 目录一、多环境配置的核心思路二、3种配置文件格式详解2.1 properties格式(传统格式)1.

解决pandas无法读取csv文件数据的问题

《解决pandas无法读取csv文件数据的问题》本文讲述作者用Pandas读取CSV文件时因参数设置不当导致数据错位,通过调整delimiter和on_bad_lines参数最终解决问题,并强调正确参... 目录一、前言二、问题复现1. 问题2. 通过 on_bad_lines=‘warn’ 跳过异常数据3

python使用try函数详解

《python使用try函数详解》Pythontry语句用于异常处理,支持捕获特定/多种异常、else/final子句确保资源释放,结合with语句自动清理,可自定义异常及嵌套结构,灵活应对错误场景... 目录try 函数的基本语法捕获特定异常捕获多个异常使用 else 子句使用 finally 子句捕获所

深度解析Nginx日志分析与499状态码问题解决

《深度解析Nginx日志分析与499状态码问题解决》在Web服务器运维和性能优化过程中,Nginx日志是排查问题的重要依据,本文将围绕Nginx日志分析、499状态码的成因、排查方法及解决方案展开讨论... 目录前言1. Nginx日志基础1.1 Nginx日志存放位置1.2 Nginx日志格式2. 499

C#监听txt文档获取新数据方式

《C#监听txt文档获取新数据方式》文章介绍通过监听txt文件获取最新数据,并实现开机自启动、禁用窗口关闭按钮、阻止Ctrl+C中断及防止程序退出等功能,代码整合于主函数中,供参考学习... 目录前言一、监听txt文档增加数据二、其他功能1. 设置开机自启动2. 禁止控制台窗口关闭按钮3. 阻止Ctrl +

java如何实现高并发场景下三级缓存的数据一致性

《java如何实现高并发场景下三级缓存的数据一致性》这篇文章主要为大家详细介绍了java如何实现高并发场景下三级缓存的数据一致性,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 下面代码是一个使用Java和Redisson实现的三级缓存服务,主要功能包括:1.缓存结构:本地缓存:使

在MySQL中实现冷热数据分离的方法及使用场景底层原理解析

《在MySQL中实现冷热数据分离的方法及使用场景底层原理解析》MySQL冷热数据分离通过分表/分区策略、数据归档和索引优化,将频繁访问的热数据与冷数据分开存储,提升查询效率并降低存储成本,适用于高并发... 目录实现冷热数据分离1. 分表策略2. 使用分区表3. 数据归档与迁移在mysql中实现冷热数据分

C#解析JSON数据全攻略指南

《C#解析JSON数据全攻略指南》这篇文章主要为大家详细介绍了使用C#解析JSON数据全攻略指南,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录一、为什么jsON是C#开发必修课?二、四步搞定网络JSON数据1. 获取数据 - HttpClient最佳实践2. 动态解析 - 快速