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

KAN网络最全解析——比肩MLP和Transformer?

1 基本思路

1.1 MLP与Spline的优缺点

多层感知器 (MLP)是深度学习的基础理论模块,是目前可用于逼近非线性函数的默认模型,其表征能力已由通用逼近定理证明。但MLP也有明显的缺点,例如在 Transformer中,MLP 的参数量巨大,且通常不具备可解释性。

为了提升表征能力,MIT提出了KAN。KAN本质上是样条(Spline)曲线和 MLP 的组合,吸收了两者的优点。即

KAN = MLP + Spline

在数学中,样条曲线是由多项式分段定义的函数。一般的Spline可以是特定区间的3阶多项式。在插值问题中,样条插值通常优于多项式插值,因为即使使用低次多项式,也能产生类似的精度结果,同时避免了高次多项式的Runge's phenomenon(在一组等距插值点上使用高次多项式进行多项式插值时出现的区间边缘振荡问题)。

1.2 Kolmogorov-Arnold表示定理

Vladimir Arnold与 Andrey Kolmogorov证明了实分析中的如下表示定理:

如果f是多元连续函数,则f可以写成有限数量的单变量连续函数的两层嵌套叠加。其数学表达式就是

该定理解决了希尔伯特第十三问题的一个更受约束但更一般的形式。在数学上,Φq称外部函数(outer functions),Φq,p称为内部函数(inner functions)。

这表明在实数域上,唯一真正的多元函数是求和,因为所有其他函数都可以使用单变量函数求和来表征。

换个形象的说法,就是你家里做个复杂的事(包含多个任务),你爸你妈和你可以分别干活然后汇总,并不需要三个人同时忙一个任务。

顺带八卦下,Vladimir 是位前苏联神童, Andrey则是他的导师。

2 KAN架构与缩放

2.1 KAN架构

KAN的架构设计来自一个数学问题:对一个由输入输出对 {xi, yi} 组成的有监督学习任务,寻找函数f 使得所有数据点的 yi≈ f (xi)。其核心在于找到合适的单变量函数 Φq,p(外部函数)和 Φq(内部函数)。

在KAN中,使用B-spline(B样条)来构建。B-spline是基础样条(Basic Spline)的缩写。

对于B-spline,函数在其定义域内、在结点(Knot)都具有相同的连续性。其多项式表达可由Cox-de Boor 递推公式表达:

图片

例如KA定理的内部函数可以定义为带有参数的矩阵计算。矩阵中的每个元素事实上是一个函数或算子。其中KAN层可以定义为

图片

那么根据KA定理,理论上只要2个KAN层就可以充分表征实数域的各类有监督学习任务。2层的KAN中,激活函数放置在边缘而不是节点上(在节点上进行简单求和),并且2层中间有2n+1个变量。当然为了保证数值逼近的精度,实际设计中可以构建2层以上或者任意层数的KAN。

图片

2层KAN的结构(作者团队修改自MIT)

更为一般的的KAN表征形式是:

图片

其中Φ l是第l个KAN层所对应的函数矩阵(B-spline函数矩阵),x为输入矩阵。

最简的KAN可以写为:

由于B-spline函数具备很好的可导性,因此在这里可以使用大家习惯的反向传播(BP)方法来进行KAN的训练。

2.2 架构细节

为了确保KAN实用,MIT团队还做了一些关键优化。

包括:

1)残差激活函数

使用一个基础(basis)函数 b(x)(类似于残差连接),使激活函数 Φ (x) 是基础函数 b(x) 和样条函数的和。

图片

2)初始化方式
每个激活函数都被初始化为 spline(x) ≈ 0^2。 而w根据MLP 中的线性层的初始化方式进行。

3)Spline网格的更新

据输入激活动态更新每个网格,以解决Spline在有界区域上定义但激活值在训练期间可能超出出固定区域的问题。

2.3 KAN的逼近与神经缩放

