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"。

相关推荐
无心水30 分钟前
【分布式利器:腾讯TSF】10、TSF故障排查与架构评审实战:Java架构师从救火到防火的生产哲学
java·人工智能·分布式·架构·限流·分布式利器·腾讯tsf
我的xiaodoujiao2 小时前
使用 Python 语言 从 0 到 1 搭建完整 Web UI自动化测试学习系列 38--Allure 测试报告
python·学习·测试工具·pytest
小鸡吃米…7 小时前
机器学习 - K - 中心聚类
人工智能·机器学习·聚类
好奇龙猫8 小时前
【AI学习-comfyUI学习-第三十节-第三十一节-FLUX-SD放大工作流+FLUX图生图工作流-各个部分学习】
人工智能·学习
沈浩(种子思维作者)8 小时前
真的能精准医疗吗?癌症能提前发现吗?
人工智能·python·网络安全·健康医疗·量子计算
minhuan8 小时前
大模型应用:大模型越大越好?模型参数量与效果的边际效益分析.51
人工智能·大模型参数评估·边际效益分析·大模型参数选择
Cherry的跨界思维8 小时前
28、AI测试环境搭建与全栈工具实战:从本地到云平台的完整指南
java·人工智能·vue3·ai测试·ai全栈·测试全栈·ai测试全栈
MM_MS8 小时前
Halcon变量控制类型、数据类型转换、字符串格式化、元组操作
开发语言·人工智能·深度学习·算法·目标检测·计算机视觉·视觉检测
ASF1231415sd8 小时前
【基于YOLOv10n-CSP-PTB的大豆花朵检测与识别系统详解】
人工智能·yolo·目标跟踪
njsgcs9 小时前
ue python二次开发启动教程+ 导入fbx到指定文件夹
开发语言·python·unreal engine·ue