文献学习-24-用于少发罕见病诊断的动态特征拼接

news2024/11/26 0:35:27

Dynamic feature splicing for few-shot rare disease diagnosis

Authors: Yuanyuan Chen, Xiaoqing Guo , Yongsheng Pan , Yong Xia , Yixuan Yuan
Source: Medical Image Analysis 90 (2023) 102959 
Keywords:  少样本学习 罕见病诊断 transformer 特征拼接 通道相似度

Abstract

用于罕见病诊断的注释图像极难收集。因此,在少数样本学习 (FSL) 设置下识别罕见疾病具有重要意义。现有的FSL方法从具有丰富训练样本的基类中转移有用的全局知识,以丰富训练样本较少的新类的特征,但由于病变特征复杂且类内方差大,在应用于医学图像时仍面临困难。在本文中,提出了一种用于罕见病诊断的动态特征拼接(DNFS)框架。在DNFS下,新类的低级特征(即三个卷积块的输出)和高级特征(即最后一个全连接层的输出)都得到了动态的丰富。构建了位置相干DNFS(P-DNFS)模块来执行低级特征拼接,其中设计了一个面向病变的变压器来检测病变区域。因此,在检测到的病变区域内,新颖的类通道被相似的碱基类通道所取代,以实现与疾病相关的特征富集。还设计了一个语义连贯的DNFS(S-DNFS)模块来执行高级特征拼接。它探索跨图像通道关系,并选择具有语义一致性的基类通道进行显式知识转移。低级和高级特征拼接都是动态和迭代执行的。因此,为疾病诊断生成了丰富的拼接特征,从而实现了更准确的决策边界和更高的诊断性能。已经对三个医学图像分类数据集进行了广泛的实验。结果表明,所提出的DNFS与最先进的方法相比具有优越的性能。

图 1.提出的 DNFS 框架的图示。(a)和(b)说明了每对碱基类和新类之间的全局类相似性和通道相似性;(c) 基于微调的FSL方法导致有偏见的决策边界;(d) 拟议的DNFS丰富了新型特征的分布,从而得出了更准确的决策边界;(e) 类内差异较大的例子。

本文提出了一种新型动态特征拼接(DNFS)框架,以明确利用常见疾病(即具有丰富训练样本的基类)的丰富知识来辅助罕见疾病(即训练样本较少的新类)的诊断。特征拼接是指将特定的小级特征替换为相似的基类特征的过程。考虑到特征通道可以精致地描绘基础类知识,因此在特征通道级别进行拼接。此外,由于低级特征(即三个卷积块的输出)包含有关疾病相关特征的丰富信息,而高级特征(即最后一个全连接层的输出)捕获有关语义特征的抽象信息,因此分别为低级特征和高级特征定义了不同的特征拼接操作。具体而言,由于病灶区域包含丰富的疾病相关信息,设计了一种位置相干 DNFS (P-DNFS) 模块,用于病灶区域内的低级特征剪接。在该模块中,构建了一个面向病灶的Transformer,通过捕获不同图像分量之间的关系来检测病灶区域。

同时,设计了一个用于高级特征拼接的语义相干DNFS(S-DNFS)模块。它着重于探索跨图像通道的语义关系,并利用同一类中的图像来计算通道的语义相似性。因此,它可以在高级特征拼接过程中保持高级语义一致性。通过动态迭代地将新奇类通道替换为相似的碱基类通道,可以生成大量用于疾病诊断的合成新奇类样本。新类别的特征分布被动态丰富和补充,从而能够进行充分的模型训练,并为罕见病诊断推导出准确的决策边界(见图1(d))。

主要贡献总结如下。

• 这项研究是首次尝试通过在功能频道级别将有价值的知识从基础类转移到小类来应对 FSL 挑战。

• 提出了用于低级特征拼接的 P-DNFS 模块。P-DNFS 模块包含一个面向病灶的 Transformer,可识别图像中的病灶区域,从而实现与疾病相关的新型特征的多样化。

• 介绍了用于拼接高级功能的 S-DNFS 模块。S-DNFS模块探索了图像之间的像素关系,并在保持语义一致性的同时,从高级语义方面丰富了特征。

• 在三个公共医学图像分类数据集上的大量实验结果表明,所提出的DNFS框架比几种最先进的解决方案具有更优越的性能。

图 2.所提出的动态特征拼接(DNFS)框架的架构。有两个核心模块:(1)用于富级特征拼接的位置相干DNFS(P-DNFS)模块和(2)用于抽象级特征拼接的语义相干DNFS(S-DNFS)模块。上部基础分支使用大量基类样本进行预训练。下部分支根据类训练样本的原始和拼接特征进行了微调。建议的病变导向变压器和通道置换操作的详细信息显示在图的底部。

