KAN:Kolmogorov–Arnold Networks

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网络(KANs)。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, KANs可以显著提高准确性和可解释性。本文的组织结构如图2.1所示。在第2节中,我们介绍了KAN架构及其数学基础,介绍了网络简化技术以使KAN具有可解释性,并介绍了网格扩展技术以使KAN越来越准确。在第3节中,我们展示了KAN在数据拟合和PDE求解方面比MLP更准确:当数据中存在组合结构时,KAN可以克服维度灾难,实现比MLP更好的缩放律。在第4节中,我们展示了KAN是可解释的,可以用于科学发现。我们用数学(结理论)和物理(安德森局域化)中的两个例子来证明,KANs可以帮助科学家(重新)发现数学和物理定律的“合作者”。第五部分总结了相关工作。在第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和KANs之间的类比时,突破就出现了。在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 精度:网格扩展

原则上,样条对于目标函数可以任意精确,因为网格可以任意细粒度。KANs继承了这个好功能。相比之下,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的尺度大致为 t e s t R M S E ∝ G − 3 test RMSE∝G^{-3} testRMSEG3。然而,根据定理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 简化技术

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

FX95GT FX505GT windows 11 触摸板安装

FX95GT FX505GT windows 11 触摸板驱动安装 如果正常使用 exe 文件安装不上,请在 ‘设置’ 》 ‘系统信息 ’》 驱动下载地址 如果正常使用 exe 文件安装不上,请在 ‘设置’ 》 ‘系统信息 ’》 高级系统设置 设备管理 在电脑上点右键,选择…

光端机(2)——光纤通信学习笔记九

