论文精读——KAN

目录

1.研究背景

2.关键技术

2.1 原始公式

2.2 KAN结构

2.3 缩放定律

3.技术扩展

4.模型效果

5.相关讨论

6.总结


文章标题:《KAN: Kolmogorov–Arnold Networks》

文章地址:

KAN: Kolmogorov-Arnold Networks (arxiv.org)icon-default.png?t=N7T8https://arxiv.org/abs/2404.19756代码地址:

KindXiaoming/pykan: Kolmogorov Arnold Networks (github.com)icon-default.png?t=N7T8https://github.com/KindXiaoming/pykan

1.研究背景

MLP作为深度学习模型中的基础模块,有很好的非线性函数逼近能力,但是作者认为MLP并不是最好的非线性回归器。例如在Transformer中MLP消耗了几乎所有的非嵌入参数,并且可解释性较弱。因此,作者提出用KAN来替代MLP

KAN有以下特点:

全连接结构

上的可学习激活函数

③权重参数被替换成可学习的样条函数

④在节点处进行简单的相加操作

作者从理论上分析了为什么KAN有更好的效果:

其一,样条函数对于低维空间是精准,但是由于它不能利用复杂结构导致在高维的效果较差(维度灾难)

其二,由于MLP能够进行特征学习避免了维度灾难,但它无法优化单变量函数使得在低维空间不如样条函数 KAN利用了上述的两个结构,互相弥补了缺点

2.关键技术

2.1 原始公式

Kolmogorov-Arnold(KA) Representation Theorem假设f是一个在有界域上的多元连续函数,那么f可以写成有限多个单变量连续函数相加

但是这个原始表达式只对应了一个拥有两层非线性激活函数,并且隐藏层只有2n+1个节点的网络

如果仅仅利用原表达式去做机器学习(拟合、回归等),由于一维函数可能非平滑,所以在实际操作中并非是可学习的

2.2 KAN结构

任务定义:找到函数f,拟合输入输出对\begin{Bmatrix} x_{i} ,y _{i} \end{Bmatrix},使得y_{i} \approx f(x_{i}),对应于原始公式只需要找到\Phi _{q}\phi _{q, p}即可

表示一维函数矩阵,定义q为输出维度,p为输入维度

定义KAN的形状表示为:

其中,ni表示第i层节点个数 定义第i个神经元在第l层表示为(l, i),x_{l,i}表示(l, i)神经元的激活值,第l层和第l+1层之间有n_ln_{l+1}个激活函数(因为激活函数在边上,并且为全连接),那么(l, i)和(l+1, i)之间的激活函数可以表示成

上述过程对应于下图:

因此第l+1层的第j个节点可表示成:

写成矩阵形式为:

其中,\Phi _{l}表示第l层的激活函数矩阵,那么对应一个有L层的KAN网络,有:

写成与原始公式相似的形式:

在实现上,激活函数采用多个一维的B-Spline函数的结合,并利用残差激活函数

参数量对比,L层,宽度N(k表示样条函数为k阶)

KAN:(上限挺好推的,但是下限不太懂为什么是+k而不是*k)

MLP:

2.3 缩放定律

神经缩放定律是测试损失(test Loss)随着模型参数的增加而减小的现象,即其中 ℓ 是测试 RMSE,N 是参数数量,α 是缩放指数。也就是说,参数量越大,误差越小(精度越高)

KAN能通过细分数据域网络来提高B-Spline函数逼近的精度,从而使缩放更加自由,能够有效控制参数量。而MLP对于不同的网格划分需要重新进行训练

例如,可以先训练一个参数较少的 KAN,然后通过使Spline网格粒度更细,使其扩展到参数较多的 KAN,这一方式降低了复杂度

3.技术扩展

为了提高KAN的可解释性,作者提出了一些简化模型的技术:

①稀疏化

MLP:L1正则化

KAN:定义L1范数,去除线性权重,再加上熵正则化

因此可以得到整体的训练损失为:

预测损失+L1正则化+熵正则化,通过λ控制正则化幅度

②可视化

将激活函数的透明度设置为与\tanh (\beta A_{l,i,j})成正比,其中 β = 3

重要的函数会凸显出来

③剪枝

对每个节点定义输入输出分数,输入输出分数都大于阈值的节点会被保留下来,其余会被修剪掉

④符号化

如果猜测某些激活函数实际上是符号函数(例如 cos 或 log),则提供一个接口将其设置为指定的符号形式,后续只需要拟合参数即可

在剪枝完后,用户可以根据形状选择符号函数的公式,然后进一步训练,如果训练损失下降了,就表明选择了正确的符号表达式

4.模型效果