关于KAN缩放的基本观点浓缩为以下2点:

1)2层的KAN表征可能是非平滑的,更深的KAN表征可以获得更平滑的逼近。

2)有限维度的KAN就可以很好的逼近样本函数。

下面我们来看看缩放定律

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

由于数据域的网格可以以任意的刻度进行细粒度化。因此B-spline曲线可以任意精确的达到(逼近)目标函数,而且这一优势被KAN继承了。

相比之下,MLP 没有“细粒度”的概念。(MLP一般不按数据分区进行训练)

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

当然这一点可能也有一些问题,因为实际的AI芯片中并未对粒度计算提供太多的设计,激活函数个数越多,区间越细事实上会造成更大的存储带宽瓶颈。

3 KAN的可解释性

在解释之前,先通过稀疏正则化对KAN进行训练,然后剪枝。剪枝后的 KAN更容易解释。

MIT团队给出了解释KAN的基本流程:

图片

KAN的解释流程

1)稀疏化(Sparsification)(预处理)

对于KAN来说,

a) 线性权重被可学习的激活函数取代,因此需定义这些激活函数的 L1 范数,激活函数的 L1 范数定义为其 Np个输入的平均幅度;

b) 单独 L1范数 不足以实现 KAN 的稀疏化;还需要额外的熵正则化。

图片

2)可视化(Visualization)
将激活函数 Φl,i,j的透明度设置为与 tanh(βAl,i,j) 成正比,其中 β = 3 。小幅度的函数被忽略以聚焦重要函数。

3)剪枝(Pruning)
经过稀疏化惩罚训练后,一般还需要将网络修剪成更小的子网。在节点级别对 KAN 进行稀疏化,所有不重要的神经元都被修剪。

4)符号化(Symbolification)
如果猜测某些激活函数实际上是符号函数(例如 cos 或 log),则提供一个接口将其设置为指定的符号形式,例如fix_symbolic(l,i,j,f) 可以设置 (l , i, j) 激活为 f 。从样本中获得预激活(Preactivation) x 和后激活(Postactivation) y,并拟合仿射参数 (a, b, c, d),使得 y ≈ cf (ax + b) + d。这里的拟合可通过 a、b 的迭代搜索和线性回归来完成。

4 小结

4.1 KAN的发展空间

KAN还有进一步优化的巨大空间,包括:

1) 准确性。KAN的精度优于传统MLP结构。一些替代方案有可能进一步提高准确性,例如,Spline激活函数可能被径向基函数或其他核函数替换,或者使用自适应网格策略。

2) 计算效率。 目前KAN 计算效率较低的主要原因是不同的激活函数进行批量计算(通过同一函数处理大量数据)。如果通过将激活函数分组为多个组,可以在全部相同(MLP)和不同(KAN)的激活函数之间进行插值,组内的成员共享相同的激活函数。

图片

KAN准确性优于MLP

4.2 KAN的瓶颈

目前看,尽管KAN有很多优点,但其的最大瓶颈在于训练速度慢。根据MIT团队提供的信息,在参数数量相同的情况下,KAN 通常比 MLP 慢 10 倍。

由于训练算力限制,短期看KAN还是很难代替MLP的。如果想要获得类似Transformer架构的类似效果,走的路会更长,训练代价也要大很多。

长远看KAN可能逐渐在数学物理研究中广泛采用,然后逐渐进入主流舞台。

总体来说KAN的作者构建了一个非常好的基于KA定理的模型框架体系,并给出了足够的理论支撑,该文章估计会成为一代经典。

最后:

如果你想要进一步了解更多的相关知识,可以关注下面公众号联系~会不定期发布相关设计内容包括但不限于如下内容:信号处理、通信仿真、算法设计、matlab appdesigner,gui设计、simulink仿真......希望能帮到你!

5a8015ddde1e41418a38e958eb12ecbd.png

相关文章:

