NestedFormer:Nested Modality-Aware Transformer for Brain Tumor Segmentation

本文主要是介绍NestedFormer:Nested Modality-Aware Transformer for Brain Tumor Segmentation,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

NestedFormer: Nested Modality-Aware Transformer for Brain Tumor Segmentation

NestedFormer:嵌套的模态感知transformer在脑肿瘤分割中的应用
MICCAI 2022

多模态磁共振成像通过提供丰富的互补信息,在临床实践中经常被用于诊断和研究脑肿瘤。以前的多模态MRI分割方法通常是在网络的早期/中期通过串联(cat)多模态MRI来执行模态融合,这很难探索模态之间的非线性依赖关系。在这项工作中,我们提出了一种新的嵌套的模态感知transformer(NestedFormer)来显式地探索用于脑肿瘤分割的多模态磁共振成像的模态内和模态间的关系。在基于transformer的多编码器和单解码器结构的基础上,我们对不同模态的高层表示进行嵌套的多模态融合,并且在较低的尺度上应用模态敏感门控(MSG)以实现更有效的跳层连接。具体地说,多模态融合是在我们提出的嵌套的模态感知特征聚集(NMaFA)模块中进行的,该模块通过一个三维的空间注意力transformer来增强单个模态的长距离相关性,并通过跨模态注意力transformer进一步补充模态之间的关键上下文信息。在BraTS2020基准和私有的脑膜瘤分割(MeniSeg)数据集上的广泛实验表明,NestedFormer明显优于最先进的分割。

要解决的问题

  1. 以前的多模态MRI分割方法难以探索模态之间的非线性依赖关系,这项工作探索不同模态数据更有效的融合方案
  2. 常见的视觉transformer,尤其是3d的,参数量和计算量都太大

Method

1.Global Poolformer Encoder

  1. 参考了Poolformer,MetaFormer is Actually What You Need for Vision
  2. Poolformer认为用平均池化代替transformer中的计算密集型注意模块
  3. Global Poolformer Block(GPB),

2.Nested Modality-Aware Feature Aggregation

  1. spatial- attention based transformer
  • 空间注意力transformer,利用自注意力来计算每个模态内不同patch间的长距离相关性
  • 这里不是直接F1+F2+…+Fm=(D,W,H,C),而是先cat再map,可能是利用patch embedding layer来加一层权重来区分不同模态不同通道的重要性
  • Ttsa参考了Axial Transformer和Swin Transformer,采用了MHAz、MHAxy、MHAw多头注意力方案,MHAz注重垂直方向,MHAxy注重每个切片内,MHAw注重3d窗口建模
  • 最后输出为空间增强特征Fs(D,W,H,C)
  1. cross-modality attention based transformer
  • 使用跨模态注意力机制计算不同模态之间的全局关系来实现模态间融合
  • 从(M,D,W,H,C)经过Token Learner到(M,P,C),从(D,W,H)到P的原理,需要看TokenLearner: What Can 8 Learned Tokens Do for Images and Videos?论文,该方法大大减少了计算量
  • 将Fs(来自Ttsa模块)和Fc一起输入到Tcma,得到最终模态增强的特征F
  • 两个transformer块不同于以往的通道、空间注意力,是以嵌套形式进行融合,而不是串联或并联融合
    考虑使用axial attention来实现针对性的attention,使用在不同分支特征的融合模块中,针对各个方面进行attention,对比目前已知的融合方案aspp等等,
  1. Transformer with Tri-orientated Spatial Attention

  2. Transformer with Cross-Modality Attention

3.Modality-Sensitive Gating

  1. 将拉长的Fs还原到(d,w,h,c),定义为Fl
  2. 常规做法是使用3D卷积从底部上采来恢复到原始尺寸来分割,本文注意到了编码特征是多模态的,因此,本文在跳层连接中设置了模态敏感的门控策略

Experiment

  1. 模型参数通过Xaiver初始化,这个方法已经看到了很多次,可以使用试试,方法来自:Understanding the difficulty of training deep feedforward neural networks

总结

  1. 这篇论文提出了使用pool transformer作为下采样层,NMaFA模块来融合多模态数据,借鉴该思路,可以做不同分支提取的特征基于transformer的特征融合模块,目前已知的有基于CNN的多特征融合模块ASPP等等,可以尝试一下基于transformer的融合模块是否有更好的效果
  2. 这篇论文的融合模块主要用于网络的深层,即特征块的尺寸会比较小,transformer的参数量也小,可以考虑在高分辨率的特征层也添加融合模块,但要想办法解决参数量大的问题
  3. 这篇论文的模型在单张3090上可以运行,代码地址为https://github.com/920232796/NestedFormer,可以跑一下试试
  4. 在transformer中运用不同方向的attention头会更具特色,更具针对性,这篇论文中的MHAz和MHAxy参考了AxialTransformer,MHAw参考了SwinTransformer,即transformer用多头,每个头不同的针对点
  5. 这篇论文使用了Token Learner中的方法来控制输入transformer的参数量,该方法可以借鉴
  6. 下一步把这篇论文借鉴的论文看一看,Axial transformer和token learner
  7. 为什么论文名字是嵌套的(nested)transformer,因为该论文运用transformer块的方式不是串联也不是并联,而是两个transformer 结合,第一个transformer的输出也是第二个transformer 的输入,其实感觉还是串联的。但是是否可以借鉴RNN的思想,特征提取选择transformer,迭代地向后传递,类比到2d医学影像分割或者非全尺寸的3d医学影像分割,模型预测完第一张/组切片时,保留一定的特征,在输入第二张/组切片到模型时,模型并不完全纯净,叠加第一张/组切片预测时保留的特征,然后再保留一定特征,这时的保留特征就包含了第一张/组和第二张/组的特征,以此方法迭代往后,保留特征中会有由远及近的多切片特征。
  8. 对位置做编码应该是比较有效且省参数的方法,即position embedding