①拟合精度方面的比较

KAN有更好的放缩曲线,特别是高维,而MLP很快就饱和了,表明了KAN的扩展能力很强,并且KAN像MLP一样网络越深效果越好

②解决更复杂的偏微分方程

KAN 使用较小的网络更少的参数实现了更好的误差缩放定律

作者还将KAN用在数学和物理领域的一些实际应用上,均表明KAN能用更少的参数量得到更好的效果

5.相关讨论

KAN还有一些可以改进的地方:

①在精度层面,还可以进一步研究模型结构训练细节来提高效果

②对于KAN来说,最大的问题是训练太慢,因为无法利用batch计算,可以尝试对激活函数分组,同一组内使用相同的激活函数

③可以引入自适应性来提高KAN的精度和效率

④将KAN用在实际任务中,机器学习/理论科学

⑤由于KAN具有可解释性,可以尝试与AI4Science结合

6.总结

KAN基于Kolmogorov-Arnold Representation Theorem,并对两层网络进行扩展。通过将可学习激活函数设置在边上,而节点处进行简单的相加操作构建了KAN模型。由于KAN使用较少的参数量就能媲美MLP,并且还能通过简化技术使其具有良好的可解释性,因此KAN有望替代MLP作为神经网络中的基础模块。相比MLP而言,KAN有更好的缩放性能,但在相同的参数量下,KAN的训练速度过慢成为了最大的问题。

笔者的思考:

①作者强调了浅层的KAN就能达到甚至超过深层MLP的性能,是否意味着深层的KAN不太能实现(训练太慢,小模型适用)

②KAN不太适用于现在的深度学习框架,从硬件计算层面不太有优势

③从网络架构来看,其实KAN和MLP差不多(虽然原理不同),区别在于MLP是进行线性组合再进行激活,而KAN是先进行激活再线性组合,并且KAN中不同边上的激活函数并不相同,也正是这点带来了额外的计算复杂度,是否意味着KAN只是MLP更一般的形式

④笔者认为本文最大的特点是可解释性,适合用在较小的问题上,在AI4Science领域可能会有较大提高

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

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

相关文章

再次递表港交所,慧算账能否把握AI+财税SaaS机遇?

5月以来,港股IPO市场日渐兴旺,多家公司实现上市首日“零破发”,平均收涨约30%,6月更是出现了超2500倍超购新股。市场赚钱效应显现,投资者打新随之热情高涨,越来越多国内企业也开始抓紧赴港上市。 近日&…

Android-app自动更新总结(已适配9-0)(1)

} //检查版本号,第一次请求(post),,,UpdateAppBean根据服务器返回生成 private void requestAppUpdate(int version, final DataRequestListener listener) { OkGo.post(Const.HOST_URL Const.UPDATEAPP).params(“version”, v…

vue element-ui 下拉框 以及 input 限制输入,小数点后保留两位 界面设计案例 和 例子:支持mp4和m3u8视频播放

vue input 限制输入,小数点后保留两位 以及 图片垂直居中显示 和 分享 git 小技巧-CSDN博客文章浏览阅读430次,点赞5次,收藏4次。error:Your local changes to the following files would be overwritten by merge:_error: your local change…

Python 介绍——浔川python社

python简介 Python是一种高级、通用的编程语言,由Guido van Rossum于1989年创建。它被设计为易于阅读和理解,并且具有简洁的语法,使得开发人员能够更快地编写代码。 Python被广泛用于不同的领域,包括Web开发、数据分析、人工智能…

2024.6.18 作业 xyt

今日作业: 1. 完善对话框,点击登录对话框,如果账号和密码匹配,则弹出信息对话框,给出提示”登录成功“,提供一个Ok按钮,用户点击Ok后,关闭登录界面,跳转到其他界面 如果…

广东省省站节能检测试题库(2024年)

1.外墙外保温系统耐候性试验设备,测温点不应少于( ),每个测温点的温度与平均温度偏差不应大于( )。 A、2个,5℃ B、4个,5℃ C、2

未来谁主沉浮? / 全能AI模型的发展趋势和展望

在近日腾讯元宝APP的正式上线后,国内大模型产品如雨后春笋般涌现,引发了广泛的关注。在这股AIGC(人工智能生成内容)的热潮中,我也体验过不少全能型的大模型产品。那么,这些产品有哪些优缺点呢?在…

C++ 64 之 函数模版和普通函数调用规则

#include <iostream> #include <string> using namespace std;template<typename T> void myPrint(T a, T b){cout << "函数模板的调用" << endl; }void myPrint(int a, int b){cout << "普通函数调用" << endl…

C#——只读属性readonly

