论文阅读Rolling-Unet,卷积结合MLP的图像分割模型

这篇论文提出了一种新的医学图像分割网络Rolling-Unet,目的是在不用Transformer的前提下,能同时有效提取局部特征和长距离依赖性,从而在性能和计算成本之间找到良好的平衡点。

论文地址:https://ojs.aaai.org/index.php/AAAI/article/view/28173

1,动机(Motivation)

现阶段主流医学图像分割模型大多基于CNN和Transformer,作者认为CNN和Transformer都有缺陷。CNN难以捕捉长距离依赖性,而Transformer计算复杂度高,局部特征学习能力差。

作者认为现有的结合CNN和Transformer的方法尚未能在性能和计算成本之间找到良好的平衡点。

而MLP拥有代替Transformer提取全局特征的潜力。

下面,我们按照惯例从粗到细来拆解这个模型。

2,模型整体结构:

模型整体结构如下,是一个经典的U型编码器-解码器结构,只不过编码器分支最后一个模块,解码器分支第一个模块以及瓶颈层被替换成了全新的Lo2块(Long-Local Block)。

3,Lo2块(Long-Local Block)

Lo2模块的整体结构如下所示

该模块以并行的DOR-MLP(Double Orthogonal Rolling MLP)模块和深度可分离卷积(DSC)模块组成,以同时捕获局部上下文信息和长距离依赖性。两个子模块的特征拼接后,通过Channel-mixing进一步融合,这一步骤有助于不同通道间的特征交互,增强特征表达能力。

补充:Channel-mixing是MLP-Mixer架构中提出的一种技术,用于实现不同通道之间的特征融合。它是一种替代传统卷积操作的手段,特别是在全连接或混合维度特征的场景中。Channel-mixing首先将特征张量在高度和宽度上进行展平,使得每个通道的特征成为一维向量。然后,对每个通道的特征向量应用一个线性变换,通常是一个全连接层,并可能跟随一个非线性激活函数,如GELU。Channel-mixing的作用类似于1x1卷积,它允许网络在不增加太多计算负担的情况下,学习特征的跨通道交互。)

4,DOR-MLP模块

结构如下:

DOR-MLP模块通过并行化两个互补的OR-MLP(Orthogonal Rolling MLP)模块来捕获四个方向(水平、垂直、对角正向和对角负向)的长距离依赖性。

过程具体如下:

1)每个OR-MLP都有两个方向正交的R-MLP模块也就是一个在垂直方向做Rolling操作,一个在水平方向做。从而可以捕获两个长距离依赖。

2)两个并行的OR-MLP中的R-MLP顺序不同,第一个OR-MLP模块先在水平方向上应用R-MLP,然后在垂直方向上应用R-MLP;第二个OR-MLP模块先在垂直方向上应用R-MLP,然后在水平方向上应用R-MLP。这样,每个OR-MLP模块都能捕获两个正交方向上的依赖性,形成对角线方向的感知能力。

3)在每个OR-MLP中还有残差连接,以增强模型的学习能力和避免梯度消失问题。

4)并行处理后,两个OR-MLP模块的输出沿着通道维度进行拼接,以获得不同方向的特征表示。

5)之后,特征会经过LayerNorm和Channel-mixing,Channel-mixing是一种特征融合技术,具体原理和细节我在文章第三段已经介绍了,这里就不讲了。

5,R-MLP模块

1)R-MLP模块对每个通道层的特征图沿相同方向执行Rolling操作。Rolling操作包括以下两个步骤:移位和裁剪。

在移位步骤中,特征图会根据移位步长 k在水平方向上进行移动。移位可以是向左或向右,具体取决于 k的正负值。移位后的每个通道的特征图可能会超出原始特征图的边界。裁剪步骤会去除这些多余的部分,并将缺失的部分补充回到另外一边,确保所有通道的特征图在宽度上对齐。

如果这里没看懂rolling的原理和如何发挥作用的,请移步文章最后一个段落,看看我的解释。

2)接着,在Rolling操作之后,R-MLP在每个空间位置索引 (hi,wj) 上执行带有权重共享的通道投影,以编码长距离依赖性。

通道投影是指在特征矩阵的每个空间位置(即图像的每个像素位置)上,对所有通道的特征进行线性变换,以生成新的特征表示。通道投影的目的是将Rolling操作后的多通道特征进行整合和编码,以捕获长距离依赖性。

在Rolling操作之后,每个空间位置的特征图可能会有不同的宽度或高度特征。通道投影通过在每个空间位置应用一个线性变换(通常是一个全连接层或线性层),将这些特征投影到一个新的特征空间中。这个线性变换可以是参数化的,允许网络在训练过程中学习到最优的投影方式。在R-MLP中,所有空间位置的通道投影共享相同的权重,这意味着无论特征图的大小如何,参数的数量保持不变。这有助于减少模型的参数量并提高计算效率。

3)在通道投影之后,通常会应用一个非线性激活函数(如GELU),以引入非线性特性。

6,我对rolling的理解

首先,我们要明确,这个模型并没有用自注意力或者协方差这类的矩阵乘法,而是用的取一个坐标的所有channel维特征做线性变换。

那么,如果不用rolling,它就不能计算到特征图上每个点跟其他所有点的相关性。而最多只能计算到处在水平或垂直线上的点之间的相关性。

理解的关键还是下面这个图,不同颜色深浅其实代表的是原始的位置。

rolling之后,我们取一个坐标点(h,w)的所有channel,其实取的已经不完全是原始的(h,w)对应的值了。我们可以看到颜色已经混了。这代表同一索引在不同channel已经混合了其他位置坐标的值。因此,通过线性变换,可以计算出不同坐标像素之间的相关性。

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-06-13 08:58:06       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-06-13 08:58:06       100 阅读
  3. 在Django里面运行非项目文件

    2024-06-13 08:58:06       82 阅读
  4. Python语言-面向对象

    2024-06-13 08:58:06       91 阅读

热门阅读

  1. 常用Object的方法

    2024-06-13 08:58:06       22 阅读
  2. (32)ADC接口--->(007)FPGA实现AD7606接口

    2024-06-13 08:58:06       32 阅读
  3. vim 显示行号

    2024-06-13 08:58:06       23 阅读
  4. 短剧app系统开发(对接广告联盟)源码搭建

    2024-06-13 08:58:06       32 阅读
  5. 加密算法:RSA非对称加密算法

    2024-06-13 08:58:06       24 阅读
  6. 【HTML】格式化文本 pre 标签

    2024-06-13 08:58:06       19 阅读
  7. Kafka 之 KRaft —— ZooKeeper 到 KRaft 的迁移

    2024-06-13 08:58:06       28 阅读
  8. k-means聚类模型的优缺点

    2024-06-13 08:58:06       29 阅读
  9. MATLAB神经网络---regressionLayer回归输出层

    2024-06-13 08:58:06       40 阅读
  10. 设计模式之观察者模式

    2024-06-13 08:58:06       33 阅读