KAN: Kolmogorov–Arnold Networks

news2024/12/27 9:57:21

KAN: Kolmogorov–Arnold Networks

在这里插入图片描述

论文链接:https://arxiv.org/abs/2404.19756

代码链接:https://github.com/KindXiaoming/pyKAN

项目链接:https://kindxiaoming.github.io/pyKAN/intro.html

Abstract

受Kolmogorov-Arnold表示定理的启发,我们提出Kolmogorov-Arnold网络(KAN)作为多层感知器(MLP)的有前途的替代品。MLP在节点(“神经元”)上有固定的激活函数,而KAN在边缘(“权重”)上有可学习的激活函数。KAN根本没有线性权重——每个权重参数都被参数化为样条的单变量函数所取代。我们表明,这个看似简单的改变使得KAN在准确性和可解释性方面优于MLP。就准确性而言,在数据拟合和PDE求解方面,更小的KAN可以达到与更大的MLP相当或更好的准确性。从理论和经验上看,KAN比MLP具有更快的神经尺度规律。对于可解释性,KAN可以直观地可视化,并且可以轻松地与人类用户交互。通过数学和物理的两个例子,KAN被证明是有用的“合作者”,帮助科学家(重新)发现数学和物理定律。总之,KAN是MLP的有希望的替代品,为进一步改进当今严重依赖MLP的深度学习模型提供了机会。

在这里插入图片描述

1 Introduction

多层感知器(MLP)[1,2,3],也被称为全连接前馈神经网络,是当今深度学习模型的基础组成部分。MLP的重要性永远不会被夸大,因为它们是机器学习中近似非线性函数的默认模型,因为它们的表达能力得到了通用近似定理的保证[3]。然而,MLP是我们能建立的最好的非线性回归量吗?尽管普遍使用MLP,但它们有明显的缺点。例如,在Transformer[4]中,MLP消耗了几乎所有的非嵌入参数,并且在没有后期分析工具的情况下通常难以解释(相对于注意力层)[5]。

我们提出了一种有希望的MLP替代方案,称为Kolmogorov-Arnold网络(KAN)。MLP受到普遍近似定理的启发,而KAN则受到Kolmogorov-Arnold表示定理的启发[6,7]。与MLP一样,KAN具有全连接的结构。然而,MLP将固定的激活函数放在节点(“神经元”)上,而KAN将可学习的激活函数放在边缘(“权重”)上,如图0.1所示。因此,KAN根本没有线性权矩阵:取而代之的是,每个权参数都被一个可学习的一维函数参数化为样条所取代。KAN节点只是简单地对输入信号求和,而不应用任何非线性。有人可能会担心,由于每个MLP的权重参数都变成了KAN的样条函数,因此KAN的成本非常昂贵。幸运的是,KAN通常允许比MLP更小的计算图。例如,我们表明,对于PDE求解,2层宽度为10的KAN比4层宽度为100的MLP(10−7 vs 10−5 MSE)精确100倍,参数效率高100倍(102 vs 104参数)。

注:样条函数(spline function)—— 分段多项式函数(piecewise polynomial function),最简单的样条函数是一种分段多项式函数。https://blog.csdn.net/lanchunhui/article/details/75670382

不出所料,已经研究了使用Kolmogorov-Arnold表示定理构建神经网络的可能性[8,9,10,11,12,13]。然而,大多数工作都坚持使用原始的深度为2,宽度为(2n + 1)表示,并且没有机会利用更现代的技术(例如,反向传播)来训练网络。我们的贡献在于将原始的Kolmogorov-Arnold表示推广到任意宽度和深度,在今天的深度学习世界中重新激活和背景化它,以及使用广泛的经验实验来突出其作为AI + Science基础模型的潜在作用,因为它的准确性和可解释性。

尽管它们有优雅的数学解释,但KAN只不过是样条和MLP的组合,利用各自的优势并避免各自的弱点。样条对于低维函数是精确的,易于局部调整,并且能够在不同的分辨率之间切换。然而,样条曲线由于无法利用组合结构而存在严重的维数缺陷(COD)。另一方面,MLP由于其特征学习而较少受到COD的影响,但由于其无法优化单变量函数,因此在低维情况下不如样条曲线准确。为了准确地学习一个函数,一个模型不仅要学习组成结构(外部自由度),而且要很好地近似单变量函数(内部自由度)。KAN是这样的模型,因为它们在外面有MLP,在里面有样条。因此,KAN不仅可以学习特征(由于它们与MLP的外部相似性),而且还可以以很高的精度优化这些学习到的特征(由于它们与样条的内部相似性)。例如,给定一个高维函数:
f ( x 1 , ⋯   , x N ) = exp ⁡ ( 1 N ∑ i = 1 N sin ⁡ 2 ( x i ) ) , (1.1) f(x_1,\cdots,x_N)=\exp\left(\frac{1}{N}\sum_{i=1}^N\sin^2(x_i)\right), \tag{1.1} f(x1,,xN)=exp(N1i=1Nsin2(xi)),(1.1)
当N较大时,由于COD的影响,样条曲线失效;MLP可以潜在地学习广义加性结构,但它们对于用ReLU激活来近似指数函数和正弦函数是非常低效的。相比之下,KAN可以很好地学习组合结构和单变量函数,因此在很大程度上优于MLP(见图3.1)。

在这里插入图片描述

在本文中,我们将使用大量的数值实验来证明,相对于MLP, KAN可以显著提高准确性和可解释性。本文的组织结构如图2.1所示。在第2节中,我们介绍了KAN架构及其数学基础,介绍了网络简化技术以使KAN具有可解释性,并介绍了网格扩展技术以使KAN越来越准确。在第3节中,我们展示了KAN在数据拟合和PDE求解方面比MLP更准确:当数据中存在组合结构时,KAN可以克服维度灾难,实现比MLP更好的缩放律。在第4节中,我们展示了KAN是可解释的,可以用于科学发现。我们用数学(结理论)和物理(安德森局域化)中的两个例子来证明,KAN可以帮助科学家(重新)发现数学和物理定律的“合作者”。第五部分总结了相关工作。在第6节中,我们通过讨论广泛的影响和未来的方向来结束。

注:“安德森局域化”(Anderson Localization):https://www.zhihu.com/question/36101023
在这里插入图片描述

2 Kolmogorov–Arnold Networks (KAN)

多层感知器(multilayer Perceptrons, MLP)的灵感来自于普适近似定理。我们转而关注Kolmogorov-Arnold表示定理,该定理可以通过一种称为Kolmogorov-Arnold网络(KAN)的新型神经网络来实现。我们回顾了2.1节中的Kolmogorov-Arnold定理,以启发2.2节中Kolmogorov-Arnold网络的设计。在第2.3节中,我们为KAN的表达能力及其神经标度定律提供了理论保证。在第2.4节中,我们提出了一种网格扩展技术,使KAN越来越准确。在第2.5节中,我们提出简化技术以使KAN可解释。

2.1 Kolmogorov-Arnold表示定理

注: 希尔伯特第 13 问题,Kolmogorov–Arnold representation theorem 和通用近似定理(Universal approximation theorem) https://blog.csdn.net/qq_32515081/article/details/129569496

Vladimir Arnold和Andrey Kolmogorov证明了如果f是一个有界域上的多元连续函数,则f可以写成单个变量的连续函数和二进制加法运算的有限合成。更具体地说,对于光滑的 f : [ 0 , 1 ] n → R f: {[0,1]}^n→\mathbb{R} f:[0,1]nR
f ( x ) = f ( x 1 , ⋯   , x n ) = ∑ q = 1 2 n + 1 Φ q ( ∑ p = 1 n ϕ q , p ( x p ) ) , (2.1) f(\mathbf{x})=f(x_1,\cdots,x_n)=\sum_{q=1}^{2n+1}\Phi_q\left(\sum_{p=1}^n\phi_{q,p}(x_p)\right), \tag{2.1} f(x)=f(x1,,xn)=q=12n+1Φq(p=1nϕq,p(xp)),(2.1)
其中, ϕ q , p : [ 0 , 1 ] → R \phi_{q,p}:[0,1]\to\mathbb{R} ϕq,p:[0,1]R Φ q : R → R \Phi_q:\mathbb{R}\to\mathbb{R} Φq:RR。从某种意义上说,它们表明了唯一真正的多元函数是加法,因为所有其他函数都可以用单变量函数和和来表示。有人可能会天真地认为这对机器学习来说是个好消息:学习一个高维函数可以归结为学习一个多项式数量的一维函数。然而,这些一维函数可能是非光滑的,甚至是分形的,因此在实践中可能无法学习[14]。由于这种病态的行为,Kolmogorov-Arnold表示定理在机器学习中基本上被判了死刑,被认为理论上是正确的,但实际上毫无用处[14]。

然而,我们对Kolmogorov-Arnold定理在机器学习中的有用性更为乐观。首先,我们不需要拘谨于原始的公式(2.1),它只有两层非线性和隐藏层中少量的(2n + 1)项:我们将网络推广到任意的宽度和深度。其次,科学和日常生活中的大多数函数通常是光滑的,并且具有稀疏的组成结构,这可能有助于光滑的Kolmogorov-Arnold表示。这里的哲学接近于物理学家的心态,他们通常更关心典型的情况,而不是最坏的情况。毕竟,我们的物理世界和机器学习任务必须具有使物理和机器学习有用或可推广的结构[15]。

2.2 KAN架构

假设我们有一个由输入输出对 { x i , y i } \{x_i, y_i\} {xi,yi}组成的监督学习任务,我们想要找到所有数据点的 f f f,使得 y i ≈ f ( x i ) y_i≈f(x_i) yif(xi)。公式(2.1)暗示,如果我们能找到合适的单变量函数,我们就完成了。这启发我们设计一个神经网络,显式参数化公式(2.1)。由于所有需要学习的函数都是单变量函数,我们可以将每个一维函数参数化为一条B样条曲线,具有局部B样条基函数的可学习系数(见右图2.2)。现在我们有了一个KAN的原型,其计算图由公式(2.1)精确指定,如图0.1 (b)所示(输入维数n = 2),表现为一个两层神经网络,激活函数放置在边缘而不是节点上(对节点进行简单求和),中间层宽度为2n + 1。

在这里插入图片描述

如前所述,这样的网络被认为太简单,无法在实践中任意地用光滑样条近似任何函数!因此,我们将我们的KAN概括为更广泛和更深。目前还不清楚如何使KAN更深,因为Kolmogorov-Arnold表示对应于两层的KAN。据我们所知,目前还没有一个“一般化”版本的定理对应于更深层次的KAN。

当我们注意到MLP和KAN之间的类比时,突破就出现了。在MLP中,一旦我们定义了一个层(它由线性变换和非线性组成),我们就可以堆叠更多的层来使网络更深。要构建深度KAN,我们首先应该回答:“什么是KAN层?“ 结果表明,具有 n i n n_{in} nin维输入和 n o u t n_{out} nout维输出的KAN层可以定义为一维函数的矩阵。
Φ = { ϕ q , p } , p = 1 , 2 , ⋯   , n i n , q = 1 , 2 ⋯   , n o u t , (2.2) \mathbf{\Phi}=\{\phi_{q,p}\},\quad p=1,2,\cdots,n_{\mathrm{in}},\quad q=1,2\cdots,n_{\mathrm{out}}, \tag{2.2} Φ={ϕq,p},p=1,2,,nin,q=1,2,nout,(2.2)
其中函数 ϕ q , p ϕ_{q,p} ϕq,p具有可训练的参数,如下所示。在Kolmogov-Arnold定理中,内部函数形成一个 n i n = n n_{in} = n nin=n n o u t = 2 n + 1 n_{out} = 2n+ 1 nout=2n+1的KAN层,外部函数形成一个 n i n = 2 n + 1 , n o u t = 1 的 n_{in} = 2n+ 1, n_{out} = 1的 nin=2n+1,nout=1KAN层。因此,公式(2.1)中的Kolmogorov-Arnold表示只是两个KAN层的简单组合。现在很清楚拥有更深的Kolmogorov-Arnold表示意味着什么:简单地堆叠更多的KAN层!