所提出的DNFS框架由一个基础分支、一个新分支、一个P-DNFS模块和一个S-DNFS模块组成(见图2)。基础分支和新分支具有相同的特征提取器架构。使用所有基类样本来预训练基分支。然后使用预训练的基础分支来初始化新分支,并使用新类的训练样本对后者进行微调。PDNFS模块和S-DNFS模块从两个分支获取中间特征后,分别进行低级特征拼接和高级特征拼接。将新样本的拼接特征直接反馈进行诊断,损失向后传播以更新新分支和两个模块。

由于诊断相关的鉴别信息大多包含在病灶区域,而不是正常区域,因此应检测病灶区域进行低级特征拼接。然而,由于医学图像中的病灶位置多样化,两个特征图中的病灶区域可能不在同一位置。因此提出了用于低级特征拼接的P-DNFS模块,其中设计了一个面向病灶的Transformer,以获取每个特征图中的病灶区域,然后在检测到的病灶区域内进行通道置换,以丰富与疾病相关的特征。

由于特征向量包含丰富的高级语义信息,直接主导诊断结果,因此保持语义一致性成为高级特征拼接的关键问题。为了更好地描述每个通道的语义信息,应同时使用同一类中的多个图像。因此,提出了用于高级特征拼接的S-DNFS模块,从全局视角着重探索图像之间的通道语义关系。然后,在基本类和新类的相似通道之间进行语义连贯通道替换,以实现显式知识转移。语义连贯相似性估计。给定一对图像 xb 和 xn,分别使用它们的拼接特征图获得两个特征向量 fb 和 fn。为了探索多个图像的通道语义,计算了相同基类和新颖类中每个图像的 fb 和 fn,然后将它们聚合以获得 gb 和 gn 。为了选择相似的通道进行替换,测量了 gb 和 gn 之间的通道相似度 sim′ c。与特征图的测量类似,假设 gb 和 gn 的信道分布为高斯分布,并分别计算每个通道的 D′ b = N(μ ′ b , σ′ b 2 ) 和 D′ n = N(μ ′ n , σ′ n 2 ) 。然后,计算它们的分布相似性,并确定要转移的最佳匹配知识。对所有通道进行替换后,获得每个新类别的拼接特征组sn,并将其送入新分支分类器进行疾病诊断。

总结算法1中提出的动态特征拼接(DNFS)框架。对于低级特征剪接,P-DNFS模块遵循“图像→病变→通道”剪接结构,以动态丰富新类别的疾病相关特征(算法1:3-5)。对于高级特征拼接,S-DNFS 模块遵循“类→图像→通道”拼接结构,以语义一致性使高级新颖类特征多样化(算法 1:6-8)。两个模块都提供了金字塔形拼接结构,以充分探索基类的丰富级病变知识和抽象级语义知识。这些知识可以在互补方面帮助新颖级特征的丰富,从而产生更准确的决策边界和更高的诊断性能。在训练阶段,通过最小化交叉熵损失,以端到端的方式训练新分支和两个模块,同时固定预训练基础分支的参数。在推理过程中,将新颖类特征图发送到面向病灶的 Transformer Tn 以突出显示病灶区域,然后将增强的新颖类特征反馈用于疾病诊断。请注意,P-DNFS 和 S-DNFS 仅用于训练以获得更好的特征,并且没有用于推理的特征拼接。

表1 各数据集的详细分类和对应图像编号

图 3.讨论 ISIC 数据集 ((a),(b))、NIH 胸部 X 射线数据集 ((c),(d)) 和 Kvasir 数据集 ((e),(f)) 上的超参数 K1 和 K2。AUC 和 ACC 值是 20 次运行的平均值。

检测病灶区域的必要性

在所提出的面向病灶的 Transformer 中,获得每个图像的病灶显著性,以突出病灶中心和病灶边缘的位置。在低级特征拼接之前,基于病灶显著性检测病灶有两个方面是必要的。首先,由于病变和正常区域的特征分布差异很大,因此使用整个通道的全局统计来计算通道相似度是不准确的。而且,直接置换整个通道,难免会造成病灶位置脱位,从而可能干扰诊断。在表 6 中的三个数据集上报告了拟议的 DNFS 的结果,无论是否具有病变显著性。可以看出,在三个数据集上,具有病灶显著性的通道替换明显优于直接替换整个通道(无病灶显著性)。这表明检测病变是必要的,并且低水平的特征拼接与检测到的病变区域更准确。

