(2024)KAN: Kolmogorov–Arnold Networks:评论

KAN: Kolmogorov–Arnold Networks: A review

公和众与号:EDPJ(进 Q 交流群:922230617 或加 VX:CV_EDPJ 进 V 交流群)

目录

0. 摘要

1. MLP 也有可学习的激活函数

2. 标题的意义

3. KAN 是具有样条基激活函数的 MLP

4. 关于 KAN 打破维度灾难的说法是错误的

5. 参考文献


0. 摘要

为什么要评论这篇文章?2024 年 4 月 30 日,KAN [Liu et al., 2024] 出现在 ArXiV 上,到 5 月 7 日,我已经从多位学生那里听说了这篇论文,而这些学生平时并不会告诉我新论文。这一定很特别,我想。我决定看看。

如果我在专业上审查这篇论文,我会接受这篇论文,但需要做重大修改。这篇论文有足够的贡献,值得发表。但一些声明需要弱化,解释需要澄清,并且需要与基于样条(spline)的神经网络进行比较。

大纲:我对这篇论文提出了四个主要批评:

  1. 多层感知机(MLP)也有可学习的激活函数
  2. 论文的内容不符合其标题,Kolmogorov-Arnold networks(KANs)
  3. KANs是使用样条基函数作为激活函数的MLP
  4. KANs并没有打破维度灾难

页面:https://vikasdhiman.info/reviews/2024/05/08/review-KAN/  

(2024,KAN,MLP,可训练激活函数,样条函数,分层函数)Kolmogorov–Arnold 网络

1. MLP 也有可学习的激活函数

作者在摘要中声称: “虽然 MLP 在节点(“神经元”)上有固定的激活函数,但 KANs 在边(“权重”)上有可学习的激活函数。KANs 根本没有线性权重——每个权重参数都被一个参数化为样条的单变量函数所取代。”

这不是一个有用的描述,因为也可以将 MLP 解释为有 “可学习的激活函数”;这取决于你如何定义“激活函数”。考虑一个两层的 MLP,输入 x ∈ R^n,权重 W1, W2(暂时忽略偏置)和激活函数σ,

如果我定义 ϕ1(x) = σ(W_1·x) 并将 ϕ1(.) 称为激活函数,那么我在 MLP 中有一个可学习的激活函数。与图 0.1 相同,这是一种重新解释,而不是如所声称的那样重新设计 MLP。

2. 标题的意义

KANs 实际如何使用 Kolmogorov-Arnold Theorem(KAT)?该定理在 KANs 的开发中并没有实际作用。KANs 只是受到 KAT 的启发,而不是基于它。

那么 KAT 是什么?论文将其描述为,将任何光滑函数 f : [0, 1]^n → R 分解为有限基函数 ϕ^(2)_ q: R → R 和 ϕ_(q,p) : [0, 1] → R。

如果你打算使用 KAT,你需要理解 KAT 定理的中心论点,以及该定理与最接近的竞争对手通用逼近定理(Universal Approximation Theorem,UAT)有何不同。UAT 表明,任何函数都可以通过足够宽的两层神经网络来逼近。

我以求和的方式写了 MLP,而不是矩阵乘法,以便在 UAT 和 KAT 之间画出相似之处。UAT 和 KAT 之间有两个主要区别:

  1. UAT 处理具有常见激活函数的线性层(如 sigmoid [Cybenko, 1989]、ReLU、tanh),而 KAT 处理任意函数,可能是 “非平滑甚至分形的”。
  2. UAT 可能需要无限的隐藏单元(hidden units)进行精确逼近,而 KAT 只需要 2n+1 个隐藏单元。

我认为 KAT 的中心点在于只需要 2n + 1 个隐藏单元,否则它是一个比 UAT 弱的定理。KAN 论文是否一致使用了 2n + 1 个隐藏单元?没有。但他们通过说以下内容来证明论文的其余部分基于 KAT, “然而,我们对 KAT 在机器学习中的有用性更加乐观。首先,我们不需要坚持只有两层非线性和隐藏层中少量项(2n + 1)的原始公式(2.1):我们将网络推广到任意宽度和深度。”

好吧。但那我们不就回到了 UAT 了吗?

作者强调了 KAT 的一个方面,“从某种意义上说,他们表明唯一真正的多变量函数是加法,因为每个其他函数都可以使用单变量函数和求和来表示。” 这是一个很酷的解释,但这种解释并不能将 KAT 与已经在 MLP 中使用的 UAT 区分开来。

3. KAN 是具有样条基激活函数的 MLP

实际上,作者最终提出了一个 KAN 残差层,其每个标量函数写为,

什么是样条?【https://personal.math.vt.edu/embree/math5466/lecture10.pdf】对于本节的目的,你不需要了解样条。顺便说一句,一些样条在神经网络中使用的论文 [Bohra et al., 2020, Aziznejad et al., 2020] 没有在 KAN 论文中引用 。

现在,假设样条是特定类型基函数 B_i(x) 的线性组合 c_i·B_i(x) 的结果。为了将这个标量函数重新解释为 MLP,让我们重新写成如下,