让我们引入一些符号。这段话有点技术性,但读者可以参考图2.2(左)来获得具体的例子和直观的理解。KAN的形状由整数数组表示:
[ n 0 , n 1 , ⋯   , n L ] , (2.3) [n_0,n_1,\cdots,n_L], \tag{2.3} [n0,n1,,nL],(2.3)
其中 n i n_i ni为计算图第I层的节点数。我们用 ( l , i ) (l, i) (l,i)表示第 l l l层中的第 i i i个神经元,用 x l , i x_{l,i} xl,i表示 ( l , i ) (l, i) (l,i)-神经元的激活值。在第 l l l层和第 l + 1 l+1 l+1层之间,有 n l n l + 1 n_ln_{l+1} nlnl+1个激活函数:连接 ( l , i ) (l, i) (l,i) ( l + 1 , j ) (l +1, j) (l+1,j)的激活函数表示为:
ϕ l , j , i , l = 0 , ⋯   , L − 1 , i = 1 , ⋯   , n l , j = 1 , ⋯   , n l + 1 . (2.4) \phi_{l,j,i},\quad l=0,\cdots,L-1,\quad i=1,\cdots,n_{l},\quad j=1,\cdots,n_{l+1}. \tag{2.4} ϕl,j,i,l=0,,L1,i=1,,nl,j=1,,nl+1.(2.4)
预先激活的 ϕ ( l , j , i ) ϕ (l,j,i) ϕ(l,j,i)就是 x l , i x_{l,i} xl,i;对 ϕ l , j , i ϕ_{l,j,i} ϕl,j,i的后激活表示为 x ~ l , j , i ≡ ϕ l , j , i ( x l , i ) \tilde{x}_{l,j,i}\equiv ϕ_{l,j,i}(x_l,i) x~l,j,iϕl,j,i(xl,i) ( l + 1 , j ) (l + 1, j) (l+1,j)神经元的激活值就是所有传入的后激活值之和:
x l + 1 , j = ∑ i = 1 n l x ~ l , j , i = ∑ i = 1 n l ϕ l , j , i ( x l , i ) , j = 1 , ⋯   , n l + 1 . (2.5) x_{l+1,j}=\sum_{i=1}^{n_l}\tilde{x}_{l,j,i}=\sum_{i=1}^{n_l}\phi_{l,j,i}(x_{l,i}),\quad j=1,\cdots,n_{l+1}. \tag{2.5} xl+1,j=i=1nlx~l,j,i=i=1nlϕl,j,i(xl,i),j=1,,nl+1.(2.5)
在矩阵形式中,它是
x l + 1 = ( ϕ l , 1 , 1 ( ⋅ ) ϕ l , 1 , 2 ( ⋅ ) ⋯ ϕ l , 1 , n l ( ⋅ ) ϕ l , 2 , 1 ( ⋅ ) ϕ l , 2 , 2 ( ⋅ ) ⋯ ϕ l , 2 , n l ( ⋅ ) ⋮ ⋮ ⋮ ϕ l , n l + 1 , 1 ( ⋅ ) ϕ l , n l + 1 , 2 ( ⋅ ) ⋯ ϕ l , n l + 1 , n l ( ⋅ ) ) ⏟ Φ l x l , (2.6) \mathbf{x}_{l+1}=\underbrace{\begin{pmatrix}\phi_{l,1,1}(\cdot)&\phi_{l,1,2}(\cdot)&\cdots&\phi_{l,1,n_l}(\cdot)\\\phi_{l,2,1}(\cdot)&\phi_{l,2,2}(\cdot)&\cdots&\phi_{l,2,n_l}(\cdot)\\\vdots&\vdots&&\vdots\\\phi_{l,n_{l+1},1}(\cdot)&\phi_{l,n_{l+1},2}(\cdot)&\cdots&\phi_{l,n_{l+1},n_l}(\cdot)\end{pmatrix}}_{\Phi_l}\mathbf{x}_l, \tag{2.6} xl+1=Φl ϕl,1,1()ϕl,2,1()ϕl,nl+1,1()ϕl,1,2()ϕl,2,2()ϕl,nl+1,2()ϕl,1,nl()ϕl,2,nl()ϕl,nl+1,nl() xl,(2.6)
其中 Φ l Φ_l Φl为第 l l l层KAN对应的函数矩阵。一般的KAN网络是 L L L层的组合:给定一个输入向量 x 0 ∈ R n 0 x_0∈\mathbb{R}^{n_0} x0Rn0, KAN的输出为
K A N ( x ) = ( Φ L − 1 ∘ Φ L − 2 ∘ ⋯ ∘ Φ 1 ∘ Φ 0 ) x . (2.7) \mathrm{KAN}(\mathbf{x})=(\mathbf{\Phi}_{L-1}\circ\mathbf{\Phi}_{L-2}\circ\cdots\circ\mathbf{\Phi}_{1}\circ\mathbf{\Phi}_{0})\mathbf{x}. \tag{2.7} KAN(x)=(ΦL1ΦL2Φ1Φ0)x.(2.7)
我们也可以重写上述方程,使其更类似于公式(2.1),假设输出维 n L = 1 n_L = 1 nL=1,并定义 f ( x ) ≡ K A N ( x ) f(x)≡KAN(x) f(x)KAN(x)
f ( x ) = ∑ i L − 1 = 1 n L − 1 ϕ L − 1 , i L , i L − 1 ( ∑ i L − 2 = 1 n L − 2 ⋯ ( ∑ i 2 = 1 n 2 ϕ 2 , i 3 , i 2 ( ∑ i 1 = 1 n 1 ϕ 1 , i 2 , i 1 ( ∑ i 0 = 1 n 0 ϕ 0 , i 1 , i 0 ( x i 0 ) ) ) ) ⋯   ) , (2.8) f(\mathbf{x})=\sum\limits_{i_{L-1}=1}^{n_{L-1}}\phi_{L-1,i_{L},i_{L-1}}\left(\sum\limits_{i_{L-2}=1}^{n_{L-2}}\cdots\left(\sum\limits_{i_{2}=1}^{n_{2}}\phi_{2,i_{3},i_{2}}\left(\sum\limits_{i_{1}=1}^{n_{1}}\phi_{1,i_{2},i_{1}}\left(\sum\limits_{i_{0}=1}^{n_{0}}\phi_{0,i_{1},i_{0}}(x_{i_{0}})\right)\right)\right)\cdots\right), \tag{2.8} f(x)=iL1=1nL1ϕL1,iL,iL1 iL2=1nL2(i2=1n2ϕ2,i3,i2(i1=1n1ϕ1,i2,i1(i0=1n0ϕ0,i1,i0(xi0)))) ,(2.8)
这很麻烦。相比之下,我们对KAN层的抽象及其可视化更清晰直观。原始Kolmogorov-Arnold表示公式(2.1)对应于形状为 [ n , 2 n + 1 , 1 ] [n, 2n + 1,1] [n,2n+1,1]的2层KAN。注意所有的运算都是可微的,所以我们可以用反向传播来训练KAN。为了比较,一个MLP可以写成仿射变换 W W W和非线性 σ σ σ的interleaving:
M L P ( x ) = ( W L − 1 ∘ σ ∘ W L − 2 ∘ σ ∘ ⋯ ∘ W 1 ∘ σ ∘ W 0 ) x . (2.9) \mathrm{MLP}(\mathbf{x})=(\mathbf{W}_{L-1}\circ\sigma\circ\mathbf{W}_{L-2}\circ\sigma\circ\cdots\circ\mathbf{W}_{1}\circ\sigma\circ\mathbf{W}_{0})\mathbf{x}. \tag{2.9} MLP(x)=(WL1σWL2σW1σW0)x.(2.9)
很明显,MLP将线性变换和非线性分别处理为 W W W σ σ σ,而KAN在 Φ Φ Φ中将它们一起处理。在图0.1 ©和(d)中,我们可视化了三层MLP和三层KAN,以澄清它们的区别。

实现细节。虽然一个KAN层公式(2.5)看起来非常简单,但要使它很好地优化是很重要的。关键的技巧是:

(1) 残差激活函数。我们包括一个基函数 b ( x ) b(x) b(x)(类似于残差连接),使得激活函数 φ ( x ) φ (x) φ(x)是基函数 b ( x ) b(x) b(x)和样条函数的和:
ϕ ( x ) = w ( b ( x ) + s p l i n e ( x ) ) . (2.10) \phi(x)=w\left(b(x)+\mathrm{spline}(x)\right). \tag{2.10} ϕ(x)=w(b(x)+spline(x)).(2.10)
我们设置
b ( x ) = silu ( x ) = x / ( 1 + e − x ) (2.11) b(x)=\text{silu}(x)=x/(1+e^{-x}) \tag{2.11} b(x)=silu(x)=x/(1+ex)(2.11)
在大多数情况下。spline(x)被参数化为b样条的线性组合,使得:
s p l i n e ( x ) = ∑ i c i B i ( x ) (2.12) \mathrm{spline}(x)=\sum_ic_iB_i(x) \tag{2.12} spline(x)=iciBi(x)(2.12)
c i s c_is cis是可训练的。原则上 w w w是多余的,因为它可以被吸收到 b ( x ) b(x) b(x)和spline(x)中。然而,我们仍然包括这个 w w w因子,以更好地控制激活函数的总体大小。

(2) 初始化尺度。每个激活函数初始化为spline(x)≈0 2。 w w w根据Xavier初始化进行初始化,Xavier初始化已用于初始化MLP中的线性层。

(3) 样条网格的更新。我们根据输入激活动态更新每个网格,以解决样条在有界区域上定义,但在训练期间激活值可以从固定区域进化的问题。

参数计算。为简单起见,让我们假设一个网络

(1) 深度为L,

(2) 层的宽度 n 0 = n 1 = ⋅ ⋅ ⋅ = n L = N n_0 = n_1 =···= n_L = N n0=n1=⋅⋅⋅=nL=N

(3) 每条样条的阶数为k(通常为k = 3),在G个间隔上(对于G + 1个网格点)。

总共有 O ( N 2 L ( G + k ) ) ∼ O ( N 2 L G ) O(N^{2}L(G+k))\sim O(N^{2}LG) O(N2L(G+k))O(N2LG)个参数。相比之下,深度L和宽度N的MLP只需要O(N2L)个参数,这似乎比KAN更有效。幸运的是,KAN通常需要比MLP小得多的N,这不仅节省了参数,而且可以实现更好的泛化(例如,图3.1和3.3),并且有利于可解释性。我们注意到,对于一维问题,我们可以取 N = L = 1 N = L = 1 N=L=1,并且我们实现的KAN网络只是一个样条近似。对于高维,我们用下面的定理来描述KAN的泛化行为。

2.3 KAN的近似能力和标度定律(Approximation Abilities & Scaling Laws)

回想一下,在公式(2.1)中,2层宽度为(2n + 1)表示可能是非光滑的。然而,更深的表示可能带来更平滑的激活。例如,4-变量函数:
f ( x 1 , x 2 , x 3 , x 4 ) = exp ⁡ ( sin ⁡ ( x 1 2 + x 2 2 ) + sin ⁡ ( x 3 2 + x 4 2 ) ) (2.13) f(x_1,x_2,x_3,x_4)=\exp\left(\sin(x_1^2+x_2^2)+\sin(x_3^2+x_4^2)\right) \tag{2.13} f(x1,x2,x3,x4)=exp(sin(x12+x22)+sin(x32+x42))(2.13)
可以平滑地表示为3层的[4,2,1,1]KAN,但可能不允许平滑激活的2层KAN。为了便于近似分析,我们仍然假设激活是平滑的,但允许表示任意宽和深,如公式(2.7)所示。为了强调我们的KAN对有限网格点集的依赖性,我们在下面使用 Φ l G Φ^G_l ΦlG Φ l , i , j G Φ^G_{l,i,j} Φl,i,jG来代替公式(2.5)和(2.6)中使用的符号 Φ l Φ_l Φl Φ l , i , j Φ_{l,i,j} Φl,i,j

定理2.1 (近似理论,KAT)。设 x = ( x 1 , x 2 , ⋅ ⋅ ⋅ , x n ) x = (x_1, x_2,···,x_n) x=(x1,x2⋅⋅⋅xn)假设函数 f ( x ) f(x) f(x)允许有一种表示
f = ( Φ L − 1 ∘ Φ L − 2 ∘ ⋯ ∘ Φ 1 ∘ Φ 0 ) x , (2.14) f=(\boldsymbol{\Phi}_{L-1}\circ\boldsymbol{\Phi}_{L-2}\circ\cdots\circ\boldsymbol{\Phi}_1\circ\boldsymbol{\Phi}_0)\mathbf{x}, \tag{2.14} f=(ΦL1ΦL2Φ1Φ0)x,(2.14)
如公式(2.7),其中 Φ l , i , j Φ_{l,i,j} Φl,i,j的每一个都是 ( k + 1 ) (k + 1) (k+1)次连续可微的。然后存在一个常数 C C C依赖于 f f f和它的表示,这样我们就有了下面关于网格大小 G G G的近似界:存在 k k k阶B-样条函数 Φ l , i , j G Φ^G_{l,i,j} Φl,i,jG使得对于任何 0 ≤ m ≤ k 0≤m≤k 0mk,我们都有这个界
∥ f − ( Φ L − 1 G ∘ Φ L − 2 G ∘ ⋯ ∘ Φ 1 G ∘ Φ 0 G ) x ∥ C m ≤ C G − k − 1 + m . (2.15) \|f-(\Phi_{L-1}^{G}\circ\Phi_{L-2}^{G}\circ\cdots\circ\Phi_{1}^{G}\circ\Phi_{0}^{G})\mathbf{x}\|_{C^{m}}\leq CG^{-k-1+m}. \tag{2.15} f(ΦL1GΦL2GΦ1GΦ0G)xCmCGk1+m.(2.15)
这里我们采用 C m C^m Cm范数的符号来测量 m m m阶导数的大小:
∥ g ∥ C m = max ⁡ ∣ β ∣ ≤ m sup ⁡ x ∈ [ 0 , 1 ] n ∣ D β g ( x ) ∣ . \|g\|_{C^m}=\max_{|\beta|\leq m}\sup_{x\in[0,1]^n}\left|D^\beta g(x)\right|. gCm=βmmaxx[0,1]nsup Dβg(x) .
证明。通过经典的一维B-样条理论[19]以及Φl,i,j作为连续函数在有界域上可以一致有界的事实,我们知道存在有限网格B-样条函数 Φ l , i , j G Φ^G_{l,i,j} Φl,i,jG使得对于任意 0 ≤ m ≤ k 0≤m≤k 0mk
∥ ( Φ l , i , j ∘ Φ l − 1 ∘ Φ l − 2 ∘ ⋯ ∘ Φ 1 ∘ Φ 0 ) x − ( Φ l , i , j G ∘ Φ l − 1 ∘ Φ l − 2 ∘ ⋯ ∘ Φ 1 ∘ Φ 0 ) x ∥ C m ≤ C G − k − 1 + m , \|(\Phi_{l,i,j}\circ\Phi_{l-1}\circ\Phi_{l-2}\circ\cdots\circ\Phi_{1}\circ\Phi_{0})\mathbf{x}-(\Phi_{l,i,j}^{G}\circ\Phi_{l-1}\circ\Phi_{l-2}\circ\cdots\circ\Phi_{1}\circ\Phi_{0})\mathbf{x}\|_{C^{m}}\leq CG^{-k-1+m}, (Φl,i,jΦl1Φl2Φ1Φ0)x(Φl,i,jGΦl1Φl2Φ1Φ0)xCmCGk1+m,
常数C与G无关,我们固定那些B-样条近似。因此余量 R l R_l Rl定义为
R l : = ( Φ L − 1 G ∘ ⋯ ∘ Φ l + 1 G ∘ Φ l ∘ Φ l − 1 ∘ ⋯ ∘ Φ 0 ) x − ( Φ L − 1 G ∘ ⋯ ∘ Φ l + 1 G ∘ Φ l G ∘ Φ l − 1 ∘ ⋯ ∘ Φ 0 ) x R_{l}:=(\Phi_{L-1}^{G}\circ\cdots\circ\Phi_{l+1}^{G}\circ\Phi_{l}\circ\Phi_{l-1}\circ\cdots\circ\Phi_{0})\mathbf{x}-(\Phi_{L-1}^{G}\circ\cdots\circ\Phi_{l+1}^{G}\circ\Phi_{l}^{G}\circ\Phi_{l-1}\circ\cdots\circ\Phi_{0})\mathbf{x} Rl:=(ΦL1GΦl+1GΦlΦl1Φ0)x(ΦL1GΦl+1GΦlGΦl1Φ0)x
满足
∥ R l ∥ C m ≤ C G − k − 1 + m , \|R_l\|_{C^m}\leq CG^{-k-1+m}, RlCmCGk1+m,
与G无关的常数,最后注意
f − ( Φ L − 1 G ∘ Φ L − 2 G ∘ ⋯ ∘ Φ 1 G ∘ Φ 0 G ) x = R L − 1 + R L − 2 + ⋯ + R 1 + R 0 , f-(\Phi_{L-1}^G\circ\Phi_{L-2}^G\circ\cdots\circ\Phi_1^G\circ\Phi_0^G)\mathbf{x}=R_{L-1}+R_{L-2}+\cdots+R_1+R_0, f(ΦL1GΦL2GΦ1GΦ0G)x=RL1+RL2++R1+R0,
我们知道公式(2.15)成立。