只读属性readonly 类的字段可以通过一个readonly(只读)表示这个为只读字段&#xff0c;不能被构造函数之外地方进行修改&#xff0c;静态只读字段不能在非静态的构造函数中使用 定义 只读属性的特点&#xff1a; 字段是只读的非静态 只能在非静态方法中进行修改 字段是只读的…

如何使用芯片手册做软件开发?

在阅读和利用芯片手册进行软件开发时&#xff0c;你应该关注以下几个关键点&#xff1a; 引脚功能&#xff1a;了解芯片上每个引脚的功能&#xff0c;包括它们可以被配置为输入还是输出&#xff0c;以及它们支持的特殊功能&#xff0c;如模拟输入、PWM输出、中断等。 寄存器映…

NoSQL-Tidis支持分布式事务,兼容redis协议,使用tikv存储引擎,可水平扩展

项目repo地址 GitHub - yongman/tidis: Distributed transactional NoSQL database, Redis protocol compatible using tikv as backend Tidis是分布式数据库,支持redis协议,多种数据结构支持,编写语言为golang。 Tidis工作角色类似于TIDB,提供协议转换和数据结构计算,底…

RockChip Android12 System之Datetime

一:概述 本文将针对Android12 Settings二级菜单System中Date&time的UI修改进行说明。 二:Date&Time 1、Activity packages/apps/Settings/AndroidManifest.xml <activityandroid:name="Settings$DateTimeSettingsActivity"android:label="@stri…

JavaFX选择框

JavaFX选择框允许用户在几个选项之间快速选择。 创建一个选择框 我们可以使用ChoiceBox中的构造函数来创建ChoiceBox对象。 以下代码显示了如何使用其构造函数创建和填充选择框。 列表项是从可观察的列表来创建的。 ChoiceBox cb newChoiceBox(FXCollections.observableArra…

音频处理2_进阶概念

本节主要对”音乐”和”人声“等概念初步整理&#xff0c;并过度到AI模型的讲解&#xff0c;本节后续会有补充或修改。 1. 名词概念 1.1 音频类 基频&#xff08;f0&#xff09; 复杂声音&#xff08;例如人声、乐器音&#xff09;通常由多个频率成分组成。基频是最低的频率成…

Unity基础(三)3D场景搭建

目录 简介: 一.下载新手资源 二.创建基本地形 三.添加场景细节 四,添加水 五,其他 六. 总结 简介: 在 Unity 中进行 3D 场景搭建是创建富有立体感和真实感的虚拟环境的关键步骤。 首先&#xff0c;需要导入各种 3D 模型资源&#xff0c;如建筑物、角色、道具等。这些模…

springboot与flowable(9):候选人组

act_id_xxx相关表存储了所有用户和组的数据。 一、维护用户信息 Autowiredprivate IdentityService identityService;/*** 维护用户*/Testvoid createUser() {User user identityService.newUser("zhangsan");user.setEmail("zhangsanqq.com");user.setF…

TOP150-LC45-跳跃问题II-java版

java解法-贪心 /*跳跃游戏II 给定一个长度为 n 的 0 索引整数数组 nums。初始位置为 nums[0]。每个元素 nums[i] 表示从索引 i 向前跳转的最大长度。换句话说&#xff0c;如果你在 nums[i] 处&#xff0c;你可以跳转到任意 nums[i j] 处:0 < j < nums[i]i j < n 返…

一周刷爆leetcode!(b站视频)

文章目录 一、排序思想的题目二、使用步骤1. 一、排序思想的题目 跟着b站一周刷爆leetcode这个视频开始刷一下leetcode的题目 进行一下记录啥的 二、使用步骤 1. 315. 计算右侧小于当前元素的个数 代码如下&#xff1a; 写了一下暴力解法&#xff0c;没有通过 使用归并排序…

CHATGPT说这个运算放大器是比较器,我说这是运放典型的同相比例放大器,一个光控电路分析

纠正 图1 光控电路 该电路来自一个问题&#xff0c;链接见文末。 因GPT的分析有误&#xff0c;特此纠正。 引用图片和答案用于分析&#xff0c;如侵权请联系本人。 电路分析&#xff1a; 该电路为光控灯电路&#xff0c;灯光为LED发光二极管 D。 光敏电阻RG的阻值和光线强度关…

6.18作业

完善对话框&#xff0c;点击登录对话框&#xff0c;如果账号和密码匹配&#xff0c;则弹出信息对话框&#xff0c;给出提示”登录成功“&#xff0c;提供一个Ok按钮&#xff0c;用户点击Ok后&#xff0c;关闭登录界面&#xff0c;跳转到其他界面 如果账号和密码不匹配&#xf…