type
status
date
slug
summary
tags
category
icon
password
本篇文章简单记述了对Kolmogorov-Arnold Networks(KAN)技术的理解,文章链接如下:
 

大纲

依据本文一作Ziming Liu的解读,本文分为大致以下几点进行简读
  1. 数学背景
  1. KAN架构
  1. 算法细节
  1. 样例表现
  1. 思考

1. 数学背景

1.1 Spline:样条函数

根据维基百科,在数学学科数值分析中,样条(Spline)是一种特殊的函数,由多项式分段定义,样条函数是一类分段(片)光滑、并且在各段交界处也有一定光滑性的函数。
(该名称来源于早起工程制图,为了将一些固定点连成一条光滑的曲线,采用具有弹性的木条固定在这些点上,通过样条画出来的曲线不仅经过各固定点,而且连续光滑)
 
notion image
作为分段多项式函数,样条函数的每两个点之间用一个多项式来表示,这些多项式的阶数相同,但是系数是不一样的。
线性样条
 
 
 
 
 
 
 
二次样条
 
 
 
 
 
 
 
三次样条
notion image
notion image
notion image
KAN网络的一个核心就是样条函数,不像MLP,KAN没有保留线性权重,每个权重参数都被参数化为样条的可学习的1维单变量函数所取代。此外,根据作者观点,KAN更像是样条函数和MLP的组合,利用各自的优势并且避免各自的劣势。例如Spline对于低维函数是精确的,易于局部调整,但它无法利用组合结构而存在严重的CoD的诅咒。MLP不受CoD的影响,但由于无法优化单变量函数因此在低维情况下不够精确。为了准确地学习一个函数,一个模型不仅要学习组成结构(外部自由度),还要很好的近似单变量函数(内部自由度)。因此KAN作为两者的结合,外部相似于MLP,内部使用了Spline。

1.2 Kolmogorov-Arnold表示定理

👉
相比于MLP受启发于通用近似定理(Universal Approximation Theorem),KAN受启发于Kolmogorov-Arnold Representation Theorem(KART),若是多元连续函数,则可以被写成一个有限的单元连续函数和二元加法的组合。大致思想即:利用一组简单函数来表示一个多元函数。
where and .
两层KAN Layer的shallow KAN
两层KAN Layer的shallow KAN
该图为浅层KAN(shallow KAN)的网络架构原理,整体还是比较清晰的。利用KART,很多个类似正弦函数的片段加起来就能拟合任意形状的函数,换句话说,用B-Spline这一种激活函数两次求和就够了。其中每个结点,即每个函数片段可以对应MLP中的非线性转换作用的激活函数。其中代表B-Spline函数,则为可学习的参数。
在该结构中,使用了两种尺度或分辨率的组合:粗粒度(红圈)和细粒度(蓝圈)网格,在保持计算效率的同时和可以精确捕捉和适应函数变化。上图中值代表网格尺度,越大粒度越细。浅层KAN的结构其实以前已经有人做过研究,但都仅局限于两层变换,本文作者的主要贡献之一便是使网络变深,构建深层KAN(deep KAN)。此外,深层KAN的宽度也不局限于
三层KAN Layer的shallow KAN,其中
三层KAN Layer的shallow KAN,其中
根据KART,两层KAN网络就可以表示所有光滑函数,那为什么要更深?原始的两层构造并没有约束激活函数是否是光滑的,有时需要非光滑或分形的激活函数来表示目标函数(例如)。为避免这种情况,作者因此加深网络。

2. KAN架构

给定机器学习任务,包含输入输出对,目的是想找到一个函数能得到。公式1表明了通过找到合适的单元函数,情况是可行的,这启发了作者去设计一个神经网络,它可以显式的参数化公式1。既然所有的用来学习的函数都是单元函数,因此通过讲所有的1D函数参数化成B-Spline曲线,包含局部B-Spline基函数的的可学习参数,这也就是KAN的原型,即浅层KAN。为了加深加宽KAN,受MLP的启发,定义了KAN Layer。