学习笔记里面只关注基本原理和概念,复杂的公式和推导都没有涉及 光端机 光发射机 作用:实现电光转换。将来自电端机的电信号对光源发出的光波进行调制,然后将调制好的光信号耦合到光线中传输。 基本性能要求 1.合适的发光波长(光…

SCI一区 | WOA-BiTCN-BiGRU-Attention多输入单输出回归预测(Matlab)

SCI一区 | WOA-BiTCN-BiGRU-Attention多输入单输出回归预测(Matlab) 目录 SCI一区 | WOA-BiTCN-BiGRU-Attention多输入单输出回归预测(Matlab)效果一览基本介绍程序设计参考资料 效果一览 基本介绍 1.Matlab实现WOA-BiTCN-BiGRU-A…

Transformer - 编码器和解码器中的QKV分别来自哪

Transformer - 编码器和解码器中的QKV分别来自哪 flyfish Transformer - 注意⼒机制 Scaled Dot-Product Attention 计算过程 Transformer - 注意⼒机制 代码实现 Transformer - 注意⼒机制 Scaled Dot-Product Attention不同的代码比较 Transformer - 注意⼒机制 代码解释 Tr…

论文架构介绍

论文架构 背景:建议2段左右完成,字数控制在500左右为佳,对应子题目1过渡段:写150字左右的过渡段,承上启下,回答部分子题目2、3的要求正文实践部分:一般3-7个论点,根据题目的要求来看…

电机控制器电路板布局布线参考指导(七)电流检测模块布局布线

电机控制器电路板布局布线参考指导(七)电流检测模块布局布线 1.高侧电流检测2.低侧电流监测3.两相和三相电流检测4.关键元器件选型要求5.布局6.布线7.工具设置8.输入和输出滤波9.注意事项 很多电机驱动器产品系列包括内置了电流感测功能的器件&#xff0…

【3D基础】坐标转换——地理坐标投影到平面

汤国安GIS原理第二章重点 1.常见投影方式 https://download.csdn.net/blog/column/9283203/83387473 Web Mercator投影(Web Mercator Projection): 优点: 在 Web 地图中广泛使用,易于显示并与在线地图服务集成。在较…

设计模式Java实现-工厂模式

✨这里是第七人格的博客✨小七,欢迎您的到来~✨ 🍅系列专栏:设计模式🍅 ✈️本篇内容: 工厂模式✈️ 🍱本篇收录完整代码地址:https://gitee.com/diqirenge/design-pattern 🍱 楔子 记得刚…

详解xml-java语言

1.XML在线学习手册 XML 教程 2.XML可以做什么 1.给两个程序之间进行数据通信。现在用的最多的是JSON。 2.给服务器做配置文件。 3.存储复杂的数据关系。 4.还可以充当小型的数据库。 3.书写格式 <?xml version"1.0" encoding"UTF-8" ?> <…

一键安装Halo DB

说明 这里说的一键其实分了好几步&#xff0c;是我将安装步骤分解。你可以把它们放在一个shell中或者串起来就是一键了。 易景科技的数据库 羲和 &#xff08;Halo DB&#xff09; 我之前的一位朋友&#xff08;章晨曦&#xff09;创立的数据库公司。以前看他朋友圈说他做数…

【智能算法】PID搜索算法(PSA)原理及实现

目录 1.背景2.算法原理2.1算法思想2.2算法过程 3.结果展示4.参考文献5.代码获取 1.背景 2023年&#xff0c;Y Gao受到PID控制理论启发&#xff0c;提出了PID搜索算法&#xff08;PID-based Search Algorithm, PSA&#xff09;。 2.算法原理 2.1算法思想 PID算法是控制领域的…

【C++语言】类和对象--默认成员函数 (中)

文章目录 前言类的六个默认成员函数&#xff1a;1. 构造函数概念特性做了什么&#xff1f;易错注意&#xff1a;显式定义和默认构造函数 2. 析构函数概念特征做了什么?注意事项&#xff1a; 3.拷贝构造函数概念特征做了什么&#xff1f;注意事项&#xff1a; 4.赋值运算符重载…

免费分享一套微信小程序商城系统(电商系统)(SpringBoot+Vue3)【至尊版】,帅呆了~~

大家好&#xff0c;我是java1234_小锋老师&#xff0c;自己原创写了一个不错的微信小程序商城系统(电商系统)(SpringBootVue3)【至尊版】&#xff0c;免费分享下哈。 项目视频演示 【免费】微信小程序商城系统(电商系统)(SpringBootVue3) 【至尊版】Java毕业设计_哔哩哔哩_bi…

基于Spring Boot的民宿管理平台设计与实现

基于Spring Boot的民宿管理平台设计与实现 开发语言&#xff1a;Java框架&#xff1a;springbootJDK版本&#xff1a;JDK1.8数据库工具&#xff1a;Navicat11开发软件&#xff1a;eclipse/myeclipse/idea 系统部分展示 前台首页功能界面图&#xff0c;在系统首页可以查看首页…

设计模式之传输对象模式

在编程江湖里&#xff0c;有一种模式&#xff0c;它如同数据的“特快专递”&#xff0c;穿梭于系统间&#xff0c;保证信息的快速准确送达&#xff0c;它就是——传输对象模式&#xff08;Data Transfer Object, DTO&#xff09;。这不仅仅是数据的搬运工&#xff0c;更是提升系…

与Apollo共创生态:让智驾技术为各行业发展赋能

目录 一、引言 二、Apollo七周年大会主要内容回顾 2.1活动回顾链接 2.2Apollo项目介绍 2.2.1Apollo项目发展介绍 2.2.2实验用车传感器介绍 2.2.3硬件连接概述 2.2.4软件概述 2.3Apollo X 企业自动驾驶解决方案介绍 2.3.1Apollo X 企业自动驾驶解决方案优势 2.3.2 Ap…

(二)JSP教程——taglib指令

创建标签文件 首先创建一个Web项目&#xff0c;在webapp/WEB-INF目录下创建一个tags文件夹 在tags文件夹中创建一个oddNumberSum.tag文件&#xff0c;Tag文件时扩展名为.tag的文本文件&#xff0c;其结构和JSP文件非常相似&#xff0c;该文件的目录结构如图所示 创建Tag文件的…

有免费的通配符SSL证书吗?通配符证书的申请

首先要了解通配符SSL证书&#xff0c;需要先知晓我们常用的普通单域名SSL证书、多域名SSL证书与之的区别。 单域名SSL证书最容易理解&#xff0c;一张证书有且只能绑定与保护一个域名&#xff0c;例如www.123456.com 证书安装部署完成后则会激活对于该域名的https、即加密访问…

泛微E9开发 限制整型、日期型、附件型字段的取值范围

1、功能背景 在用户进行输入时&#xff0c;通过控制输入数据的范围来实现实际效果&#xff0c;如上级管理者对下级员工进行年度评分时&#xff0c;只能输入1~100分&#xff0c;现在表单中新增三种类型不同的字段&#xff0c;具体如下所示&#xff1a; 2、展示效果 限制整数的…

订单超时自动取消的实践方案

1、定时任务方案 方案流程&#xff1a; 每隔 30 秒查询数据库&#xff0c;取出最近的 N 条未支付的订单。 遍历查询出来的订单列表&#xff0c;判断当前时间减去订单的创建时间是否超过了支付超时时间&#xff0c;如果超时则对该订单执行取消操作。 定时任务方案工程实现相…
最新文章