我们知道,在定理2.1的假设成立的情况下,有限网格大小的KAN可以很好地逼近函数,其残差率与维数无关,从而战胜了维数的诅咒!这很自然,因为我们只使用样条来近似一维函数。特别地,当m = 0时,我们在 L ∞ L^∞ L范数中恢复了精度,这反过来又提供了有限域上RMSE的界,它给出了缩放指数 k + 1 k + 1 k+1。当然,常数C依赖于表示;因此,它将取决于尺寸。我们将把常数对量纲的依赖性的讨论留到以后的工作中讨论。

我们注意到,虽然Kolmogorov-Arnold定理公式(2.1)对应于形状为 [ d , 2 d + 1 , 1 ] [d, 2d+ 1,1] [d,2d+1,1]的KAN表示,但其函数不一定是光滑的。另一方面,如果我们能够确定一个平滑的表示(可能以额外的层或使KAN比理论规定的更宽为代价),那么定理2.1表明我们可以击败维度灾难(COD)。这并不奇怪,因为我们可以固有地学习函数的结构,并使我们的有限样本KAN近似可解释。

Neural scaling laws: 与其他理论的比较。Neural scaling laws是测试损失随着模型参数的增加而减小的现象,即, ℓ ∝ N − α \ell\propto N^{-\alpha} Nα,其中, ℓ \ell 为测试RMSE, N为参数个数,α为标度指数。更大的 α α α意味着通过简单地按比例放大模型可以得到更多的改进。人们提出了不同的理论来预测 α α α。Sharma和Kaplan[17]认为,α来自于内在维数为d的输入流形上的数据拟合。如果模型函数类是k阶的分段多项式(对于ReLU, k = 1),则标准逼近理论意味着α = (k + 1)/d。这个界限受到维度的诅咒,所以人们通过利用组合结构来寻找与d无关的其他界限。特别是,Michaud等人[18]考虑了只涉及一元(例如,平方,正弦,exp)和二元(+和x)运算的计算图,发现α = (k + 1)/d∗= (k + 1)/2,其中 d ∗ = 2 d^∗= 2 d=2是最大度。Poggio等人[14]利用组合稀疏性的思想,证明了给定函数类Wm(其导数连续到m阶的函数),需要N = O(λ−2m)个参数来实现误差λ,这相当于α = m2。我们的方法假设存在光滑的Kolmogorov-Arnold表示,将高维函数分解为几个1D函数,给出α = k+1(其中k是样条的分段多项式阶)。我们选择k = 3个三次样条,因此α = 4,这是与其他作品相比最大和最好的缩放指数。我们将在3.1节中展示,这个边界α = 4实际上可以用KAN经验地实现,而前面工作[18]报道,MLP甚至存在饱和较慢边界(例如,α = 1)和快速平台化的问题。当然,我们可以增加k来匹配函数的平滑性,但是太高的k可能太振荡,导致优化问题。

在这里插入图片描述

KAT与UAT的比较。全连接神经网络的强大是由通用近似定理(UAT)证明的,该定理指出,给定一个函数和误差容限λ > 0,一个具有k > N(λ)神经元的双层网络可以在误差λ内近似该函数。然而,UAT不能保证N(御柱)如何随御柱变化。确实,它受到COD的影响,在某些情况下,N已被证明随d呈指数增长[15]。KAT和UAT之间的区别在于,KAN利用了函数固有的低维表示,而MLP则没有。实际上,我们将展示KAN与符号函数很好地对齐,而MLP则不是。

2.4 精度:网格扩展

原则上,样条对于目标函数可以任意精确,因为网格可以任意细粒度。KAN继承了这个好功能。相比之下,MLP没有“细粒度”的概念。诚然,增加MLP的宽度和深度可以提高性能(“Neural scaling laws”)。然而,这些Neural scaling laws是缓慢的(在最后一节讨论)。因为不同大小的模型都是独立训练的,所以获取这些模型的成本也很高。相比之下,对于KAN,可以先用更少的参数训练一个KAN,然后通过简单地使其样条网格更精细,将其扩展到具有更多参数的KAN,而不需要从头开始重新训练更大的模型。

