KAN + Transformer新突破!快速发论文的创新点!

2024深度学习发论文&模型涨点之——KAN + Transformer

KAN(Kolmogorov-Arnold Networks)与Transformer的结合是一种新兴的研究领域,它旨在利用KAN的灵活性和可解释性以及Transformer的强表示能力和序列处理能力,创造一个在复杂数据任务中更加高效、灵活且易于理解的模型。这种结合模型可以应用于时间序列预测等多个领域,显著提高性能以及准确性,是未来非常有潜力的研究方向。

KAN是基于Kolmogorov-Arnold表示定理的网络,该定理表明任何连续高维函数都可以分解为单变量连续函数和加法的有限组合。这意味着加法是唯一真正的多元运算,而其他多元运算(包括乘法)都可以表示为与单变量函数组合的加法。KAN网络在边(权重)上放置可学习的激活函数,而不是在节点(神经元)上放置固定激活函数,这样的设计使得KAN在准确性和可解释性方面表现优于传统的多层感知器(MLP)。

如果有同学想发表相关论文,小编整理了一些KAN + Transformer【论文】合集,以下放出部分,全部论文PDF版,需要的同学公人人人号【AI智界先锋】回复“KAN + Transformer”即可全部领取

论文精选

论文1:

A Temporal Kolmogorov-Arnold Transformer for Time Series Forecasting

时间序列预测的时间科尔莫戈洛夫-阿诺德变换器

方法

  • Temporal Kolmogorov-Arnold Networks (TKANs):提出了一种新的基于时间的科尔莫戈洛夫-阿诺德网络,用于处理序列数据和记忆管理。

  • 编码器-解码器架构:使用TKAN层代替LSTM层,构建了一个编码器-解码器模型,特别适用于已知输入较少而观察输入较多的任务。

  • 门控机制:在模型中引入了门控机制,帮助管理信息流,决定随时间保留或遗忘的信息。

### KAN Transformer 示例代码实现 #### 背景介绍 Vision-KAN 是一种创新性的注意力机制网络,旨在增强视觉转换器(Vision Transformer)的能力[^1]。通过将 Kernel Attention Network (KAN) 整合到现有的架构中,可以显著提升模型性能并提供更好的解释性[^2]。 #### 代码实现 下面是一个简单的 Python 代码示例,展示了如何在 PyTorch 中集成 KANTransformer 架构: ```python import torch from torch import nn class KanAttention(nn.Module): def __init__(self, dim, num_heads=8, qkv_bias=False, attn_drop=0., proj_drop=0.): super().__init__() self.num_heads = num_heads head_dim = dim // num_heads self.scale = head_dim ** -0.5 self.qkv = nn.Linear(dim, dim * 3, bias=qkv_bias) self.attn_drop = nn.Dropout(attn_drop) self.proj = nn.Linear(dim, dim) self.proj_drop = nn.Dropout(proj_drop) def forward(self, x): B, N, C = x.shape qkv = self.qkv(x).reshape(B, N, 3, self.num_heads, C // self.num_heads).permute(2, 0, 3, 1, 4) q, k, v = qkv.unbind(0) # make torchscript happy (cannot use tensor as tuple) attn = (q @ k.transpose(-2, -1)) * self.scale attn = attn.softmax(dim=-1) attn = self.attn_drop(attn) x = (attn @ v).transpose(1, 2).reshape(B, N, C) x = self.proj(x) x = self.proj_drop(x) return x class KanTransformerBlock(nn.Module): def __init__(self, dim, num_heads, mlp_ratio=4., qkv_bias=False, drop=0., attn_drop=0., drop_path=0., act_layer=nn.GELU, norm_layer=nn.LayerNorm): super().__init__() self.norm1 = norm_layer(dim) self.attn = KanAttention( dim, num_heads=num_heads, qkv_bias=qkv_bias, attn_drop=attn_drop, proj_drop=drop) # NOTE: drop path for stochastic depth, we shall see if this is better than dropout here self.drop_path = DropPath(drop_path) if drop_path > 0. else nn.Identity() self.norm2 = norm_layer(dim) mlp_hidden_dim = int(dim * mlp_ratio) self.mlp = Mlp(in_features=dim, hidden_features=mlp_hidden_dim, act_layer=act_layer, drop=drop) def forward(self, x): x = x + self.drop_path(self.attn(self.norm1(x))) x = x + self.drop_path(self.mlp(self.norm2(x))) return x ``` 此代码定义了一个 `KanAttention` 类来处理自注意计算,并将其嵌入到了标准的 Transformer block 结构之中。该结构允许更灵活地调整参数设置以适应不同的应用场景需求[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值