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

相关推荐
腾讯云开发者8 小时前
港科大熊辉|AI时代的职场新坐标——为什么你应该去“数据稀疏“的地方?
人工智能
工程师老罗8 小时前
YoloV1数据集格式转换,VOC XML→YOLOv1张量
xml·人工智能·yolo
yLDeveloper8 小时前
从模型评估、梯度难题到科学初始化:一步步解析深度学习的训练问题
深度学习
喵手8 小时前
Python爬虫实战:旅游数据采集实战 - 携程&去哪儿酒店机票价格监控完整方案(附CSV导出 + SQLite持久化存储)!
爬虫·python·爬虫实战·零基础python爬虫教学·采集结果csv导出·旅游数据采集·携程/去哪儿酒店机票价格监控
Coder_Boy_8 小时前
技术让开发更轻松的底层矛盾
java·大数据·数据库·人工智能·深度学习
2501_944934738 小时前
高职大数据技术专业,CDA和Python认证优先考哪个?
大数据·开发语言·python
啊森要自信9 小时前
CANN ops-cv:面向计算机视觉的 AI 硬件端高效算子库核心架构与开发逻辑
人工智能·计算机视觉·架构·cann
helloworldandy9 小时前
使用Pandas进行数据分析:从数据清洗到可视化
jvm·数据库·python
2401_836235869 小时前
中安未来SDK15:以AI之眼,解锁企业档案的数字化基因
人工智能·科技·深度学习·ocr·生活