【传知代码】KAN卷积:医学图像分割新前沿(论文复现)

图像分割技术的突破性进展正在重新定义我们对疾病的理解与治疗。尤其是近年来,KAN卷积(Kernel Attention Network)作为一种新兴的方法,正在悄然改变医学图像处理的游戏规则。想象一下,能够精准地从复杂的医学图像中提取出肿瘤、器官或其他关键结构,这不仅有助于医生在诊断时作出更为准确的判断,还能为个性化治疗方案的制定提供有力支持。

本文所涉及所有资源均在地址可获取

目录

概述

核心逻辑

核心代码

写在最后


概述

        在本文中深入探讨KAN卷积在医学图像分割领域的创新应用,特别是通过引入Tokenized KAN Block(Tok Kan)这一突破性设计,将深度学习中的图像分割技术推向了新的高度。KAN作为一种能够替代传统MLP(多层感知机)的网络结构,以其独特的优势在多个领域展现出强大的潜力。而在医学图像分割这一复杂且关键的领域,KAN卷积更是凭借其高效处理图像特征的能力,成为了研究的热点。

        本文将U-Net结构中的卷积部分替换成了KAN卷积,将MLP部分用KANLinear取代,同时融入了类似Vision Transformer(VIT)的移位思想,使得模型在捕捉图像全局信息的同时,也能精准定位局部细节。该创新型能够支撑起一篇论文,其核心创新点如下所示:

1)将KAN卷积引入分割网络中

        Kolmogorov–Arnold Networks(KAN)通常不是直接指代一种具体的卷积神经网络架构,但在这里我们可以理解为一种特殊的卷积或特征提取机制,可能基于Kolmogorov-Arnold表示定理(也称为超位置定理),该定理提供了多变量函数可以通过一系列一元函数和固定二元函数的组合来表示的理论基础。因此,KAN卷积可能意味着一种高度非线性的、能够捕捉复杂依赖关系的卷积操作。将其引入U-Net中,可以显著提升模型对图像特征的提取能力,特别是那些需要高级抽象和复杂交互的特征。

扫描二维码关注公众号,回复: 17426508 查看本文章

2)KANLinear替换MLP

        将传统的MLP层替换为KANLinear层,可能意味着这一层结合了KAN的某些特性(如非线性处理能力或复杂的函数逼近能力)和线性变换的简洁性。这种替换可能使模型在保持高效计算的同时,能够更灵活地处理特征之间的复杂关系,进一步增强模型的特征表示能力,同时能够减少模型复杂度。KANLinear层可能通过其独特的机制,更好地整合和转换来自不同层级的特征,从而有助于模型在全局和局部信息之间做出更精准的权衡。

3)融入移位思想

        虽然Vision Transformer(VIT)本身并不直接包含“移位”操作,但其自注意力机制能够捕捉图像中的全局依赖关系,这一点与移位操作在促进信息流动和增强全局感受野方面的作用相似。在U-Net中融入类似VIT的思想,可能意味着引入了一种能够跨越空间位置直接交互特征的机制(如自注意力模块),或者通过某种形式的特征重排(类似于移位但更灵活)来增强模型的全局理解能力。这种设计使得模型在保持对局部细节敏感的同时,也能够有效地整合全局信息,从而在处理复杂图像任务时展现出更高的性能。本文中设计了沿着两个方向的移位。

核心逻辑

        KAN模型由数学定理Kolmogorov–Arnold启发得出,该定理由前苏联的两位数学家Vladimir Arnold和Andrey Kolmogorov提出。定理表明,任何多元连续函数都可以表示为单变量连续函数的两层嵌套叠加(一个单一变量的连续函数和一系列连续的双变量函数的组合)。这为多维函数的分解提供了理论基础,也是KAN模型设计的核心思想。KAN模型具体解读可以参考这篇

        UNext模块一种基于卷积和多层感知器(MLP)的医学图像分割网络,旨在解决现有模型如UNet和Transformer版本在计算复杂度、参数量以及推理速度上的不足。本文是在此基础上将卷积用KAN卷积取代,将MLP用KAN模块代替。具体有关UNext模块的介绍可以看这篇解读:

        本文受启发与上述的两种模块,将UNext模块中的上下采样中的卷积提取特征阶段用KAN卷积取代,将Tok MLP阶段用Tok Kan取代,从而增加模型提取特征的能力和渐少模型的参数量,同时提高模型非线性表达的能力,整体架构如下: 

核心代码

这段代码定义了一个自定义的卷积层 KANConvs,它扩展了 PyTorch 的标准卷积功能,加入了 KAN 样条插值的特性。下面是对其实现逻辑和思路的简要分析:

class KANConvs(nn.Module):
    def __init__(self, in_channels, out_channels, kernel_size, stride=1, padding=0, dilation=1, groups=1, bias=True, enable_standalone_scale_spline=True):
        """
        定义KAN卷积层,类似于nn.Conv2d,但包括KAN样条插值权重
        :param in_channels: 输入通道数
        :param out_channels: 输出通道数
        :param kernel_size: 卷积核大小
        :param stride: 步长
        :param padding: 填充
        :param dilation: 扩张
        :param groups: 组卷积
        :param bias: 偏置项
        :param enable_standalone_scale_spline: 是否启用独立缩放样条插值
        """
        super(KANConvs, self).__init__()

        # 基本的卷积层初始化
        self.in_channels = in_channels
        self.out_channels = out_channels
        self.kernel_size = kernel_size if isinstance(kernel_size, tuple) else (kernel_size, kernel_size)
        self.stride = stride
        self.padding = padding
        self.dilation = dilation
        self.groups = groups
        self.bias = bias

        # 标准卷积层参数
        self.weight = Parameter(torch.Tensor(out_channels, in_channels // groups, *self.kernel_size))
        if bias:
            self.bias = Parameter(torch.Tensor(out_channels))
        else:
            self.register_parameter('bias', None)

        # 样条插值权重
        self.spl

1)类初始化

构造函数接受多个参数,用于配置卷积层的各个方面,包括输入和输出通道数、卷积核大小、步长、填充、扩张、组卷积、偏置和样条插值启用选项

2)卷积操作

重载 forward 方法虽然没有提供 forward 方法的具体实现,这里通常会执行卷积操作,并结合样条插值权重来处理输入特征图

3)样条插值权重

该卷积层可能使用样条插值权重来增强特征提取能力,这可能包括对输入特征图的空间变换或增强

KANConvs 的设计目标在于结合传统卷积和现代插值技术,为处理医学图像或其他复杂任务提供更强大的工具。它利用了样条插值的优势,期望在分割精度和处理效率上有所突破。

写在最后

        在医学图像分割领域,KAN卷积无疑为我们打开了一扇全新的窗户,让我们能够更清晰地看到隐藏在复杂影像背后的病理信息。通过结合注意力机制与传统卷积技术,KAN卷积不仅提升了分割的精度和效率,还为临床诊断和治疗提供了前所未有的支持。这一技术的成功应用,不仅是对人工智能在医疗领域潜力的验证,更是对未来医学发展的积极展望。

        随着研究的不断深入和技术的不断演进,KAN卷积有望在更多医学应用中发挥关键作用,从早期疾病筛查到手术导航,它都将成为推动医疗创新的重要力量。在未来,我们期待看到更多的临床实例和成功案例,让这一技术真正走进医院,惠及每一位患者。

详细复现过程的项目源码、数据和预训练好的模型可从该文章下方附件获取

猜你喜欢

转载自blog.csdn.net/qq_53123067/article/details/143259457
今日推荐