接下来,我们将描述如何执行网格扩展(如图2.2所示),它基本上是将新的细粒度样条拟合到旧的粗粒度样条上。假设我们想用k阶的B-样条在有界区域[a, b]中近似一个1D函数 f f f,具有 G 1 G_1 G1区间的粗粒度网格,其网格点为 { t 0 = a , t 1 , t 2 , ⋅ ⋅ ⋅ , t G 1 = b } \{t_0 = a, t_1, t_2,···,t_{G_1} = b\} {t0=a,t1,t2⋅⋅⋅tG1=b},其增广为 { t − k , ⋯   , t − 1 , t 0 , ⋯   , t G 1 , t G 1 + 1 , ⋯   , t G 1 + k } \{t_{-k},\cdots,t_{-1},t_{0},\cdots,t_{G_{1}},t_{G_{1}+1},\cdots,t_{G_{1}+k}\} {tk,,t1,t0,,tG1,tG1+1,,tG1+k}。有 G 1 + k G_1+k G1+k个B-样条基函数,其中第 i i i个B-样条 B i ( x ) B_i(x) Bi(x)仅在 [ t − k + i , t i + 1 ] ( i = 0 , ⋅ ⋅ ⋅ , G 1 + k − 1 ) [t_{−k+i}, t_{i+1}] (i =0,···,G_1+k−1) [tk+i,ti+1](i=0⋅⋅⋅G1+k1)上不为零,则粗网格上的f表示为这些b样条基函数的线性组合 f c o a r s e ( x ) = ∑ i = 0 G 1 + k − 1 c i B i ( x ) . f_{\mathrm{coarse}}(x)={\sum}_{i=0}^{G_{1}+k-1}c_{i}B_{i}(x). fcoarse(x)=i=0G1+k1ciBi(x).。给定一个间隔为 G 2 G_2 G2的更细网格,该网格上的 f f f相应为 f f i n e ( x ) = ∑ i = 0 G 2 + k − 1 c i ′ B i ′ ( x ) f_{\mathrm{fine}}(x)=\sum_{i=0}^{G_{2}+k-1}c_{i}^{\prime}B_{i}^{\prime}(x) ffine(x)=i=0G2+k1ciBi(x))。参数 c j ′ s c^{'}_j s cjs可以通过最小化 f f i n e ( x ) f_{fine}(x) ffine(x) f c o a r s e ( x ) f_{coarse}(x) fcoarse(x)之间的距离(在 x x x的某个分布上)从参数 c i c_i ci初始化:
{ c j ′ } = argmin ⁡ { c j ′ } E x ∼ p ( x ) ( ∑ j = 0 G 2 + k − 1 c j ′ B j ′ ( x ) − ∑ i = 0 G 1 + k − 1 c i B i ( x ) ) 2 , (2.16) \{c_{j}^{\prime}\}=\operatorname{argmin}_{\{c_{j}^{\prime}\}}\mathbb{E}_{x\sim p(x)}\left(\sum_{j=0}^{G_{2}+k-1}c_{j}^{\prime}B_{j}^{\prime}(x)-\sum_{i=0}^{G_{1}+k-1}c_{i}B_{i}(x)\right)^{2}, \tag{2.16} {cj}=argmin{cj}Exp(x)(j=0G2+k1cjBj(x)i=0G1+k1ciBi(x))2,(2.16)
这可以用最小二乘算法来实现。我们独立地对一个KAN中的所有样条进行网格扩展。

简单的例子:类似staricase的损失曲线。我们用一个简单的例子 f ( x , y ) = e x p ( s i n ( π x ) + y 2 ) f(x, y) = exp(sin(πx) + y^2) f(x,y)=exp(sin(πx)+y2)来演示网格扩展的效果。在图2.3(左上)中,我们显示了[2,5,1]KAN的训练和测试RMSE。网格点的数量从3开始,每200个LBFGS步骤增加到一个更高的值,最终有1000个网格点。很明显,每次细粒度化发生时,训练损失都会比以前下降得更快(除了具有1000个点的最细网格,由于糟糕的损失情况,优化可能会停止工作)。然而,由于偏差-方差权衡(欠拟合vs过拟合),测试损失先下降后上升,呈现u形。我们推测,当参数个数与数据点个数相匹配时,在插值阈值处达到最佳测试损失。由于我们的训练样本为1000,并且a [2,5,1] KAN的总参数为15G (G为网格间隔数),因此我们期望插值阈值为G = 1000/15≈67,这与我们的实验观察值G~50大致一致。

小的KAN概括起来更好。这是我们能达到的最佳测试性能吗?注意,合成任务可以精确地用[2,1,1]KAN表示,因此我们训练一个[2,1,1]KAN,并在右上方的图2.3中给出训练动态。有趣的是,它可以实现比[2,5,1]KAN更低的测试损失,具有更清晰的阶梯结构,并且由于参数更少,插值阈值延迟到更大的网格尺寸。这突出了选择KAN架构的微妙之处。如果我们不知道问题的结构,我们如何确定最小KAN形状?在第2.5节中,我们将提出一种通过正则化和修剪来自动发现这种最小KAN架构的方法。

在这里插入图片描述

比例定律: 与理论的比较。我们还对测试损失如何随着网格参数数量的增加而减少感兴趣。在图2.3(左下)中,a [2,1,1] KAN的尺度大致为test R M S E ∝ G − 3 RMSE∝G^{-3} RMSEG3。然而,根据定理2.1,我们期望检验 R M S E ∝ G − 4 RMSE∝G^{-4} RMSEG4。我们发现样本间的误差不是均匀的。这可能归因于边界效应[18]。事实上,有一些样本的误差比其他样本大得多,这使得整体扩展速度变慢。如果我们绘制平方损失的中位数(而不是平均值)的平方根,我们得到更接近G -4的缩放。尽管存在这种次优性(可能是由于优化),在数据拟合(图3.1)和PDE求解(图3.3)方面,KAN仍然比MLP具有更好的缩放规律。此外,训练时间随网格点G的数量呈有利尺度变化,如图2.3右下4所示。

外部自由度和内部自由度。KAN强调的一个新概念是外部自由度与内部自由度(参数)之间的区别。节点连接方式的计算图表示外部自由度(“dofs”),而激活函数内的网格点表示内部自由度。KAN受益于它们同时具有外部dofs和内部dofs的事实。外部dofs (MLP也有,但样条没有)负责学习多变量的组合结构。内部dofs(样条也有,但MLP没有)负责学习单变量函数。

2.5 可解释性:简化KAN并使其具有互动性

最后一小节的一个问题是,我们不知道如何选择最适合数据集结构的KAN形状。例如,如果我们知道数据集是通过符号公式 f ( x , y ) = e x p ( s i n ( π x ) + y 2 ) f(x, y) = exp(sin(πx)+y^2) f(x,y)=exp(sin(πx)+y2)生成的,那么我们就知道a [2,1,1] KAN能够表达这个函数。然而,在实践中,我们不知道先验的信息,所以有方法来自动确定这种形状是很好的。这个想法是从一个足够大的KAN开始,用稀疏性正则化训练它,然后进行修剪。我们将证明这些经过修剪的KAN比未经过修剪的KAN更易于解释。为了使KAN最大限度地可解释,我们在2.5.1节中提出了一些简化技术,并在2.5.2节中提供了一个用户如何与KAN交互以使其更具可解释性的示例。

2.5.1 简化技术

1. Sparsification。对于MLP,线性权重的L1正则化用于支持稀疏性。KAN可以适应这个高层次的想法,但需要两个修改:

(1)没有线性的“权重”在KAN。线性权重被可学习的激活函数所取代,因此我们应该定义这些激活函数的L1范数。

(2)我们发现L1不足以使KAN稀疏化;相反,一个额外的熵正则化是必要的(详见附录C)。

我们将激活函数 ϕ \phi ϕ的L1范数定义为其对 N p N_p Np输入的平均幅度,即:
∣ ϕ ∣ 1 ≡ 1 N p ∑ s = 1 N p ∣ ϕ ( x ( s ) ) ∣ . (2.17) |\phi|_1\equiv\frac{1}{N_p}\sum_{s=1}^{N_p}\left|\phi(x^{(s)})\right|. \tag{2.17} ϕ1Np1s=1Np ϕ(x(s)) .(2.17)
然后,对于具有 n i n n_{in} nin个输入和 n o u t n_{out} nout个输出的KAN层 Φ Φ Φ,我们定义 Φ Φ Φ的L1范数为所有激活函数的L1范数之和,即:
∣ Φ ∣ 1 ≡ ∑ i = 1 n i n ∑ j = 1 n o u t ∣ ϕ i , j ∣ 1 . (2.18) |\Phi|_1\equiv\sum_{i=1}^{n_\mathrm{in}}\sum_{j=1}^{n_\mathrm{out}}\left|\phi_{i,j}\right|_1. \tag{2.18} ∣Φ1i=1ninj=1noutϕi,j1.(2.18)
另外,我们定义 Φ Φ Φ的熵为
S ( Φ ) ≡ − ∑ i = 1 n i n ∑ j = 1 n o u t ∣ ϕ i , j ∣ 1 ∣ Φ ∣ 1 l o g ( ∣ ϕ i , j ∣ 1 ∣ Φ ∣ 1 ) . (2.19) S(\boldsymbol{\Phi})\equiv-\sum_{i=1}^{n_{\mathrm{in}}}\sum_{j=1}^{n_{\mathrm{out}}}\frac{\left|\phi_{i,j}\right|_{1}}{\left|\Phi\right|_{1}}\mathrm{log}\left(\frac{\left|\phi_{i,j}\right|_{1}}{\left|\Phi\right|_{1}}\right). \tag{2.19} S(Φ)i=1ninj=1noutΦ1ϕi,j1log(Φ1ϕi,j1).(2.19)
总训练目标 ℓ t o t a l \ell_{total} total为所有KAN层的预测损失 ℓ p r e d \ell_{pred } pred+ L1和熵正则化:
ℓ t o t a l = ℓ p r e d + λ ( μ 1 ∑ l = 0 L − 1 ∣ Φ l ∣ 1 + μ 2 ∑ l = 0 L − 1 S ( Φ l ) ) , (2.20) \ell_{\mathrm{total}}=\ell_{\mathrm{pred}}+\lambda\left(\mu_{1}\sum_{l=0}^{L-1}|\Phi_{l}|_{1}+\mu_{2}\sum_{l=0}^{L-1}S(\Phi_{l})\right), \tag{2.20} total=pred+λ(μ1l=0L1Φl1+μ2l=0L1S(Φl)),(2.20)
其中µ1,µ2是相对量级,通常设置为µ1 =µ2 = 1,λ控制总体正则化量级。

2. 可视化。当我们可视化KAN时,为了获得幅度感,我们将激活函数的透明度设置为与 t a n h ( β A l , i , j ) tanh(βA_{l,i,j}) tanh(βAl,i,j)成比例,其中β = 3。因此,较小的功能会逐渐消失,让我们专注于重要的功能。

3. 修剪。在使用稀疏化惩罚进行训练后,我们可能还希望将网络修剪成更小的子网。我们在节点级别(而不是在边缘级别)对KAN进行稀疏化。对于每个节点(假设是第 l l l层的第 i i i个神经元),我们将其传入和传出的分数定义为
I l , i = max ⁡ k ( ∣ ϕ l − 1 , k , i ∣ 1 ) , O l , i = max ⁡ j ( ∣ ϕ l + 1 , j , i ∣ 1 ) , (2.21) I_{l,i}=\max_k(|\phi_{l-1,k,i}|_1),\quad O_{l,i}=\max_j(|\phi_{l+1,j,i}|_1), \tag{2.21} Il,i=kmax(ϕl1,k,i1),Ol,i=jmax(ϕl+1,j,i1),(2.21)
如果传入和传出的分数都大于阈值超参数θ = 10−2,则认为节点是重要的。所有不重要的神经元都被修剪。

4. Symbolification。在我们怀疑某些激活函数实际上是符号的情况下(例如,cos或log),我们提供了一个接口来将它们设置为指定的符号形式。fix_symbolic(l,i,j,f)可以将(l,i,j)激活设置为f。然而,我们不能简单地将激活函数设置为精确的符号公式,因为它的输入和输出可能有移位和缩放。因此,我们从样本中获得预激活x和后激活y,并拟合仿射参数(a, b, c, d)使y≈cf(ax + b) + d。拟合通过a, b的迭代网格搜索和线性回归完成。

除了这些技术之外,我们还提供了其他工具,允许用户对KAN应用更细粒度的控制,这些工具列在附录A中。

2.5.2 一个小的例子:人类如何与KAN互动

在上面,我们提出了一些简化KAN的技术。我们可以将这些简化选项视为可以点击的按钮。与这些按钮交互的用户可以决定下一步最可能点击哪个按钮,以使KAN更具可解释性。我们使用下面的示例来展示用户如何与KAN交互以获得最大可解释的结果。

让我们再次考虑回归任务
f ( x , y ) = exp ⁡ ( sin ⁡ ( π x ) + y 2 ) . (2.22) f(x,y)=\exp\left(\sin(\pi x)+y^2\right). \tag{2.22} f(x,y)=exp(sin(πx)+y2).(2.22)
给定数据点 ( x i , y i , f i ) (x_i, y_i, f_i) (xi,yi,fi),$ i = 1,2,…,N_p$,假设用户Alice有兴趣计算符号公式。Alice与KAN交互的步骤如下所示(如图2.4所示):

步骤1:稀疏化训练。从全连接[2,5,1]KAN开始,使用稀疏化正则化训练可以使其变得非常稀疏。隐藏层中的5个神经元中有4个似乎是无用的,因此我们想把它们修剪掉。

步骤2:修剪。自动修剪可以丢弃除最后一个神经元外的所有隐藏神经元,留下一个[2,1,1]KAN。激活函数似乎是已知的符号函数。

步骤3:设置符号函数。假设用户可以通过盯着KAN图正确地猜出这些符号公式,他们就可以设置

fix_symbolic(0,0,0,'sin') 
fix_symbolic(0,1,0,'x^2') 
fix_symbolic(1,0,0,'exp').

如果用户没有领域知识或不知道这些激活函数可能是哪些符号函数,我们提供了一个函数建议符号候选。

步骤4:进一步训练。将网络中所有的激活函数符号化后,剩下的参数就是仿射参数了。我们继续训练这些仿射参数,当我们看到损失下降到机器精度时,我们知道我们已经找到了正确的符号表达式。

步骤5:输出符号公式。Sympy用于计算输出节点的符号公式。用户得到 1.0 e 1.0 y 2 + 1.0 sin ( 3.14 x ) 1.0e^{1.0y^2+1.0\text{sin}(3.14x)} 1.0e1.0y2+1.0sin(3.14x),这是正确的答案(我们只显示了π的两个小数)。

在这里插入图片描述

注:为什么不使用符号回归(SR)?在这个例子中使用符号回归是合理的。然而,符号回归方法通常是脆弱的,难以调试。它们最终要么返回成功,要么返回失败,而不输出可解释的中间结果。相比之下,KAN在函数空间中进行连续搜索(使用梯度下降),因此它们的结果更连续,因此更健壮。此外,由于KAN的透明度,与SR相比,用户对KAN有更多的控制权。我们将KAN可视化的方式就像将KAN的“大脑”展示给用户,用户可以对KAN进行“手术”(调试)。这种级别的控制对于SR来说通常是不可用的。我们将在4.4节中展示这方面的例子。更一般地说,当目标函数不是符号时,符号回归将失败,但KAN仍然可以提供一些有意义的东西。例如,一个特殊的函数(如贝塞尔函数)除非事先提供,否则SR是不可能学习的,但无论如何,KAN可以使用样条曲线在数值上近似它(见图4.1 (d))。

注:(整数阶)贝塞尔函数 Bessel Function https://zhuanlan.zhihu.com/p/577251611

3 KAN are accurate

在本节中,我们将证明在各种任务(回归和PDE求解)中,KAN比MLP更有效地表示函数。在比较两类模型时,比较它们的准确性(损失)和复杂性(参数数量)是公平的。我们将展示KAN比MLP显示更有利的帕累托边界。此外,在第3.5节中,我们展示了KAN可以自然地在持续学习中工作,而不会发生灾难性遗忘。

3.1 小数据集

在第2.3节中,我们的理论建议使用模型参数 ℓ \ell 来测试RMSE损失的尺度为 ℓ ∝ N − 4 \ell∝N^{−4} N4。然而,这依赖于Kolmogorov-Arnold表示的存在。作为完整性检查,我们构造了五个我们知道具有平滑KA表示的示例:

(1) f ( x ) = J 0 ( 20 x ) f(x) = J_0(20x) f(x)=J0(20x),即贝塞尔函数。由于它是单变量函数,因此可以用样条表示,即[1,1]KAN。

(2) f ( x , y ) = e x p ( s i n ( π x ) + y 2 ) f(x, y) = exp(sin(πx) + y^2) f(x,y)=exp(sin(πx)+y2)我们知道它可以用[2,1,1]KAN精确表示。

(3) f ( x , y ) = x y f(x, y) = xy f(x,y)=xy。从图4.1中我们知道,它可以用[2,2,1]KAN精确地表示。

(4) 一个高维例子 f ( x 1 , ⋅ ⋅ ⋅ , x 100 ) = exp ⁡ ( 1 100 ∑ i = 1 100 sin ⁡ 2 ( π x i 2 ) ) f(x_1,···,x_{100}) = \exp(\frac1{100}\sum_{i=1}^{100}\sin^2(\frac{\pi x_i}2)) f(x1⋅⋅⋅x100)=exp(1001i=1100sin2(2πxi)),可以用一个[100,1,1]KAN表示。

(5) 一个四维的例子 f ( x 1 , x 2 , x 3 , x 4 ) = exp ⁡ ( 1 2 ( sin ⁡ ( π ( x 1 2 + x 2 2 ) ) + sin ⁡ ( π ( x 3 2 + x 4 2 ) ) ) ) f(x_1, x_2, x_3, x_4) = \exp(\frac12(\sin(\pi(x_1^2+x_2^2))+\sin(\pi(x_3^2+x_4^2)))) f(x1,x2,x3,x4)=exp(21(sin(π(x12+x22))+sin(π(x32+x42)))),可以用一个[4,4,2,1]KAN表示。

我们通过每200步增加网格点来训练这些KAN,总共覆盖G ={3,5,10,20,50,100,200,500,1000}。我们训练不同深度和宽度的MLP作为基线。MLP和KAN都用LBFGS进行了总共1800步的训练。我们在图3.1中绘制了KAN和MLP的测试RMSE作为参数数量的函数,表明KAN比MLP具有更好的缩放曲线,特别是对于高维示例。为了进行比较,我们将KAN理论预测的线绘制为红色虚线(α = k+ 1 = 4),将Sharma & Kaplan[17]预测的线绘制为黑色虚线(α = (k+ 1)/d = 4/d)。KAN几乎可以饱和较陡的红线,而MLP努力收敛,甚至像较慢的黑线一样快,并迅速稳定。我们还注意到,对于最后一个例子,2层KAN[4,9,1]的性能比3层KAN(形状[4,2,2,1])差得多。这突出了更深层次的KAN具有更强的表达能力,这与MLP相同:更深层次的MLP比浅层次的MLP具有更强的表达能力。

在这里插入图片描述

3.2 特殊函数

对上述结果的一个警告是,我们假设知道“真正的”KAN形状。在实践中,我们不知道KA表示的存在。即使我们被承诺存在这样一个KA表示,我们也不知道KAN的先验形状。有多个变量的特殊函数就是这种情况,因为如果多元特殊函数(例如,贝塞尔函数 f ( ν , x ) = J ν ( x ) f(ν, x) = J_ν(x) f(ν,x)=Jν(x))可以写成KA表示,只涉及单变量函数和和,那将是(数学上)令人惊讶的。我们在下面展示:

(1) 找到(近似)紧凑的特殊函数KA表示是可能的,从Kolmogorov-Arnold表示的角度揭示了特殊函数的新的数学性质。

(2) KAN在表示特殊函数时比MLP更高效和准确。

我们收集了数学和物理中常见的15个特殊函数,如表2所示。我们选择宽度为5或100,深度为{2,3,4,5,6}的固定MLP。我们在有和没有修剪的情况下运行KAN。没有修剪的KAN:我们固定KAN的形状,宽度设为5,深度扫入{2,3,4,5,6}。KAN与修剪。我们使用第2.5.1节中的稀疏化(λ = 10−2或10−3)和修剪技术,从固定形状的KAN中修剪出更小的KAN。每个KAN初始化为G = 3,用LBFGS进行训练,每200步增加网格点的数量,覆盖G ={3,5,10,20,50,100,200}。对于每个超参数组合,我们运行3个随机种子。

对于每个数据集和每个模型族(KAN或MLP),我们在(参数数,RMSE)平面上绘制了帕累托边界,如图3.2所示。

在这里插入图片描述

注:Pareto frontier 帕累托边界 https://zhuanlan.zhihu.com/p/447987695

KAN的性能始终优于MLP,即,在给定相同数量的参数的情况下,KAN可以实现比MLP更低的训练/测试损失。此外,我们在表2中报告了自动发现的用于特殊函数的KAN的形状(非常紧凑)。一方面,从数学上解释这些紧凑表示的含义是很有趣的(我们在附录F的图F.1和F.2中包含了KAN的插图)。另一方面,这些紧凑表示意味着将高维查找表分解为几个1D查找表的可能性,这可能会节省大量内存,在推理时执行一些加法的开销(几乎可以忽略不计)。

在这里插入图片描述

3.3 Feynman数据集

3.1节中的设置是当我们清楚地知道“真正的”KAN形状时。3.2节中的设置是当我们显然不知道“真正的”KAN形状时。这一部分研究了中间的一种设置:给定数据集的结构,我们可以手工构建KAN,但我们不确定它们是否是最佳的。在这种情况下,比较人工构建的KAN和通过修剪(第2.5.1节中的技术)自动发现的KAN是很有趣的。

Feynman数据集。Feynman数据集收集了Feynman教科书中的许多物理方程[20,21]。出于我们的目的,我们对Feynman_no_units数据集中至少有2个变量的问题感兴趣,因为单变量问题对于KAN来说是微不足道的(它们简化为1D样条)。Feynman数据集中的一个示例方程是相对论速度加法公式:
f ( u , v ) = ( u + v ) / ( 1 + u v ) . (3.1) f(u,v)=(u+v)/(1+uv). \tag{3.1} f(u,v)=(u+v)/(1+uv).(3.1)
数据集可以通过随机绘制 u i ∈ ( − 1 , 1 ) , v i ∈ ( − 1 , 1 ) u_i∈(−1,1),v_i∈(−1,1) ui(1,1)vi(1,1),并计算 f i = f ( u i , v i ) f_i = f(u_i, v_i) fi=f(ui,vi)来构建。给定许多元组 ( u i , v i , f i ) (u_i, v_i, f_i) (ui,vi,fi),训练神经网络,旨在从u和v中预测f。我们感兴趣的是(1)神经网络在测试样本上的表现如何;(2)我们可以从神经网络中了解多少问题的结构。

我们比较了四种类型的神经网络:

(1) 人类构建的KAN。给定一个符号公式,我们用Kolmogorov-Arnold表示重写它。例如,要把两个数x和y相乘,我们可以用恒等式 x y = ( x + y ) 2 4 − ( x − y ) 2 4 xy = \frac{(x+y)^2}4-\frac{(x-y)^2}4 xy=4(x+y)24(xy)2,对应于[2,2,1]KAN。构建的形状列在表3的“人工构建的KAN形状”中。

(2) 不修剪的KAN。我们将KAN形状固定为宽度5,深度扫过{2,3,4,5,6}。

(3) 带修剪的KAN。我们使用稀疏化(λ = 10−2或10−3)和2.5.1节中的修剪技术,从(2)的固定形状KAN中获得更小的KAN。

(4) 固定宽度为20,深度扫描范围为{2,3,4,5,6},激活范围为{Tanh, ReLU, SiLU}的MLP。

每个KAN初始化为G = 3,用LBFGS进行训练,每200步增加网格点的数量,覆盖G ={3,5,10,20,50,100,200}。对于每个超参数组合,我们尝试3个随机种子。对于每个数据集(方程)和每种方法,我们在表3中报告了随机种子和深度上的最佳模型(最小KAN形状,或最低测试损失)的结果。我们发现MLP和KAN的平均表现相当。对于每个数据集和每个模型族(KAN或MLP),我们在由参数数量和RMSE损失所跨越的平面上绘制了帕累托边界,如图D.1所示。我们推测Feynman数据集太简单,无法让KAN进一步改进,因为变量依赖通常是平滑或单调的,这与经常表现出振荡行为的特殊函数的复杂性形成对比。

自动发现的KAN比人工构建的KAN要小。我们在表3的两列中报告了修剪后的KAN形状;一列是最小修剪KAN形状,可以实现合理的损失(即,测试RMSE小于102);另一列是达到最低测试损失的经过修剪的KAN。为了完整起见,我们在附录D中可视化了所有54个修剪过的KAN(图D.2和D.3)。有趣的是,自动发现的KAN形状(最小和最佳)通常比我们的人类结构小。这意味着KA表示可以比我们想象的更有效。与此同时,这可能会使可解释性变得微妙,因为信息被压缩到一个比我们舒适的更小的空间。

例如,考虑相对论速度组合 f ( u , v ) = u + v 1 + u v f(u,v)=\frac{u+v}{1+uv} f(u,v)=1+uvu+v。我们的构造相当深,因为我们假设u和v的乘法将使用两层(见图4.1 (a)), 1+uv的反转将使用一层,u+v和1/(1+uv)的乘法将使用另外两层,总共5层。然而,自动发现的KAN只有2层深度!事后看来,如果我们回想一下相对论中的速度技巧,这实际上是可以预料到的:定义两个“速度” a ≡ arctanh  u 和 b ≡ arctanh  v a\equiv\text{arctanh }u\text{和}b\equiv\text{arctanh }v aarctanh ubarctanh v。速度的相对论性组成是在速度空间中的简单相加,即 u + v 1 + u v = tanh ⁡ ( a r c t a n h u + a r c t a n h v ) \frac{u+v}{1+uv}=\tanh(\mathrm{arctanh}u+\mathrm{arctanh}v) 1+uvu+v=tanh(arctanhu+arctanhv),这可以通过两层KAN来实现。假设我们不知道物理学中速度的概念,我们就有可能在没有试错符号操作的情况下从KAN中发现这个概念。第4节主要讨论有助于科学发现的可解释性。

在这里插入图片描述

3.4 解偏微分方程

我们考虑一个无狄利克雷边界数据的泊松方程。对于Ω =[−1,1]2,考虑PDE
u x x + u y y = f in Ω , u = 0 on ∂ Ω . (3.2) \begin{aligned}u_{xx}+u_{yy}&=f\quad\text{in}\quad\Omega,\\u&=0\quad\text{on}\quad\partial\Omega.\end{aligned} \tag{3.2} uxx+uyyu=finΩ,=0onΩ.(3.2)
考虑数据 f = − π 2 ( 1 + 4 y 2 ) sin ⁡ ( π x ) sin ⁡ ( π y 2 ) + 2 π sin ⁡ ( π x ) cos ⁡ ( π y 2 ) f=-\pi^2(1+4y^2)\sin(\pi x)\sin(\pi y^2)+2\pi\sin(\pi x)\cos(\pi y^2) f=π2(1+4y2)sin(πx)sin(πy2)+2πsin(πx)cos(πy2),其中 u = s i n ( π x ) s i n ( π y 2 ) u = sin(πx) sin(πy^2) u=sin(πx)sin(πy2)为真解。我们使用基于物理的神经网络框架(PINN)[22,23]求解该PDE,损失函数为
l o s s p d e = α l o s s i + l o s s b : = α 1 n i ∑ i = 1 n i ∣ u x x ( z i ) + u y y ( z i ) − f ( z i ) ∣ 2 + 1 n b ∑ i = 1 n b u 2 , \mathrm{loss}_{\mathrm{pde}}=\alpha\mathrm{loss}_{i}+\mathrm{loss}_{b}:=\alpha\frac{1}{n_{i}}\sum_{i=1}^{n_{i}}|u_{xx}(z_{i})+u_{yy}(z_{i})-f(z_{i})|^{2}+\frac{1}{n_{b}}\sum_{i=1}^{n_{b}}u^{2}, losspde=αlossi+lossb:=αni1i=1niuxx(zi)+uyy(zi)f(zi)2+nb1i=1nbu2,
其中我们使用 l o s s i loss_i lossi表示内部损失,通过在域内 n i n_i ni z i = ( x i , y i ) z_i = (x_i, y_i) zi=(xi,yi)的均匀采样离散和评估,同样我们使用 l o s s b loss_b lossb表示边界损失,通过在边界上 n b n_b nb点的均匀采样离散和评估。 α α α是平衡这两项影响的超参数。

我们使用相同的超参数 n i = 10000 , n b = 800 n_i = 10000, n_b = 800 ni=10000,nb=800 α = 0.01 α = 0.01 α=0.01将KAN架构与MLP进行比较。我们测量了L2范数和能量(H1)范数的误差,发现KAN使用更小的网络和更少的参数,以更小的误差实现了更好的缩放律;见图3.3。因此,我们推测,KAN可能有潜力作为一个良好的神经网络表示的模型减少偏微分方程。

在这里插入图片描述

3.5 持续学习

灾难性遗忘是当前机器学习中的一个严重问题[24]。当人类掌握一项任务并切换到另一项任务时,他们不会忘记如何执行第一个任务。不幸的是,这不是神经网络的情况。当一个神经网络在任务1上训练,然后转移到任务2上训练时,网络很快就会忘记如何执行任务1。人工神经网络和人类大脑的一个关键区别在于,人类大脑在空间的局部位置有功能不同的模块。当学习新任务时,结构重组只发生在负责相关技能的局部区域[25,26],其他区域保持不变。大多数人工神经网络,包括MLP,都没有这种局部性的概念,这可能是灾难性遗忘的原因。

我们表明,KAN具有局部可塑性,可以通过利用样条的局域性来避免灾难性遗忘。这个想法很简单:因为样条基是局部的,一个样本只会影响附近的几个样条系数,而留下较远的系数不变(这是可取的,因为较远的区域可能已经存储了我们想要保存的信息)。相比之下,由于MLP通常使用全局激活,例如,ReLU/Tanh/SiLU等,任何局部变化都可能不受控制地传播到遥远的区域,破坏存储在那里的信息。

我们用一个简单的例子来验证这个直觉。一维回归任务由5个高斯峰组成。每个峰值周围的数据按顺序(而不是一次全部)呈现给KAN和MLP,如图3.4上行所示。每个训练阶段后的KAN和MLP预测显示在中间和底部的行中。正如预期的那样,KAN只对当前阶段存在数据的区域进行重构,而不改变先前的区域。相比之下,MLP在看到新的数据样本后会重塑整个区域,导致灾难性遗忘。

在这里插入图片描述

在这里,我们简单地通过一个极其简单的例子来展示我们的初步结果,以演示如何可能利用KAN中的局域性(由于样条参数化)来减少灾难性遗忘。然而,尚不清楚我们的方法是否可以推广到更现实的设置,我们将其留给未来的工作。我们还想研究我们的方法如何在持续学习中与SOTA方法相连接和结合[27,28]。

4 KAN are interpretable

在本节中,我们将展示由于我们在第2.5节中开发的技术,KAN是可解释和交互式的。我们不仅要在合成任务(第4.1和4.2节)中测试KAN的使用,还要在现实生活中的科学研究中测试。我们证明了KAN可以(重新)发现结理论(第4.3节)中的高度非平凡关系和凝聚态物理(第4.4节)中的相变边界。由于其准确性(上一节)和可解释性(本节),KAN可能成为AI + Science的基础模型。

4.1 有监督小数据集

我们首先考察了KAN在符号公式中揭示组成结构的能力。下面列出了六个示例,它们的KAN如图4.1所示。KAN能够揭示这些公式中存在的组合结构,并学习正确的单变量函数。

在这里插入图片描述

(a) 乘法f(x, y)=xy。A[2,5,1]KAN被剪枝为A[2,2,1]KAN。学习到的激活函数是线性的和二次的。从计算图中,我们看到它计算xy的方式是利用2xy=(x+y) 2-(x2+y2)。

(b) 除法f(x, y)=x/y。A[2,5,1]KAN被修剪为A[2,1,1]KAN。学习到的激活函数是对数和指数函数,KAN通过利用恒等式x/y = exp(logx - logy)来计算x/y。

© 数字到分类。任务是将[0,1]中的实数转换为它的第一个十进制数字(作为一个热点),例如,0.0618→[1,0,0,0,0,0,···],0.314→[0,0,0,1,0,···]。注意,激活函数被学习为位于相应的十进制数字周围的尖峰。

(d) 特殊函数 f ( x , y ) = exp ⁡ ( J 0 ( 20 x ) + y 2 ) f(x,y)=\exp(J_0(20x)+y^2) f(x,y)=exp(J0(20x)+y2)。符号回归的一个限制是,如果特殊函数没有作为先验知识提供,它将永远找不到正确的公式。KAN可以学习特殊的函数-高度摆动的贝塞尔函数 J 0 ( 20 x ) J_0(20x) J0(20x)是由KAN学习(数值)的。

(e) 相变 f ( x 1 , x 2 , x 3 ) = tanh ⁡ ( 5 ( x 1 4 + x 2 4 + x 3 4 − 1 ) ) f(x_1,x_2,x_3)=\tanh(5(x_1^4+x_2^4+x_3^4-1)) f(x1,x2,x3)=tanh(5(x14+x24+x341))。相变在物理学中是非常有趣的,所以我们希望KAN能够检测相变并识别正确的顺序参数。我们用tanh函数来模拟相变行为,序参量是四次项x1, x2, x3的组合。KAN训练后出现了四次依赖性和二次依赖性。这是4.4节讨论的局部化相变的简化情况。

注:物理学有个术语叫Phase Transition,中文翻译成“相变”,指一种相态朝另外一种相态转变的过程

(f) 更深层的组合 f ( x 1 , x 2 , x 3 , x 4 ) = ( x 1 − x 2 ) 2 + ( x 3 − x 4 ) 2 f(x_1,x_2,x_3,x_4)=\sqrt{(x_1-x_2)^2+(x_3-x_4)^2} f(x1,x2,x3,x4)=(x1x2)2+(x3x4)2 。为了计算这个,我们需要恒等函数、平方函数和平方根,这至少需要一个三层的KAN。实际上,我们发现[4,3,3,1]KAN可以被自动修剪为[4,2,1,1]KAN,这与我们期望的计算图完全对应。

来自Feynman数据集和特殊函数数据集的更多示例显示在附录D和F中的图D.2、D.3、F.1、F.2中。

4.2 无监督小数据集

通常,科学发现被表述为监督学习问题,即给定输入变量 x 1 , x 2 , ⋅ ⋅ ⋅ , x d 和 x_1, x_2,···,x_d和 x1,x2⋅⋅⋅xd输出变量 ( s ) y (s) y (s)y,我们希望找到一个可解释的函数 f f f,使得 y ≈ f ( x 1 , x 2 , ⋅ ⋅ ⋅ , x d ) y≈f(x_1, x_2,···,x_d) yf(x1,x2⋅⋅⋅xd)。然而,另一种类型的科学发现可以表述为无监督学习,即给定一组变量 ( x 1 , x 2 , ⋅ ⋅ ⋅ , x d ) (x_1, x_2,···,x_d) (x1,x2⋅⋅⋅xd),我们想要发现变量之间的结构关系。具体来说,我们想找到一个非零的 f f f,满足
f ( x 1 , x 2 , ⋯   , x d ) ≈ 0. (4.1) f(x_1,x_2,\cdots,x_d)\approx0. \tag{4.1} f(x1,x2,,xd)0.(4.1)
例如,考虑一组满足 x 3 = e x p ( s i n ( π x 1 ) + x 2 2 ) x_3 = exp(sin(πx_1) + x^2_2) x3=exp(sin(πx1)+x22)的特征 ( x 1 , x 2 , x 3 ) (x_1, x_2, x_3) (x1,x2,x3)。那么一个有效的 f f f f ( x 1 , x 2 , x 3 ) = s i n ( π x 1 ) + x 2 2 − l o g ( x 3 ) = 0 f(x_1, x_2, x_3) = sin(πx_1) + x^2_2-log(x3) = 0 f(x1,x2,x3)=sin(πx1)+x22log(x3)=0,这意味着 ( x 1 , x 2 , x 3 ) (x_1, x_2, x_3) (x1,x2,x3)的点形成一个由 f = 0 f = 0 f=0指定的二维子流形,而不是填充整个三维空间。

如果可以设计一种算法来解决无监督问题,它比有监督问题具有相当大的优势,因为它只需要特征集S = (x1, x2,···,xd)。另一方面,监督问题试图根据其他特征来预测特征的子集,即。它将S = Sin∪Sout分解为要学习的函数的输入和输出特征。如果没有领域专家来建议分裂,则存在2d−2种可能性,例如|Sin| > 0和|Sout| > 0。使用无监督方法可以避免这种指数级大的监督问题空间。这种无监督学习方法对第4.3节中的knot数据集很有价值。Google Deepmind团队[29]手动选择签名作为目标变量,否则他们将面临上述组合问题。这就提出了一个问题,我们是否可以直接解决无监督学习。我们在下面给出我们的方法和一个简单的例子。

我们通过将无监督学习问题转化为所有d个特征的监督学习问题来解决无监督学习问题,而不需要选择分裂。基本思想是学习函数f(x1,…), xd) = 0使得f不是0函数。为此,与对比学习类似,我们定义了正样本和负样本:正样本是真实数据的特征向量。负样本由特征损坏构造。为了确保每个拓扑不变量的整体特征分布保持不变,我们通过在整个训练集中随机排列每个特征来执行特征破坏。现在我们想训练一个网络g,使g(xreal) = 1, g(xfake) = 0,这样问题就变成了一个监督问题。但是,请记住,我们最初希望f(xreal) = 0和 f ( x f a k e ) ≠ 0 f(\mathbf{x}_{\mathrm{fake}})\neq0 f(xfake)=0。我们可以通过g = σ◦f来实现这一点,其中 σ ( x ) = exp ⁡ ( − x 2 2 w 2 ) \sigma(x)=\exp(-\frac{x^{2}}{2w^{2}}) σ(x)=exp(2w2x2)是一个小宽度w的高斯函数,这可以方便地通过形状为[…,1,1]的KAN实现。其最后一次激活被设置为高斯函数σ,之前的所有层都形成f。除了上面提到的修改之外,其他所有内容对于监督训练都是相同的。