2.1 KAN Layer

一个拥有-D输入和-D输出的KAN层可以被定义为1D函数矩阵
其中包含可训练的参数。
KAN的形状可以被定义为整数数组,其中是在第层上的节点数量。
  • : 第层上的第个节点
  • : 的激活值
  • : 连接的激活函数(因此在第层和第层之间,有个激活函数)
的前激活值为,后激活值为
以此类推,神经元的激活值就是所有他的前激活函数的后激活值之和,表示为
用矩阵的表示方法为
  • : KAN第层的函数矩阵,也就是所称的KAN层

2.2 KAN网络

一个KAN网络因此通常是个层的组合:输入为,输出为
为了直观比较,。MLPs分开使用进行非线性化操作,而KANs仅使用来全部操作。
👉
相比于原始的浅层KAN的形状是,深层的KAN变成了多层级联,进一步放开了结构限制使隐层节点数可以自由发挥。

3. 算法细节

3.1 B-Spline函数

常见的B-Spline函数是由Cox-de Boor递归函数组成,这也是KAN作者实际工程中所采用的。
当B-Spline的度数为时,就像常数片段多项式
对于更高阶的,B-Spline函数就被递归的定义
👉
一个优美的公式,但是由于其非线性的问题,计算过程很多都是递归的形式,也造成了对算力的极大消耗。后期许多跟进的研究比如Efficient-KAN都在此基础上有进行优化。
 

3.2 残差激活函数

定义了,其中包含了基础函数和Spline样条函数
👉
由于单纯的使用spline函数作为激活函数会导致函数不光滑,当网格节点增多时spline近似于震荡。因此作者在这里加入光滑函数作为基底,以此为基础加入spline的扰动进行初始化。
其中设置
并且样条函数通常参数化为B-Spline样条的线性组合
其中是可训练参数。
👉
- 原则上是多余的,因为它可以成为的一部分,但这个仍被包含用来更好地控制激活函数的整体大小
👉
- 由Google Brain的论文首次提出,可以被看作是Sigmoid函数的变体

3.3 尺度初始化

每个激活函数都被初始化为,并使用Xavier初始法初始化
👉
这里也有作者的一些trick,spline函数的初始化并不完全是0,而是几乎为0,否则节点就会出现简并的问题。这一点类似于MLP中初始化也并不完全都是0。

3.4 更新Spline网格

根据输入激活动态更新每个网格,以解决Spline样条在有界区域上的定义。但在训练过程中,激活值可以从固定区域里进化。

3.5 参数计数

为了简化这一部分,作出如下假设:
  1. KAN网络的深度为,每层网络的节点数都相等且为
  1. Spline函数的阶数为(通常),区间为(对应的网格点)
根据作者所述,这样架构的KAN总共有大约个参数,相反的是在MLP中这样的架构只有个参数,这看起来比KAN更有效。但幸运的事KAN往往只需要更小的架构,更少的节点数就能得到更好的泛化能力和可解释性。

3.6 准确性提升-Grid Extension

通过改变网格大小,Spline函数可以被任意调整其精确度,由此作为继承者,KAN也有同样的特性,并且不需要从头重新训练。基本逻辑是开始时使用较少参数训练,然后通过简单的细化样条网格来增加参数,并继续训练该模型。
👉
这是KAN利用了Spline特性的又一大优势。相比于MLP的为了提高精度,需要昂贵的增加宽度和深度并且重新训练,KAN仅需利用Grid Extension就可以继续优化。

4. 样例表现

在原作中,两种任务被用来测试并验证相对于MLP而言KAN的有效性-回归和解PDE。此外,作者也在精确性(RMSE Loss)和模型复杂度(参数数量)两个维度上对KAN和MLP进行了比较。

4.1 Symbolic Formula