具有不同骨架的 DNFS 的有效性 在实验中,使用 WideResNet28作为基础和新分支的骨干。为了验证所提出的DNFS框架在不同特征提取器上的鲁棒性,在不同的骨干架构上进一步扩展了DNFS,包括传统的四层卷积网络,ResNet18,EfficientNet-B0和WideResNet28。在表7中报告了ISIC数据集上具有不同骨干的基线模型和拟议的DNFS的结果。可以看出,DNFS 为所有主干网带来了很大的性能提升,这表明 DNFS 对不同的特征提取器结构具有鲁棒性。此外,使用WideResNet28作为DNFS的骨干网时,性能最佳,主要得益于更宽网络结构的强大特征表示能力。

图 4.一对基类和新类样本的注意力图的可视化。从上到下,每行分别显示 (a) 三个数据集的输入图像、(b) 突出显示的病变中心、(c) 突出显示的病变边缘和 (d) 正常区域。

图 5.嵌入可视化。最上面一行显示了在执行特征拼接之前,新颖类训练 (a) 和测试 (b) 样本的分布情况。最下面一行显示了进行特征拼接后新颖类训练 (c) 和测试样本 (d) 的分布情况。每种颜色的含义显示在图表的底部。

Reference

Chen, Y., Guo, X., Pan, Y., Xia, Y., & Yuan, Y. (2023). Dynamic feature splicing for few-shot rare disease diagnosis. Medical Image Analysis, 90, 102959.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1561386.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

4.1C++

对菱形继承给出的代码中每一个类&#xff0c;写一个有参构造函数 #include <iostream> using namespace std;class A { public:int a;A(int a):a(a){} }; class B:virtual public A { public:int b;B(int b,int a):b(b),A(a){} }; class C:virtual public A { public:int…

告别微软,姜大昕带领这支精英团队攀登Scaling Law,万亿参数模型已有预览版

ChatGPT狂飙160天&#xff0c;世界已经不是之前的样子。 新建了人工智能中文站https://ai.weoknow.com 每天给大家更新可用的国内可用chatGPT资源 发布在https://it.weoknow.com 更多资源欢迎关注 攀登 Scaling Law&#xff0c;打造万亿参数大模型&#xff0c;前微软 NLP 大…

【Java八股面试系列】Arraylist和HashMap的底层原理

文章目录 ArrayList源码总&#xff1a;构造方法扩容机制remove HashMap总&#xff1a;构造方法细节问题putVal()方法resize()方法Hash值 HashMap常见问题 ConcurrentHashMap总&#xff1a;putVal()方法自己的测试 为什么重写HashCode和equals ArrayList源码 总&#xff1a; *…

虚拟机下的Ubuntu系统,NAT网卡连接不上网络的问题

文章目录 解决办法1解决办法2解决办法3Ubuntu20.04桥接网卡和NAT网卡不能同时使用问题解决 本博主花了许久时间解决这个NAT网卡上网问题&#xff0c;如果你试过网上所有教程&#xff0c;检测了Windows环境和Ubuntu环境没问题&#xff0c;无法启动系统服务、ping网络失败、重置虚…

【Web】记录Polar靶场<中等>难度题一遍过(全)

目录 到底给不给flag呢 写shell 注入 某函数的复仇 xxe SSTI unpickle BlackMagic 反序列化 找找shell 再来ping一波啊 wu 代码审计1 你的马呢&#xff1f; ezphp 随机值 phpurl search file PlayGame csdn 反正持续一个月&#xff0c;感觉XYCTF…

DXP学习3-单片机时钟显示系统的层次原理图设计

目录 一&#xff0c;自上而下的子母图设计 1&#xff0c;绘制层次式电路母图 1)工程及原理图创建和保存 2)开始绘制层次式母图main.SchDoc 2&#xff0c;绘制图纸符号 1&#xff09;properties选项卡 2&#xff09;designator标号 3&#xff09;filename文件名 4&…

http模块 服务器端如何响应(获取)静态资源?

一、静态资源与动态资源介绍&#xff1a; &#xff08;1&#xff09;静态资源 内容长时间不改变的资源。eg&#xff1a;图片、视频、css js html文件、字体文件... &#xff08;2&#xff09;动态资源 内容经常更新的资源。eg&#xff1a;百度首页、淘宝搜索列表... 二、服…

Windows Server 2022 使用ApacheDS用户远程桌面登录服务器

Windows Server 2022 使用ApacheDS用户远程桌面登录服务器 1、接上篇 Windows Server 2022 使用ApacheDS用户认证 使用Administrator用户远程登录192.168.1.100windows server&#xff0c;打开pGina软件 2、输入刚刚在ApacheDS中的新添加的用户测试一下&#xff0c;会自动添加…

基于springboot+vue实现的房源出租信息系统

