前不久,麻省理工学院发表的一篇名为《KAN:Kolmogorov-Arnold Networks》的论文在机器学习社区中引起了轰动,这个创新框架被称为 Kolmogorov-Arnold 网络 (KAN)。它为神经网络提供了一个全新的视角,并提出了一种可能的替代传统的多层感知机(MLP)神经网络新方案。
MLP是机器学习中近似非线性函数的默认模型,其表达能力得到了通用近似定理的保证。然而,MLP具有可解释性差,模型遗忘等缺点。
KAN则受到Kolmogorov-Arnold表示定理的启发。与 MLP 类似,KAN 实际上也具有全连接结构,区别在于,MLPs在节点(神经元)上放置固定的激活函数,而 KAN在边缘(权重)上放置的是可学习的激活函数。因此,KAN网络完全没有线性权重矩阵:每个权重参数都由一种可学习的一维样条函数替代。KAN网络的节点仅对输入信号进行求和,不进行任何非线性处理。
1. Kolmogorov-Arnold表示定理
KAN的主要理论依据是 Kolmogorov-Arnold 定理,中文叫做科尔莫戈洛夫-阿诺尔德表示定理。这个定理是由苏联数学家安德烈·科尔莫戈洛夫(Andrey Kolmogorov)首先提出,并由他的学生弗拉基米尔·阿诺尔德(Vladimir Arnold)在1957年进一步发展。定理最初的动机是探讨多元函数可以如何被一组更简单的函数表示。Vladimir Arnold 和 Andrey Kolmogorov证明了,如果 f 是在有界域上的多变量连续函数,则 f 可以被写成单变量连续函数加法二元运算的有限组合。更具体地说,对于一个光滑的f:[0, 1]→R,
其中,。从某种意义上说,这表明了唯一真正的多变量函数是加法的,因为每个其他函数都可以用单变量函数和求和来表示。有人可能天真地认为这对机器学习来说是个好消息:学习高维函数归结为学习多项式数量的一维函数。然而,这些一维函数可能是不光滑甚至是分形的(fractal),因此在实践中可能无法学习。由于这种病态行为,KA定理基本上被判了死刑,在机器学习中被认为在理论上是正确的,但在实践中无用。原始的KA公式,它只有两层非线性和隐藏层中的少量项。
2. KAN网络
作者借鉴MLP架构思路,抽象出KA层的概念将网络推广到任意宽度和深度;考虑到科学和日常生活中的大多数函数通常是光滑的,并且具有稀疏的组合结构,可能有利于平滑的 KA 表示。这里的哲学与物理学家的思维方式接近,他们通常更关心典型情况而不是最坏情况。
首先,每个可学习的非线性函数都是单变量函数,只有一个输入,将其参数化为一个B-样条曲线ϕ(x),其局部的B-样条基础函数的系数𝑐𝑖 是可学习的。KAN需要更多的层来堆叠一个更深的网络。那KAN的层是什么呢?MLP的层是σ(ωx+b),那么KAN就是多个单变量函数的集合。假设一个KAN的layer输入维度为nin,输出维度是nout,那么这个层有如下表示:
Φ={ϕq,p},p=1,2,…,nin,q=1,2,…,nout
ϕq,p具有可学习的参数。现在如果来表示一下Kolmogorov-Arnold理论,内部函数的nin=n, nout=2n+1外部那个函数的 𝑛𝑖𝑛=2𝑛+1, 𝑛𝑜𝑢𝑡=1nin=2n+1, nout=1,所以它实际就是两个的KAN layer。因此更深的Kolmogorov- Arnold表示意味着堆更多的KAN layer。
不失一般性,假设这个网络是L层的,用ni表示第i层节点的数量,那么一个KAN就可以表示为:[n0,n1,…,nL]𝑛。用 (𝑙,𝑖)(l,i) 定义第l𝑙层的第 i个神经元,该神经元激活值为x(l,i)。l层和l+1层之间之间有nlnl+1个激活函数。根据这个全连接的特点,可以给出激活函数的符号表示如下:
ϕl,i,j,l=1,2,…,L-1,i=1,2,…,nl+1,j=1,2,…,nl
ϕl,i,j激活函数的输入是xl,i,输出是xl,i,j=ϕl,i,j(xl,i),因此,l+1层的节点用矩阵可以表示为:
当L个KAN layer被叠加后,可以表示为(ΦL-1○ ΦL-2○…○ΦL-1○Φ0)x。一个通用的KAN网络是L层的组合,给定一个输入向量x0 ∈ Rn,KAN 的输出是:
KAN(X)=(ΦL-1○ ΦL-2○…○ΦL-1○Φ0)x
所有操作都是可微分的,因此我们可以使用反向传播训练 KAN。为了比较,一个 MLP 可以写成仿射变换 W 和非线性 σ 的交错:
MLP(X)=(ΦL-1○ σ○ΦL-2○…○ΦL-1○ σ○Φ0)x
很明显,MLP 将线性变换和非线性分开处理,而 KAN 将它们统统合在 Φ 中。
KAN 只不过是样条函数和 MLP 的组合,利用了它们各自的优势并避免了各自的弱点。样条函数对低维函数精确,易于局部调整,并且能够在不同分辨率之间切换。然而,由于无法利用组合结构,样条函数存在严重的维度诅咒(curse of dimensionality,COD)问题。另一方面,MLP 由于其特征学习而不太受维度诅咒的影响,但在低维度上比样条函数的精度低,因为无法优化一元函数。为了准确地学习一个函数,模型不仅应该学习组合结构(外部自由度),还应该很好地近似一元函数(内部自由度)。KAN 是这样的模型,因为它们在外部类似于 MLP,在内部类似于样条函数。因此,KAN 不仅可以学习特征(由于它们与 MLP 的外部相似性),还可以将这些学习到的特征优化到很高的精度(由于它们与样条函数的内部相似性)。
3. 实验结果
假设有一个深度为 L,每个层都具有相等宽度 N,在 G 个间隔上(对应 G + 1 个网格点),每个样条的阶数为 k(通常 k = 3。)那么总共有个参数。相比之下,深度为L和宽度为N的 MLP只需要个参数,似乎比 KAN 更有效率。幸运的是,KAN 通常需要比MLP 更小的N,这不仅节省了参数,还实现了更好的泛化并有助于可解释性。
作者还设计了一系列实验,证明KAN在可解释性、拟合精度等方面的优势。与传统的MLPs相比,KAN网络具有以下优点:
更高的精度:实验结果显示,KAN网络在数据拟合和偏微分方程求解等任务中可以达到或超过MLPs的准确度。
更好的解释性:KAN网络具有很好的解释性,其可视化和交互性使得模型的行为和结果更容易被人类用户理解。
更快的神经缩放定律:KAN网络比MLPs具有更快的神经缩放定律,随着模型规模的增加,性能提升速度更快。
KAN网络在函数拟合、偏微分方程求解以及处理凝聚态物理等领域都表现出比MLPs更好的效果,具有广泛的应用前景。
作者认为,KAN 最大的瓶颈在于训练速度缓慢,与相同数量的参数相比,KAN 通常比 MLP 慢10倍。同时认为 KAN 的训练速度慢更多地是未来需要改进的工程问题,而不是根本性限制。然而,在其他情况下,KAN 应该与 MLP 相媲美或更好,这使得尝试 KAN 变得有价值。下图中的决策树可以帮助确定何时使用 KAN。简而言之,如果您关心解释性和/或准确性,并且缓慢的训练不是主要问题,我们建议尝试 KAN。
4. 个人想法
KAN的本质在我看来,就是KA定理+MLP+Spline的结合体。虽然是一个结合,但是KAN这篇工作还是非常有价值的。可能有些人说它效果可能并没那么好,但是这篇文章至少说明了KAN是可以work的,并且可以做到更深层的KAN。
KAN的架构以及在可解释性、求解偏微分方程等方面的优势,使得网上出现了KAN能否取代MLP的巨大争论。个人觉得,KAN不可能取代MLP,理由如下:
1. KAN的训练速度比MLP慢,这可能会影响到它在大规模数据集上的应用。
2. 目前的KAN也有一些不足:一是无法拆分同一个变量、不同函数的组合。比如x+x2+y,就没法拆分一次和二次项,对于嵌套的函数,例如sin(𝑥2) ,似乎也没法拆分。要直接解释这样的函数,确实是个难题。
3. KAN在不同类型的任务和数据集上的泛化能力还需要进一步验证,github上已经有很多关于KAN的实验,不同的研究者的实验结果并不一致。
4. KAN可能会出现过拟合,尤其是在数据有限的情况下。它们形成复杂模型的能力可能会将噪声捕获为重要模式,从而导致泛化性不佳。
5. KAN的实现和优化可能需要特定的硬件支持和算法调整。KAN 可能会面临 GPU 优化的挑战,这可能会破坏并行处理。这种架构可能会导致 GPU 上的操作速度变慢,需要序列化并导致内存利用率低下,从而可能使 CPU 成为更适合KAN网络的平台。
KAN的作者似乎批评MLP架构过于简单,导致可解释性差,精度低,收敛快。笔者认为简单、易于实现是一件事物的最大优点,与原始传统的MLP相比,特别是现代MLP采用了更为简单的RELU取代Sigmod激活函数,有效解决了梯度爆炸或消失问题,从而大大降低了深度网络构建和训练难度(当然,还得有Resnet加持)。就像TCP/IP取代OSI7层网络模型一样,简单的就是最好的,
KAN作为一种新型的神经网络架构,在理论和实验上都展现出了显著的优势,特别是在准确性、参数效率和可解释性方面。在未来,KAN有望成为深度学习领域的一个重要分支,与MLP等传统架构并存,共同推动AI技术的发展。KAN 特别适用于需要理解和解释基本物理原理的任务。而如果是在需要大规模模式识别或分类的领域(例如图像识别或自然语言处理)中可能不那么有效,在这些领域中,更简单或更抽象的模型可能就足够了。