作者首先用了5个Symbolic Formula的例子实验,这5个函数都可以被KART表示,因此已经在理论上证明了KAN的优越性。
  1. ,Bessel函数;
  1. ;
  1. ;
  1. ;
在5个简单例子上的对KAN和MLP的比较结果。
在5个简单例子上的对KAN和MLP的比较结果。
👉
上述的实验例子都是已经证实过的可知用某确切Spline函数设置可解的,换句话说就是可知对每个Symbolic最优的KAN架构。但这种理想情况并不常见。

4.2 Special Functions

在实践中,最优的KAN被承诺存在,但并不知其先验形状。因此实验被拓展到更多的特殊函数以验证其有效性。
KAN和MLP用于拟合特殊函数的比较。
KAN和MLP用于拟合特殊函数的比较。
实验又一次的证明了KAN相对于MLP的优越性

4.3 解PDE

本论文作者的方向是AI4S,解PDE也正是他提出KAN的最初目的,挑战MLP的地位其实并非本意。实验中作者首先在经典的零狄利克雷边界的Poisson方程上进行比较,其中定义空间域
.该函数的标准解为
实验利用了物理嵌入神经网络PINN(有幸这是我本科研究的一部分)的思想,最小化网络在PDE上的残差来求解。
PDE上的比较。KAN有更快的收敛速度,更低的loss以及更陡峭的缩放定律。
PDE上的比较。KAN有更快的收敛速度,更低的loss以及更陡峭的缩放定律。

4.4 持续学习的比较

通过在拥有5个高斯峰的一维回归任务上持续学习,展示了KAN可以完全避免灾难性遗忘,而MLP不具备这样的能力。
notion image

思考

尽管DL界对于深度网络的架构有各种变形,但都是基于MLP的逻辑,KAN的出现无疑是对DL的一种更底层上的启发。尽管KAN的原始思想并不新颖,过往的关于浅层KAN的实验也受到了硬件发展的约束,但学术界再一次有工作聚焦到了KART上,并通过结合更先进的硬件技术和深层KAN的架构证明了这种思想的有效性。相比于MLP,实验证明了即使拥有更少的参数和更简单的架构,KAN都具有更好的表现,尽管当参数数量相同时,KAN由于其内部的递归运算导致计算时间又远大于MLP,但这一劣势也会在未来被算力的发展所缓解。此外,通过将非线性的复杂问题通过内部函数化,提高内部自由度,降低外部自由度,这一工作预示了AI学术界即将开始一小波从MLP的整体论走向了KAN的还原论的趋势,符号主义相关的研究也会有新的活力迸发。
 
当然,关于KAN的争议也是存在的。在KAN出来的几周内,有许多关注的研究员已经尝试了将KAN应用于常规的AI应用场景中,例如结合CNN做图像识别,其结果并不完全优于MLP,实际的二者选择更应看数据和任务本身,是更贴近还原论还是整体论。正如作者所说,KAN的出现本身是为了AI4S中的一些问题,作者更倾向于将其描述成AI+Science的“语言模型”,这也符合KAN的核心思想,即利用抽象连接的曲线的数学模型来拟合Science中的各种更抽象的函数,KAN没有完全向符号主义靠拢,也吸收了连接主义思想。
 

参考资料

 
 
AutoGen:构建股票分析的多代理智能体如何利用Notion快速建立个人网站
Loading...
Morgan Ren
Morgan Ren
我经常幻想💭
个人介绍
Morgan Ren,目前在英国伦敦生活。研究生就读于UCL的金融科技FinTech专业,本科毕业于曼彻斯特大学人工智能AI专业。

我的研究兴趣专注于使用AI技术解决金融市场问题,但对深度学习也有丰富经验。
我即将于今年夏天开始一段使用AI探究时间序列因果性的研究,并在去年已经完成了一段使用神经网络求解偏微分方程的包含大量实验性研究的项目。