论文阅读KAN: Kolmogorov–Arnold Networks

学习了最近大热的KAN网络

论文地址:https://arxiv.org/pdf/2404.19756

按我个人读论文的习惯总结了如下几点:

1,背景:

1)灵感来源:于Kolmogorov-Arnold表示定理,也就是多变量连续函数可以表示为一变量连续函数的有限组合。

2)MLPs的缺点

        (I)固定激活函数:MLPs在每个神经元上使用固定的激活函数,这限制了模型适应复杂数据模式的能力。

        (II)可解释性差

        (III)维度灾难

        (IV)使用ReLU激活函数时,对于逼近指数函数和正弦函数等函数时效率非常低

        (V)在Transformer中,MLPs消耗了几乎所有的非嵌入参数

3)与MLPs相比,KANs在网络的边上使用可学习的激活函数,而不是节点上的固定激活函数。

2,KAN的技术细节

1)结构

KANs中的激活函数由B样条(B-splines)定义,这是一种分段定义的多项式,用于生成平滑曲线。每个激活函数都是一个B样条曲线,其系数是可学习的参数。这种参数化方法不仅提供了高度的灵活性,还允许模型在训练过程中自动调整激活函数的形状,以更好地适应数据。

(图0.1 MLPs和KANs的对比)

左侧:流经网络的激活函数的表示。右侧:激活函数被参数化为B样条曲线(B-spline),允许在粗粒度和细粒度网格之间进行切换。

文章提出的KAN的基础模型结构:

其计算图完全由如下方程指定:

并在图0.1(b)中进行了说明(输入维度n=2),它呈现为一个两层神经网络,激活函数位于边上而非节点上(在节点上进行简单的求和),中间层的宽度为2n + 1。

2)训练

KANs可以使用标准的反向传播算法进行训练,因为所有操作都是可微分的。在训练过程中,模型的参数(包括B样条的系数)会通过梯度下降算法进行更新。论文中提到了使用LBFGS(Limited-memory Broyden–Fletcher–Goldfarb–Shanno)优化器进行训练,这是一种适用于非线性优化问题的算法。

3,KANs的优点:

1)准确性:在小规模的AI+Science任务中,KANs显示出比MLPs更高的准确性。

2)可解释性:KANs的架构允许更直观的可视化和与人类的交互,有助于提高模型的可解释性。

3)神经扩展法则:KANs拥有比MLPs更快的神经扩展法则,意味着在模型参数增加时,测试误差下降得更快。

4)避免灾难性遗忘:KANs利用样条的局部特性来避免在持续学习中出现的灾难性遗忘问题。

4,KANs的缺点和暂时的不足:

1)训练速度:KANs相比于MLPs训练速度较慢。论文指出,KANs的训练通常比MLPs慢10倍。

2)理论基础尚不完善:目前只适用于特定结构的KAN,对于构建更深更宽的网络还没有理论支持。

3)算法效率:论文中提到,KANs在算法效率方面存在一些问题,例如,不同的激活函数不能利用批处理计算,这限制了计算效率。

4)超参数依赖性:KANs的性能可能依赖于特定的超参数选择,例如,论文中提到了熵惩罚和正则化强度对网络稀疏性的影响。

5)高维时如何实现:目前尚不清楚我们的方法是否能推广到更实际的场景中,尤其是当维度较高时,如何定义“局部性”尚不清楚。

6)泛化能力尚存疑:尽管KANs在理论上具有避免维度灾难的潜力,但论文中也提到了需要进一步研究KANs在不同数据集上的鲁棒性,以及它们与其他深度学习架构的兼容性。

7)复杂性与可解释性:论文中提到,虽然KANs提供了更高的可解释性,但是在某些情况下,例如当激活函数的权重矩阵存在时,可解释性可能会受到影响。

8)持续学习:尽管KANs在避免灾难性遗忘方面表现出潜力,但论文中也指出了需要进一步研究KANs在更现实的场景中的持续学习能力。

9)应用范围:论文中提出KANs在小规模AI+Science任务中表现出色,但对于更大规模或更复杂的任务,KANs的表现和适用性还需要进一步的实证研究。

10)计算资源:论文中提到,尽管KANs在参数数量上可能比MLPs更高效,但它们在实际应用中可能需要更多的计算资源,尤其是在处理大规模数据集时。

作为一个新模型,目前的不足多一点也很正常,重要的是其潜力。如果能够把KANs推广到目前MLPs的所有应用场景,那可以填的坑可以写的论文就太多了。

5,文中提到的应用场景:

