当前位置: 首页 > news >正文

Transformer+KAN系列时间序列预测代码

前段时间,来自 MIT 等机构的研究者提出了一种非常有潜力的替代方法 ——KAN。该方法在准确性和可解释性方面表现优于 MLP。而且,它能以非常少的参数量胜过以更大参数量运行的 MLP。

KAN的发布,引起了AI社区大量的关注与讨论,同时也伴随很大的争议。
而此类研究,又有了新的进展。

最近,来自新加坡国立大学的研究者提出了 Kolmogorov–Arnold Transformer(KAT),用 Kolmogorov-Arnold Network(KAN)层取代 MLP 层,以增强模型的表达能力和性能。

c2f9e6ac7f317eaf3ed75a035c2a461d.png

  • 论文标题:Kolmogorov–Arnold Transformer

  • 论文地址:https://arxiv.org/pdf/2409.10594

  • 项目地址:https://github.com/Adamdad/kat

KAN 原论文第一作者 Ziming Liu 也转发点赞了这项新研究。

dd4d6ba596e5e198dc6a3fdd9d37d2f2.png

将 KAN 集成到 Transformer 中并不是一件容易的事,尤其是在扩展时。具体来说,该研究确定了三个关键挑战:

(C1) 基函数。KAN 中使用的标准 B 样条(B-spline)函数并未针对现代硬件上的并行计算进行优化,导致推理速度较慢。

(C2) 参数和计算效率低下。KAN 需要每个输入输出对都有特定的函数,这使得计算量非常大。

(C3) 权重初始化。由于具有可学习的激活函数,KAN 中的权重初始化特别具有挑战性,这对于实现深度神经网络的收敛至关重要。

为了克服上述挑战,研究团队提出了三个关键解决方案:

(S1) 有理基础。该研究用有理函数替换 B 样条函数,以提高与现代 GPU 的兼容性。通过在 CUDA 中实现这一点,该研究实现了更快的计算。

(S2) Group KAN。通过一组神经元共享激活权重,以在不影响性能的情况下减少计算负载。

(S3) Variance-preserving 初始化。该研究仔细初始化激活权重,以确保跨层保持激活方差。

结合解决方案 S1-S3,该研究提出了一种新的 KAN 变体,称为 Group-Rational KAN (GR-KAN),以取代 Transformer 中的 MLP。

实验结果表明:GR-KAN 计算效率高、易于实现,并且可以无缝集成到视觉 transformer(ViT)中,取代 MLP 层以实现卓越的性能。此外,该研究的设计允许 KAT 从 ViT 模型加载预训练权重并继续训练以获得更好的结果。

该研究在一系列视觉任务中实证验证了 KAT,包括图像识别、目标检测和语义分割。结果表明,KAT 的性能优于传统的基于 MLP 的 transformer,在计算量相当的情况下实现了增强的性能。

66f0270001f4439d3151c665d5abc0f1.png

如图 1 所示,KAT-B 在 ImageNet-1K 上实现了 82.3% 的准确率,超过相同大小的 ViT 模型 3.1%。当使用 ViT 的预训练权重进行初始化时,准确率进一步提高到 82.7%。

不过,也有网友质疑道:「自从有论文比较了具有相同参数大小的 MLP 模型和 KAN 模型的性能后,我就对 KAN 持怀疑态度。可解释性似乎是唯一得到巨大提升的东西。」

24d779652acb920dfc10265964516841.png

对此,论文作者回应道:「的确,原始 KAN 在可解释性上做得很好,但不保证性能和效率。我们所做的就是修复这些 bug 并进行扩展。」

90a5efb358cdd51d53c17fca5a3e15dc.png

还有网友表示,这篇论文和其他人的想法一样,就是用 KAN 取代了 MLP,并质疑为什么作者在尝试一些已经很成熟和类似的东西,难道是在炒作 KAN?对此, 论文作者 Xingyi Yang 解释道,事实确实如此,但不是炒作,根据实验,简单地进行这种替换是行不通的,他们在努力将这个简单的想法变成可能的事情。

ff9fcbcad7febb59951e1587947d49f8.png

 Kolmogorov–Arnold Transformer (KAT)

作者表示,标准的 KAN 面临三大挑战,限制了其在大型深度神经网络中的应用。

它们分别是基函数的选择、冗余参数及其计算、初始化问题。这些设计选择使得原始版本的 KAN 是资源密集型的,难以应用于大规模模型。

本文对这些缺陷设计加以改进,以更好地适应现代 Transformer,从而允许用 KAN 替换 MLP 层。

源码地址及其详细讲解(免费)

https://space.bilibili.com/51422950?spm_id_from=333.1007.0.0

http://www.lryc.cn/news/474886.html

相关文章:

  • vue项目安装组件失败解决方法
  • C++ [项目] 躺平发育
  • [产品管理-55]:产品设计不仅仅完成功能,即可用性设计,还需要完成可生产性、可装配性、可维护性、可回收性、可服务性设计
  • Mount Image Pro,在取证安全的环境中挂载和访问镜像文件内容
  • 玩转Docker | Docker基础入门与常用命令指南
  • 【MySQL】MySQL安装以及各种报错处理
  • 【传知代码】图像处理解决种子计数方法
  • WPF 特性------Binding
  • 深入解析 FastAPI 查询参数:配置、类型转换与灵活组合
  • 大学城水电管理系统开发:Spring Boot指南
  • Lua 从基础入门到精通(非常详细)
  • [MySQL#11] 索引底层(2) | B+树 | 索引的CURD | 全文索引
  • 一个指针可以被声明为 `volatile`
  • [0260].第25节:锁的不同角度分类
  • android数组控件Textview
  • openpnp - 手工修改配置文件(元件高度,size,吸嘴)
  • Java 集合一口气讲完!(中)d=====( ̄▽ ̄*)b
  • 位运算:计算机科学中的基本操作
  • MPSK(BPSK/QPSK/8PSK)调制解调的Matlab仿真全套
  • 如何为STM32的EXTI(外部中断)编写程序
  • 八、快速入门Kubernetes之service
  • JVM 类加载机制详解
  • 在 JavaScript 中,`Array.prototype.filter` 方法用于创建一个新数组,该数组包含通过测试的所有元素
  • 63 mysql 的 行锁
  • ubuntu文件编辑操作
  • Nuxt.js 应用中的 nitro:config 事件钩子详解
  • 【前端】项目中遇到的问题汇总(长期更新)
  • DAY73WEB 攻防-支付逻辑篇篡改属性值并发签约越权盗用算法溢出替换对冲
  • 2024 Rust现代实用教程:Ownership与结构体、枚举
  • MMed-RAG:专为医学视觉语言模型设计的多功能多模态系统