Kolmogorov-Arnold-Networks(KANs) 论文阅读
Daisy Author

2024年5月初,一篇名为 KAN 的论文席卷人工智能领域,引发巨大关注,怀着好奇的心理,我拜读了原论文,玩了玩作者开源的Notebook Demo,并做此纪录。

文章链接 KAN: Kolmogorov-Arnold Networks

概要

KAN被视为MLP的替代品,其具有强大的数学基础与可解释性。

从可视化结构中可以看出,KAN与MLP有着相似的结构。KAN也存在节点(nodes)和边(edges),与MLP不同的是,KAN的边是可学习的激活函数,而节点则是对特定边对的传值进行简单的求和。

可以看出,KAN是对该定理的直观反映,KAN的输入向量维数为n,其思想便是学习用于表示目标函数的单变量连续函数集合,其可以表示为一个函数矩阵:

其基本架构图如图所示(自绘):

kan

可学习的激活函数

KAN的可学习激活函数使用B-spline构建,其在有界区域上定义了Spline函数,并通过网格化控制分辨率。可以看到,KAN边上的可学习激活函数实质上是以有限网格为中心点的样条函数的线性组合:

为可学习参数,可以通过增加有界区域内的网格数量来提高分辨率,使得B-spline曲线能够以任意精度逼近函数集。同时,激活函数越多,区间越细会造成更大的存储瓶颈。

KAN的良好性质

Ⅰ 可解释性

  1. 稀疏化:L1范数与熵正则化(个人理解是为了限制B-spline函数的取值范围减少计算量?)
  2. 可视化
  3. 剪枝:简化模型复杂度,暂时不知道如何实现
  4. 符号化

Ⅱ 缓解灾难性遗忘问题

KAN的架构使其天然规避了灾难性遗忘问题

更深的KAN网络

根据KA定理,理论上只用两个KAN层即可拟合所有函数,但两层拟合的函数是非平滑的,作者提出可以通过堆叠更多KAN来达到更高的数值逼近的精度与更平滑的拟合结果。

待解决的问题

  1. 训练速度慢
  2. 算法效率低
  3. 实现复杂性高
  4. 泛化能力未知
  5. 理论限制

我的思考

由于论文比较长没有时间精读,对KAN的理解还停留在初级且片面的阶段,简单说说我的思考。

首先说说优点,KAN提出了一种新型的神经网络架构,颠覆了传统MLP的激活方法。其将权重参数替换成可学习的单变量函数,提高了准确性和可解释性,文章提出小规模KANs可以取得与大规模MLPs相当甚至更好的准确度。KANs在多个领域(如AI4S)展现出良好的应用前景。

其次说说缺点,KAN暂时不支持GPU加速,它的训练过程非常缓慢。同时,其效率遭受质疑,大致浏览了一下论文Github仓库的issue,有人比对了相同参数量的KANs与MLPs在MNIST等数据集上分类的准确率,发现KANs随参数量变化识别准确率有较大的浮动,尤其是在4.2w参数量下,KANs的准确率比MLPs低7个百分点,也许KANs在一些具体任务上存在短板?

总的来说,KANs向以通用近似定理为理论底座的深度学习之湖掷入了一块石头,粗略了解后,觉得是很有意思的工作,作者开源的tutorials里的笔记本也比较好玩,这两天有时间也想尝试一下验证KANs在MNIST手写数字分类任务的表现。