1)小规模AI+Science任务:KANs在小规模的人工智能与科学结合的任务中表现出色,尤其是在准确性和可解释性方面。

2)函数拟合:KANs在数学和物理学的特定函数拟合任务中,展示了比传统MLPs更高的准确性。

3)数学中的结理论(Knot Theory):KANs被用于探索和重新发现结理论中的数学关系,这涉及到了拓扑学的应用。

4)物理学中的Anderson局域化:KANs被应用于分析和理解电子在量子系统中的局域化现象,这涉及到了凝聚态物理学。

5)解决偏微分方程(PDEs):KANs在解决特定类型的偏微分方程时表现出了潜力,特别是在物理信息神经网络(Physics-Informed Neural Networks, PINNs)的框架内。

6)图像表示学习:虽然论文中没有直接提到图像处理,但KANs理论上可以应用于图像的隐式表示,例如通过学习图像的隐式函数来进行图像压缩或生成。

7)持续学习:KANs在持续学习场景中展现出避免灾难性遗忘的能力,这对于开发能够随时间累积知识的模型非常重要。

8)科学发现:KANs由于其可解释性,被提出作为帮助科学家(重新)发现数学和物理定律的工具。

9)通用函数逼近:论文中提到KANs理论上具有通用逼近性质,能够逼近多变量连续函数,这意味着它们可以应用于广泛的函数逼近任务。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/694894.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

技术与业务的完美融合:大数据BI如何真正提升业务价值

数据分析有一点经典案例 沃尔玛的啤酒和尿布案例 开始做BI的时候,大家肯定都看过书,那么一定也看过一个经典的案例,就是沃尔玛的啤酒和尿布的案例。这个案例确实很经典,但其实是一个失败的案例。为什么这么说呢?很明显…

html接口响应断言

接口响应值除类json格式,还有html格式 断言步骤 第一步:替换空格replace 原本返回的格式和网页内容一致,每行前面有很多空格,需要去除这些空格 第二步:分割split 因为行与行之前有回车符,所以把回车符替…

JAVA-LeetCode 热题 100 第56.合并区间

思路&#xff1a; class Solution {public int[][] merge(int[][] intervals) {if(intervals.length < 1) return intervals;List<int[]> res new ArrayList<>();Arrays.sort(intervals, (o1,o2) -> o1[0] - o2[0]);for(int[] interval : intervals){if(res…

cisco packet tracer 8.2.2 (思科模拟器) ospf路由协议

1 实验拓扑图 2 配置路由器和交换机 #sw1 en config t hostname sw1 ip routing int vlan 2 ip address 192.168.2.1 255.255.255.0 exit int vlan 3 ip address 192.168.3.1 255.255.255.0 exit int gigabitEthernet 1/0/1 switchport access vlan 2 exit int gigabitEthe…

在AMD GPU上加速大型语言模型的Flash Attention

Accelerating Large Language Models with Flash Attention on AMD GPUs — ROCm Blogs 引言 在这篇博客文章中&#xff0c;我们将指导您如何在AMD GPU上安装Flash Attention&#xff0c;并提供与在PyTorch中标准SDPA比较其性能的基准测试。我们还将测量Hugging Face中多个大型…

Facebook革新:数字社交的下一个阶段

在数字化时代&#xff0c;社交网络已经成为人们生活中不可或缺的一部分。作为全球最大的社交网络平台之一&#xff0c;Facebook一直在不断创新&#xff0c;引领着数字社交的发展。然而&#xff0c;随着科技的不断进步和社交需求的变化&#xff0c;Facebook正在走向一个新的阶段…

Linux下软件安装

提示&#xff1a;制作不易&#xff0c;可以点个关注和收藏哦。 前言 介绍 Ubuntu 下软件安装的几种方式&#xff0c;及 apt&#xff0c;dpkg 工具的使用。 提示&#xff1a;以下是本篇文章正文内容&#xff0c;下面案例可供参考. 一、先体验一下 比如我们想安装一个软件&…

添加Microsoft.VisualStudio.TestTools.UnitTesting命名空间

创建“单元测试项目”&#xff0c;则自动添加 Microsoft.VisualStudio.TestTools.UnitTesting 命名空间

C语言:双链表

一、什么是双链表&#xff1f; 双链表&#xff0c;顾名思义&#xff0c;是一种每个节点都包含两个链接的链表&#xff1a;一个指向下一个节点&#xff0c;另一个指向前一个节点。这种结构使得双链表在遍历、插入和删除操作上都表现出色。与单链表相比&#xff0c;双链表不仅可以…

卡尔曼滤波器例子