作者主页&#xff1a;Java码库 主营内容&#xff1a;SpringBoot、Vue、SSM、HLMT、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、小程序、安卓app等设计与开发。 收藏点赞不迷路 关注作者有好处 文末获取源码 技术选型 【后端】&#xff1a;Java 【框架】&#xff1a;spring…

C++教学——从入门到精通 4.setw()语句

这次玩点新鲜的------setw() 这家虎是啥呢&#xff1f; 我们编程输出的时候总是要输出空格&#xff0c;但有些时候又点的手都麻了 这时setw语句就派上用场了 具体怎么用呢&#xff1f; 如下图 #include"iostream"// #include"iomanip"// bits/stdc…

Java学习之类和对象、内存底层

目录 表格结构和类结构 表格的动作和类的方法 与面向过程的区别 具体实现 对象和类的详解 类的定义 属性&#xff08;field 成员变量&#xff09; 方法 示例--编写简单的学生类 简单内存分析(理解面向对象) 构造方法(构造器 constructor) 声明格式&#xff1a; 四…

实现offsetof宏以及交换一个整数二进制奇偶位的宏

目录 1. offsetof宏2. 交换奇偶位 1. offsetof宏 我们想用宏来实现offsetof函数,首先要了解这个函数的用法。 1.1 offsetof函数的介绍及用法 &#xff08;1&#xff09;功能&#xff1a;用来计算结构体中一个成员在该结构体中的相对起始位置的偏移量&#xff0c;单位是字节。 …

【数据结构】优先级队列——堆

&#x1f9e7;&#x1f9e7;&#x1f9e7;&#x1f9e7;&#x1f9e7;个人主页&#x1f388;&#x1f388;&#x1f388;&#x1f388;&#x1f388; &#x1f9e7;&#x1f9e7;&#x1f9e7;&#x1f9e7;&#x1f9e7;数据结构专栏&#x1f388;&#x1f388;&#x1f388;&…

16进制的字符串转byte[]数组 以及将字节数组转换成十六进制的字符串

16进制的字符串转byte[]数组 public class ClientString16 {@Testpublic void get16Str(){String str="48 47 12 00 14 12 16 08 15 0d 30 0f 02 30 30 30 30 30 30 30 30 30 30 00 c2";byte[] bytes = hexStringToByteArray(str);getBytetoString(bytes);//String …

书生浦语全链条开源开放体系

开放了高质量语料数据 预训练 微调 评测 评测框架 部署 智能体 例如把openlab对于计算机视觉的封装

在Chrome浏览器中打开抗量子加密功能

Chrome 116提供了一些新的功能&#xff0c;其中包括了对于抗量子算法Kyber的支持&#xff0c;用户可以通过以下的步骤打开&#xff1a; 1.在浏览器中输入&#xff1a; chrome://flags/#enable-tls13-kyber 2.将TLS 1.3 hybridized Kyber support功能使能&#xff1a; 3.打开&…

编程新手必看,Pycham开发工具使用及项目创建(3)

介绍&#xff1a;PyCharm是一款由JetBrains开发的专业Python集成开发环境&#xff08;IDE&#xff09;。 PyCharm为Python开发者提供了一整套工具&#xff0c;以提高编程效率和改善代码质量。以下是其主要特点和功能&#xff1a; 代码编辑与智能提示&#xff1a;具备高级代码编…

TS学习01 基本类型、编译选项、打包ts代码

TS学习 TypeScript00 概念01 开发环境搭建02 基本类型基本使用⭐类型 03 编译选项tsconfig.jsoncompilerOptions语法检查相关 04 webpack打包ts代码错误解决 05 babel TypeScript BV1Xy4y1v7S2学习笔记 00 概念 以 JavaScript 为基础构建的语言 一个 JavaScript 的超集 Type…

YOLOv9改进项目|关于上周更新计划的说明24/4/1

专栏地址&#xff1a;目前售价售价69.9&#xff0c;改进点50 专栏介绍&#xff1a;YOLOv9改进系列 | 包含深度学习最新创新&#xff0c;助力高效涨点&#xff01;&#xff01;&#xff01; 本周已更新说明&#xff1a; ### ⭐⭐更新时间&#xff1a;2024/3/30⭐⭐ 1.…

【C语言】带你完全理解指针(四)函数指针的应用sqort函数的实现

前言&#xff1a; 本文主要是函数指针的重要应用&#xff0c;介绍qsort函数以及模拟实现这样一个不限制使用数据类型的快速排序函数。 回调函数 函数指针有一个非常大的作用就是实现回调函数。非常重要 回调函数就是一个通过函数指针调用的函数。如果你把函数的指针&#xf…