现在我们证明无监督范式适用于一个综合示例。让我们考虑一个6D数据集,其中(x1, x2, x3)是因变量,这样 x 3 = e x p ( s i n ( x 1 ) + x 2 2 ) x_3 = exp(sin(x_1)+ x^2_2) x3=exp(sin(x1)+x22);(x4, x5)为因变量, x 5 = x 4 3 x_5 = x^3_4 x5=x43;X6与其他变量无关。在图4.2中,我们表明,当seed = 0时,KAN揭示了x1、x2、x3之间的函数依赖关系;对于另一个seed = 2024,KAN揭示了x4和x5之间的功能依赖关系。我们的初步结果依赖于随机性(不同的种子)来发现不同的关系;在未来,我们希望研究一种更系统、更可控的方法来发现一套完整的关系。

在这里插入图片描述

即便如此,我们的工具在目前的状态下可以为科学任务提供见解。我们在第4.3节中介绍了knot数据集的结果。

4.3 在数学上的应用:纽结理论

纽结理论是低维拓扑学中的一门学科,它揭示了三流形和四流形的拓扑方面,并在生物学和拓扑量子计算中有多种应用。数学上,结点K是 S 1 S^1 S1嵌入到 S 3 S^3 S3。两个结点K和K’在拓扑上是等价的,如果其中一个可以通过环境空间 S 3 S^3 S3的变形而变形成另一个,在这种情况下,我们写[K] = [K’]。有些结在拓扑上是微不足道的,这意味着它们可以平滑地变形成一个标准圆。结点具有各种称为拓扑不变量的变形不变量特征,可以用来表明两个结点在拓扑上是不等价的,如果 f ( K ) ≠ f ( K ’ ) f(K) \neq f(K’) f(K)=f(K) [ K ] ≠ [ K ′ ] [K] \neq [K'] [K]=[K]。在某些情况下,拓扑不变量本质上是几何的。例如,一个双曲结K有一个结补 S 3 ∖ K S^{3}\setminus K S3K,它允许一个标准双曲度规g,使得 v o l g ( K ) vol_g(K) volg(K)是一个被称为双曲体积的拓扑不变量。其他拓扑不变量本质上是代数的,比如琼斯多项式。

考虑到结在数学中的基本性质及其应用的重要性,研究机器学习是否能产生新的结果是很有趣的。例如,在[30]中,强化学习被用于建立某些结的带状,这排除了光滑4D poincarcarcarve猜想的许多潜在反例。

在[29]中,利用监督学习和人类领域专家得出了一个关于代数和几何结不变量的新定理。在这种情况下,梯度显著性确定了监督问题的关键不变量,这使得领域专家做出了一个猜想,随后得到了改进和证明。我们研究了KAN是否可以在同样的问题上获得很好的可解释结果,从而预测结的特征。他们研究结理论数据集的主要结果是:

(1) 利用网络归因方法发现,信号σ主要依赖于子午距离µ(realµr, imageµi)和纵向距离λ。

(2) 人类科学家后来发现σ与 s l o p e ≡ R e ( λ μ ) = λ μ r μ r 2 + μ i 2 {\mathrm{slope}}\equiv\mathrm{Re}(\frac{\lambda}{\mu})=\frac{\lambda\mu_r}{\mu_r^2+\mu_i^2} slopeRe(μλ)=μr2+μi2λμr高度相关,并推导出了一个界|2σ−slope|。

我们在下面展示了KAN不仅用更小的网络和更多的自动化重新发现了这些结果,而且还提出了一些有趣的新结果和见解。

为了研究(1),我们将17个结不变量作为输入,信号作为输出。与[29]中的设置类似,信号(偶数)被编码为单热向量,网络用交叉熵损失进行训练。我们发现一个极小的[17,1,14]KAN能够达到81.6%的测试精度(而Deepmind的4层宽度-300 MLP达到78%的测试精度)。[17,1,14] KAN (G = 3, k = 3)有≈200个参数,MLP有≈3 × 105个参数,如表4所示。

在这里插入图片描述

值得注意的是,KAN可以比MLP更准确,同时参数效率更高。在可解释性方面,我们根据其大小缩放每个激活的透明度,因此在不需要特征归属的情况下,可以立即清楚哪些输入变量是重要的(见图4.3左):信号主要依赖于 µ r µ_r µr,并且稍微依赖于 µ i µ_i µi λ λ λ,而对其他变量的依赖性很小。然后,我们在三个重要变量上训练了[3,1,14]KAN,获得了78.2%的测试准确率。我们的结果与[29]的结果有一个细微的区别:他们发现信号主要依赖于 µ i µ_i µi,而我们发现信号主要依赖于 µ r µ_r µr。这种差异可能是由于微妙的算法选择,但导致我们进行以下实验:

(a) 消融研究。我们表明, µ r µ_r µr对准确度的贡献大于 µ i µ_i µi(见图4.3):例如, µ r µ_r µr单独可以达到65.0%的准确度,而 µ i µ_i µi单独只能达到43.8%的准确度。

在这里插入图片描述

(b) 我们找到了一个符号公式(见表5),它只涉及 µ r µ_r µr λ λ λ,但可以达到77.8%的测试精度。

在这里插入图片描述

为了研究(2),即得到σ的符号形式,我们将问题表述为一个回归任务。使用2.5.1节介绍的自动符号回归,我们可以将训练好的KAN转换为符号公式。我们训练的KAN形状为[3,1],[3,1,1],[3,2,1],其对应的符号公式如表5 B-D所示。很明显,通过更大的KAN,准确性和复杂性都会增加。因此,KAN提供的不仅仅是一个象征性的公式,而是整个公式的帕累托边界,权衡简单性和准确性。然而,KAN需要额外的归纳偏差来进一步简化这些方程,以重新发现[29]中的公式(表5a)。

我们已经测试了两个场景:(1)在第一个场景中,我们假设基本真理公式具有多变量Pade表示(两个多变量泰勒级数的除法)。我们首先训练[3,2,1],然后将其拟合到page表示中。我们可以得到表5中的公式E,与Deepmind的公式有相似之处。(2)我们假设KAN的除法不是很可解释,所以我们训练两个KAN(一个用于分子,另一个用于分母)并手动除法。令人惊讶的是,我们最终得到公式F(表5),它只涉及 µ r µ_r µr λ λ λ,尽管也提供了 µ i µ_i µi,但被KAN忽略了。

到目前为止,我们重新发现了[29]中的主要结果。值得注意的是,KAN使这一发现非常直观和方便。与其使用特征归因方法(这是很好的方法),不如直接盯着KAN的可视化。此外,自动符号回归也使符号公式的发现变得更加容易。

在接下来的部分中,我们提出了一种新的“数学AI”范式,该范式未包含在Deepmind论文中,我们的目标是使用KAN的无监督学习模式来发现结不变量中的更多关系(除了信号)。

无监督学习 正如我们在4.2节中提到的,无监督学习是一种更有前途的设置,因为它避免了手动划分具有组合许多可能性的输入和输出变量。在无监督学习模式中,我们将所有18个变量(包括信号)作为输入,使它们处于相同的基础上。结数据是正样本,我们随机洗牌特征得到负样本。一个[18,1,1]KAN被训练来分类给定的特征向量是属于正样本(1)还是负样本(0)。我们手动将第二层激活设置为以零为中心的高斯函数,因此正样本将在(大约)零处具有激活,隐式地给出结不变量 ∑ i = 1 18 g i ( x i ) = 0 \sum_{i=1}^{18}g_i(x_i)=0 i=118gi(xi)=0之间的关系,其中 x i x_i xi代表特征(不变量), g i g_i gi是相应的激活函数,可以很容易地从KAN图中读出。我们使用λ ={10−2,10−3}来训练KAN,以支持输入的稀疏组合,并且seed ={0,1,···,99}。所有200个网络可以分成三个集群,图4.4中显示了具有代表性的KAN。这三组因变量是:

(1) 第一组因变量是特征、子午距离实部和纵向距离(加上另外两个变量,由于(3)可以去除)。这就是上面研究的特征依赖关系,所以在无监督模式下再次发现这种依赖关系是非常有趣的。

(2) 第二组变量包括顶点体积V、子午平移量µr和纵向平移量λ。它们的激活看起来都像对数函数(这可以通过第2.5.1节中隐含的符号功能来验证)。所以这个关系是 − log ⁡ V + log ⁡ µ r +   l o g λ = 0 - \log V + \logµ_r +\ log λ = 0 logV+logµr+ logλ=0等价于 V = µ r λ V =µ_rλ V=µrλ,根据定义是成立的。然而,令人欣慰的是,我们在没有任何先验知识的情况下发现了这种关系。

(3) 第三组变量包括短测地线 g r g_r gr实部和注入半径。它们的激活在质量上看起来是一样的,但有一个负号的区别,因此推测这两个变量具有线性相关性。我们绘制二维散射点,发现2r上界 g r g_r gr,这也是一个众所周知的关系[31]。

在这里插入图片描述

有趣的是,KAN的无监督模式可以重新发现一些已知的数学关系。好消息是,KAN发现的结果可能是可靠的;坏消息是我们还没有发现任何新的东西。值得注意的是,为了简单的可视化,我们选择了一个浅KAN,但是更深的KAN可能会发现更多的关系,如果它们存在的话。我们将在未来的工作中探讨如何发现更复杂的关系和更深层次的关系。

4.4 物理应用:安德森局域化

安德森局域化是量子系统中无序导致电子波函数局域化,导致所有输运停止的基本现象[32]。在一维和二维中,尺度论证表明,对于无限小的随机无序,所有电子本征态都是指数局域化的[33,34]。相反,在三维空间中,临界能量形成了一个相边界,将扩展态与局域态分开,称为迁移率边。对这些迁移率边的理解对于解释各种基本现象至关重要,例如固体中的金属-绝缘体跃迁[35],以及光子器件中的光局部化效应[36,37,38,39,40]。因此,有必要开发具有流动性边缘的微观模型,以便进行详细的研究。在较低的维度中开发这样的模型通常更实用,在较低的维度中,引入准周期性而不是随机无序也可以导致分离局部相位和扩展相位的迁移性边缘。此外,分析迁移边缘的实验实现可以帮助解决相互作用系统中关于定位的争论[41,42]。事实上,最近的一些研究已经专注于识别这些模型,并推导出它们的移动边缘的精确解析表达式[43,44,45,46,47,48,49]。

在这里,我们将KAN应用于由准周期紧密结合模型生成的数值数据,以提取其迁移率边。特别地,我们研究了三类模型:马赛克模型(MM)[47]、广义Aubry-André 模型(GAAM)[46]和修正的Aubry-André 模型(MAAM)[44]。对于MM,我们证明了KAN能够准确地提取迁移率边缘作为能量的一维函数。对于GAAM,我们发现由KAN得到的公式与基本真理非常接近。对于更复杂的MAAM,我们将演示该框架的符号可解释性的另一个示例。用户可以简化复杂的表达式通过“协作”的方式从KAN(以及相应的符号公式)中获得,其中人类产生假设以获得更好的匹配(例如,以某个激活函数的形式做出假设),之后KAN可以进行快速假设测试。

为了量化这些模型中状态的局部化,通常使用逆参与比(IPR)。第k个特征态的IPR, ψ ( k ) ψ^{(k)} ψ(k)
I P R k = ∑ n ∣ ψ n ( k ) ∣ 4 ( ∑ n ∣ ψ n ( k ) ∣ 2 ) 2 (4.2) \mathrm{IPR}_k=\frac{\sum_n|\psi_n^{(k)}|^4}{\left(\sum_n|\psi_n^{(k)}|^2\right)^2} \tag{4.2} IPRk=(nψn(k)2)2nψn(k)4(4.2)
总和在站点索引上运行。在这里,我们使用了相关的局部化度量——状态的分形维数,由
D k = − log ⁡ ( I P R k ) log ⁡ ( N ) (4.3) D_k=-\frac{\log(\mathrm{IPR}_k)}{\log(N)} \tag{4.3} Dk=log(N)log(IPRk)(4.3)
其中N为系统大小。Dk = 0(1)表示局部(扩展)状态。

马赛克模型(MM) 我们首先考虑一类由哈密顿量定义的紧密结合模型[47]
H = t ∑ n ( c n + 1 † c n + H.c. ) + ∑ n V n ( λ , ϕ ) c n † c n , (4.4) H=t\sum_n\left(c_{n+1}^\dagger c_n+\text{H.c.}\right)+\sum_nV_n(\lambda,\phi)c_n^\dagger c_n, \tag{4.4} H=tn(cn+1cn+H.c.)+nVn(λ,ϕ)cncn,(4.4)
其中t是最近邻耦合, c n ( c n † ) c_n(c^†_n) cn(cn)是n点的annihilation(产生)算符,势能Vn由
V n ( λ , ϕ ) = { λ cos ⁡ ( 2 π n b + ϕ ) j = m κ 0 , otherwise, (4.5) V_n(\lambda,\phi)=\begin{cases}\lambda\cos(2\pi nb+\phi)&j=m\kappa\\0,&\text{otherwise,}\end{cases} \tag{4.5} Vn(λ,ϕ)={λcos(2πnb+ϕ)0,j=otherwise,(4.5)
为了引入准周期性,我们设置b为无理数(特别是,我们选择b为黄金比例 1 + √ 5 2 \frac{1+√5}{2} 21+√5)。κ是一个整数,准周期电位以区间κ出现。该模型的能量(E)谱一般包含由迁移率边缘分隔的扩展和局部区域。有趣的是,这里发现的一个独特特征是,对于任意强的准周期势(即系统中总是存在与局域态共存的扩展态)存在迁移率边。

迁移率边可以用g(λ, E)≡λ−|fκ(E)| = 0来描述。g(λ, E) > 0和g(λ,E) < 0分别对应局域相和扩展相。因此,学习迁移边缘取决于学习“序参数”g(λ, E)。诚然,这类模型可以通过许多其他理论方法来解决这个问题[47],但我们将在下面证明,我们的KAN框架已经准备好了,并且可以方便地接受来自人类用户的假设和归纳偏差。

让我们假设一个假设的用户Alice,她是一个新的凝聚态物理博士生,她有一个[2,1]KAN作为任务的助手。首先,她明白这是一个分类任务,因此明智的做法是使用fix_symbolic功能将第二层中的激活函数设置为sigmoid。其次,她意识到学习整个二维函数g(λ, E)是不必要的,因为最终她只关心由g(λ, E) = 0决定的λ = λ(E)。这样做,可以合理地假设g(λ, E) = λ−h(E) = 0。Alice只是通过再次使用fix_symbolic函数将λ的激活函数设置为线性。现在Alice对KAN网络进行训练,方便地得到迁移边缘,如图4.5所示。Alice可以得到直观的定性理解(下)和定量结果(中),两者都很符合基本事实(上)。

在这里插入图片描述

广义Andre-Aubry模型(GAAM) 我们接下来考虑一类由哈密顿量定义的紧密结合模型[46]
H = t ∑ n ( c n + 1 † c n + H.c. ) + ∑ n V n ( α , λ , ϕ ) c n † c n , (4.6) H=t\sum_n\left(c_{n+1}^\dagger c_n+\text{H.c.}\right)+\sum_nV_n(\alpha,\lambda,\phi)c_n^\dagger c_n, \tag{4.6} H=tn(cn+1cn+H.c.)+nVn(α,λ,ϕ)cncn,(4.6)
其中t是最近邻耦合, c n ( c n † ) c_n(c^†_n) cn(cn)是n点的annihilation(产生)算符,势能Vn由
V n ( α , λ , ϕ ) = 2 λ cos ⁡ ( 2 π n b + ϕ ) 1 − α cos ⁡ ( 2 π n b + ϕ ) , (4.7) V_n(\alpha,\lambda,\phi)=2\lambda\frac{\cos(2\pi nb+\phi)}{1-\alpha\cos(2\pi nb+\phi)}, \tag{4.7} Vn(α,λ,ϕ)=2λ1αcos(2πnb+ϕ)cos(2πnb+ϕ),(4.7)
它对于α∈(- 1,1)是光滑的。为了引入准周期性,我们再次将b设为无理数(特别是,我们选择b作为黄金比例)。和前面一样,我们想要得到移动边缘的表达式。对于这些模型,迁移边缘由封闭形式表达式给出[46,48],
α E = 2 ( t − λ ) . (4.8) \alpha E=2(t-\lambda). \tag{4.8} αE=2(tλ).(4.8)
我们随机抽取模型参数φ, α和λ(设置能量尺度t = 1),计算能量特征值以及相应特征态的分形维数,形成我们的训练数据集。

这里要学习的“序参数”是g(α, E, λ, ϕ) = αE + 2(λ−1),迁移率边对应于g = 0。让我们再次假设Alice想要计算出移动边缘,但只能访问IPR或分形维数数据,因此她决定使用KAN来帮助她完成任务。Alice希望模型越小越好,所以她可以从一个大模型开始,使用自动修剪得到一个小模型,或者她可以根据她对给定问题复杂性的理解猜测一个合理的小模型。不管怎样,让我们假设她到达一个[4,2,1,1]KAN。首先,她将最后一个激活设置为s形,因为这是一个分类问题。她对KAN进行了一些稀疏性正则化训练,准确率达到98.7%,并在图4.6 (a)第1步中可视化了训练后的KAN。她观察到ϕ根本没有被拾取,这使她意识到移动边缘与ϕ无关(与公式(4.8)一致)。此外,她观察到几乎所有其他激活函数都是线性或二次的,因此她打开了自动符号捕捉,将库限制为仅线性或二次的。在此之后,她立即得到一个已经具有符号性的网络(如图4.6 (a)步骤2所示),准确率可达98.9%(甚至略好)。

在这里插入图片描述

通过使用symbolic_formula功能,Alice方便地获得了g的符号形式,如表6 GAAM-KAN+auto(第三行)所示。也许她想划掉一些小项,把系数改为小整数,这样她就更接近真实答案了。

在这里插入图片描述

如果Alice使用符号回归方法,这个假设的故事将完全不同。如果幸运的话,SR可以返回完全正确的公式。然而,绝大多数时候SR不会返回有用的结果,Alice不可能“调试”或与符号回归的底层过程交互。此外,在运行SR之前,Alice可能会觉得不舒服/没有经验提供一个符号术语库作为SR的先验知识。相比之下,在KAN中,Alice不需要向KAN提供任何先验信息。她首先可以通过盯着一个训练好的KAN来获得一些线索,然后她的工作就是决定她想要做出哪个假设(例如,“所有激活都是线性的或二次的”),并在KAN中实现她的假设。虽然KAN不太可能立即返回正确的答案,但KAN总是会返回一些有用的东西,并且Alice可以与其协作以改进结果。

修正Andre-Aubry模型(MAAM) 我们考虑的最后一类模型是由哈密顿量定义的[44]
H = ∑ n ≠ n ′ t e − p ∣ n − n ′ ∣ ( c n † c n ′ + H . c . ) + ∑ n V n ( λ , ϕ ) c n † c n , (4.9) H=\sum_{n\neq n'}te^{-p|n-n'|}\left(c_n^\dagger c_n'+\mathrm{H.c.}\right)+\sum_nV_n(\lambda,\phi)c_n^\dagger c_n, \tag{4.9} H=n=ntepnn(cncn+H.c.)+nVn(λ,ϕ)cncn,(4.9)
其中t是空间中指数衰减耦合的强度, c n ( c n † ) c_n(c^†_n) cn(cn)是n点的annihilation(产生)算符,势能Vn由
V n ( λ , ϕ ) = λ cos ⁡ ( 2 π n b + ϕ ) , (4.10) V_n(\lambda,\phi)=\lambda\cos(2\pi nb+\phi), \tag{4.10} Vn(λ,ϕ)=λcos(2πnb+ϕ),(4.10)
和以前一样,为了引入准周期性,我们将b设为无理数(黄金比例)。对于这些模型,迁移边缘由封闭形式表达式给出[44],
λ cosh ⁡ ( p ) = E + t = E + t 1 exp ⁡ ( p ) (4.11) \lambda\cosh(p)=E+t=E+t_1\exp(p) \tag{4.11} λcosh(p)=E+t=E+t1exp(p)(4.11)
其中定义 t 1 ≡ t e x p ( − p ) t_{1}\equiv t\mathrm{exp}(-p) t1texp(p)为最近邻跳跃强度,令 t 1 ≡ 1 t_1\equiv 1 t11

让我们假设Alice想要计算出MAAM的移动优势。这项任务更加复杂,需要更多的人类智慧。和上一个例子一样,Alice从[4,2,1,1]KAN开始训练它,但得到的准确率在75%左右,这是不可接受的。然后,她选择了一个更大的[4,3,1,1]KAN,并成功地获得了98.4%,这是可以接受的(图4.6 (b)步骤1)。Alice注意到,KAN没有拾取到ϕ,这意味着迁移边缘与相位因子ϕ无关(与公式(4.11)一致)。如果Alice打开自动符号回归(使用由exp, tanh等组成的大型库),她将得到表6MAAM-KAN+auto中的复杂公式,其准确率为97.1%。然而,如果Alice想要找到一个更简单的符号公式,她会想要使用手动模式,在那里她自己进行符号捕捉。在此之前,她发现训练后的[4,3,1,1]KAN可以被修剪为[4,2,1,1],同时保持97.7%的准确率(图4.6 (b))。Alice可能认为除了依赖于p的激活函数之外的所有激活函数都是线性的或二次的,并通过使用fix_symbolic手动将它们捕获为线性的或二次的。在抓取和再训练之后,更新后的KAN如图4.6 ©步骤3所示,准确率保持在97.7%。从现在开始,Alice可能会根据她的先验知识做出两种不同的选择。在一种情况下,Alice可能已经猜到对p的依赖是cosh,所以她将p的激活设置为cosh函数。她重新训练了KAN,准确率达到96.9%(图4.6 ©步骤4A)。在另一种情况下,Alice不知道cosh p依赖,所以她追求简单,假设p的函数是二次函数。她重新训练了KAN并获得了95.4%的准确率(图4.6 ©步骤4B)。如果她两者都尝试,她会意识到cosh在准确性方面更好,而二次型在简单性方面更好。表6列出了与这些步骤相对应的公式。很明显,Alice做的手工操作越多,符号公式就越简单(这稍微牺牲了精度)。KAN有一个“旋钮”,用户可以在简单性和准确性之间进行权衡(有时简单性甚至可以带来更好的准确性,就像在GAAM的情况下一样)。

5 Related works

Kolmogorov-Arnold定理和神经网络。Kolmogorov-Arnold定理(KAT)与神经网络之间的联系在文献中并不新鲜[50,51,8,9,10,11,12,13],但内部功能的病理行为使得KAT在实践中显得不太有希望[50]。这些先前的工作大多坚持原始的2层宽度-(2n + 1)网络,其表达能力有限,其中许多甚至早于反向传播。因此,大多数研究都是建立在理论基础上,进行了相当有限的或人为的玩具实验。我们的贡献在于将网络推广到任意宽度和深度,在今天的深度学习流中振兴和背景化它们,并突出其作为AI + Science基础模型的潜在作用。

神经尺度定律(NSL)。nsl是测试损失与模型大小、数据、计算等呈幂律关系的现象[52,53,54,55,17,56,57,58]。非母语语言的起源仍然是一个谜,但竞争理论包括内在维度[52]、任务量化[57]、资源理论[58]、随机特征[56]、组成稀疏性[50]和极大性[18]。本文通过展示如果高维函数具有光滑的Kolmogorov-Arnold表示,则高维函数可以惊人地缩放为一维函数(这是人们所希望的最佳界),从而对该空间做出贡献。我们的论文给神经标度定律带来了新的乐观,因为它承诺了有史以来最快的标度指数。我们已经在实验中表明,这种快速的神经缩放定律可以在合成数据集上实现,但未来的研究需要解决这个问题,即这种快速缩放是否可以实现更复杂的任务(例如,语言建模):KA表示是否存在于一般任务中?如果是这样,我们的训练在实践中发现了这些表征吗?

机械可解释性(MI)。人工智能是一个新兴领域,旨在机械地理解神经网络的内部工作原理[59,60,61,62,63,64,65,66,5]。人工智能研究大致可分为被动人工智能研究和主动人工智能研究。大多数人工智能研究都是被动的,专注于理解用标准方法训练的现有神经网络。主动智能研究试图通过设计内在可解释性架构或开发明确鼓励可解释性的训练方法来实现可解释性[65,66]。我们的工作属于第二类,其中模型和训练方法在设计上是可解释的。

可学的激活。神经网络中可学习激活的想法在机器学习中并不新鲜。可训练的激活函数以可微的方式学习[67,13,68,69]或以离散的方式搜索[70]。激活函数被参数化为多项式[67]、样条[13、71、72]、sigmoid线性单元[68]或神经网络[69]。KAN使用B-样条来参数化它们的激活函数。我们还介绍了我们在可学习激活网络(LAN)上的初步结果,其性质介于KAN和之间,其结果推迟到附录B,以在主要论文中关注KAN。

符号回归。有许多现成的基于遗传算法的符号回归方法(Eureka[73]、GPLearn[74]、PySR[75])、基于神经网络的方法(EQL[76]、OccamNet[77])、物理启发的方法(AI Feynman[20,21])和基于强化学习的方法[78]。KAN与基于神经网络的方法最相似,但与以前的工作不同的是,我们的激活函数在符号捕获之前连续学习,而不是手动固定[73,77]。

物理信息神经网络(PINN)和物理信息神经算子(PINO)。在第3.4节中,我们证明了在求解偏微分方程时,KAN可以取代使用MLP施加偏微分方程损失的范例。我们参考Deep Ritz Method[79]、pinn[22,23]求解PDE,以及Fourier Neural operator[80]、PINOs[81,82,83]、DeepONet[84]学习解映射的算子学习方法。在上述所有网络中,都有可能用KAN取代MLP。

数学人工智能。正如我们在第4.3节中看到的,人工智能最近被应用于结理论中的几个问题,包括检测一个结是unknot[85,86]还是ribbon knot[30],预测结不变量并揭示它们之间的关系[87,88,89,29]。关于数据科学在数学和理论物理数据集上的应用的总结,请参见[90,91],关于如何从这些领域的ML技术中获得严格结果的想法,请参见[92]。

6 Discussion

在本节中,我们从数学基础、算法和应用的角度讨论了KAN的局限性和未来的发展方向。

数学方面:虽然我们已经对KAN(定理2.1)进行了初步的数学分析,但我们对它们的数学理解仍然非常有限。Kolmogorov-Arnold表示定理在数学中已经得到了深入的研究,但该定理对应于形状为[n, 2n + 1,1]的KAN,它是KAN的一个非常受限制的子类。我们在更深层次的KAN经验上的成功是否意味着数学中的一些基础?一个吸引人的广义Kolmogorov-Arnold定理可以定义深度2组合之外的“更深”Kolmogorov-Arnold表示,并可能将激活函数的平滑性与深度联系起来。假设,存在不能在原始(深度-2)Kolmogorov-Arnold表示中平滑表示的函数,但可以在深度-3或更深的地方平滑表示。我们可以使用“Kolmogorov-Arnold深度”的概念来描述函数类吗?

算法方面:我们讨论以下内容:

(1) 准确性。加工户设计和训练中的多种选择没有得到充分的调查,因此替代方案可能会进一步提高准确性。例如,样条激活函数可以用径向基函数或其他局部核函数代替。可以使用自适应网格策略。

(2) 效率。KAN运行缓慢的一个主要原因是不同的激活函数无法利用批处理计算(通过相同函数处理大数据)。实际上,通过将激活函数分组到多个组(“多头”),可以在所有相同的激活函数(MLP)和所有不同的激活函数(KAN)之间插入,其中组内的成员共享相同的激活函数。

(3) KAN与MLP混合。与MLP相比,KAN有两个主要区别:(i)激活函数在边缘上而不是在节点上;(ii)激活函数是可学习的而不是固定的。哪种变化更能解释KAN的优势?我们在附录B中展示了我们的初步结果,其中我们研究了一个具有(ii)的模型,即激活函数是可学习的(如KAN),但不是(i),即激活函数在节点上(如MLP)。此外,还可以构建另一个具有固定激活(如MLP)但在边缘(如KAN)上的模型。

(4) 自适应性。由于样条基函数的固有局部性,我们可以在KAN的设计和训练中引入自适应,以提高准确性和效率:参见[93,94]中的多网格方法等多级训练思想,或[95]中的多尺度方法等域相关基函数的思想。

应用方面:我们已经提出了一些初步证据,表明在与科学相关的任务中,例如拟合物理方程和求解PDE, KAN比MLP更有效。我们期望KAN也可以用于求解Navier-Stokes方程,密度泛函理论,或任何其他可以表述为回归或PDE求解的任务。我们还希望将KAN应用于与机器学习相关的任务,这将需要将KAN集成到当前的架构中,例如Transformer-有人可能会提出“Kansformers”,用KAN取代Transformer中的MLP。

KAN作为AI + Science的“语言模型” 大型语言模型之所以如此具有变革性,是因为它们对任何会说自然语言的人都很有用。科学的语言是功能。KAN由可解释的函数组成,因此当人类用户盯着KAN时,就像是使用函数语言与它进行通信。本段旨在促进人工智能-科学家-协作模式,而不是我们的特定工具KAN。就像人们使用不同的语言进行交流一样,我们预计在未来,KAN将只是人工智能+科学的语言之一,尽管KAN将是第一批使人工智能和人类能够交流的语言之一。然而,在KAN的支持下,人工智能-科学家-协作模式从未如此简单和方便,这促使我们重新思考我们想要如何接近人工智能+科学的范式:我们想要人工智能科学家,还是我们想要帮助科学家的人工智能?(全自动)人工智能科学家的内在困难在于,很难将人类的偏好量化,从而将人类的偏好编入人工智能的目标。事实上,不同领域的科学家可能对哪些功能是简单的或可解释的有不同的看法。因此,科学家们更希望有一个能说科学语言(功能)的人工智能,并能方便地与单个科学家的归纳偏见互动,以适应特定的科学领域。

**最后的结论:我应该使用KAN还是MLP?**目前,KAN最大的瓶颈在于训练速度慢。在参数数量相同的情况下,KAN通常比MLP慢10倍。我们应该诚实地说,我们并没有努力去优化KAN的效率,所以我们认为KAN的慢训练更多的是一个工程问题,需要在未来的改进,而不是一个根本的限制。如果想快速训练模型,应该使用MLP。然而,在其他情况下,KAN应该与MLP相当或更好,这使得它们值得一试。图6.1中的决策树可以帮助决定何时使用KAN。简而言之,如果您关心可解释性和/或准确性,并且慢速训练不是主要问题,我们建议您尝试KAN。

在这里插入图片描述

Appendix

A KAN功能

在这里插入图片描述

B 可学习激活网络(LAN)

C 对超参数的依赖

D Feynman KAN

E 关于网格大小的说明

F KAN表示特殊函数

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1651731.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

20240508每日后端---聊聊内存溢出报警自动导出堆文件

1-Xms 内存溢出阈值 -Xmx -Xx:printGcDetail 2-xx:heapdumponoutofmemoryError 3-xx:heapdumppath文件输出路径

如何搭建PHP平台圈子是圈子小程序源码一个系统的软件搭建平台促进交流圈子经济运营模式-APP小程序H5前后端源码交付,一次购买,终生使用。

独立自主的专属APP 可上架至Appstore和各家安卓应用市场 接入现有APP 通过标准接口&#xff0c;快速接入企业已有业务APP 微信平台完美兼容 公众号h5、小程序、企业微信均得以支持 版块、分类结构 版块二级分类、版块内帖子主题分类 频道功能 跨版块、自定义选择条件、…

实验11:静态路由和默认路由故障排除(课内实验)

1、实验目的及要求&#xff1a; 掌握静态路由和默认路由故障排除的过程&#xff0c;在基于IPv4和IPv6双协议栈的网络中能够查找相关的配置问题&#xff0c;完成网络故障的分析和排除&#xff0c;进行相关网络联通性的测试。 2、实验设备&#xff1a; 路由器3台、二层交换机3台、…

用AI评估AI,上交大新款大模型部分任务超越GPT-4,模型数据都开源

评估大模型对齐表现最高效的方式是&#xff1f; 在生成式AI趋势里&#xff0c;让大模型回答和人类价值&#xff08;意图&#xff09;一致非常重要&#xff0c;也就是业内常说的对齐&#xff08;Alignment&#xff09;。 “让大模型自己上。” 这是上海交通大学生成式人工智能…

SpringBoot项目配置HTTPS接口的安全访问

参考&#xff1a;https://blog.csdn.net/weixin_45355769/article/details/131727935 安装好openssl后&#xff0c; 创建 D:\certificate CA文件夹下包含&#xff1a; index.txt OpenSSL在创建自签证书时会向该文件里写下索引database.txt OpenSSL会模拟数据库将一些敏感信息…

Flask-大体了解介绍

初识Flask Flask是使用 Python编写的Web微框架。Web框架可以让我们不用关心底层的请求响应处理&#xff0c;更方便高效地编写Web程序。 Flask主要有两个依赖&#xff0c;一个是WSGI&#xff08;Web Server Gateway Interface&#xff0c;Web服务器网关接口&#xff09;工具集…

森林消防新利器:高扬程水泵的革新与应用/恒峰智慧科技

随着全球气候变化的加剧&#xff0c;森林火灾的频发已成为威胁生态安全的重要问题。在森林消防工作中&#xff0c;高效、快速的水源供给设备显得尤为重要。近年来&#xff0c;高扬程水泵的广泛应用&#xff0c;为森林消防工作带来了新的希望与突破。 一、高扬程水泵的技术优势 …

聚观早报 | 比亚迪首款新能源皮卡;苹果M4芯片有望登场

聚观早报每日整理最值得关注的行业重点事件&#xff0c;帮助大家及时了解最新行业动态&#xff0c;每日读报&#xff0c;就读聚观365资讯简报。 整理丨Cutie 5月8日消息 比亚迪首款新能源皮卡 苹果M4芯片有望登场 红旗首款手机外观揭晓 一加13设计细节曝光 长城汽车4月销…

5本书带你走进大厂的云原生世界

大家好&#xff0c;我是王有志&#xff0c;一个分享硬核 Java 技术的金融摸鱼侠&#xff0c;欢迎大家加入 Java 人自己的交流群“共同富裕的 Java 人”。 今天和大家分享的主题是&#xff1a;大厂的云原生架构设计。公众号内回复关键字&#xff1a;【20240508】&#xff0c;即…

AI智能分析赋能EasyCVR视频汇聚平台,为安全生产监管提供保障

一、背景需求 为提升公共及生产安全监管&#xff0c;深入贯彻落实中央关于智慧城市、数字乡村的部署要求&#xff0c;视频设备融合管理已成为视频治理的必然趋势。针对当前部分地区在视频监控系统建设中存在的问题&#xff0c;如重点地区视频监控系统建设零散、视频监控数据孤…

行业新应用:电机驱动将成为机器人的动力核心

电机已经遍布当今社会人们生活的方方面面&#xff0c;不仅应用范围越来越广&#xff0c;更新换代的速度也日益加快。按照工作电源分类&#xff0c;可以将它划分为直流电机和交流电机两大类型。直流电机中&#xff0c;按照线圈类型分类&#xff0c;又可以分为有铁芯的电机、空心…

在Unity中制作和使用图集

文章目录 使用Unity内置Sprite Packer使用图集NGUI图集制作&#xff08;如果使用NGUI&#xff09;TextMeshPro中文支持 应用案例&#xff1a;在Unity中创建一个使用图集的UI界面场景设定步骤概览1. 准备UI元素2. 创建Sprite Atlas3. 使用图集中的Sprite4. 调整与布局5. 动态加载…

Chromium编译指南2024 Windows11篇-获取 Chromium 的源代码(五)

前言 在《Chromium编译指南2024&#xff08;四&#xff09;》中&#xff0c;我们完成了Git 的初始化配置。 现在&#xff0c;我们将进一步讨论如何获取 Chromium 的源代码&#xff0c;并准备构建所需的文件。 1. 获取Chromium的源代码 在合适的位置准备一个文件夹&#xff…

QSplitter分裂器的使用方法

1.QSplitter介绍 QSplitter是Qt框架提供的一个基础窗口控件类&#xff0c;主要用于分割窗口&#xff0c;使用户能够通过拖动分隔条来调节子窗口的大小。 2.QSplitter的添加方法 &#xff08;1&#xff09;通过Qt Creator的界面设计工具添加&#xff1b; &#xff08;2&#xf…

提升滞销商品处理效能,精细化库存管理的关键要素

一、明确滞销商品的概念 1. 什么是滞销商品 滞销商品是指在一定期限内&#xff0c;其销售量大大低于预期或市场需求的商品。具体来说&#xff0c;这些商品可能因为款式不新颖、功能落后、价格不合理、过时、质量不佳或其他因素而不受消费者欢迎&#xff0c;导致销售速度极慢或…

Java中Maven的依赖管理

依赖介绍 是指当前项目运行所需要的jar包&#xff0c;一个项目中可以引入多个依赖 配置 在pom.xml中编写<dependencies>标签 在<dependencies>中使用<dependency>引入标签 定义坐标的groupId、rtifactId、version 点击刷新按钮、引入新坐标 例如引入下…

Git与GitHub交互

注册 https://github.com/ 本地库与远程库交互方式 创建本地库并提交文件 创建远程库 在本地库创建远程库地址别名 查看现有远程库地址的别名 git remote -v 创建远程库地址别名 git remote add [别名] [远程地址] 远程路地址位置 示例 成员1推送 git push [别名] [分支…

21物联1班常用网络命令

常用网络命令 ipconfig&#xff08;配置&#xff09;ping(测试)命令1&#xff1a;ping 172.16.0.12&#xff1a;ping ip -t3&#xff1a;ping ip -l 3000&#xff08;注意每个之间都存在空格&#xff09;4&#xff1a;ping ip -n count netstat&#xff08;网络&#xff09;命令…

数据库数据恢复—SQL Server数据库ndf文件变为0KB的数据恢复案例

SQL Server数据库故障&#xff1a; 存储设备损坏导致存储中SQL Server数据库崩溃。对数据库文件进行恢复后&#xff0c;用户发现有4个ndf文件的大小变为0KB。该SQL Server数据库每10天生成一个大小相同的NDF文件&#xff0c;该SQL Server数据库包含两个LDF文件。 SQL Server数据…

C语言 | Leetcode C语言题解之第76题最小覆盖子串

题目&#xff1a; 题解&#xff1a; char* minWindow(char* s, char* t) {int tLen strlen(t);int hash[256] { 0 };for (int i 0; i < tLen; i)hash[t[i]];for (int i 0; i < 256; i) {if (0 hash[i])hash[i] INT_MIN;}int left, right, count, start, minLen, s…