卡尔曼滤波器 卡尔曼滤波器(Kalman Filter)是一种用于线性系统状态估计的递归算法,可以有效地融合传感器数据和系统模型来估计系统的状态。它在机器人学中广泛应用,尤其是位置和速度等状态的估计。通过卡尔曼滤波器,可以有效地估计机器人在二维平面内的真实位置,并减小测…

真空衰变,真正的宇宙级灾难,它到底有多可怕?

真空衰变&#xff0c;真正的宇宙级灾难&#xff0c;它到底有多可怕&#xff1f; 真空衰变 真空衰变&#xff08;Vacuum decay&#xff09;是物理学家根据量子场论推测出的一种宇宙中可能会发生的现象&#xff0c;这种现象被称为真正的宇宙级灾难&#xff0c;它到底有多可怕呢…

Java:112-SpringMVC的底层原理(下篇)

这里继续续写上一章博客&#xff08;111章博客&#xff09;&#xff1a; Spring MVC 源码深度剖析&#xff1a; 既然我们自行写出了一个&#xff0c;那么我们可以选择看看mvc源码&#xff1a; 前端控制器 DispatcherServlet 继承结构&#xff1a; 前面我们知道mvc是操作同…

动态规划学习(分组背包)

分组背包的定义 分组背包是相比于01背包来讲&#xff0c;其就是多了一个组&#xff0c;给你n个组&#xff0c;每个组里有各自的物品&#xff0c;每个组里的物品只能选择一个&#xff0c;问你&#xff0c;选出来的最大价值是多少 这里我们的遍历顺序的三层循环&#xff0c;最外…

物联网设计竞赛_8_Jetson Orin Nano安装pytorch与torchvision

我的新板子到了&#xff0c;型号是jetson orin Nano与之前的jetson nano稍有不同我发现库又得从新下载 我的pip3的版本是3.8.10&#xff0c;jetpack版本5.1.1&#xff0c;又得重新开始下载库&#x1f62d; 安装pytorch: 得科学上网&#xff1a; PyTorch for Jetson - Jetson …

BPF:BCC(BPF Compiler Collection)工具集认知

写在前面 博文内容为 《BPF Performance Tools》 读书笔记整理内容涉及 BCC 工具整体介绍理解不足小伙伴帮忙指正 &#x1f603;,生活加油 不必太纠结于当下&#xff0c;也不必太忧虑未来&#xff0c;当你经历过一些事情的时候&#xff0c;眼前的风景已经和从前不一样了。——村…

LeetCode | 1624.两个相同字符之间的最长子字符串

这道题拿到手想法就是去双重遍历暴力解&#xff0c;对于每个字符&#xff0c;从后往前遍历字符串&#xff0c;找到从后往前一直到本次遍历的这个字符串这段子串中和这个字符串相同的字符位置&#xff0c;然后得到子字符串的长度&#xff0c;和ans存储的值做一个比较&#xff0c…

【python】错误SyntaxError: invalid syntax的解决方法总结

解决Python报错&#xff1a;【Python】错误SyntaxError: invalid syntax的解决方法总结 SyntaxError是Python编程中常见的错误之一&#xff0c;它表明代码中有语法错误。这种错误可能由多种原因引起&#xff0c;包括但不限于拼写错误、错误的缩进、缺少括号等。本文将介绍几种常…

【BUG】已解决: No module named ‘torch._six

已解决&#xff1a;No module named ‘torch._six 欢迎来到英杰社区https://bbs.csdn.net/topics/617804998 欢迎来到我的主页&#xff0c;我是博主英杰&#xff0c;211科班出身&#xff0c;就职于医疗科技公司&#xff0c;热衷分享知识&#xff0c;目前是武汉城市开发者社区主…

Python进阶-部署Flask项目(以TensorFlow图像识别项目WSGI方式启动为例)

本文详细介绍了如何通过WSGI方式部署一个基于TensorFlow图像识别的Flask项目。首先简要介绍了Flask框架的基本概念及其特点&#xff0c;其次详细阐述了Flask项目的部署流程&#xff0c;涵盖了服务器环境配置、Flask应用的创建与测试、WSGI服务器的安装与配置等内容。本文旨在帮…

[vulnhub]Lin.Security主机Linux提权

Hash Crack(Hash cat) boblinsecurity:~$ cat /etc/passwd $ echo "AzER3pBZh6WZE">hash 检查哈希类型: $ hash-identifier AzER3pBZh6WZE $ hashcat -m 1500 -a 0 hash /usr/share/wordlists/rockyou.txt --force username:insecurity password:AzER3pBZh6WZE…