type
status
date
slug
summary
tags
category
icon
password
本篇文章简单记述了对Kolmogorov-Arnold Networks(KAN)技术的理解,文章链接如下:
大纲
依据本文一作Ziming Liu的解读,本文分为大致以下几点进行简读
- 数学背景
- KAN架构
- 算法细节
- 样例表现
- 思考
1. 数学背景
1.1 Spline:样条函数
根据维基百科,在数学学科数值分析中,样条(Spline)是一种特殊的函数,由多项式分段定义,样条函数是一类分段(片)光滑、并且在各段交界处也有一定光滑性的函数。
(该名称来源于早起工程制图,为了将一些固定点连成一条光滑的曲线,采用具有弹性的木条固定在这些点上,通过样条画出来的曲线不仅经过各固定点,而且连续光滑)
作为分段多项式函数,样条函数的每两个点之间用一个多项式来表示,这些多项式的阶数相同,但是系数是不一样的。
线性样条
二次样条
三次样条
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(shallow KAN)的网络架构原理,整体还是比较清晰的。利用KART,很多个类似正弦函数的片段加起来就能拟合任意形状的函数,换句话说,用B-Spline这一种激活函数两次求和就够了。其中每个结点,即每个函数片段可以对应MLP中的非线性转换作用的激活函数。其中代表B-Spline函数,则为可学习的参数。
在该结构中,使用了两种尺度或分辨率的组合:粗粒度(红圈)和细粒度(蓝圈)网格,在保持计算效率的同时和可以精确捕捉和适应函数变化。上图中值代表网格尺度,越大粒度越细。浅层KAN的结构其实以前已经有人做过研究,但都仅局限于两层变换,本文作者的主要贡献之一便是使网络变深,构建深层KAN(deep KAN)。此外,深层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 参数计数
为了简化这一部分,作出如下假设:
- KAN网络的深度为,每层网络的节点数都相等且为;
- 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的优越性。
- ,Bessel函数;
- ;
- ;
- ;
- 。
上述的实验例子都是已经证实过的可知用某确切Spline函数设置可解的,换句话说就是可知对每个Symbolic最优的KAN架构。但这种理想情况并不常见。
4.2 Special Functions
在实践中,最优的KAN被承诺存在,但并不知其先验形状。因此实验被拓展到更多的特殊函数以验证其有效性。
实验又一次的证明了KAN相对于MLP的优越性
4.3 解PDE
本论文作者的方向是AI4S,解PDE也正是他提出KAN的最初目的,挑战MLP的地位其实并非本意。实验中作者首先在经典的零狄利克雷边界的Poisson方程上进行比较,其中定义空间域
令.该函数的标准解为
实验利用了物理嵌入神经网络PINN(有幸这是我本科研究的一部分)的思想,最小化网络在PDE上的残差来求解。
4.4 持续学习的比较
通过在拥有5个高斯峰的一维回归任务上持续学习,展示了KAN可以完全避免灾难性遗忘,而MLP不具备这样的能力。
思考
尽管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没有完全向符号主义靠拢,也吸收了连接主义思想。
参考资料
- 作者:Morgan Ren
- 链接:https://fantasy-ren.tech/about-me/article/kan
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。