论文阅读--临床驱动的多标签医学图像分类中的三元组注意力与双池对比学习---TA-DCL

来源:https://github.com/ZhangYH0502/TA-DCL.

模型结合了两种技术:三元组注意力(Triplet attention)和双池对比学习(Dual-pool contrastive learning)。这个模型是为了解决临床应用中多标签医学图像分类问题而设计的。

  1. 三元组注意力( Triplet attention :这是一种注意力机制,通过考虑图像中的三个元素(例如,一个中心元素和两个上下文元素)之间的关系来增强模型对图像关键信息的捕捉能力。这种方法可以帮助模型更好地理解图像中的局部和全局信息,从而提高分类准确性。
  2. 双池对比学习( Dual-pool contrastive learning :这是一种对比学习方法,通过对不同图像池中的图像进行对比,帮助模型学习更具判别力的特征。这种方法可以增强模型对图像中细微差异的感知能力,从而更好地区分不同类别的医学图像。

TA-DCL

架构是一个三元组注意力网络(TAN),它结合了类别注意力、自注意力和交叉注意力,通过从医学图像中挖掘有效信息,为所有疾病标签学习高质量的标签嵌入。

解释:

  1. MLC:if Yx appear in X=1; MLC学习一个分类器y')来预测𝒙中出现的所有疾病的概率𝐘^,与真实情况𝐘接近:基础值Y 𝐘 = [𝒚1, 𝒚2, ... , 𝒚𝐿̃] 𝐿̃ = 𝐿 − 𝐿𝑙𝑓 + 1 高频-低频 yL 包括低频其他

  2. 三元组注意力网络(TAN):这是一个深度学习网络结构,其特点在于它使用了三元组注意力机制。这意味着网络在处理图像时,不仅关注单个像素或特征,还关注它们之间的相对关系,如成对的特征或三个特征之间的关系。consisting of a image feature extractor (IFE) and a triplet attentionTransformer (TAT)

  3. IFE首先将输入的医学图像转换为图像空间特征和类别注意特征。 其中使用卷积主干将输入的医学图像转换为深度图像特征,随后使用两个分支分别生成图像空间特征和类别注意特征。(IFE.py)( Torchvision)卷积主干,其中,<s:1>,𝑤,𝑑分别是深度特征的高度,宽度,通道Fs空间分枝𝐅𝑠 ∈ Rℎ𝑤×𝑑 = 𝑅𝑒𝑠ℎ𝑎𝑝𝑒(𝐰𝑠𝐅)|Fa 类别分支 𝐅𝑎 ∈ R𝐿̃×𝑑 = 𝐶𝐴(𝐅′) = 𝐶𝐴(𝐰𝑎𝐅)

  4. LEE: 为所有疾病标签生成与图像特征相同维度的初始标签嵌入initial label embeddings 𝐄 ∈R𝐿̃×𝑑 = [𝒆1, 𝒆2,... , 𝒆𝐿̃] for 𝐿̃torch.nn.Embedding (LEE.py)yl=0 yl=1

  5. TAT: 通过类别注意特征对标签嵌入进行强化,然后通过自注意和交叉注意对图像空间特征的全局依赖和相互作用进行建模编码器/解码器模块 每个编码器层包含一个自关注层和一个前馈网络(FFN),每个解码器层包含一个自注意层、一个交叉注意层和一个FFN

    𝐐 = 𝐰𝑞𝐙, 𝐊 = 𝐰𝑘𝐙, 𝐕 = 𝐰𝑣Z three types of attention, namely category-attention,self-attention and cross-attention,

  1. DCT双池对比训练

所有来自负样本的标签嵌入以及大多数来自正样本的标签嵌入都是负标签嵌入。我们将训练集分成负样本池(只包含负样本)和正样本池(只包含正样本) randomly sample two independent mini-batchesfrom two pools respectively and send them into TAN to obtain theirupdated label优化来自不同疾病标签的阴性标签嵌入和阳性标签嵌入的聚类中心,通过学习差异来更好地区分一个标签嵌入是阴性还是阳性

2.DCI 双池对比推理

以进一步缓解正标签嵌入的错误分类,提高检测隐性疾病的能力

复制代码
Z-score 将测试标签嵌入分类为负标签嵌入的条件更为严格。DCI不参与模型训练,只用于模型推理。TAN  negative_sample_pool

NIH-ChestXray14是一个胸部x射线图像数据集,包括来自30805名患者的112 120张正面x射线图像。

相关推荐
静止了所有花开1 小时前
SpringMVC学习笔记(二)
笔记·学习
爱吃生蚝的于勒1 小时前
C语言内存函数
c语言·开发语言·数据结构·c++·学习·算法
L_cl3 小时前
Python学习从0到1 day26 第三阶段 Spark ④ 数据输出
学习
Mephisto.java3 小时前
【大数据学习 | HBASE】hbase的读数据流程与hbase读取数据
大数据·学习·hbase
红中马喽4 小时前
JS学习日记(webAPI—DOM)
开发语言·前端·javascript·笔记·vscode·学习
尘浮生5 小时前
Java项目实战II基于微信小程序的移动学习平台的设计与实现(开发文档+数据库+源码)
java·开发语言·数据库·spring boot·学习·微信小程序·小程序
Young_202202026 小时前
学习笔记——KMP
笔记·学习
行然梦实6 小时前
学习日记_20241110_聚类方法(K-Means)
学习·kmeans·聚类
马船长7 小时前
制作图片木马
学习
秀儿还能再秀7 小时前
机器学习——简单线性回归、逻辑回归
笔记·python·学习·机器学习