其中,w 包含样条的可学习参数,一旦样条网格固定,b(x) 是确定的,尽管它可以变得可学习。让我们将其代入(2),

如果我们将 w 视为线性权重,将基函数视为激活函数,这与 MLP 非常接近,有以下几个区别:

  • 激活函数 b() 应用在输入侧,这通常不是 MLP 的一部分。然而,将输入转换为一组特征向量作为预处理步骤,而不是直接提供原始输入给 MLP,是很常见的。
  • 不像(3)中 w^(1)_(p,q) 是标量,(10) 中的 w^(1)_(p,q) 是向量。这不是问题,因为它仍然是通过基函数 b(x) 处理后的输入值的线性组合。为了明确这一点,我们将(10)写成矩阵向量乘法,后跟激活函数。

为了将(10)写成矩阵向量乘积,只考虑第一层项,

你可以重复应用这种解释,

其中,B(x) 与其他激活函数不同。它不是从一个标量产生一个标量,而是为输入中的每个标量值产生 G 个不同的值。

4. 关于 KAN 打破维度灾难的说法是错误的

作者声称,“KAN 具有有限网格大小,可以很好地逼近函数,其残差率与维度无关,因此打破了维度灾难!”

这是一个巨大的声明,需要大量的证据。正如前一节所述,如果所有 KAN 都可以写成 MLP,那么要么 MLP 和 KAN 都打破了维度灾难,要么都没有。

我的第一个反对意见是对 “维度灾难” 的解释。通常,机器学习中的维度灾难是通过训练一个函数达到所需误差所需的数据量来衡量的。

我不理解定理 2.1 的证明,尤其是第一步。不清楚这一结果是如何从 [de Boor, 2001] 中的哪个定理得出的。如果能提供页码或章节那就更好了。

这也违反直觉,因为假定所有 n 个输入维度都有相同的网格大小 G。如果 x 的每个维度被划分为不同的网格大小,界限会是什么样子。

5. 参考文献

[Aziznejad et al., 2020] Aziznejad, S., Gupta, H., Campos, J., and Unser, M. (2020). Deep neural networks with trainable activations and controlled lipschitz constant. IEEE Transactions on Signal Processing, 68:4688–4699.

[Bohra et al., 2020] Bohra, P., Campos, J., Gupta, H., Aziznejad, S., and Unser, M. (2020). Learning activation functions in deep (spline) neural networks. IEEE Open Journal of Signal Processing, 1:295–309.

[Cybenko, 1989] Cybenko, G. (1989). Approximation by superpositions of a sigmoidal function. Mathematics of control, signals and systems, 2(4):303–314.

[de Boor, 2001] de Boor, C. (2001). A Practical Guide to Splines. Applied Mathematical Sciences. Springer New York.

[Liu et al., 2024] Liu, Z., Wang, Y., Vaidya, S., Ruehle, F., Halverson, J., Soljaˇci´c, M., Hou, T. Y., and Tegmark, M. (2024). Kan: Kolmogorov-arnold networks. arXiv preprint arXiv:2404.19756. 

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python通过COM Interface控制CANoe

python通过COM Interface控制CANoe 介绍打开示例工程python代码示例介绍 通过python可以控制CANoe的启动和停止等其他操作,在做高阶的自动化项目时可以用到。 打开示例工程 python代码示例 # --------------------------------------------------------------------------…

卫星网络——Walker星座简单介绍

一、星座构型介绍 近年来,随着卫星应用领的不断拓展,许多任务已经无法单纯依靠单颗卫星来完成。与单个卫星相比,卫星星座的覆盖范围显著增加,合理的星座构型可以使其达到全球连续覆盖或全球多重连续覆盖,这样的特性使得…

Redis三种模式——主从复制、哨兵模式、集群

一、Redis模式 Redis有三种模式:分别是主从同步/复制、哨兵模式、Cluster 主从复制:主从复制是高可用Redis的基础,哨兵和群集都是在主从复制基础上实现高可用的。主从复制主要实现了数据的多机备份,以及对于读操作的负载均衡和简…

关于ORACLE单例数据库中的logfile的切换、删除以及添加

一、有关logfile的状态解释 UNUSED: 尚未记录change的空白group(一般会出现在loggroup刚刚被添加,或者刚刚使用了reset logs打开数据库,或者使用clear logfile后) CURRENT: 当前正在被LGWR使用的gro…

深入理解【 String类】

目录 1、String类的重要性 2、常用方法 2、1 字符串构造 2、2 String对象的比较 2、3 字符串查找 2、4字符转换 数值和字符串转换: 大小写转化: 字符串转数组: 格式转化: 2、5 字符串替换 2、6字符串拆分 2、7 字符串…

Mysql中间件和高可用

文章目录 一、MySQL中间件代理服务器MycatMycat应用场景Mycat部署 实现读写分离 二、MySQL高可用高可用解决方案MHA高可用实现MHA 一、MySQL中间件代理服务器 数据库主要分为两大类:关系型数据库与 NoSQL 数据库(非关系型数据库)。 数据库主…

ATFX汇市:美国大非农数据来袭,美指与欧元或迎剧烈波动

