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

KAN(Kolmogorov-Arnold Networks)通俗理解

KAN论文地址:https://arxiv.org/abs/2404.19756

一、KAN 的原理:像 “定制化导线” 拼出复杂功能

可以把 KAN(Kolmogorov-Arnold Networks)理解成一套 “灵活的信号传输系统”,核心思路来自一个数学定理 ——Kolmogorov-Arnold 表示定理,即KART(Kolmogorov–Arnold Representation Theorem),这个定理的通俗意思是:“再复杂的多变量函数(比如用多个因素预测结果的情况),都能拆成一个个单变量函数的组合”。

具体到 KAN 的结构,我们可以想象它有几层 “节点”,节点之间用 “导线” 连接:

  • 这些 “导线” 不是普通的电线(像 MLP 里固定的权重),而是能自己学习 “传输规则” 的定制化导线—— 每根导线里都装了一个 “可学习的激活函数”(通常用 “B 样条函数”,可以理解成能灵活弯曲的曲线)。
  • 节点的作用很简单,只负责 “汇总信号”:比如某个节点会收集所有连到它的 “导线” 传来的信号,直接加起来传给下一层,自己不做任何复杂处理。

举个例子:如果用 KAN 处理 “根据 EEG 信号预测看到的图像”(对应论文里的任务),EEG 的每个通道信号是 “输入节点”,最终的图像特征是 “输出节点”。连接它们的 “导线” 会自己学习:“通道 1 的信号该怎么变换,才能和通道 3 的信号配合,最终对应到‘苹果’的图像特征”—— 每根导线的变换规则(激活函数)都是独立学习的,能精准适配数据里的复杂关联。

二、KAN 与 MLP 的关系:替代者,而非完全不同的 “新物种”

MLP(多层感知器)是我们熟悉的 “基础款神经网络”,KAN 是为了解决 MLP 的缺点而生的 “升级替代方案”,两者的核心区别和联系可以用 “工厂生产” 来类比:

Figure 0.1:MLPs VS KAN(ref.KAN: Kolmogorov-Arnold Networks)

1. 核心区别:“固定工序” vs “定制工序”

  • MLP 像 “标准化工厂”:它的每一层都有固定流程 —— 先把输入信号用 “固定权重” 做线性组合(比如 “信号 1×0.3 + 信号 2×0.5”),再用一个固定的激活函数(比如 ReLU,像个 “开关”,只保留正数信号)处理。不管数据是什么规律,这个 “线性组合 + 固定激活” 的工序是不变的,只能通过调整 “权重” 来适配数据。缺点很明显:如果数据里有复杂的非线性关系,MLP 需要堆很多层、很多节点才能勉强拟合,不仅参数多、训练慢,还像个 “黑箱”—— 不知道哪个权重起了关键作用。

  • KAN 像 “定制化工厂”:它把 MLP 里 “固定的权重 + 固定的激活” 拆成了 “每根导线的定制激活函数”—— 不再用统一的 “线性组合 + ReLU”,而是让每根连接节点的 “导线” 自己学习适合的变换规则。比如处理 EEG 信号时,对 “枕叶通道”(负责视觉信息的脑区)的导线,会学到和 “额叶通道” 完全不同的变换规则,更精准地捕捉数据规律。优点是:用更少的参数就能达到甚至超过 MLP 的效果(比如论文里提到,2 层宽 10 的 KAN,比 4 层宽 100 的 MLP 精准 100 倍),而且 “导线” 的激活函数能可视化 —— 你能看到哪根导线对结果影响最大,解释性更强。

2. 共同点:都是 “全连接结构”,目标一致

两者都是 “全连接” 的 —— 前一层的每个节点都会连接到后一层的每个节点,没有像 CNN 那样的 “局部连接”;而且核心目标相同:都是通过多层变换,把输入数据映射到想要的输出(比如 数据→分类结果)。

简单说:KAN 不是推翻了 MLP 的结构,而是把 MLP 里 “僵硬的工序” 改成了 “灵活的定制工序”,既保留了 MLP 处理复杂数据的能力,又解决了它 “参数多、解释性差” 的缺点。

总的来说,KAN 是 MLP 的 “升级版替代方案”:MLP 用 “固定激活函数 + 可调整权重” 处理数据,像标准化生产;KAN 用 “可学习的激活函数(装在导线上)+ 简单节点汇总”,像定制化生产,能更高效、更精准地拟合复杂数据,还能让人看懂它的 “决策过程”。

三、安装KAN 

优先方案:无需安装 git,直接下载 pykan 源码手动安装。

1. 下载 pykan 源码压缩包
  1. 打开 GitHub 仓库链接:https://github.com/KindXiaoming/pykan
  2. 点击页面右上角的 Code 按钮,选择 Download ZIP,将源码压缩包保存到本地(如 D:\pykan-master.zip)。
2. 解压并本地安装
  1. 右键解压 pykan-master.zip,得到文件夹 pykan-master(确保路径无中文,如 D:\pykan-master);
  2. 打开 Anaconda Prompt,激活你的 conda 环境(conda activate 环境名称);
  3. 切换到解压后的 pykan-master 文件夹路径:
    cd D:\pykan-main
  4. 执行本地安装命令:
    pip install -e .

安装成功后,会提示 “Successfully installed pykan”。

http://www.dtcms.com/a/445935.html

相关文章:

  • 李飞飞物理世界 AI:价值维度、技术瓶颈与突破路径研究
  • 企业网站建设网站优化推广网站开发连接效果
  • k8s学习(二)——kubernetes整体架构及组件解析
  • K8s学习笔记(十三) StatefulSet
  • k8s学习-pod的生命周期
  • 校园网站建设申请报告企业网站建设在国内现状
  • php 8.4.1 更新日志
  • VR大空间资料 01 —— 常用VR框架对比
  • 重庆渝中区企业网站建设哪家专业建湖人才网官网登录
  • 【Linux】IP
  • 近红外相机在机器视觉检测中的应用
  • 【QT常用技术讲解】multimedia实现指定分辨率打开摄像头
  • 阿里巴巴网站的搜索引擎优化案例邢台做网站的价格究竟多少钱?
  • 一个学校随机点名系统(代excel 自定义导入名字,+随机点名)
  • 苍穹外卖-缓存商品、购物车功能
  • 海南住房和城乡建设厅网站首页建站之星怎么使用
  • 番茄畅听音乐版自动化任务实现教程
  • java基础-12 : 单列集合(Collection)
  • 查看邮箱注册过的网站百度资源搜索引擎
  • 网站建设常用编程语言square wordpress
  • 动规:01背包
  • 返利APP的“订单追踪”技术难点:如何通过埋点+消息队列(RocketMQ)实时同步淘宝/京东订单状态?
  • Net开发工具最新Rider 2025使用
  • 基于华为openEuler部署Dillinger个人文本编辑器
  • wordpress 标签固定链接宁波seo网络推广外包报价
  • 网站建设数据库是什么百度一下京东
  • 【Leetcode hot 100】131.分割回文串
  • ARM - GCC - 建立自己的命令行编译环境
  • Nginx限流配置
  • 大岭山做网站九亭做网站公司