KAN网络最全解析——比肩MLP和Transformer?

1 基本思路 1.1 MLP与Spline的优缺点 多层感知器 (MLP)是深度学习的基础理论模块,是目前可用于逼近非线性函数的默认模型,其表征能力已由通用逼近定理证明。但MLP也有明显的缺点,例如在 Transformer中,MLP 的参数量巨大&#xf…...

ASP.NET学生信息管理系统

摘 要 本文介绍了在ASP.net环境下采用“自上而下地总体规划,自下而上地应用开发”的策略开发一个管理信息系统的过程。通过分析某一学校学生管理的不足,创建了一套行之有效的计算机管理学生的方案。文章介绍了学生管理信息系统的系统分析部分&#xff0c…...

图片改大小尺寸怎么改?几招教你搞定图片修改

在社交媒体平台上发布图片时,调整图片的尺寸大小可以确保图片适合平台的要求,不同的社交媒体平台可能对图片的尺寸有不同的要求,通过调整图片尺寸,可以更加完美的展现出来,那么有没有比较简单的图片改大小的方法呢&…...

Scala编程入门:从零开始的完整教程

目录 引言环境准备创建第一个Scala项目基本语法高阶概念进阶资源结语 引言 Scala是一种强大的、静态类型的、多范式编程语言,它结合了面向对象和函数式编程的特点。本教程将指导您如何从零开始学习Scala,并搭建一个简单的开发环境。让我们开始探索Scala…...

Proxmox VE 8 SDN创建VLAN隔离用户网络