ATFX汇市:今日20:30,美国劳工部将公布6月非农就业报告,其中新增非农就业人口数据最受关注,前值为27.2万人,预期值19万人,预期降幅高达8.2万人。如果公布值确实如预期一般,美联储降息预期将增强&…

以太网协议介绍——UDP

注:需要先了解一些以太网的背景知识,方便更好理解UDP协议、 以太网基础知识一 以太网基础知识二 UDP协议 UDP即用户数据报协议,是一种面向无连接的传输层协议,属于 TCP/IP 协议簇的一种。UDP具有消耗资源少、通信效率高等优点&a…

跟着峰哥学java 微信小程序 第二天 封装ES7 + 后端工作

1.前端 1.1使用promise封装 使用promise封装以至于在图片路径 统一路径中修改 //封装统一请求域名 const baseUrl "http://localhost:8080"; //封装后需导出 export const getBaseUrl()>{return baseUrl; } 导入外来资源 初始化数据 设置数据 将处理后的数据…

力扣热100 滑动窗口

这里写目录标题 3. 无重复字符的最长子串438. 找到字符串中所有字母异位词 3. 无重复字符的最长子串 左右指针left和right里面的字符串一直是没有重复的 class Solution:def lengthOfLongestSubstring(self, s: str) -> int:# 左右指针leftright0ans0#初始化结果tablecolle…

AIGI赋能未来:人工智能如何重塑电子电路学习体验

文章目录 一、掌握基础知识与技能1. 扎实理论基础2. 熟练使用工具 二、融合AI技术提升学习效率1. 利用AI辅助学习平台2. 应用AI工具进行电路设计与仿真 三、探索创新应用方向1. 关注AI与电子电路的交叉领域2. 参与开源项目和竞赛 四、培养跨学科思维1. 加强数学与计算机科学知识…

解决使用PPIO欧派云服务器时无法使用sftp的问题

首先在对外TCP端口中选择22端口: 在连接-端口映射中可以看到: 使用ssh连接云服务器,更新包列表并安装OpenSSH服务器: apt-get update apt-get install-y openssh-server 创建 SSH 运行目录: mkdir /var/run/sshd 设…

Linux: 命令行参数和环境变量究竟是什么?

Linux: 命令行参数和环境变量究竟是什么? 一、命令行参数1.1 main函数参数意义1.2 命令行参数概念1.3 命令行参数实例 二、环境变量2.1 环境变量概念2.2 环境变量:PATH2.2.1 如何查看PATH中的内容2.2.2 如何让自己的可执行文件不带路径运行 2.3 环境变量…

Android车载开发中调试app与bat结合的丝滑小妙招

项目场景: 做Android车载的小伙伴调试app的时候常年就是手动adb命令三连,例如我常用的adb推送apk的命令 adb root adb remount adb push D:\workspace_atc\XSP3-10A\AutoSystemUIPlugin\app\release\CarSystemUI.apk /system/priv-app/CarSystemUI …

kylin arm xcb版本异常问题解决

源码编译qt 未生成xcb库,查看源码xcb readme.txt 提示 版本要求 下载 [ANNOUNCE] libxcb 1.14 [ANNOUNCE] xcb-proto 1.14 解压源码编译, 先编译xcb-proto sudo ./configure --prefix/usr/local/xcb-proto make make install 在编译xcb export PKG_CONFIG_PATH…

并发编程(多线程)带来了哪些问题?

前面我们了解到多线程技术有很多好处,比如说多线程可以充分利用多核 CPU 的计算能力,那多线程难道就没有一点缺点吗? 有。 多线程很难掌握,稍不注意,就容易使程序崩溃。我们以在路上开车为例: 在一个单向行驶的道路上,每辆汽车都遵守交通规则,这时候整体通行是正常的…

C++基石:掌握高效编程的艺术

C 关于命名空间:namespace 上述文档详细介绍了C标准库(Standard C Library)的一些关键约定,这些约定不仅帮助开发者理解如何正确使用库中的功能,也明确了实现者在设计库时的灵活性和限制。下面是对文档中提到的几个要点…

部署LVS+keepalived做网站的高可用,高负载。

LVSkeepalived keepalived背景 针对LVS的辅助工具,主要提供故障切换与健康检查。 工作场景:作为调度器的双机热备,以及节点服务器的健康检查以及故障切换(删除条目)。 借鉴了VRRP协议来实现高可用。 keepalived部署…

后端学习(一)

添加数据库包: 数据库连接时 发生错误: 解决方式: SqlConnection conn new SqlConnection("serverlocalhost;databaseMyBBSDb;uidsa;pwd123456;Encryptfalse;") ;conn.Open();SqlCommand cmd new SqlCommand("SELECT * FROM…

WAIC上官宣!大模型语料提取工具MinerU正式发布,开源免费“敲”好用

7月4日,2024 WAIC科学前沿全体会议在上海世博中心红厅隆重举行。上海人工智能实验室与商汤科技联合香港中文大学和复旦大学正式发布新一代大语言模型书⽣浦语2.5(InternLM2.5),同时全链条工具体系迎来重磅升级,对于大模…