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

news2024/12/23 20:24:08

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.coloradmin.cn/o/1898825.html

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

相关文章

代码随想录算法训练营第四十四天|188.买卖股票的最佳时机IV、309.最佳买卖股票时机含冷冻期、714.买卖股票的最佳时机含手续费

188.买卖股票的最佳时机IV 题目链接:188.买卖股票的最佳时机IV 文档讲解:代码随想录 状态:不会 思路: 在股票买卖1使用一维dp的基础上,升级成二维的即可。 定义dp[k1][2],其中 dp[j][0] 表示第j次交易后持…

[C++]——继承 深继承

一、继承概念 (1)、定义 继承(inheritance)机制是面向对象程序设计使代码复用最重要的手段,它允许程序员在保持原有类特性的基础上进行扩展,增加功能。继承呈现了面向对象程序设计的层次结构,体现了由简单到复杂的认知过程,是类…

Hudi 写入流程(图)

前言 主要为之前总结的源码文章补充流程图。总结一下整体流程说明 之前以Java Client为例,总结了 Insert 源码的整体流程及部分源码,由于各种原因,没有总结完。长时间不看这方面的源码,容易忘记,之前没有总结流程图,现在回忆起来比较麻烦,不如看流程图方便快捷。所以先补…

六个步骤轻松将网站从Webflow迁移到WordPress

尽管Webflow和WordPress在网站构建方法上有显著差异,但将网站从 Webflow 迁移到 WordPress 并没有想象中那么复杂。 本教程将逐步指导您完成迁移过程,确保你的网站可以顺利从Webflow过渡到功能更加齐全的WordPress上。 迁移前的准备工作 在开始迁移网…

java: 找不到符号 符号: 方法 builder()

在查看了pom依赖和sdk没问题后 跳转到需要build的类 在前面加上注解即可 一般这几个配套使用

【ABB】原点设定

【ABB】原点设定 操作流程演示 操作流程 操作轴回原点编辑电机校准偏移更新转速计数器 1.首先得了解机器手的轴,这里以6轴作参考。 注意先回456轴,后回123轴。 2.然后需要了解机器人关节运动模式,即选择如下两个模式。 3.注意机器人各轴移动…

无人机5公里WiFi低延迟图传模组,抗干扰、长距离、低延迟,飞睿智能无线通信新标杆

在科技日新月异的今天,我们见证了无数通信技术的飞跃。从开始的电报、电话,到如今的4G、5G网络,再到WiFi的广泛应用,每一次技术的革新都极大地改变了人们的生活方式。飞睿智能5公里WiFi低延迟图传模组,它以其独特的优势…

【CentOS7.6】docker部署EMQX教程,本地镜像直接导入(附下载链接),没法在云服务器上魔法拉取镜像的快来

总览 先把下载链接放在这里吧,这是 EMQX 的 tar 包,能够直接导入 CentOS 的 docker: 链接:https://pan.baidu.com/s/1rSGSLoVvj83ai6d5oolg8Q?pwd0108 提取码:0108 一、安装配置教程 1.将 EMQX-latest.tar 包导入…

七、Linux二进制安装Redis集群

目录 七、Linux二进制安装Redis集群1 安装Redis所需依赖2 单机安装Redis(7.2.4)2.1 下载Redis2.2 安装Redis 3 分布式部署模式(Redis Cluster)3.1 分布式部署模式的配置文件3.2创建集群 4 主从复制模式(Redis Sentinel…

PMP拿证捷径!七大要点让你事半功倍!

正确阅读PMBOK PMP考试的出题基本上来自于PMBOK教材,要对知识点理解透彻,清晰明了,针对考题就需要来灵活运用了。 PMBOK信息量很大,阅读起来,对每个人的耐力都是一种较量。 PMP考试是中英文对照,但教材中…

echarts图表加载显示空白

数据请求了,图表加载显示空白 报错: Error: Initialize failed: invalid dom. at Object.init (echarts.js:2273:1) 方案 1. 通过this.$nexttick(()>{}) , 试过, 还是不行 2、把 this.lineChart2 this.$echarts.init(document.g…

通义灵码入选 2024 世界人工智能大会最高荣誉「镇馆之宝」

7 月 4 日,2024 上海世界人工智能大会正式开幕,并揭晓了今年的「镇馆之宝」名单,通义灵码入选,是首个入围该名单的 AI 编程助手。 镇馆之宝是世界人工智能大会展览的最高荣誉,从科技含量、市场前景、创新性以及社会经济…

全生命周期陪伴,企业成长的最佳伙伴

国际数字影像产业园的全生命周期服务方案致力于为入驻企业提供从初创期到成熟期的各个阶段都能得到的全方位支持和帮助,确保企业能够稳健成长,实现可持续发展。 一、初创期服务 1、孵化器和加速器服务:为初创企业提供先进的硬件设施&#xf…

小白 | Linux安装java8

一、更新包列表 sudo apt update 二、安装 Java 8 sudo apt install openjdk-8-jdk 安装问题 遇见Unable to locate package openjdk-8-jdk错误 1.添加 PPA 存储库 sudo add-apt-repository ppa:openjdk-r/ppa sudo apt update 2.重新尝试安装 sudo apt install openjdk8-jdk…

昇思学习打卡-3-张量Tensor

本章节系统的学习了张量的相关内容,张量是由若干个当坐标系改变时满足转换关系的分量组成的集合。它是一个可用来表示在一些矢量、标量和其他张量之间的线性关系的多线性函数。是一种类似于矩阵的特殊的数据结构。包括 创建张量的方式;张量的属性&#…

前端面试题14(贝塞尔曲线)

贝塞尔曲线在前端开发中经常用于创建平滑的动画路径或绘制复杂的矢量图形。贝塞尔曲线可以是一次、二次或三次的,其中三次贝塞尔曲线是最常见的,因为它提供了足够的灵活性来创建各种形状,同时保持计算上的可行性。 下面我将解释三次贝塞尔曲…

数据仓库建模基础理论-01-为什么需要数据建模?

一、什么是数据模型? 数据模型是数据库的基础结构,用于描述和组织数据的方式。 它不仅是数据库的底层结构,还是一个概念性工具,帮助理解数据的含义和关系。 数据模型包括数据本身、数据之间的关系、数据的语义(含义和…

redis哨兵系统框架部署

redsi主从配置 下面是基于redis主从的环境部署哨兵模式 1、在配置好redis主从后,添加哨兵模式需要在sentinel.conf文件添加一条命令(主从节点都需要添加) mymaster 是主节点的别名。192.168.25.129 是主节点的 IP。6379 是主节点的端口。2 是仲裁值,表…

Alibaba Cloud Toolkit前端使用proxy代理配置

1、vscode 先安装插件 Alibaba Cloud Toolkit 2、前端代码: /personnel: {// target: http://xxx.xx.xxx.xx:9100, // 测试环境// target: http://xxx.xx.xxx.xx:9200, // 线上环境target: http://127.0.0.1:18002, // toolkit 代理changeOrigin: true

好烦啊,1个SQL干崩核心系统长达12小时!

作者:IT邦德 中国DBA联盟(ACDU)成员,10余年DBA工作经验, Oracle、PostgreSQL ACE CSDN博客专家及B站知名UP主,全网粉丝10万 擅长主流Oracle、MySQL、PG、 高斯及Greenplum备份恢复, 安装迁移,性能优化、故障…