作者:田逸(formyz) 在上一篇文章中,我们用SDN的Simple对租户(用户)网络实现了隔离功能,但它有个限制,仅仅能在单个物理节点上进行通信,而不能跨越物理节点(除…...

API低代码平台介绍3-异构数据源的数据查询功能

异构数据源的数据查询功能 在上一篇文章中我们通过API平台定义了一个最基本的数据查询接口,本篇文章我们将上升难度,在原有接口的基础上,实现在MySQL数据库和Oracle数据库同时进行数据查询。   什么场景会需要同时对异构数据源进行查询&…...

【Linux】-网络请求和下载、端口[6]

目录 一、网络请求和下载 1、ping命令 2、wget命令 3、curl命令 二、端口 1、虚拟端口 2、查看端口占用 一、网络请求和下载 1、ping命令 可以通过ping命令,检查指定的网络服务器是否可联通状态 语法:ping [ -c num ] ip或主机名 选项&…...

Github2024-05-10开日报 Top10

根据Github Trendings的统计,今日(2024-05-10统计)共有10个项目上榜。根据开发语言中项目的数量,汇总情况如下: 开发语言项目数量Python项目4TypeScript项目4JavaScript项目1Lua项目1C项目1Rust项目1Dart项目1 RustDesk: 用Rust编写的开源远…...

2016-2021年全国范围的2.5m分辨率的建筑屋顶数据

一、论文介绍 摘要:大规模且多年的建筑屋顶面积(BRA)地图对于解决政策决策和可持续发展至关重要。此外,作为人类活动的细粒度指标,BRA可以为城市规划和能源模型提供帮助,为人类福祉带来好处。然而&#xf…...

Gitea 上传用户签名

在 Gitea 的用户管理部分,有一个 SSH 和 GPG 的选项。 单击这个选项,可以在选项上添加 Key。 Key 的来源 如是 Windows 的用户,可以选择 Kleopatra 这个软件。 通过这个软件生成的 Key 的界面中有一个导出功能。 单击这个导出,…...

【原创】springboot+mysql物资库存管理系统设计与实现

个人主页:程序猿小小杨 个人简介:从事开发多年,Java、Php、Python、前端开发均有涉猎 博客内容:Java项目实战、项目演示、技术分享 文末有作者名片,希望和大家一起共同进步,你只管努力,剩下的交…...

vulnhub靶场之FunBox-5

一.环境搭建 1.靶场描述 Lets separate the script-kids from script-teenies.Hint: The first impression is not always the right one!If you need hints, call me on twitter: 0815R2d2 Have fun...This works better with VirtualBox rather than VMwareThis works bett…...

1分钟搞定Pandas DataFrame创建与索引

1.DataFrame介绍 DataFrame 是一个【表格型】的数据结构,可以看作是【由Series组成的字典】(共用同一个索引)。DataFrame 由按一定顺序排列的多列数据组成。设计初衷是将 Series 的使用场景从一维扩展到多维。DataFrame 既有行索引&#xff…...

【贪心算法】哈夫曼编码Python实现

文章目录 [toc]哈夫曼编码不同编码方式对比前缀码构造哈夫曼编码哈夫曼算法的正确性贪心选择性质证明 最优子结构性质证明 总结 Python实现时间复杂性 哈夫曼编码 哈夫曼编码是广泛用于数据文件压缩的十分有效的编码方法,其压缩率通常为 20 % 20\% 20%到 90 % 90\%…...

【RAG 博客】RAG 应用中的 Routing

Blog:Routing in RAG-Driven Applications ⭐⭐⭐⭐ 根据用户的查询意图,在 RAG 程序内部使用 “Routing the control flow” 可以帮助我们构建更实用强大的 RAG 程序。路由模块的关键实现就是一个 Router,它根据 user query 的查询意图&…...

鸿蒙ArkUI:【编程范式:命令式->声明式】

命令式 简单讲就是需要开发用代码一步一步进行布局,这个过程需要开发全程参与。 开发前请熟悉鸿蒙开发指导文档:gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md点击或者复制转到。 Objective-C ObjectiveC 复制代码 UIView *cardView …...

【练习2】

1.汽水瓶 ps:注意涉及多个输入&#xff0c;我就说怎么老不对&#xff0c;无语~ #include <cmath> #include <iostream> using namespace std;int main() {int n;int num,flag,kp,temp;while (cin>>n) {flag1;num0;temp0;kpn;while (flag1) {if(kp<2){if(…...

oracle 新_多种块大小的支持9i

oracle 新_多种块大小的支持 conn sys/sys as sysdba SHOW PARAMETER CACHE ALTER SYSTEM SET DB_CACHE_SIZE16M; ALTER SYSTEM SET DB_4K_CACHE_SIZE8M; CREATE TABLESPACE K4 DATAFILE F:\ORACLE\ORADATA\ZL9\K4.DBF SIZE 2M BLOCKSIZE 4K; CREATE TABLE SCOTT.A1 TABLESP…...

Collections工具类

类java.util.Collections提供了对Set、List、Map进行排序、填充、查找元素的辅助方法。 方法名说明void sort(List)对List容器内的元素排序&#xff0c;排序规则是升序void shuffle(List)对List容器内的元素进行随机排列void reverse(List)对List容器内的元素进行逆序排列void…...

java-函数式编程-jdk

背景 函数式接口很简单&#xff0c;但是不是每一个函数式接口都需要我们自己来写jdk 根据 有无参数&#xff0c;有无返回值&#xff0c;参数的个数和类型&#xff0c;返回值的类型 提前定义了一些通用的函数式接口 IntPredicate 参数&#xff1a;有一个&#xff0c;类型是int类…...

ollama-QwQ-32B微调实践:优化OpenClaw的鼠标操作准确率

ollama-QwQ-32B微调实践&#xff1a;优化OpenClaw的鼠标操作准确率 1. 为什么需要微调模型&#xff1f; 去年冬天&#xff0c;当我第一次用OpenClaw自动整理桌面文件时&#xff0c;眼睁睁看着它把"季度报表.xlsx"拖进了"娱乐"文件夹——这个哭笑不得的瞬…...

电商老板必看:用Excel的IF和VLOOKUP函数,轻松算出你的新老客户利润贡献比

电商精细化运营&#xff1a;用Excel透视新老客户利润贡献的实战指南 对于中小电商企业主来说&#xff0c;理解客户结构是精细化运营的第一步。你可能没有专业的BI工具&#xff0c;但Excel这个看似普通的办公软件&#xff0c;却能帮你挖掘出惊人的商业洞察。本文将带你一步步构建…...

OpenClaw+GLM-4.7-Flash:自动化技术文档翻译系统

OpenClawGLM-4.7-Flash&#xff1a;自动化技术文档翻译系统 1. 为什么需要自动化翻译系统 作为一名经常需要阅读英文技术文档的开发者&#xff0c;我长期被两个问题困扰&#xff1a;一是专业术语翻译不统一&#xff0c;同一份文档里"pipeline"可能被翻译成"管…...

Realistic Vision V5.1实战案例:教育行业教师形象照AI生成解决方案

Realistic Vision V5.1实战案例&#xff1a;教育行业教师形象照AI生成解决方案 1. 教育行业教师形象照的痛点与需求 在教育行业&#xff0c;教师形象照是学校官网、宣传材料、荣誉展示等场景的刚需。传统摄影方式存在以下痛点&#xff1a; 成本高昂&#xff1a;专业摄影棚拍…...

Squeezer性能优化指南:提升dApp响应速度的7个技巧

Squeezer性能优化指南&#xff1a;提升dApp响应速度的7个技巧 【免费下载链接】squeezer Squeezer Framework - Build serverless dApps 项目地址: https://gitcode.com/gh_mirrors/sq/squeezer Squeezer Framework作为构建无服务器去中心化应用(dApps)的强大工具&#…...

如何让foobar2000焕然一新?探索DUI皮肤配置的无限可能

如何让foobar2000焕然一新&#xff1f;探索DUI皮肤配置的无限可能 【免费下载链接】foobox-cn DUI 配置 for foobar2000 项目地址: https://gitcode.com/GitHub_Trending/fo/foobox-cn 你是否厌倦了千篇一律的音乐播放器界面&#xff1f;每天与音乐相伴数小时&#xff0…...

RDP Wrapper终极指南:解锁Windows多用户远程桌面完整功能

RDP Wrapper终极指南&#xff1a;解锁Windows多用户远程桌面完整功能 【免费下载链接】rdpwrap RDP Wrapper Library 项目地址: https://gitcode.com/gh_mirrors/rd/rdpwrap RDP Wrapper Library是一个革命性的开源工具&#xff0c;它能够让Windows家庭版用户也能享受到…...

电机控制进阶:从增量式与位置式PID到现代复合控制策略

1. PID控制的前世今生&#xff1a;从工业革命到智能时代 第一次接触PID控制器时&#xff0c;我被这个诞生于上世纪30年代的"古董级"算法震惊了。当时正在调试一台伺服电机&#xff0c;系统总是出现超调和振荡。导师递给我一张写着三个参数的纸条&#xff1a;"试…...

规范“信息安全”五大举措:江湖背调如何定义背调行业的“金融级”合规标准?

在《个人信息保护法》&#xff08;PIPL&#xff09;与《数据安全法》双重监管下&#xff0c;背景调查早已超出单纯人才信息核实范畴&#xff0c;升级为全流程隐私保卫战。针对AI易抓取结构化数据的行业痛点&#xff0c;江湖背调搭建金融级数据安全防护体系&#xff0c;落地五大…...

Ultimate Vocal Remover GUI:免费AI音频分离神器完整使用指南

Ultimate Vocal Remover GUI&#xff1a;免费AI音频分离神器完整使用指南 【免费下载链接】ultimatevocalremovergui 使用深度神经网络的声音消除器的图形用户界面。 项目地址: https://gitcode.com/GitHub_Trending/ul/ultimatevocalremovergui 想要从歌曲中提取纯净人…...