这篇关于NestedFormer:Nested Modality-Aware Transformer for Brain Tumor Segmentation的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

Transformer从零详细解读

Transformer从零详细解读 一、从全局角度概况Transformer ​ 我们把TRM想象为一个黑盒,我们的任务是一个翻译任务,那么我们的输入是中文的“我爱你”,输入经过TRM得到的结果为英文的“I LOVE YOU” ​ 接下来我们对TRM进行细化,我们将TRM分为两个部分,分别为Encoders(编码器)和Decoders(解码器) ​ 在此基础上我们再进一步细化TRM的

LLM模型:代码讲解Transformer运行原理

视频讲解、获取源码:LLM模型:代码讲解Transformer运行原理(1)_哔哩哔哩_bilibili 1 训练保存模型文件 2 模型推理 3 推理代码 import torchimport tiktokenfrom wutenglan_model import WutenglanModelimport pyttsx3# 设置设备为CUDA(如果可用),否则使用CPU#

逐行讲解Transformer的代码实现和原理讲解:计算交叉熵损失

LLM模型:Transformer代码实现和原理讲解:前馈神经网络_哔哩哔哩_bilibili 1 计算交叉熵目的 计算 loss = F.cross_entropy(input=linear_predictions_reshaped, target=targets_reshaped) 的目的是为了评估模型预测结果与实际标签之间的差距,并提供一个量化指标,用于指导模型的训练过程。具体来说,交叉

深度学习每周学习总结N9:transformer复现

🍨 本文为🔗365天深度学习训练营 中的学习记录博客🍖 原作者:K同学啊 | 接辅导、项目定制 目录 多头注意力机制前馈传播位置编码编码层解码层Transformer模型构建使用示例 本文为TR3学习打卡,为了保证记录顺序我这里写为N9 总结: 之前有学习过文本预处理的环节,对文本处理的主要方式有以下三种: 1:词袋模型(one-hot编码) 2:TF-I

RNN发展(RNN/LSTM/GRU/GNMT/transformer/RWKV)

RNN到GRU参考: https://blog.csdn.net/weixin_36378508/article/details/115101779 tRANSFORMERS参考: seq2seq到attention到transformer理解 GNMT 2016年9月 谷歌,基于神经网络的翻译系统(GNMT),并宣称GNMT在多个主要语言对的翻译中将翻译误差降低了55%-85%以上, G

Spring源码学习--Aware相关接口(beanNameAware接口/BeanFactoryAware接口/ApplicationContextAware接口)

可以先这样理解在Spring中以Aware结尾的接口的功能 看到Spring源码中接口以Aware结尾的接口(XXXAware)在Spring中表示对XXX可以感知,通俗点解释就是:如果在某个类里面想要使用spring的一些东西,就可以通过实现XXXAware接口告诉Spring,Spring看到后就会给你送过来,而接收的方式是通过实现接口唯一方法set-XXX.比如:有一个类想要使用当前

多表连接的三种方式hash join,merge join,nested loop

多表之间的连接有三种方式:Nested Loops,Hash Join和 Sort Merge Join. 下面来介绍三种不同连接的不同:     一. NESTED LOOP: 对于被连接的数据子集较小的情况,嵌套循环连接是个较好的选择。在嵌套循环中,内表被外表驱动,外表返回的每一行都要在内表中检索找到与它匹配的行,因此整个查询返回的结果集不能太大(大于1 万不适合),要把返回

ModuleNotFoundError: No module named ‘diffusers.models.dual_transformer_2d‘解决方法

Python应用运行报错,部分错误信息如下: Traceback (most recent call last): File “\pipelines_ootd\unet_vton_2d_blocks.py”, line 29, in from diffusers.models.dual_transformer_2d import DualTransformer2DModel ModuleNotF

用最简单的话来解释大模型中的Transformer架构

开篇 我个人的观点是要想系统而又透彻地理解 Transformer,至少要遵循下面这样一个思路(步骤): 理解NLP基础 在探讨Transformers之前,了解自然语言处理(NLP)的一些基本知识至关重要。NLP使计算机能够理解和生成自然语言,文本的表征是其核心任务之一。传统的语言模型往往依赖于递归神经网络(RNN)处理序列数据,但RNN在长序列中表现较差。为了解决这一问题,必须引入先

【大规模语言模型:从理论到实践】Transformer中PositionalEncoder详解

书籍链接:大规模语言模型:从理论到实践 第15页位置表示层代码详解 1. 构造函数 __init__() def __init__(self, d_model, max_seq_len=80):super().__init__()self.d_model = d_model # 嵌入的维度(embedding dimension) d_model: 表示输入词向量的维度。max_se