Kansformer?变形金刚来自过去的新敌人

​1.前言

多层感知器(MLPs),也被称为全连接前馈神经网络,是当今深度学习模型的基础组成部分。

在这里插入图片描述

MLPs在机器学习中扮演着至关重要的角色,因为它们是用于近似非线性函数的默认模型,这得益于通用近似定理所保证的表达能力。然而,MLPs真的是我们能构建的最佳非线性回归器吗?尽管MLPs被广泛使用,但它们仍然存在一些显著缺陷。例如,在Transformer模型中,MLPs几乎消耗了所有非嵌入参数,并且在没有使用后续分析工具的情况下,通常不如注意力层那样易于解释。

为了解决这些问题,本研究提出了一种MLPs的替代方案,称为Kolmogorov-Arnold Networks(KANs)。与受通用近似定理启发的MLPs不同,KANs的灵感来自于Kolmogorov-Arnold定理。KANs与MLPs一样具有全连接结构,但两者在激活函数的放置方式上有所不同。MLPs在节点(“神经元”)上放置固定的激活函数,而KANs则在边(“权重”)上放置可学习的激活函数。因此,KANs完全没有线性权重矩阵,取而代之的是每个权重参数都被一个以样条线参数化的可学习一维函数所替换。KANs的节点只是简单地对传入信号进行求和,而不应用任何非线性变换。有人可能会担心,由于KANs将MLPs的每个权重参数变成了样条函数,因此会变得计算成本很高。然而,令人欣喜的是,KANs通常允许使用比MLPs小得多的计算图。例如,本研究表明,在解决偏微分方程(PDE)问题时,一个2层宽度为10的KAN比4层宽度为100的MLP的均方误差(MSE)小100倍(对 1 0 − 5 10^{-5} 105),同时参数效率提高了100倍( 1 0 2 10^2 102对)。

事实上,使用Kolmogorov-Arnold定理来构建神经网络的可能性已经被研究过。然而,大多数工作都局限于使用原始的深度为2、宽度为的表示,没有机会利用更现代的技术(例如反向传播)来训练网络。本研究的贡献在于将原始的Kolmogorov-Arnold表示推广到任意宽度和深度,并将其置于当前的深度学习应用背景下,通过广泛的实证实验来突出其作为AI+科学基础模型的潜力。

尽管KANs有优雅的数学解释,但它们实际上只是样条和MLPs的结合,利用了各自的优点,避免了各自的缺点。样条在低维度下表现出色,易于局部调整,并且能够在不同分辨率之间切换。然而,样条受到严重的维度诅咒问题的影响,因为它们无法利用组合结构。另一方面,MLPs由于其特征学习能力,受维度诅咒的影响较小,但在低维度下的准确性不如样条,因为它们无法很好地优化一维函数。为了准确学习一个函数,一个模型不仅需要学习组合结构(外部自由度),还需要能够很好地逼近一维函数(内部自由度)。KANs正是这样一种模型,因为它们在外部类似于MLPs,在内部类似于样条。因此,KANs不仅能够学习特征(由于其与MLPs在外部的相似性),还能将这些学习到的特征优化到很高的精度(由于其与样条在内部的相似性)。例如,给定一个高维函数

f ( x ) = exp ⁡ ( 1 N ∑ i = 1 N sin ⁡ 2 ( x i ) ) f(\mathbf{x})=\exp \left(\frac{1}{N} \sum_{i=1}^N \sin ^2\left(x_i\right)\right) f(x)=exp(N1i=1Nsin2(xi))

(1.1)

在这里插入图片描述

由于维度诅咒,样条在 N N N很大时会失效;MLPs可能会学到广义加性结构,但它们在逼近指数函数和正弦函数方面效率很低,例如使用ReLU激活函数。相比之下,KANs可以很好地学习组合结构和一维函数,因此大大优于MLPs(见图3.1)。

在本文中,本研究将通过大量的数值实验来展示KANs在精度和可解释性方面如何显著改善MLPs。本文的结构如图2.1所示。在第二节中,本研究介绍了KAN架构及其数学基础,引入了网络简化技术以使KANs易于解释,并提出了网格扩展技术以使KANs逐步提高精度。在第三节中,本研究展示了KANs在数据拟合和求解偏微分方程方面优于MLPs的表现:当数据中存在组合结构时,KANs可以克服维度诅咒,实现比MLPs更好的缩放规律。在第四节中,本研究展示了KANs的可解释性,并将其应用于科学发现。本研究使用来自数学(结理论)和物理学(Anderson局域化)的两个实例,证明了KANs可以作为帮助科学家(重新)发现数学和物理定律的有用"合作者"。第五节总结了相关工作。在第六节中,本研究通过讨论广泛的影响和未来方向来总结全文。代码可在https://github.com/KindXiaoming/pykan获取,也可以通过pip install pykan进行安装。

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

2. Kolmogorov-Arnold 网络(KAN)

多层感知器(MLPs)受到通用近似定理的启发。相反,该研究关注的是可以通过一种新型神经网络实现的Kolmogorov-Arnold表示定理,称为Kolmogorov-Arnold网络(KAN)。该研究在2.1节回顾Kolmogorov-Arnold定理,以启发在2.2节中Kolmogorov-Arnold网络的设计。在2.3节中,该研究提供了KANs的表达能力和神经缩放法则的理论保证。在2.4节中,该研究提出了一种网格扩展技术,以使KANs逐渐更加精确。在2.5节中,该研究提出了简化技术,使KANs易于解释。

2.1 Kolmogorov-Arnold表示定理(Kolmogorov–Arnold representation theorem)

弗拉基米尔·阿诺德(Vladimir Arnold)和安德烈·柯尔莫果洛夫(Andrey Kolmogorov)证明,如果f是在有界域上的多变量连续函数,则f可以表示为一个有限组合的连续一维函数和二元加法运算。更具体地说,对于一个平滑的 f : [ 0 , 1 ] n → R f:[0,1]^n\rightarrow \mathbb{R} f:[0,1]nR,

f ( x ) = ∑ q = 1 2 n + 1 Φ q ( ∑ p = 1 n ϕ q , p ( x p ) ) f(\mathbf{x})=\sum_{q=1}^{2 n+1} \Phi_q\left(\sum_{p=1}^n \phi_{q, p}\left(x_p\right)\right) f(x)=q=12n+1Φq(p=1nϕq,p(xp))

(2.1)

其中 ϕ q , p : [ 0 , 1 ] → R \phi_{q,p}:[0,1] \rightarrow \mathbb{R} ϕq,p:[0,1]R Φ q : R → R \Phi_q: \mathbb{R} \rightarrow \mathbb{R} Φq:RR。从某种意义上说,他们证明了加法是唯一真正的多变量函数,因为其他所有函数都可以使用一维函数和求和来表示。人们可能会天真地认为这对机器学习是个好消息:学习一个高维函数归结为学习一定数量的一维函数。然而,这些一维函数可能是不光滑甚至是分形的,因此在实践中可能无法学习。由于这种病态行为,Kolmogorov-Arnold表示定理基本上在机器学习中被判了死刑,被认为在理论上是健全的但实际上无用。

在这里插入图片描述

然而,该研究对Kolmogorov-Arnold定理在机器学习中的用途持更加乐观的态度。首先,该研究无需坚持原始方程(2.1),该方程仅具有两层非线性和隐藏层中的少量项目:该研究将网络推广到任意宽度和深度。其次,科学和日常生活中的大多数函数通常都是平滑的,并且具有稀疏的组合结构,这可能有助于实现平滑的Kolmogorov-Arnold表示。这里的理念接近物理学家的心态,他们通常更关心典型案例而非最坏情况。毕竟,我们的物理世界和机器学习任务必须具有结构,才能使物理学和机器学习在所有方面都有用或具有普遍性。

2.2 KAN架构

假设该研究有一个监督学习任务,包含输入输出对 { x ( i ) , y ( i ) } \left\{\mathbf{x}^{(i)}, y^{(i)}\right\} {x(i),y(i)},其中该研究希望找到一个函数 f f f,使得对所有数据点 y ( i ) ≈ f ( x ( i ) ) y^{(i)} \approx f\left(\mathbf{x}^{(i)}\right) y(i)f(x(i))。方程(2.1)意味着如果该研究能找到适当的一维函数 ϕ q , p \phi_{q, p} ϕq,p Φ q \Phi_q Φq,那么该研究就完成了。这启发该研究设计了一个明确参数化方程(2.1)的神经网络。由于所有需要学习的函数都是一维函数,该研究可以将每个一维函数参数化为一条B-样条曲线,具有可学习的局部B-样条基函数系数(见图2.2右)。现在该研究有了一个KAN的原型,其计算图由方程(2.1)确切指定,并在图0.1(b)中显示(输入维度 n = 2 n=2 n=2),显示为具有在边上放置激活函数而非节点的两层神经网络(节点上执行简单的求和),并在中间层宽度为 2 n + 1 2n+1 2n+1

正如所提及的,这样的网络被认为太简单,无法在实践中以平滑的样条任意精确地近似任何函数!因此,该研究将KAN推广为更宽更深。立即如何使KAN更深并不清楚,因为Kolmogorov-Arnold表示对应于两层KAN。据该研究所知,尚无与更深KAN对应的"一般化"定理版本。

当该研究注意到MLPs和KANs之间的类比时,突破发生了。在MLPs中,一旦定义了一层(由线性变换和非线性组成),就可以堆叠更多层来使网络更深。为了建立深层KANs,该研究首先需要回答:“什么是KAN层?”

结果显示,一个KAN层,其输入维度为 n in  n_{\text {in }} nin ,输出维度为 n out  n_{\text {out }} nout ,可以被定义为一个1D函数的矩阵:

Φ = { ϕ q , p } , p = 1 , 2 , … , n i n , q = 1 , 2 , … , n out  \mathbf{\Phi}=\left\{\phi_{q, p}\right\}, p=1,2, \ldots, n_{\mathrm{in}}, q=1,2, \ldots, n_{\text {out }} Φ={ϕq,p},p=1,2,,nin,q=1,2,,nout 

(2.2)

其中函数 ϕ q , p \phi_{q,p} ϕq,p具有可训练的参数。在Kolmogorov-Arnold定理中,内部函数形成了一个KAN层, n in = n n_{\text {in}}=n nin=n n out = 2 n + 1 n_{\text {out}}=2 n+1 nout=2n+1,外部函数形成了一个KAN层, n in = 2 n + 1 n_{\text {in}}=2 n+1 nin=2n+1 n out = 1 n_{\text {out}}=1 nout=1。因此,方程(2.1)中的Kolmogorov-Arnold表示只是两个KAN层的组合。现在变得清楚了,拥有更深的Kolmogorov-Arnold表示意味着什么:只需堆叠更多的KAN层!

让该研究引入一些符号。这一段可能有点技术性,但读者可以参考图2.2(左)以获得具体的例子和直观的理解。一个KAN的形状由一个整数数组表示:

[ n 0 , n 1 , … , n L ] \left[n_0, n_1, \ldots, n_L\right] [n0,n1,,nL]

(2.3)

其中 n out = 1 n_{\text {out}}=1 nout=1是计算图中第 i i 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层和第层之间,有 n l n l + 1 n_l n_{l+1} nlnl+1个激活函数:连接 ( l , i ) (l, i) (l,i)和的激活函数用

ϕ l , j , i , l = 0 , … , L − 1 , i = 1 , … , n l , j = 1 , … , n l + 1 \phi_{l, j, i}, l=0, \ldots, L-1, i=1, \ldots, n_l, j=1, \ldots, n_{l+1} ϕl,j,i,l=0,,L1,i=1,,nl,j=1,,nl+1

(2.4)

表示。的预激活简单地是 x l , i x_{l,i} xl,i;的后激活由 x ~ l , j , i = ϕ l , j , i ( x l , i ) \tilde{x}_{l,j,i}=\phi_{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}=\sum_{i=1}^{n_l} \tilde{x}_{

l,j,i}=\sum_{i=1}^{n_l} \phi_{l, j, i}\left(x_{l, i}\right), j=1, \ldots, n_{l+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 ( ⋅ ) ) x l \mathbf{x}_{l+1}=\left(\begin{array}{cccc} \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 & \ddots & \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{array}\right) \mathbf{x}_l xl+1= ϕ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 \mathbf{\Phi}_l Φl是对应于第 l l l层的函数矩阵。一个通用的KAN网络是 L L L Φ l \mathbf{\Phi}_l Φl的组合:给定一个输入向量 x \mathbf{x} x,KAN的输出为

KAN ⁡ ( x ) = ( Φ L − 1 ∘ Φ L − 2 ∘ ⋯ ∘ Φ 1 ∘ Φ 0 ) x \operatorname{KAN}(\mathbf{x})=\left(\mathbf{\Phi}_{L-1} \circ \mathbf{\Phi}_{L-2} \circ \cdots \circ \mathbf{\Phi}_1 \circ \mathbf{\Phi}_0\right) \mathbf{x} KAN(x)=(ΦL1ΦL2Φ1Φ0)x

(2.7)

该研究还可以重写上述方程,使其更类似于方程(2.1),假设输出维度 n L = 1 n_L=1 nL=1,并定义 f ( x ) ≡ KAN ⁡ ( x ) f(\mathbf{x}) \equiv \operatorname{KAN}(\mathbf{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 ) ) ) ) ⋯   ) f(\mathbf{x})=\sum_{i_{L-1}=1}^{n_{L-1}} \phi_{L-1, i_L, i_{L-1}}\left(\sum_{i_{L-2}=1}^{n_{L-2}} \cdots\left(\sum_{i_2=1}^{n_2} \phi_{2, i_3, i_2}\left(\sum_{i_1=1}^{n_1} \phi_{1, i_2, i_1}\left(\sum_{i_0=1}^{n_0} \phi_{0, i_1, i_0}\left(x_{i_0}\right)\right)\right)\right) \cdots\right) 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, 2 n+1,1] [n,2n+1,1]的2层KAN。值得注意的是,所有操作都是可微的,因此该研究可以使用反向传播训练KANs。作为对比,一个MLP可以写成交错的仿射变换 W \mathbf{W} W和非线性 σ \sigma σ

MLP ⁡ ( x ) = ( W L − 1 ∘ σ ∘ W L − 2 ∘ σ ∘ ⋯ ∘ W 1 ∘ σ ∘ W 0 ) ( x ) \operatorname{MLP}(\mathbf{x})=\left(\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\right)(\mathbf{x}) MLP(x)=(WL1σWL2σW1σW0)(x)

(2.9)

很明显,MLPs将线性变换和非线性分别作为 W \mathbf{W} W σ \sigma σ处理,而KANs则将它们结合在 Φ \mathbf{\Phi} Φ中。在图0.1的©和(d)中,该研究可视化了三层MLP和三层KAN,以澄清它们的差异。

实施细节
尽管KAN层方程(2.5)看起来非常简单,但使其优化良好并非微不足道。关键技巧包括:

  1. 残差激活函数。该研究包括一个基函数(类似于残差连接),使得激活函数是基函数和样条函数的总和:

ϕ ( x ) = w ( b ( x ) + spline ⁡ ( x ) ) \phi(x)=w(b(x)+\operatorname{spline}(x)) ϕ(x)=w(b(x)+spline(x))

(2.10)

该研究设定

b ( x ) = silu ⁡ ( x ) = x 1 + e − x b(x)=\operatorname{silu}(x)=\frac{x}{1+e^{-x}} b(x)=silu(x)=1+exx

(2.11)

在大多数情况下。样条函数 spline ⁡ ( x ) \operatorname{spline}(x) spline(x)则被参数化为B-样条的线性组合:

spline ⁡ ( x ) = ∑ i c i B i ( x ) \operatorname{spline}(x)=\sum_i c_i B_i(x) spline(x)=iciBi(x)

(2.12)

其中 c i c_i ci是可训练的。 w w w原则上是多余的,因为它可以被吸收进 c i c_i ci b b b。然而,该研究仍然包括这个因子,以更好地控制激活函数的总体幅度。

  1. 初始化规模。每个激活函数被初始化为使 spline ⁡ ( x ) ≈ 0 \operatorname{spline}(x) \approx 0 spline(x)0 w w w根据Xavier初始化法则初始化,这种方法被用来初始化MLPs中的线性层。

  2. 样条网格的更新。该研究根据其输入激活值即时更新每个 Φ l \mathbf{\Phi}_{l} Φl网格,以解决样条在有界区域内定义但激活值在训练过程中可能超出固定区域的问题。

参数计数
为简单起见,假设该研究设置一个网络:

  • 深度为 L L L
  • 层宽度相等, n 0 = n 1 = ⋯ = n L = N n_0=n_1=\cdots=n_L=N n0=n1==nL=N
  • 每个样条的阶数通常为 k = 3 k=3 k=3,在 G G G个区间(共 G + 1 G+1 G+1个网格点)。

则总共有 O ( N 2 L ( G + k ) ) ≈ O ( N 2 L G ) O\left(N^2 L(G+k)\right) \approx O\left(N^2 L G\right) O(N2L(G+k))O(N2LG)参数。相比之下,具有深度 L L L和宽度 N N N的MLP只需要 O ( N 2 L ) O\left(N^2 L\right) O(N2L)参数,这似乎比KAN更有效。幸运的是,KANs通常需要比MLPs小得多的 N N N,这不仅节省了参数,而且还实现了更好的泛化(参见图3.1和图3.3)并促进了解释性。该研究指出,对于1D问题,可以取 N = L = 1 N=L=1 N=L=1,而该研究实现中的KAN网络仅是一个样条近似。对于更高维度,该研究通过下面的定理描述了KANs的泛化行为。

在这里插入图片描述

2.3 KAN的近似能力和缩放定律

回想方程(2.1)中,宽度为 2 n + 1 2n+1 2n+1的两层表示可能不是平滑的。然而,更深的表示可能带来更平滑激活的优势。例如,对于四变量函数

f ( x 1 , x 2 , x 3 , x 4 ) = exp ⁡ ( sin ⁡ ( x 1 2 + x 2 2 ) + sin ⁡ ( x 3 2 + x 4 2 ) ) f\left(x_1, x_2, x_3, x_4\right)=\exp \left(\sin \left(x_1^2+x_2^2\right)+\sin \left(x_3^2+x_4^2\right)\right) f(x1,x2,x3,x4)=exp(sin(x12+x22)+sin(x32+x42))

(2.13)

可以被一个 [ 4 , 2 , 1 , 1 ] [4,2,1,1] [4,2,1,1] KAN平滑地表示,这是一个三层KAN,但可能不允许两层KAN具有平滑激活。为了便于进行近似分析,该研究仍然假设激活的平滑性,但允许表示可以任意宽和深,如方程(2.7)。为了强调该研究KAN对有限集合网格点的依赖,该研究在下面使用 Φ l G \mathbf{\Phi}_l^G ΦlG ϕ l , i , j G \phi_{l,i,j}^G ϕl,i,jG替代方程(2.5)和(2.6)中使用的符号 Φ l \mathbf{\Phi}_l Φl ϕ l , i , j \phi_{l,i,j} ϕl,i,j

定理2.1(近似理论,KAT):设 Ω = [ 0 , 1 ] n \Omega=[0,1]^n Ω=[0,1]n。假设一个函数 f f f允许表示

f = ( Φ L − 1 ∘ Φ L − 2 ∘ ⋯ ∘ Φ 1 ∘ Φ 0 ) ( x ) f=\left(\mathbf{\Phi}_{L-1} \circ \mathbf{\Phi}_{L-2} \circ \cdots \circ \mathbf{\Phi}_1 \circ \mathbf{\Phi}_0\right)(\mathbf{x}) f=(ΦL1ΦL2Φ1Φ0)(x)

(2.14)

如方程(2.7)所示,其中每一个 ϕ l , i , j \phi_{l,i,j} ϕl,i,j都是 ( k + 1 ) (k+1) (k+1)次连续可微的。那么存在一个依赖于 f f f及其表示的常数 C C C,使得有关于网格大小 G G G的以下近似界限:存在 k k k阶B-样条函数 ϕ l , i , j G \phi_{l,i,j}^G ϕl,i,jG,对于任何 0 ≤ m ≤ k + 1 0 \leq m \leq k+1 0mk+1

∥ f − ( Φ L − 1 G ∘ Φ L − 2 G ∘ ⋯ ∘ Φ 1 G ∘ Φ 0 G ) ( x ) ∥ C m ≤ C G − k − 1 + m \left\|f-\left(\mathbf{\Phi}_{L-1}^G \circ \mathbf{\Phi}_{L-2}^G \circ \cdots \circ \mathbf{\Phi}_1^G \circ \mathbf{\Phi}_0^G\right)(\mathbf{x})\right\|_{C^m} \leq C G^{-k-1+m} f(ΦL1GΦL2GΦ1GΦ0G)(x) CmCGk1+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 _{|\boldsymbol{\beta}| \leq m} \sup _{\mathbf{x} \in[0,1]^n}\left|D^{\boldsymbol{\beta}} g(\mathbf{x})\right| gCm=βmmaxx[0,1]nsup Dβg(x)

证明:通过经典的1D B-样条理论和事实,即 ϕ l , i , j \phi_{l,i,j} ϕl,i,j作为连续函数可以在有界域上一致有界,知道 ∀ l , i , j \forall l,i,j l,i,j存在有限网格B-样条函数 ϕ l , i , j G \phi_{l, i, j}^G ϕl,i,jG,使得对于任何 0 ≤ m ≤ k + 1 0 \leq m \leq k+1 0mk+1

∥ ( ϕ l , i , j ∘ Φ l − 1 ∘ ⋯ ∘ Φ 1 ∘ Φ 0 ) ( x ) − ( ϕ l , i , j G ∘ Φ l − 1 ∘ ⋯ ∘ Φ 1 ∘ Φ 0 ) ( x ) ∥ C m ≤ C G − k − 1 + m \left\|\left(\phi_{l, i, j} \circ \mathbf{\Phi}_{l-1} \circ \cdots \circ \mathbf{\Phi}_1 \circ \mathbf{\Phi}_0\right)(\mathbf{x})-\left(\phi_{l, i, j}^G \circ \mathbf{\Phi}_{l-1} \circ \cdots \circ \mathbf{\Phi}_1 \circ \mathbf{\Phi}_0\right)(\mathbf{x})\right\|_{C^m} \leq C G^{-k-1+m} (ϕl,i,jΦl1Φ1Φ0)(x)(ϕl,i,jGΦl1Φ1Φ0)(x) CmCGk1+m

具有独立于 G G G的常数 C C C。固定这些B-样条逼近 ϕ l , i , j G \phi_{l,i,j}^G ϕl,i,jG。因此,通过定义残差 R l \mathbf{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 \begin{aligned} \mathbf{R}_l=&\left(\mathbf{\Phi}_{L-1}^G \circ \cdots \circ \mathbf{\Phi}_{l+1}^G \circ \mathbf{\Phi}_l \circ \mathbf{\Phi}_{l-1} \circ \cdots \circ \mathbf{\Phi}_0\right) \mathbf{x} \\ &-\left(\mathbf{\Phi}_{L-1}^G \circ \cdots \circ \mathbf{\Phi}_{l+1}^G \circ \mathbf{\Phi}_l^G \circ \mathbf{\Phi}_{l-1} \circ \cdots \circ \mathbf{\Phi}_0\right) \mathbf{x} \end{aligned} Rl=(ΦL1GΦl+1GΦlΦl1Φ0)x(ΦL1GΦl+1GΦlGΦl1Φ0)x

满足

∥ R l ∥ C m ≤ C G − k − 1 + m \left\|\mathbf{R}_l\right\|_{C^m} \leq C G^{-k-1+m} RlCmCGk1+m

具有独立于 G G G的常数 C C C。最后注意到

f − ( Φ L − 1 G ∘ Φ L − 2 G ∘ ⋯ ∘ Φ 1 G ∘ Φ 0 G ) ( x ) = R L − 1 + R L − 2 + ⋯ + R 1 + R 0 f-\left(\mathbf{\Phi}_{L-1}^G \circ \mathbf{\Phi}_{L-2}^G \circ \cdots \circ \mathbf{\Phi}_1^G \circ \mathbf{\Phi}_0^G\right)(\mathbf{x})=\mathbf{R}_{L-1}+\mathbf{R}_{L-2}+\cdots+\mathbf{R}_1+\mathbf{R}_0 f(ΦL1GΦL2GΦ1GΦ0G)(x)=RL1+RL2++R1+R0

(2.15)成立。 □ \square

根据定理2.1的假设,KANs在有限网格大小下可以用一个与维度无关的残差率很好地逼近函数,因此战胜了维度的诅咒!这自然而然地发生,因为只用样条来逼近1D函数。特别是对于 m = 0 m=0 m=0,恢复在 L ∞ L^{\infty} L范数中的精确度 O ( G − k − 1 ) O(G^{-k-1}) O(Gk1),这反过来提供了在有限域上的均方根误差(RMSE)的一个界限 O ( G − k − 1 ) O(G^{-k-1}) O(Gk1),给出了 k + 1 k+1 k+1的缩放指数。当然,常数 C C C依赖于表示;因此它将依赖于维度。该研究将在未来的工作中讨论常数对维度的依赖。

该研究指出,尽管Kolmogorov-Arnold定理(2.1)对应于形状为 [ n , 2 n + 1 , 1 ] [n, 2n+1, 1] [n,2n+1,1]的KAN表示,它的函数并不一定是平滑的。另一方面,如果该研究能够识别一个平滑的表示(可能需要额外的层或使KAN比理论预测的更宽),那么定理2.1表明该研究可以战胜维度的诅咒(COD)。这不应该令人惊讶,因为 f f f可以固有地学习函数的结构,并使有限样本KAN近似可解释。

在这里插入图片描述

神经缩放定律:与其他理论的比较
神经缩放定律是指随着模型参数的增加,测试损失减少的现象,即 ℓ ∝ N − α \ell \propto N^{-\alpha} Nα,其中 ℓ \ell 是测试RMSE, N N N是参数数量, α \alpha α是缩放指数。更大的 α \alpha α承诺通过简单地扩大模型来实现更多的改进。不同的理论已被提出来预测 α \alpha α。Sharma和Kaplan建议, α = ( k + 1 ) / d \alpha=(k+1)/d α=(k+1)/d来自于在具有内在维度 d d d的输入流形上的数据拟合。如果模型函数类是 k k k阶分段多项式(对于ReLU, k = 1 k=1 k=1),则标准近似理论暗示 α = ( k + 1 ) / d \alpha=(k+1) / d α=(k+1)/d来自近似理论。这个界限受到维度的诅咒的困扰,所以人们寻求其他不依赖于 d d d的界限,通过利用组合结构。特别是,Michaud等人考虑了只涉及一元(例如,平方、正弦、指数)和二元( + + + × \times ×)操作的计算图,发现 α = ( k + 1 ) / d ∗ = ( k + 1 ) / 2 \alpha=(k+1) / d^*=(k+1) / 2 α=(k+1)/d=(k+1)/2,其中 d ∗ = 2 d^*=2 d=2是最大元性。Poggio等人利用组合稀疏的想法,证明了给定函数类 W m W^m Wm(其导数直到第 m m m阶是连续的),需要 N = O ( ε − 2 / m ) N=O\left(\varepsilon^{-2 / m}\right) N=O(ε2/m)数量的参数来实现误差 ε \varepsilon ε,这等效于 α = m / 2 \alpha=m / 2 α=m/2。该研究的方法,假设平滑的Kolmogorov-Arnold表示存在,将高维函数分解为几个1D函数,给出 α = k + 1 \alpha=k+1 α=k+1(其中 k k k是样条的分段多项式阶数)。该研究选择 k = 3 k=3 k=3的立方样条,所以 α = 4 \alpha=4 α=4是与其他工作相比最大且最好的缩放指数。该研究将在第3.1节展示,这个界限实际上可以用KANs实现,而以前的工作报告说,即使在满足较慢的界限(例如, α = 1 \alpha=1 α=1)和迅速达到平台的情况下,MLPs也存在问题。

KAT和UAT之间的比较
全连接神经网络的威力是由通用逼近定理(UAT)证明的,该定理指出,给定一个函数 f f f和误差容限 ϵ > 0 \epsilon>0 ϵ>0,具有 k > N ( ϵ ) k>N(\epsilon) k>N(ϵ)个神经元的双层网络可以将函数 f f f逼近至 ϵ \epsilon ϵ的误差内。然而,UAT并不保证 N ( ϵ ) N(\epsilon) N(ϵ)如何随 ϵ \epsilon ϵ缩放。事实上,它遭受维度诅咒(COD)的困扰,并且在某些情况下, N N N已被证明随 d d d呈指数增长。KAT和UAT之间的差异是KAN利用了函数的内在低维表示,而MLP没有。 f f f将展示KAN与符号函数很好地对齐,而MLP则不然。

2.4 精确性:网格扩展

原则上一个样条可以被任意精确地调整以符合目标函数,只要网格可以被足够细化。这一优良特性被KANs继承。相比之下,MLPs没有"细化"的概念。确实,增加MLPs的宽度和深度可以提高性能(“神经缩放定律”)。但这些神经缩放定律增长缓慢,且实现起来成本高昂,因为需要独立训练不同大小的模型。与此相反,对于KANs,可以首先训练一个参数较少的KAN,然后通过简单地细化样条网格扩展到一个参数更多的KAN,无需从头开始重新训练大模型。

接下来,该研究描述如何执行网格扩展(如图2.2右侧所示),基本上是在一个粗糙的样条上拟合一个新的细糙样条。假设 f f f想在有界区域 [ a , b ] [a, b] [a,b]上用B-样条的 k k k阶来近似一个一维函数 f f f。一个具有 G 1 G_1 G1区间的粗糙网格在 { t 0 = a , t 1 , … , t G 1 = b } \left\{t_0=a, t_1, \ldots, t_{G_1}=b\right\} {t0=a,t1,,tG1=b}处有网格点,这被扩充为 { t − k , … , t − 1 , t 0 , … , t G 1 , t G 1 + 1 , … , t G 1 + k } \left\{t_{-k}, \ldots, t_{-1}, t_0, \ldots, t_{G_1}, t_{G_1+1}, \ldots, t_{G_1+k}\right\} {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 ] \left[t_{-k+i}, t_{i+1}\right] [tk+i,ti+1]上非零。然后, f f f在粗糙网格上用这些B-样条基函数的线性组合表示:

f coarse  ( x ) = ∑ i = 0 G 1 + k − 1 c i B i ( x ) f_{\text {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 fine  ( x ) = ∑ j = 0 G 2 + k − 1 c j ′ B j ′ ( x ) f_{\text {fine }}(x)=\sum_{j=0}^{G_2+k-1} c_j^{\prime} B_j^{\prime}(x) ffine (x)=j=0G2+k1cjBj(x)

这些 c j ′ c_j^{\prime} cj的参数可以从 c i c_i ci初始化,通过最小化 f fine  ( x ) f_{\text {fine }}(x) ffine (x) f coarse  ( x ) f_{\text {coarse }}(x) fcoarse (x)的距离来获得(在某些 x x x的分布 p ( x ) p(x) p(x)上):

{ c j ′ } = arg ⁡ min ⁡ { 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 ] \left\{c_j^{\prime}\right\}=\underset{\left\{c_j^{\prime}\right\}}{\arg \min } \mathbb{E}_{x \sim p(x)}\left[\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\right] {cj}={cj}argminExp(x) (j=0G2+k1cjBj(x)i=0G1+k1ciBi(x))2

(2.16)

这可以通过最小平方算法实现。对KAN中的所有样条进行独立的网格扩展。

玩具范例:阶梯状的损失曲线。使用一个玩具范例 f ( x , y ) = exp ⁡ ( sin ⁡ ( π x ) + y 2 ) f(x, y)=\exp (\sin (\pi x)+y^2) f(x,y)=exp(sin(πx)+y2)来展示网格扩展的效果。在图2.3(左上)中,我们展示了一个 [ 2 , 5 , 1 ] [2,5,1] [2,5,1] KAN的训练和测试RMSE。网格点的数量开始为3,每200个LBFGS步骤增加到更高的值,最终达到1000个网格点。很明显,每次细化网格时,训练损失下降得比之前更快(除了最细的1000点网格,优化可能由于不良的损失地形而停止工作)。然而,测试损失先下降然后上升,呈现U形,这是由于偏差-方差权衡(欠拟合 vs. 过拟合)。我们推测,当参数数量与数据点数量匹配时,在插值阈值处会达到最佳测试损失。由于我们的训练样本为1000,而 [ 2 , 5 , 1 ] [2,5,1] [2,5,1] KAN的总参数为 15 G 15G 15G G G G是网格区间的数量),我们预期插值阈值为 G = 1000 / 15 ≈ 67 G=1000/15 \approx 67 G=1000/1567,这与我们实验观察到的值 G ∼ 50 G \sim 50 G50大致一致。

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

缩放规律:与理论比较。我们也对测试损失如何随网格参数数量的增加而降低感兴趣。在图2.3(左下)中, [ 2 , 1 , 1 ] [2,1,1] [2,1,1] KAN的缩放大致为 test RMSE ∝ G − 3 \text{test RMSE} \propto G^{-3} test RMSEG3。然而,根据定理2.1,我们预期 test RMSE ∝ G − 4 \text{test RMSE} \propto G^{-4} test RMSEG4。我们发现样本之间的误差并不均匀。这可能归因于边界效应[18]。事实上,有一些样本的误差显著大于其他样本,使得整体缩放放缓。如果我们绘制平方损失的中位数(非平均值)的平方根,我们得到接近 G − 4 G^{-4} G4的缩放。尽管存在这种次优性(可能是由于优化),KAN在数据拟合(图3.1)和PDE求解(图3.3)方面仍然具有比MLP更好的缩放规律。此外,训练时间随网格点数 G G G的增加而呈现良好的缩放,如图2.3右下方所示。

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

2.5 解释性:简化KANs并使它们可交互

上一小节留下的一个问题是,不知道如何选择最佳匹配数据集结构的KAN形状。例如,如果知道数据集是通过符号公式 f ( x , y ) = exp ⁡ ( sin ⁡ ( π x ) + y 2 ) f(x, y)=\exp (\sin (\pi x)+y^2) f(x,y)=exp(sin(πx)+y2)生成的,那么知道一个 [ 2 , 1 , 1 ] [2,1,1] [2,1,1] KAN能够表达这个函数。但在实践中不知道这些信息,所以最好有方法能够自动确定这种形状。这个想法是从一个足够大的KAN开始,并用稀疏正则化训练它,随后进行剪枝。该研究将展示,这些剪枝后的KAN比未剪枝的更易于解释。为了使KANs最大限度地可解释,该研究在2.5.1节提出了一些简化技术,并在2.5.2节示例了用户如何与KANs交互以使它们更易于解释。

2.5.1 简化技术

1. 稀疏化:对于MLPs,使用L1正则化线性权重以倾向于稀疏化。KANs可以适应这一高级思想,但需要两个修改:

  • KANs中没有线性"权重"。线性权重被可学习的激活函数替代,所以应定义这些激活函数的L1范数。
  • 该研究发现对于KANs的稀疏化,仅使用L1正则化是不够的;相反,还需要额外的熵正则化。

定义激活函数 ϕ \phi ϕ的L1范数为其在 N p N_p Np个输入 { x ( s ) } s = 1 N p \left\{x^{(s)}\right\}_{s=1}^{N_p} {x(s)}s=1Np上的平均幅度,即

∣ ϕ ∣ 1 ≡ 1 N p ∑ s = 1 N p ∣ ϕ ( x ( s ) ) ∣ |\phi|_1 \equiv \frac{1}{N_p} \sum_{s=1}^{N_p}\left|\phi\left(x^{(s)}\right)\right| ϕ1Np1s=1Np ϕ(x(s))

(2.17)

对于一个KAN层 Φ \mathbf{\Phi} Φ,具有 n in n_{\text {in}} nin个输入和 n out n_{\text {out}} nout个输出,定义 Φ \mathbf{\Phi} Φ的L1范数为所有激活函数L1范数的总和,即

∣ Φ ∣ 1 ≡ ∑ i = 1 n in ∑ j = 1 n out ∣ ϕ i , j ∣ 1 |\mathbf{\Phi}|_1 \equiv \sum_{i=1}^{n_{\text {in}}} \sum_{j=1}^{n_{\text {out}}}\left|\phi_{i, j}\right|_1 Φ1i=1ninj=1noutϕi,j1

(2.18)

此外,定义 Φ \mathbf{\Phi} Φ的熵为

S ( Φ ) ≡ − ∑ i = 1 n in ∑ j = 1 n out ∣ ϕ i , j ∣ 1 ∣ Φ ∣ 1 log ⁡ ( ∣ ϕ i , j ∣ 1 ∣ Φ ∣ 1 ) S(\mathbf{\Phi}) \equiv-\sum_{i=1}^{n_{\text {in}}} \sum_{j=1}^{n_{\text {out}}} \frac{\left|\phi_{i, j}\right|_1}{|\mathbf{\Phi}|_1} \log \left(\frac{\left|\phi_{i, j}\right|_1}{|\mathbf{\Phi}|_1}\right) S(Φ)i=1ninj=1noutΦ1ϕi,j1log(Φ1ϕi,j1)

(2.19)

总训练目标 ℓ total \ell_{\text {total}} total是预测损失 ℓ pred \ell_{\text {pred}} pred加上所有KAN层 Φ l \mathbf{\Phi}_l Φl的L1和熵正则化:

ℓ total = ℓ pred + λ ( μ 1 ∑ l = 0 L − 1 ∣ Φ l ∣ 1 + μ 2 ∑ l = 0 L − 1 S ( Φ l ) ) \ell_{\text {total}}=\ell_{\text {pred}}+\lambda\left(\mu_1 \sum_{l=0}^{L-1}\left|\mathbf{\Phi}_l\right|_1+\mu_2 \sum_{l=0}^{L-1} S\left(\mathbf{\Phi}_l\right)\right) total=pred+λ(μ1l=0L1Φl1+μ2l=0L1S(Φl))

(2.20)

其中, μ 1 \mu_1 μ1 μ 2 \mu_2 μ2是相对大小,通常设置为 μ 1 = μ 2 = 1 \mu_1=\mu_2=1 μ1=μ2=1,而 λ \lambda λ控制整体正则化大小。

在这里插入图片描述

2. 可视化。当我们将一个KAN可视化时,为了感受量级,我们将一个激活函数 ϕ l , i , j \phi_{l, i, j} ϕl,i,j的透明度设置为与 tanh ⁡ ( β A l , i , j ) \tanh \left(\beta A_{l, i, j}\right) tanh(βAl,i,j)成正比,其中 β = 3 \beta=3 β=3。因此,量级较小的函数会显得褪色,使我们能够专注于重要的函数。

3. 修剪。在使用稀疏化惩罚进行训练之后,我们可能还想将网络修剪为更小的子网络。我们在节点层面(而不

是边层面)对KAN进行稀疏化。对于每个节点(例如第 l l l层的第 i i i个神经元 ( l , i ) (l,i) (l,i)),我们定义其输入和输出分数为

I l , i = max ⁡ k ( ∣ ϕ l − 1 , k , i ∣ 1 ) , O l , i = max ⁡ j ( ∣ ϕ l + 1 , j , i ∣ 1 ) I_{l, i}=\max _k\left(\left|\phi_{l-1, k, i}\right|_1\right), \quad O_{l, i}=\max _j\left(\left|\phi_{l+1, j, i}\right|_1\right) Il,i=kmax(ϕl1,k,i1),Ol,i=jmax(ϕl+1,j,i1)

(2.21)

如果输入和输出分数都大于阈值超参数 θ = 1 0 − 2 \theta=10^{-2} θ=102(预设值),则认为一个节点是重要的。所有不重要的神经元都会被修剪掉。

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

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

2.5.2 人类与KANs的交互实例

该研究提出了一些简化KANs的技术,可以将这些简化选项视为可以点击的按钮。使用者通过与这些按钮交互,可以决定哪个按钮是最有希望点击的,使KANs更易于解释。用以下示例展示了使用者如何与KAN交互以获得最大限度可解释的结果。

考虑回归任务

f ( x , y ) = exp ⁡ ( sin ⁡ ( π x ) + y 2 ) f(x, y)=\exp (\sin (\pi x)+y^2) 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 i=1,2, \ldots, N_p i=1,2,,Np,一位假想的使用者Alice有兴趣弄清楚符号公式。Alice与KANs交互的步骤如下(图2.4所示):

步骤1:训练与稀疏化。从一个完全连接的 [ 2 , 5 , 1 ] [2,5,1] [2,5,1] KAN开始,用稀疏化正则化训练可以使其变得相当稀疏。隐藏层中的5个神经元中有4个看起来是无用的,因此希望将它们剪除。

步骤2:剪枝。自动剪枝观察到除了最后一个以外,所有隐藏层神经元都被丢弃,只留下一个 [ 2 , 1 , 1 ] [2,1,1] [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')

(2.23)

如果使用者没有领域知识或不清楚这些激活函数可能对应哪些符号函数,提供了一个suggest_symbolic函数来建议符号候选者。

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

步骤5:输出符号公式。使用Sympy计算输出节点的符号公式。使用者获得的公式为 1.0 e 1.0 y 2 + 1.0 sin ⁡ ( 3.14 x ) 1.0 e^{1.0 y^2+1.0 \sin (3.14 x)} 1.0e1.0y2+1.0sin(3.14x),这是真正的答案(只显示了 π \pi π的两位小数)。

为什么不用符号回归(SR)?

在这个例子中使用符号回归似乎是合理的。然而,一般来说,符号回归法比较脆弱,且难以调试。它们要么最终成功返回结果,要么失败,而不提供可解释的中间结果。相较之下,KAN通过梯度下降在函数空间中进行连续搜索,因此其结果更加连续且稳定。此外,由于KAN的透明度,使用者可以比使用符号回归更好地控制KAN。该研究将KAN的可视化方式比喻为向使用者展示KAN的「大脑」,使用者可以对KAN进行「手术」(调试)。符号回归通常不提供这种控制层级。将在第4.4节展示此类实例。更普遍地,当目标函数不是符号表达时,符号回归将失败,但KAN仍然可以提供有意义的输出。例如,特殊函数(如贝塞尔函数)是不可能被符号回归学习的,除非事先提供,但KAN可以使用样条进行数值近似(见图4.1(d))。

3 KANs的精确性

在这一节中,该研究将展示KANs在各种任务(如回归和偏微分方程求解)中表示函数的有效性超过了MLPs。在比较两类模型时,公平地比较它们的精度(损失)和复杂度(参数数量)是合理的。该研究将展示KANs比MLPs展示出更有利的帕雷托前沿。此外,在3.5节中,该研究将显示KANs能够自然地进行持续学习而不会出现灾难性遗忘。

3.1 玩具数据集

在第2.3节中,理论建议测试RMSE损失 ℓ \ell 随模型参数 N N N的增加而按 ℓ ∝ N − 4 \ell \propto N^{-4} N4缩放。然而,这依赖于存在柯尔莫哥洛夫-阿诺德表示定理(Kolmogorov-Arnold representation theorem),也被称为超曲面定理(superposition theorem),是数学分析中的一个重要定理。它由俄罗斯数学家安德烈·柯尔莫哥洛夫(Andrey Kolmogorov)在1956-1957年提出,并由其学生弗拉基米尔·阿诺德(Vladimir Arnold)在1959年完成证明。
该定理的主要内容如下:

任意一个连续函数 f ( x ) f(\mathbf{x}) f(x),其中自变量 x = ( x 1 , … , x n ) \mathbf{x}=(x_1,\ldots,x_n) x=(x1,,xn)属于 n n n维单位立方体 [ 0 , 1 ] n [0,1]^n [0,1]n,都可以表示为:

f ( x ) = ∑ q = 0 2 n Φ q ( ∑ p = 1 n ψ q , p ( x p ) ) f(\mathbf{x})=\sum_{q=0}^{2 n} \Phi_q\left(\sum_{p=1}^n \psi_{q, p}\left(x_p\right)\right) f(x)=q=02nΦq(p=1nψq,p(xp))

(3.1)

其中 Φ q \Phi_q Φq是连续函数, ψ q , p \psi_{q,p} ψq,p [ 0 , 1 ] [0,1] [0,1]上的单变量函数。

这个定理说明,任何多维连续函数都可以由一些单变量函数的叠加来表示,而这些单变量函数与原函数的维度无关。这一结果在当时是非常令人惊讶的,因为它表明高维函数可以用低维函数来表示。

在神经网络领域,这个定理启发了新的网络结构的设计,即论文中提到的KAN(Kolmogorov-Arnold network)。传统的神经网络使用固定的激活函数,而KAN使用可学习的、类似于定理中 ψ q , p \psi_{q,p} ψq,p的单变量函数作为激活函数,并将它们放在网络的边上而不是节点上。这种结构使得KAN具有更强的表达能力和可解释性。

然而,柯尔莫哥洛夫-阿诺德表示定理在实践中也存在一些问题。定理本身是一个存在性结果,并没有给出如何构造这些单变量函数的方法。此外,定理中的单变量函数可能高度非光滑,这在实际应用中可能会带来数值不稳定性。尽管如此,该定理仍然是启发神经网络设计的重要理论基础,并为进一步的理论研究提供了方向。

为了作为一个合理性检验,构造了五个我们知道具有平滑KA表示的例子:

  • f ( x ) = J 0 ( 20 x ) f(x)=J_0(20x) f(x)=J0(20x),这是贝塞尔函数。由于它是一个一元函数,它可以被样条表示,这是一个 [ 1 , 1 ] [1,1] [1,1] KAN。
  • f ( x , y ) = exp ⁡ ( sin ⁡ ( π x ) + y 2 ) f(x,y)=\exp(\sin(\pi x)+y^2) f(x,y)=exp(sin(πx)+y2)。我们知道它可以被一个 [ 2 , 1 , 1 ] [2,1,1] [2,1,1] KAN准确表示。
  • f ( x , y ) = x y f(x,y)=xy f(x,y)=xy。我们从图4.1知道它可以被一个 [ 2 , 2 , 1 ] [2,2,1] [2,2,1] KAN准确表示。
  • 一个高维例子 f ( x ) = exp ⁡ ( 1 100 ∑ i = 1 100 sin ⁡ 2 ( π x i ) ) f(\mathbf{x})=\exp\left(\frac{1}{100}\sum_{i=1}^{100}\sin^2(\pi x_i)\right) f(x)=exp(1001i=1100sin2(πxi)),它可以被一个 [ 100 , 1 , 1 ] [100,1,1] [100,1,1] KAN表示。
  • 一个四维例子 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\left(\frac{1}{2}(\sin(\pi(x_1^2+x_2^2))+\sin(\pi(x_3^2+x_4^2)))\right) f(x1,x2,x3,x4)=exp(21(sin(π(x12+x22))+sin(π(x32+x42)))),它可以被一个 [ 4 , 4 , 2 , 1 ] [4,4,2,1] [4,4,2,1] KAN表示。

通过每200步增加网格点数量来训练这些KANs,总共覆盖 G = { 3 , 5 , 10 , 20 , 50 , 100 , 200 , 500 , 1000 } G=\{3,5,10,20,50,100,200,500,1000\} G={3,5,10,20,50,100,200,500,1000}。该研究还训练了具有不同深度和宽度的MLPs作为基线。无论是MLPs还是KANs都使用LBFGS训练了总共1800步。将KANs和MLPs的测试RMSE作为参数数量的函数绘制在图3.1中,显示KANs比MLPs有更好的缩放曲线,特别是对于高维例子。为了比较,将从KAN理论预测的红色虚线( α = k + 1 = 4 \alpha=k+1=4 α=k+1=4)和从Sharma & Kaplan预测的黑色虚线( α = ( k + 1 ) / d = 4 / d \alpha=(k+1)/d=4/d α=(k+1)/d=4/d)绘制在图中。KANs几乎可以达到更陡峭的红线,而MLPs即使在达到较慢的黑线时也难以收敛并迅速达到平台期。另外还注意到,对于最后一个例子,2层的KAN [ 4 , 9 , 1 ] [4,9,1] [4,9,1]的表现比3层的KAN(形状 [ 4 , 2 , 2 , 1 ] [4,2,2,1] [4,2,2,1])差得多。这突显了更深层KANs的更大表达能力,这对MLPs也是一样:更深的MLPs比较浅的具有更多的表达能力。

3.2 特殊函数

上述结果的一个限制是,该研究假设了「真实」KAN形状的知识。在实践中,不知道KA表示的存在。即使被告知存在这样的KA表示,也不知道KAN形状。多变量特殊函数是这种情况,因为如果多变量特殊函数(例如,贝塞尔函数 f ( ν , x ) = J ν ( x ) f(\nu,x)=J_{\nu}(x) f(ν,x)=Jν(x))能用KA表示表达,只涉及一元函数和加法,这在数学上将是惊人的。以下展示:

  • 寻找(近似的)紧凑KA表示特殊函数是可能的,这揭示了从柯尔莫哥洛夫-阿诺德表示的角度看特殊函数的新数学属性。
  • KANs在表示特殊函数方面比MLPs更有效和精确。

该研究收集了15个在数学和物理中常见的特殊函数,汇总在表2中。选择了固定宽度为5或100的MLPs,并扫描了深度 { 2 , 3 , 4 , 5 , 6 } \{2,3,4,5,6\} {2,3,4,5,6}。运行了带剪枝和不带剪枝的KANs。

在这里插入图片描述

  • 未剪枝的KANs:固定了KAN的形状,宽度设置为5,深度也在 { 2 , 3 , 4 , 5 , 6 } \{2,3,4,5,6\} {2,3,4,5,6}中扫描。
  • 带剪枝的KANs。使用第2.5.1节中的稀疏化( λ = 1 0 − 2 \lambda=10^{-2} λ=102 1 0 − 3 10^{-3} 103)和剪枝技术来获得一个从固定形状KAN剪枝得到的更小的KAN。

每个KAN都初始化为有 G = 3 G=3 G=3的网格点,使用LBFGS训练,每200步增加网格点数量,覆盖 G = { 3 , 5 , 10 , 20 , 50 , 100 , 200 } G=\{3,5,10,20,50,100,200\} G={3,5,10,20,50,100,200}。对于每个超参数组合,我们运行3个随机种子。

对于每个数据集和每个模型家族(KANs或MLPs),在(参数数量,RMSE)平面上绘制了帕雷托前沿,显示在图3.2中。KANs的表现一致优于MLPs,即KANs在相同参数数量下可以达到比MLPs更低的训练/测试损失。此外,报告了自动发现的特殊函数KANs的(令人惊讶的紧凑)形状,列在表2中。一方面,解释这些紧凑表达在数学上意味着什么是有

趣的(在附录F的图F.1和F.2中包括了KAN的插图)。另一方面,这些紧凑的表达暗示了将高维查找表拆分为几个一维查找表的可能性,这可以在推理时节省大量内存,并且(几乎可以忽略不计)进行一些加法运算的开销。

3.3 费曼数据集

第3.1节的设置是当我们清楚地知道「真实」KAN形状时。第3.2节的设置是当我们明确不知道「真实」KAN形状时。这部分调查位于中间的设置:鉴于数据集的结构,我们可能会手工构造KAN,但我们不确定它们是否是最优的。在这个范畴中,比较人工构造的KAN和通过剪枝(在第2.5.1节中的技术)自动发现的KAN是有趣的。

在这里插入图片描述
在这里插入图片描述

当有数据集的结构信息时,可以手动构建KAN,但可能不确定这些结构是否完全准确或有效。例如,可能基于数据的某些特性猜测一个特定的KAN结构,然后尝试用这个结构进行训练和优化,但随后的剪枝和调整可能显示出一个更有效的结构。

这种探索对于理解KAN在实际应用中的弹性和潜力至关重要。透过对比人工构建的模型与经过剪枝精简后的模型,可以更好地评估KAN设计选择的有效性,并进一步优化模型的表现和效率。

费曼数据集。费曼数据集从费曼的教科书中收集了许多物理方程式。对于至少有两个变量的问题感兴趣,因为单变量问题对于KAN来说是微不足道的(它们简化为一维样条)。费曼数据集的一个样本方程式是相对论速度加法公式 f ( u , v ) = u + v 1 + u v f(u,v)=\frac{u+v}{1+uv} f(u,v)=1+uvu+v。通过随机抽取 u i ∈ ( − 1 , 1 ) u_i\in(-1,1) ui(1,1) v i ∈ ( − 1 , 1 ) v_i\in(-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 u u v v v预测 f f f。该研究感兴趣的是:
(1) 神经网络在测试样本上的表现如何;
(2) 可以从神经网络中学到多少关于问题结构的知识。

比较四种神经网络:

  • 人工构造的KAN。给定一个符号公式,将其改写为Kolmogorov-Arnold表示。例如,要将两个数 x x x y y 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 ] [2,2,1] [2,2,1] KAN。构造的形状列在表中的「人工构造KAN形状」一栏。
  • 不带修剪的KAN。我们将KAN形状固定为宽度5,深度在 { 2 , 3 , 4 , 5 , 6 } \{2,3,4,5,6\} {2,3,4,5,6}中扫描。
  • 带修剪的KAN。使用第2.5.1节中的稀疏化( λ = 1 0 − 2 \lambda=10^{-2} λ=102 1 0 − 3 10^{-3} 103)和修剪技术,从固定形状KAN得到一个更小的KAN。
  • 固定宽度为20的MLP,深度在 { 2 , 3 , 4 , 5 , 6 } \{2,3,4,5,6\} {2,3,4,5,6}中扫描,激活函数从 { Tanh , ReLU , SiLU } \{\text{Tanh},\text{ReLU},\text{SiLU}\} {Tanh,ReLU,SiLU}中选择。

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

自动发现的KAN比人工构造的KAN更小。在表中的两列中报告了修剪后的KAN形状;一列是可以达到合理损失(即测试RMSE小于 1 0 − 2 10^{-2} 102)的最小修剪KAN形状;另一列是达到最低测试损失的修剪KAN。为了完整起见,在附录D(图D.2和D.3)中可视化了所有54个修剪后的KAN。有趣的是,自动发现的KAN形状(无论是最小的还是最佳的)通常都比我们的人工构造更小。这意味着Kolmogorov-Arnold表示可能比我们想象的更有效。同时,这可能会使解释变得微妙,因为信息被压缩到一个比我们习惯的更小的空间。

以相对论速度合成公式 f ( u , v ) = u + v 1 + u v f(u,v)=\frac{u+v}{1+uv} f(u,v)=1+uvu+v为例。我们构造 [ 2 , 2 , 2 , 1 , 2 , 1 ] [2,2,2,1,2,1] [2,2,2,1,2,1]相当深,因为假设 u u u v v v的乘法需要两层, 1 + u v 1+uv 1+uv的倒数需要一层, ( u + v ) (u+v) (u+v) 1 1 + u v \frac{1}{1+uv} 1+uv1的乘法需要另外两层,总共需要五层。然而,自动发现的KAN只有两层深!事后看来,如果回忆相对论中的快度技巧,实际上是意料之中的:定义两个"快度" a ≡ arctanh   u a \equiv \text{arctanh} \, u aarctanhu b ≡ arctanh   v b \equiv \text{arctanh} \, v barctanhv。在快度空间中,速度的相对论合成是简单的加法,即 u + v 1 + u v = tanh ⁡ ( arctanh   u + arctanh   v ) \frac{u+v}{1+uv}=\tanh(\text{arctanh} \, u + \text{arctanh} \, v) 1+uvu+v=tanh(arctanhu+arctanhv),这可以用一个两层的KAN实现。假装我们不知道物理中快度的概念,我们可能会直接从KAN中发现这个概念,而无需通过试错的符号操作。

KAN的可解释性,有助于科学发现,是第四节的主题。

3.4 求解偏微分方程式

考虑具有零Dirichlet边界条件的Poisson方程。对于 Ω = [ − 1 , 1 ] 2 \Omega=[-1,1]^2 Ω=[1,1]2,考虑偏微分方程

{ u x x + u y y = f in  Ω , u = 0 on  ∂ Ω . \begin{cases} u_{xx}+u_{yy}=f & \text{in } \Omega, \\ u=0 & \text{on } \partial\Omega. \end{cases} {uxx+uyy=fu=0in Ω,on Ω.

(3.2)

在这里插入图片描述
在这里插入图片描述

考虑的数据 f f f − π 2 ( 1 + 4 y 2 ) sin ⁡ ( π x ) sin ⁡ ( π y 2 ) + 2 π sin ⁡ ( π x ) cos ⁡ ( π y 2 ) -\pi^2(1+4y^2)\sin(\pi x)\sin(\pi y^2)+2\pi\sin(\pi x)\cos(\pi y^2) π2(1+4y2)sin(πx)sin(πy2)+2πsin(πx)cos(πy2),其中 u = sin ⁡ ( π x ) sin ⁡ ( π y 2 ) u=\sin(\pi x)\sin(\pi y^2) u=sin(πx)sin(πy2)是真实解。使用物理信息神经网络(PINN)的框架来求解这个PDE,损失函数为

loss pde = α loss i + loss 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 ( z i ) , \text{loss}_{\text{pde}} = \alpha \text{loss}_i + \text{loss}_b := \alpha \frac{1}{n_i} \sum_{i=1}^{n_i} \left| u_{xx}(\mathbf{z}_i) + u_{yy}(\mathbf{z}_i) - f(\mathbf{z}_i) \right|^2 + \frac{1}{n_b} \sum_{i=1}^{n_b} u^2(\mathbf{z}_i), losspde=αlossi+lossb:=αni1i=1niuxx(zi)+uyy(zi)f(zi)2+nb1i=1nbu2(zi),

其中用 loss i \text{loss}_i lossi表示内部损失,通过在区域内均匀采样 n i n_i ni个点 z i = ( x i , y i ) \mathbf{z}_i=(x_i,y_i) zi=(xi,yi)来离散化和计算,用 loss b \text{loss}_b lossb表示边界损失,通过在边界上均匀采样 n b n_b nb个点来离散化和计算。 α \alpha α是平衡两项效果的超参数。

使用相同的超参数 n i = 10000 n_i=10000 ni=10000, n b = 800 n_b=800 nb=800 α = 1 0 − 2 \alpha=10^{-2} α=102来比较KAN架构和MLP架构。

测量 L 2 L^2 L2范数和能量( H 1 H^1 H1)范数中的误差,发现KAN在使用更小的网络和更少的参数时,实现了更好的缩放规律和更小的误差;见图3.3。因此,推测KAN可能有潜力作为PDE模型简化的良好神经网络表示。

3.5 持续学习

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

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

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

这里只是在一个极其简单的示例上展示了初步结果,演示人们如何可能利用KAN中的局部性(得益于样条参数化)来减少灾难性遗忘。然而,目前尚不清楚方法是否可以推广到更现实的设置,将此留待未来的工作。还想研究我们的方法如何与持续学习中的最先进方法联系和结合。

4 KAN是可解释的

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

4.1 有监督的玩具数据集

首先检验KAN揭示符号公式中组合结构的能力。下面列出了六个示例,KAN在图4.1中可视化。KAN能够揭示这些公式中存在的组合结构,以及学习正确的单变量函数。以下是一些示例:

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

(b) 正数的除法 f ( x , y ) = x / y f(x,y)=x/y f(x,y)=x/y。一个 [ 2 , 5 , 1 ] [2, 5, 1] [2,5,1] KAN被修剪为 [ 2 , 1 , 1 ] [2, 1, 1] [2,1,1] KAN。学到的激活函数是对数函数和指数函数,KAN通过利用恒等式 x / y = exp ⁡ ( log ⁡ x − log ⁡ y ) x/y=\exp(\log x-\log y) x/y=exp(logxlogy)来计算 x / y x/y x/y

© 数值到类别。任务是将 [ 0 , 1 ] [0, 1] [0,1]中的实数转换为其第一位小数(作为one-hot),例如,0.0618→ [ 1 , 0 , 0 , 0 , 0 , ⋯   ] [1,0,0,0,0,\cdots] [1,0,0,0,0,],0.314→ [ 0 , 0 , 0 , 1 , 0 , ⋯   ] [0,0,0,1,0,\cdots] [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可以学习特殊函数——高度波动的Bessel函数 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 ⁡ \tanh tanh函数来模拟相变行为,序参量是 x 1 x_1 x1, x 2 x_2 x2, x 3 x_3 x3的四次方项的组合。KAN训练后出现了四次方依赖和 tanh ⁡ \tanh tanh依赖。这是第4.4节中讨论的局域化相变的一个示例。

(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 ] [4, 3, 3, 1] [4,3,3,1] KAN可以自动修剪为 [ 4 , 2 , 1 , 1 ] [4, 2, 1, 1] [4,2,1,1] KAN,这正好对应于期望的计算图。

来自费曼数据集和特殊函数数据集的更多示例在附录D和F的图D.2、D.3、F.1、F.2中可视化。

4.2 无监督玩具数据集

通常,科学发现被表述为有监督的学习问题,即给定输入变量 x 1 , x 2 , ⋯   , x d x_1,x_2,\cdots,x_d x1,x2,,xd和输出变量 y y y,想找到一个可解释的函数 f f f使得 y ≈ f ( x 1 , x 2 , ⋯   , x d ) y \approx f(x_1,x_2,\cdots,x_d) yf(x1,x2,,xd)。然而,另一种科学发现可以表述为无监督学习,即给定一组变量 ( x 1 , x 2 , ⋯   , x d ) (x_1,x_2,\cdots,x_d) (x1,x2,,xd),想发现变量之间的结构关系。具体来说,想找到一个非零的 f f f使得

f ( x 1 , x 2 , ⋯   , x d ) ≈ 0. f(x_1,x_2,\cdots,x_d) \approx 0. f(x1,x2,,xd)0.

(4.1)

在这里插入图片描述

例如,考虑一组特征 ( x 1 , x 2 , x 3 ) (x_1,x_2,x_3) (x1,x2,x3)满足 x 3 = exp ⁡ ( sin ⁡ ( π x 1 ) + x 2 2 ) x_3=\exp(\sin(\pi x_1)+x_2^2) x3=exp(sin(πx1)+x22)。那么一个有效的 f f f f ( x 1 , x 2 , x 3 ) = sin ⁡ ( π x 1 ) + x 2 2 − log ⁡ ( x 3 ) = 0 f(x_1,x_2,x_3)=\sin(\pi x_1)+x_2^2-\log(x_3)=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指定的2D子流形,而不是填充整个3D空间。

如果可以设计出求解无监督问题的算法,它相对于有监督问题有相当大的优势,因为它只需要特征集 S = ( x 1 , x 2 , ⋯   , x d ) S=(x_1,x_2,\cdots,x_d) S=(x1,x2,,xd)。另一方面,有监督问题试图根据其他特征预测特征的子集,即将 S = S in ∪ S out S=S_{\text{in}} \cup S_{\text{out}} S=SinSout分成要学习的函数的输入和输出特征。如果没有领域专业知识来指导分割,那么有 2 d − 2 2^d-2 2d2种可能性使得 ∣ S in ∣ > 0 |S_{\text{in}}|>0 Sin>0 ∣ S out ∣ > 0 |S_{\text{out}}|>0 Sout>0。通过使用无监督方法,可以避免这个指数级大的有监督问题空间。这种无监督学习方法对4.3节中的纽结数据集很有价值。Google Deepmind团队手动选择signature作为目标变量,否则他们将面临上述组合问题。这提出了一个问题,是否可以直接处理无监督学习。在下面介绍我们的方法和一个玩具示例。

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

现在演示无监督范式对合成示例有效。考虑一个6D数据集,其中 ( x 1 , x 2 , x 3 ) (x_1,x_2,x_3) (x1,x2,x3)是相依变量,使得 x 3 = exp ⁡ ( sin ⁡ ( x 1 ) + x 2 2 ) x_3=\exp(\sin(x_1)+x_2^2) x3=exp(sin(x1)+x22); ( x 4 , x 5 ) (x_4,x_5) (x4,x5)是相依变量, x 5 = x 4 3 x_5=x_4^3 x5=x43; x 6 x_6 x6与其他变量无关。在图4.2中,展示了对于seed=0,KAN揭示了 x 1 x_1 x1 x 2 x_2 x2 x 3 x_3 x3之间的函数依赖关系;对于另一个seed=2024,KAN揭示了 x 4 x_4 x4 x 5 x_5 x5之间的函数依赖关系。初步结果依赖于随机性(不同的种子)来发现不同的关系;在未来,希望研究一种更系统、更可控的方式来发现一组完整的关系。即便如此,目前状态下的工具可以为科学任务提供见解。在4.3节中介绍了在纽结数据集上的结果。

4.3 用KAN重新发现纽结理论中的关系

纽结理论是拓扑学的一个分支,研究在三维欧几里德空间中可以彼此缠结的闭合曲线(即纽结)。纽结不变量是赋予纽结的值,对于等价的纽结(可以通过一系列连续变形相互转化)是不变的。最近的工作使用机器学习来研究纽结不变量之间的关系。该研究从Deepmind收集的真实数据集进行探索,该数据集从随机采样纽结中提取了17个纽结不变量。这些不变量包括亚历山大多项式的系数( Δ i , i = − 2 , − 1 , 0 , 1 \Delta_i,i=-2,-1,0,1 Δi,i=2,1,0,1)、Jones多项式的系数( V i , i = − 2 , − 1 , 0 , 1 , 2 V_i,i=-2,-1,0,1,2 Vi,i=2,1,0,1,2)、子午距和经向距的实部和虚部( μ r , μ i \mu_r,\mu_i μr,μi λ \lambda λ)、体积( vol \text{vol} vol)、笛卡尔坐标中的两个基本群表示的迹( ρ 1 , ρ 2 \rho_1,\rho_2 ρ1,ρ2)以及内射半径( r r r)。另一个关键特征是纽结的signature(偶数或奇数),它与许多其他不变量密切相关。该研究感兴趣于两个问题:
(1) signature如何依赖于其他不变量?
(2) 能否获得 σ \sigma σ(signature)的紧凑符号形式?

在这里插入图片描述

为了研究(1),将17个纽结不变量视为输入,将signature视为输出。signature(偶数)被编码为one-hot向量,网络用交叉熵损失训练。发现一个极小的 [ 17 , 1 , 14 ] [17,1,14] [17,1,14] KAN能够达到81.6%的测试准确率(而Deepmind的4层宽度300的MLP达到78%的测试准确率)。 [ 17 , 1 , 14 ] [17,1,14] [17,1,14] KAN( G = 3 G=3 G=3, k = 3 k=3 k=3)有 ≈ 200 \approx 200 200个参数,而MLP有 ≈ 3 × 1 0 5 \approx 3 \times 10^5 3×105个参数,如表4所示。值得注意的是,KAN可以同时比MLP更准确和更节省参数。

在这里插入图片描述

在可解释性方面,根据每个激活的大小来缩放其透明度,因此无需特征归因就可以立即清楚哪些输入变量很重要(见图4.3左):signature主要依赖于 λ \lambda λ,略微依赖于 μ r \mu_r μr μ i \mu_i μi,而对其他变量的依赖很小。然后,在三个重要变量上训练一个 [ 3 , 1 , 14 ] [3,1,14] [3,1,14] KAN,获得78.2%的测试准确率。结果与文献中的结果有一个微妙的区别:他们发现signature主要依赖于 μ r \mu_r μr,而该研究发现signature主要依赖于 λ \lambda λ。这种差异可能是由于微妙的算法选择,但促使该研究进行以下实验:
(a)消融研究。表明 λ \lambda λ对准确性的贡献大于 μ r \mu_r μr(见图4.3):例如,仅 λ \lambda λ就可以达到65.0%的准确率,而仅 μ r \mu_r μr只能达到43.8%的准确率。
(b)找到一个只涉及 λ \lambda λ μ r \mu_r μr的符号公式(在表5中),但可以达到77.8%的测试准确率。

为了研究(2),即获得 σ \sigma σ的符号形式,我们将问题表述为回归任务。使用2.5.1节中介绍的自动符号回归,可以将训练好的KAN转换为符号公式。训练形状为 [ 3 , 1 ] [3,1] [3,1] [ 3 , 1 , 1 ] [3,1,1] [3,1,1] [ 3 , 2 , 1 ] [3,2,1] [3,2,1]的KAN,其对应的符号公式显示在表5 B-D中。很明显,通过使用更大的KAN,准确性和复杂性都会增加。因此,KAN提供的不仅仅是一个单一的符号公式,而是一个完整的公式帕累托前沿,在简单性和准确性之间进行权衡。然而,KAN需要额外的归纳偏置来进一步简化这些方程,以重新发现 σ = sign ⁡ ( λ μ r ) \sigma=\operatorname{sign}(\lambda \mu_r) σ=sign(λμr)中的公式(表5 A)。该研究测试了两种情况:
(1)在第一种情况下,假设真实公式具有多元Pade表示(两个多元Taylor级数的商)。首先训练 [ 3 , 2 , 1 ] [3, 2, 1] [3,2,1],然后将其拟合到Pade表示。可以获得表5中的公式E,它与Deepmind的公式有相似之处。
(2)假设除法对KAN来说不是很直观,因此训练两个KAN(一个用于分子,另一个用于分母)并手动将它们相除。令人惊讶的是,最终得到了公式F(在表5中),它只涉及 λ \lambda λ μ r \mu_r μr,尽管 μ i \mu_i μi也被提供但被KAN忽略了。

到目前为止,已经重新发现了主要结果。令人瞩目的是,KAN使这一发现变得非常直观和方便。与其使用特征归因方法(这是很好的方法),不如直接盯着KAN的可视化。此外,自动符号回归也使符号公式的发现变得容易得多。

在下一部分中,提出了一种Deepmind论文中没有包括的新范式"AI for Math",我们旨在使用KAN的无监督学习模式来发现纽结不变量中的更多关系(除了signature)。

在这里插入图片描述

在这里插入图片描述

纽结不变量:无监督模式
无监督学习 正如在4.2节中提到的,无监督学习是更有前景的设置,因为它避免了手动划分输入和输出变量,而手动划分有组合多种可能性。在无监督学习模式下,将所有18个变量(包括signature)视为输入,使它们处于同等地位。纽结数据是正样本,通过随机洗牌特征来获得负样本。训练一个 [ 18 , 1 , 1 ] [18,1,1] [18,1,1] KAN来分类给定的特征向量是否属于正样本(1)或负样本(0)。手动将第二层激活设置为在零处中心为一的高斯函数,因此正样本在(接近)零处有激活,隐含地给出了纽结不变量之间的关系

∑ i = 1 18 g i ( x i ) = 0 \sum_{i=1}^{18} g_i\left(x_i\right)=0 i=118gi(xi)=0

其中 x i x_i xi表示一个特征(不变量), g i g_i gi是相应的激活函数,可以从KAN图中直接读出。用 λ = 1 0 − 2 , 1 0 − 3 \lambda=10^{-2},10^{-3} λ=102,103训练KAN以偏好稀疏的输入组合,种子为seed=0,1,⋯,99。所有200个网络可以分为三个簇,具有代表性的KAN显示在图4.4中。这三组相依变量是:

  • 第一组相依变量是signature、子午距的实部 μ r \mu_r μr和经向距 λ \lambda λ(加上另外两个可以因(3)而移除的变量)。这就是上面研究的signature依赖关系,所以看到这个依赖关系在无监督模式下再次被发现是非常有趣的。
  • 第二组变量涉及尖点体积 V V V、子午平移的实部 μ r \mu_r μr和经向平移 λ \lambda λ。它们的激活函数看起来都像对数函数(可以通过2.5.1节中暗示的符号功能验证)。因此,关系是 − log ⁡ V + log ⁡ μ r + log ⁡ λ = 0 -\log V+\log \mu_r+\log \lambda=0 logV+logμr+logλ=0,等价于 V = μ r λ V=\mu_r\lambda V=μrλ,这在定义上是正确的。然而,在没有任何先验知识的情况下发现这个关系,这是令人欣慰的。
  • 第三组变量包括短测地线 g r g_r gr的实部和内射半径 r r r。它们的激活看起来定性相同,但相差一个负号,因此推测这两个变量存在线性相关。我们绘制2D散点图,发现 2 r 2r 2r上限为 g r g_r gr,这也是一个众所周知的关系。

有趣的是,KAN的无监督模式可以重新发现几个已知的数学关系。好消息是KAN发现的结果可能是可靠的;坏消息是还没有发现任何新东西。值得注意的是,选择了一个浅层KAN以便于简单可视化,但如果存在,更深层的KAN可能会发现更多关系。希望在未来的工作中研究如何用更深层的KAN发现更复杂的关系。

4.4 物理应用:Anderson局域化

Anderson局域化是量子系统中无序导致电子波函数局域化的基本现象,导致所有传输停止。在一维和二维中,缩放论证表明,对于无限小量的随机无序,所有电子本征态都是指数局域化的。相比之下,在三维中,临界能量形成了一个相边界,将延展态与局域化态分开,称为迁移率边缘。对这些迁移率边缘的理解对于解释各种基本现象至关重要,如固体中的金属-绝缘体转变,以及光在光子器件中的局域化效应。因此,有必要开发展现迁移率边缘的微观模型,以便进行详细研究。在低维中开发此类模型通常更实际,在低维中引入准周期性而不是随机无序也可能导致分隔局域化相和延展相的迁移率边缘。此外,分析迁移率边缘的实验实现可以帮助解决关于相互作用系统中局域化的争论。事实上,最近的几项研究集中在确定此类模型并推导它们的迁移率边缘的精确解析表达式上。

在这里,将KAN应用于从准周期紧束缚模型生成的数值数据,以提取它们的迁移率边缘。我们特地检查三类模型:马赛克模型(MM)、广义Aubry-André模型(GAAM)和修正的Aubry-André模型(MAAM)。对于MM,证明KAN能够准确提取迁移率边缘作为能量的1D函数。对于GAAM,发现从KAN获得的公式与基本事实非常接近。对于更复杂的MAAM,再次展示了该框架符号可解释性的另一个例子。用户可以通过"协作"的方式简化从KAN(和相应的符号公式)获得的复杂表达式,在协作中,人类生成假设以获得更好的匹配(例如,对某些激活函数的形式做出假设),然后KAN可以快速进行假设检验。

为了量化这些模型中态的局域化,通常使用反参与率(IPR)。第 k k k个本征态 ψ ( k ) \psi^{(k)} ψ(k)的IPR由下式给出

IPR ⁡ k = ∑ n ∣ ψ n ( k ) ∣ 4 ( ∑ n ∣ ψ n ( k ) ∣ 2 ) 2 \operatorname{IPR}_k=\frac{\sum_n\left|\psi_n^{(k)}\right|^4}{\left(\sum_n\left|\psi_n^{(k)}\right|^2\right)^2} IPRk=(n ψn(k) 2)2n ψn(k) 4

(4.2)

其中求和是对格点指标 n n n进行的。在这里,使用相关的局域化度量——态的分形维数,由下式给出

D k = − log ⁡ ( IPR ⁡ k ) log ⁡ ( N ) D_k=\frac{-\log \left(\operatorname{IPR}_k\right)}{\log (N)} Dk=log(N)log(IPRk)

(4.3)

其中 N N N是系统大小。 D k = 0 ( 1 ) D_k=0(1) Dk=0(1)表示局域化(延展)态。

马赛克模型(MM) 我们首先考虑由Hamiltonian定义的一类紧束缚模型

H = t ∑ n ( c n + 1 † c n +  H.c.  ) + ∑ n V n ( λ , ϕ ) c n † c n H=t \sum_n\left(c_{n+1}^{\dagger} c_n+\text { H.c. }\right)+\sum_n V_n(\lambda, \phi) c_n^{\dagger} c_n H=tn(cn+1cn+ H.c. )+nVn(λ,ϕ)cncn

(4.4)

其中 t t t是最近邻耦合, c n ( c n † ) c_n(c_n^{\dagger}) cn(cn)是格点 n n n处的湮灭(产生)算符,势能 V n V_n Vn由下式给出

V n ( λ , ϕ ) = λ cos ⁡ ( 2 π n b + ϕ ) ⋅ 1 { j = m κ } V_n(\lambda, \phi)=\lambda \cos (2 \pi n b+\phi) \cdot \mathbf{1}_{\{j=m \kappa\}} Vn(λ,ϕ)=λcos(2πnb+ϕ)1{j=}

(4.5)

为了引入准周期性,将 b b b设置为无理数(选择 b b b为黄金比例 1 + 5 2 \frac{1+\sqrt{5}}{2} 21+5 )。 κ \kappa κ是一个整数,准周期势以间隔 κ \kappa κ出现。对于这个模型,能量( E E E)谱通常包含由迁移率边缘分隔的延展和局域化区域。有趣的是,这里发现的一个独特特征是,即使对于任意强的准周期势(即系统中总是存在延展态,与局域化态共存),迁移率边缘也存在。

迁移率边缘可以用 g ( λ , E ) ≡ λ − ∣ f κ ( E ) ∣ = 0 g(\lambda, E) \equiv \lambda-\left|f_{\kappa}(E)\right|=0 g(λ,E)λfκ(E)=0来描述。 g ( λ , E ) > 0 g(\lambda, E)>0 g(λ,E)>0 g ( λ , E ) < 0 g(\lambda, E)<0 g(λ,E)<0分别对应于局域化相和延展相。因此,学习迁移率边缘取决于学习"序参量" g ( λ , E ) g(\lambda, E) g(λ,E)。诚然,这个问题可以通过许多其他理论方法来解决这类模型,将在下面演示,KAN框架已经准备好并方便地接受来自人类用户的假设和归纳偏置。

假设一个假想的用户Alice,她是凝聚态物理学的一名新博士生,并获得一个 KAN作为该任务的助手。首先,她理解这是一个分类任务,因此明智的做法是使用fix_symbolic功能将第二层中的激活函数设置为sigmoid。其次,她意识到学习整个2D函数 g ( λ , E ) g(\lambda, E) g(λ,E)是不必要的,因为最终她只关心由 g ( λ , E ) = 0 g(\lambda, E)=0 g(λ,E)=0确定的 λ = λ ( E ) \lambda=\lambda(E) λ=λ(E)。这样做,假设 g ( λ , E ) = λ − h ( E ) = 0 g(\lambda, E)=\lambda-h(E)=0 g(λ,E)=λh(E)=0是合理的。Alice只需再次使用fix_symbolic功能将 λ \lambda λ的激活函数设置为线性。现在Alice训练KAN网络,方便地获得迁移率边缘,如图4.5所示。Alice既可以获得直观的定性理解(底部),也可以获得定量结果(中部),与基本事实(顶部)吻合良好。

在这里插入图片描述

广义Andre-Aub

ry模型(GAAM)接下来,考虑由Hamiltonian定义的一类紧束缚模型

H = t ∑ n ( c n + 1 † c n +  H.c.  ) + ∑ n V n ( α , λ , ϕ ) c n † c n H=t \sum_n\left(c_{n+1}^{\dagger} c_n+\text { H.c. }\right)+\sum_n V_n(\alpha, \lambda, \phi) c_n^{\dagger} c_n H=tn(cn+1cn+ H.c. )+nVn(α,λ,ϕ)cncn

(4.6)

其中 t t t是最近邻耦合, c n ( c n † ) c_n(c_n^{\dagger}) cn(cn)是格点 n n n处的湮灭(产生)算符,势能 V n V_n Vn由下式给出

V n ( α , λ , ϕ ) = 2 λ cos ⁡ ( 2 π n b + ϕ ) 1 − α cos ⁡ ( 2 π n b + ϕ ) V_n(\alpha, \lambda, \phi)=\frac{2 \lambda \cos (2 \pi n b+\phi)}{1-\alpha \cos (2 \pi n b+\phi)} Vn(α,λ,ϕ)=1αcos(2πnb+ϕ)2λcos(2πnb+ϕ)

(4.7)

对于 α ∈ ( − 1 , 1 ) \alpha \in(-1,1) α(1,1),它是光滑的。为了引入准周期性,我们再次将 b b b设置为无理数(特别地,我们选择 b b b为黄金比例)。和之前一样,我们想得到迁移率边缘的表达式。对于这些模型,迁移率边缘由闭合形式表达式给出,

α E = 2 ( t − λ ) \alpha E=2(t-\lambda) αE=2(tλ)

(4.8)

随机采样模型参数 ϕ \phi ϕ α \alpha α λ \lambda λ(设置能量尺度 t = 1 t=1 t=1),并计算能量本征值以及相应本征态的分形维数,这构成了训练数据集。

在这里,要学习的"序参量"是 g ( α , E , λ , ϕ ) = α E + 2 ( λ − 1 ) g(\alpha, E, \lambda, \phi)=\alpha E+2(\lambda-1) g(α,E,λ,ϕ)=αE+2(λ1),迁移率边缘对应于 g = 0 g=0 g=0。再次假设Alice想要确定迁移率边缘,但只能访问IPR或分形维数数据,因此她决定使用KAN来帮助她完成任务。Alice希望模型尽可能小,因此她可以从一个大模型开始,使用自动修剪来获得一个小模型,或者她可以根据对给定问题复杂性的理解来猜测一个合理的小模型。无论哪种方式,假设她得到一个 [ 4 , 2 , 1 , 1 ] [4,2,1,1] [4,2,1,1] KAN。首先,她将最后一个激活设置为sigmoid,因为这是一个分类问题。

在这里插入图片描述

她用一些稀疏正则化训练她的KAN达到98.7%的准确率,并在图4.6(a)步骤1中可视化训练后的KAN。她观察到KAN完全没有选择 ϕ \phi ϕ,这使她意识到迁移率边缘与 ϕ \phi ϕ无关(与公式(4.8)一致)。此外,她观察到几乎所有其他激活函数都是线性或二次方的,因此她打开自动符号捕捉,将函数库限制为仅线性或二次方。之后,她立即得到一个已经是符号的网络(如图4.6(a)步骤2所示),具有相当(甚至略好)的准确率98.9%。通过使用symbolic_formula功能,Alice方便地得到 g g g的符号形式,如表6 GAAM-KAN auto(第三行)所示。也许她想划掉一些小项并将系数捕捉为小整数,这使她接近真正的答案。

如果Alice使用符号回归方法,这个假设的故事将完全不同。如果她幸运的话,SR可以返回完全正确的公式。然而,在绝大多数情况下,SR不会返回有用的结果,而且Alice不可能"调试"或与符号回归的底层过程交互。此外,在运行SR之前,Alice可能会感到不舒服/缺乏经验,无法将符号项的函数库作为先验知识提供给SR。相比之下,在KAN中,Alice不需要将任何先验信息放入KAN。她可以先盯着训练后的KAN获得一些线索,只有在那时她才决定她想做出哪些假设(例如,“所有激活都是线性或二次方的”),并在KAN中实现她的假设。尽管KAN不太可能立即返回正确答案,但KAN总是会返回一些有用的东西,Alice可以与之合作来完善结果。

修正的Andre-Aubry模型MAAM)考虑的最后一类模型由Hamiltonian定义

H = ∑ n ≠ n ′ t e − p ∣ n − n ′ ∣ ( c n † c n ′ +  H.c.  ) + ∑ n V n ( λ , ϕ ) c n † c n H=\sum_{n \neq n^{\prime}} t e^{-p\left|n-n^{\prime}\right|}\left(c_n^{\dagger} c_{n^{\prime}}+\text { H.c. }\right)+\sum_n V_n(\lambda, \phi) c_n^{\dagger} c_n H=n=ntepnn(cncn+ H.c. )+nVn(λ,ϕ)cncn

(4.9)

其中 t t t是空间中指数衰减耦合的强度, c n ( c n † ) c_n(c_n^{\dagger}) cn(cn)是格点 n n n处的湮灭(产生)算符,势能 V n V_n Vn由下式给出

V n ( λ , ϕ ) = λ cos ⁡ ( 2 π n b + ϕ ) V_n(\lambda, \phi)=\lambda \cos (2 \pi n b+\phi) Vn(λ,ϕ)=λcos(2πnb+ϕ)

(4.10)

在这里插入图片描述

和之前一样,为了引入准周期性,将 b b b设置为无理数(黄金比例)。对于这些模型,迁移率边缘由闭合形式表达式给出,

λ cosh ⁡ ( p ) = E + t = E + t 1 exp ⁡ ( p ) \lambda \cosh (p)=E+t=E+\frac{t_1}{\exp (p)} λcosh(p)=E+t=E+exp(p)t1

(4.11)

其中定义 t 1 ≡ t e − p t_1 \equiv t e^{-p} t1tep为最近邻跳跃强度,下面设 t 1 = 1 t_1=1 t1=1

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

5 相关工作

Kolmogorov-Arnold定理与神经网络。Kolmogorov-Arnold定理(KAT)与神经网络之间的联系在文献中并不新鲜,但内函数的病态行为使KAT在实践中看起来并不乐观。大多数这些先前的工作都坚持使用原始的2层宽度为 ( 2 n + 1 ) (2n+1) (2n+1)的网络,表达能力有限,其中许多工作甚至早于反向传播。因此,大多数研究都建立在理论之上,只有相当有限或人工的玩具实验。该研究的贡献在于将网络推广到任意宽度和深度,在当今的深度学习潮流中重新唤起并将其情境化,并强调其作为AI+科学基础模型的潜在作用。

神经缩放定律(NSL)。NSL是测试损失相对于模型大小、数据、计算等呈幂律行为的现象。NSL的起源仍然是个谜,但有竞争理论,包括内在维度、任务量化、资源理论、随机特征、组合稀疏性和最大奇异性。本文通过表明,如果高维函数具有平滑的Kolmogorov-Arnold表示,则可以惊人地缩放为1D函数(这是人们可以希望的最佳界限),为这一空间做出了贡献。论文为神经缩放定律带来了新的乐观情绪,因为它承诺了有史以来最快的缩放指数。在实验中表明,这种快速神经缩放定律可以在合成数据集上实现,但未来的研究需要解决以下问题:KA表示是否存在于一般任务中?如果存在,训练是否在实践中找到这些表示?

机制可解释性(MI)。MI是一个新兴领域,旨在机械地理解神经网络的内部工作原理。MI研究大致可分为被动和主动MI研究。大多数MI研究是被动的,专注于理解用标准方法训练的现有神经网络。主动MI研究试图通过设计本质上可解释的架构或开发训练方法来明确鼓励可解释性来实现可解释性。该研究的工作属于第二类,其中模型和训练方法在设计上是可解释的。

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

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

物理信息神经网络(PINN)和物理信息神经算子(PINO)。在3.4小节中,演示了KAN可以取代在求解PDE时使用MLP来施加PDE损失的范式。参考Deep Ritz方法、PINN用于PDE求解,以及Fourier神经算子、PINO、DeepONet用于学习解映射的算子学习方法。在上述所有网络中,都有可能用KAN取代MLP。

AI for Mathematics。正如我们在4.3小节中看到的,AI最近被应用于纽结理论中的几个问题,包括检测一个纽结是否是未纽结或带纽结,以及预测纽结不变量并揭示它们之间的关系。

6 讨论

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

数学方面:我们提出了KAN的初步数学分析(定理2.1),但对它们的数学理解仍然非常有限。Kolmogorov-Arnold表示定理在数学上已经得到了彻底的研究,但该定理对应于形状为 [ n , 2 n + 1 , 1 ] [n, 2n+1, 1] [n,2n+1,1]的KAN,这是KAN的一个非常受限的子类。在更深的KAN上的经验成功是否意味着数学中的某些基本原理?一个有吸引力的广义Kolmogorov-Arnold定理可以定义超出2层组合的"更深"Kolmogorov-Arnold表示,并可能将激活函数的平滑性与深度联系起来。假设存在一些函数,它们不能在原始(2层)Kolmogorov-Arnold表示中平滑表示,但可能在3层或更深层中平滑表示。我们能否使用这种"Kolmogorov-Arnold深度"的概念来表征函数类?

算法方面:该研究讨论以下内容

  • 准确性。架构设计和训练中的多个选择没有得到充分研究,因此替代方案可能进一步提高准确性。例如,样条激活函数可能被径向基函数或其他局部核取代。可以使用自适应网格策略。

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

  • KAN和MLP的混合。与MLP相比,KAN有两个主要区别:
    激活函数在边上而不是在节点上。

  • 激活函数是可学习的而不是固定的。

    哪种变化对解释KAN的优势更重要?在附录B中介绍了初步结果,其中研究了一个模型,它具有(ii),即激活函数是可学习的(如KAN),但不具有(i),即激活函数在节点上(如MLP)。此外,还可以构建另一个模型,其激活函数是固定的(如MLP),但在边上(如KAN)。

  • 自适应性。得益于样条基函数的内在局部性,可以在KAN的设计和训练中引入自适应性,以提高准确性和效率:参见多层次训练的想法,如中的多网格方法,或如中的多尺度方法的域相关基函数。

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

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

最终要点:我应该使用KAN还是MLP?

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

在这里插入图片描述

参考文献(https://arxiv.org/pdf/2404.19756)

附录

A KAN功能

表7包含了用户可能会发现有用的常见功能。

在这里插入图片描述

B 可学习激活网络(LAN)

B.1 架构

除了KAN,该研究还提出了另一种可学习激活网络(LAN),它们几乎是MLP,但具有参数化为样条的可学习激活函数。KAN对标准MLP进行了两项主要更改:
激活函数变为可学习而不是固定的;
激活函数放置在边上而不是节点上。为了区分这两个因素,该研究还提出了可学习激活网络(LAN),它只有可学习的激活,但仍然在节点上,如图B.1所示。

对于宽度为 N N N、深度为 L L L和网格点数为 G G G的LAN,参数数量为 N 2 L + N L G N^2L+NLG N2L+NLG,其中 N 2 L N^2L N2L是权重矩阵的参数数量, N L G NLG NLG是样条激活的参数数量,除MLP外,这引起的开销很小,因为通常 G ≪ N G \ll N GN,所以 N L G ≪ N 2 L NLG \ll N^2L NLGN2L。LAN与MLP相似,因此可以从预训练的MLP初始化,并通过允许可学习的激活函数进行微调。一个示例是使用LAN来改进SIREN,在B.3节中介绍。

LAN和KAN的比较

  • LAN的优点:
  1. LAN在概念上比KAN更简单。它们更接近标准MLP(唯一的变化是激活函数变为可学习)。
  2. LAN比KAN更容易扩展。LAN/KAN在节点/边上有可学习的激活函数。因此,LAN/KAN中的激活参数分别随 N N N/ N 2 N^2 N2缩放,其中 N N N是模型宽度。
  • LAN的缺点:
  1. LAN似乎不太可解释(权重矩阵难以解释,就像MLP中一样);
  2. LAN似乎也不如KAN准确,但仍然比MLP更准确。与KAN一样,如果LAN的激活函数由样条参数化,LAN也承认网格扩展。

在这里插入图片描述
在这里插入图片描述

B.2 LAN可解释性结果

我们在图B.2中介绍了LAN的初步可解释性结果。对于图4.1中KAN完全可解释的相同示例,由于权重矩阵的存在,LAN似乎可解释性要差得多。首先,权重矩阵不如可学习的激活函数容易解释。其次,权重矩阵带来了太多的自由度,使得可学习的激活函数过于不受约束。我们使用LAN的初步结果似乎暗示,去除线性权重矩阵(通过在边上具有可学习的激活,如KAN)对于可解释性是必要的。

B.3 拟合图像(LAN)

隐式神经表示将图像视为2D函数 f ( x , y ) f(x,y) f(x,y),其中像素值 f f f是像素的两个坐标 x x x y y y的函数。为了压缩图像,这样的隐式神经表示(f是神经网络)可以在保持几乎原始图像质量的同时实现令人印象深刻的参数压缩。SIREN提出使用具有周期性激活函数的MLP来拟合函数 f f f。在LAN中自然考虑其他激活函数。然而,由于我们将LAN激活初始化为平滑的,而SIREN需要高频特征,LAN不能立即工作。请注意,LAN中的每个激活函数都是基函数和样条函数的总和,即 ϕ ( x ) = b ( x ) + spline ⁡ ( x ) \phi(x)=b(x)+\operatorname{spline}(x) ϕ(x)=b(x)+spline(x),我们将 b ( x ) b(x) b(x)设置为正弦函数,与SIREN中的设置相同,但让 spline ⁡ ( x ) \operatorname{spline}(x) spline(x)是可训练的。对于MLP和LAN,形状都是 [ 2 , 128 , 128 , 128 , 128 , 128 , 1 ] [2,128,128,128,128,128,1] [2,128,128,128,128,128,1]。我们使用Adam优化器对它们进行训练,批量大小为4096,学习率为 1 0 − 3 10^{-3} 103训练5000步,学习率为 1 0 − 4 10^{-4} 104训练5000步。

在这里插入图片描述

如图B.3所示,LAN(橙色)可以实现比MLP(蓝色)更高的PSNR,这是由于LAN微调激活函数的灵活性。我们表明,也可以从MLP初始化LAN,并进一步微调LAN(绿色)以获得更好的PSNR。在我们的实验中,我们选择了 G = 5 G=5 G=5,因此额外的参数增加大约是原始参数的 G / N = 5 / 128 ≈ 4 % G/N=5/128 \approx 4\% G/N=5/1284%

C 超参数的影响

我们在图C.1中显示了超参数对 f ( x , y ) = exp ⁡ ( sin ⁡ ( π x ) + y 2 ) f(x,y)=\exp(\sin(\pi x)+y^2) f(x,y)=exp(sin(πx)+y2)案例的影响。为了获得可解释的图,我们希望活跃激活函数的数量尽可能少(理想情况下为3)。

我们需要熵惩罚来减少活跃激活函数的数量。如果没有熵惩罚,会有许多重复函数。
结果可能取决于随机种子。对于一些不幸的种子,修剪后的网络可能比需要的更大。
整体惩罚强度 λ \lambda λ有效地控制稀疏性。
网格数 G G G也对可解释性有微妙影响。当 G G G太小时,由于每个激活函数不是很有表现力,网络倾向于使用集成策略,使得解释更加困难。
分段多项式阶数 k k k对可解释性只有微妙影响。然而,它的行为有点像随机种子,在这个玩具示例中没有显示任何可见的模式。

D 费曼KAN

我们在费曼数据集(第3.3节)上包含了更多结果。图D.1显示了每个费曼数据集的KAN和MLP的帕累托前沿。图D.3和D.2将每个费曼方程拟合任务的最小KAN(在测试RMSE < 1 0 − 2 < 10^{-2} <102的约束下)和最佳KAN(具有最低测试RMSE损失)可视化。

在这里插入图片描述

E 关于网格大小的备注

对于PDE和回归任务,当我们在均匀网格上选择训练数据时,当网格大小更新到一个大水平时,我们会看到训练损失突然增加(即性能突然下降),相当于空间一个方向上的不同训练点。这可能是由于更高维度中B样条的实现,需要进一步调查。

F 特殊函数的KAN

我们在特殊函数数据集(第3.2节)上包含了更多结果。图F.2和F.1将每个特殊函数拟合任务的最小KAN(在测试RMSE < 0.01 < 0.01 <0.01的约束下)和最佳KAN(具有最低测试RMSE损失)可视化。

在这里插入图片描述

几点见解和思考:

  1. Kolmogorov-Arnold定理在神经网络领域的应用前景广阔。论文将KA定理与深度学习结合,提出了KAN这一新颖的神经网络架构。KAN不仅在各种任务上展现出优异的性能,其可解释性也远胜于传统的MLP。这为深度学习模型的可解释性研究提供了新的思路。
  2. KAN在速度上的不足可能限制了其应用。论文坦承,目前KAN的训练速度比MLP慢10倍左右。作者认为这更多是工程实现的问题,未来有优化的空间。KAN要真正发挥作用,还需要在效率上有所突破。
  3. 无监督学习可能是AI辅助科学发现的重要范式。论文在纽结理论的实验中展示了无监督学习的威力。相比于有监督学习需要专家标注数据,无监督学习可以直接从原始数据出发寻找隐藏的关系,更符合科学发现的实际过程。
  4. AI与科学家的协同是大势所趋。KAN作为一种会"说"科学语言(数学函数)的AI系统,为AI与科学家的沟通提供了渠道。未来,懂科学语言的AI助手或许能够与科学家进行更加深入的交流,共同推进科学发现的进程。
  5. 神经网络的数学基础仍有待加强。尽管KAN取得了令人瞩目的表现,但我们对其背后的数学原理还缺乏深入理解。Kolmogorov-Arnold定理能否推广到更深层次?网络深度与函数平滑性是否存在内在联系?这些问题的解答,需要数学和深度学习领域的专家共同努力。
  6. 对科学家而言,拥有正确的工具选择十分重要。论文最后给出的决策树,为科学家在KAN和MLP间做出选择提供了参考。一方面,科学家要善于利用新工具(如KAN)来加速研究;另一方面,也要理性看待新工具的局限性,根据具体问题选择最合适的方法。

这是一篇将数学理论与深度学习紧密结合,并在多个科学问题上进行实践的高质量论文。它不仅展示了KAN的强大性能,更重要的是,它体现了一种AI助力科学发现的新范式。尽管KAN目前还不够完善,但其背后的思想值得我们深入探索。期待未来有更多类似的工作,推动AI与科学的深度融合。

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

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

相关文章

鸿蒙OpenHarmony南向:【Hi3516标准系统入门(命令行方式)】

Hi3516标准系统入门&#xff08;命令行方式&#xff09; 注意&#xff1a; 从3.2版本起&#xff0c;标准系统不再针对Hi3516DV300进行适配验证&#xff0c;建议您使用RK3568进行标准系统的设备开发。 如您仍然需要使用Hi3516DV300进行标准系统相关开发操作&#xff0c;则可能会…

人工智能编程的创新探索 卧龙与凤雏的畅想

在一间宽敞明亮的办公室内&#xff0c;阳光透过窗户洒在地上&#xff0c;形成一片片光斑。卧龙和凤雏正坐在舒适的办公椅上休息&#xff0c;享受着这片刻的宁静。 卧龙微微皱眉&#xff0c;一只手托着下巴&#xff0c;略显苦恼地说道&#xff1a;“现在的人工智能&#xff0c;也…

vue2人力资源项目5组织架构的增删改查

编辑表单回显 父组件&#xff1a;这里用到了父亲调子组件的方法和同步异步先后方法的处理 //methods里else if (type edit) {this.showDialog true// 显示弹层this.currentNodeId id// 记录id&#xff0c;要用它获取数据// 在子组件中获取数据// 父组件调用子组件的方法来获…

【力扣】203、环形链表 II

142. 环形链表 II 要解决这道题&#xff0c;首先需要对问题进行拆解&#xff1a; 确定链表是否存在环确定环的入口点 如何判断是否存在环呢&#xff1f;这个比较容易想到&#xff0c;使用快慢指针即可判断链表是否存在环。我们定义两个指针&#xff1a; ListNode slow head…

Redis学习4——Redis应用之限流

引言 Redis作为一个内存数据库其读写速度非常快&#xff0c;并且支持原子操作&#xff0c;这使得它非常适合处理频繁的请求&#xff0c;一般情况下&#xff0c;我们会使用Redis作为缓存数据库&#xff0c;但处理做缓存数据库之外&#xff0c;Redis的应用还十分广泛&#xff0c…

远程服务器 docker XRDP 桌面访问 记录

需求描述: 我现在在远程连接 一台服务器&#xff0c;由于需要实验环境需要GUI 和 桌面系统&#xff0c;但是又想在 docker 中运行。因此&#xff0c;我现在首先需要通过 ssh 连接服务器&#xff0c;然后再服务器中连接 docker. REF: https://github.com/danielguerra69/ubuntu-…

代码随想录day19day20打卡

二叉树 1 二叉树的最大深度和最小深度 最大深度已经学习过了&#xff0c;实质就是递归的去判断左右子节点的深度&#xff0c;然后对其进行返回。 附加两个学习的部分&#xff1a; &#xff08;1&#xff09;使用前序遍历的方法求解 int result; void getdepth(TreeNode* nod…

NXP i.MX8系列平台开发讲解 - 3.11 Linux PCIe设备调试(WIFI模块)

专栏文章目录传送门&#xff1a;返回专栏目录 文章目录 目录 1. WIFI 模块简单介绍 2. 设备驱动原理介绍 3. PCIE WIFI驱动实例分析 3.1 查看设备树 3.2 wifi 设备驱动代码分析 3.3 内核配置选项 4. WIFI驱动调试相关 根据前面对PCIe的讲解&#xff0c;对PCIe的整体都有…

Ansible --- playbook 脚本+inventory 主机清单

一 inventory 主机清单 Inventory支持对主机进行分组&#xff0c;每个组内可以定义多个主机&#xff0c;每个主机都可以定义在任何一个或 多个主机组内。 如果是名称类似的主机&#xff0c;可以使用列表的方式标识各个主机。vim /etc/ansible/hosts[webservers]192.168.10.1…

Flutter弹窗链-顺序弹出对话框

效果 前言 弹窗的顺序执行在App中是一个比较常见的应用场景。比如进入App首页&#xff0c;一系列的弹窗就会弹出。如果不做处理就会导致弹窗堆积的全部弹出&#xff0c;严重影响用户体验。 如果多个弹窗中又有判断逻辑&#xff0c;根据点击后需要弹出另一个弹窗&#xff0c;这…

C++ Primer 总结索引 | 第十四章:重载运算与类型转换

1、C语言定义了 大量运算符 以及 内置类型的自动转换规则 当运算符 被用于 类类型的对象时&#xff0c;C语言允许我们 为其指定新的含义&#xff1b;也能自定义类类型之间的转换规则 例&#xff1a;可以通过下述形式输出两个Sales item的和&#xff1a; cout << item1 …

信息系统安全与对抗-网络侦查技术与网络扫描技术(期末复习)

1、网络拓扑结构在网络攻击中的作用 查明目标网络的拓扑结构&#xff0c;有利于找到目标网络的关键节点&#xff0c;从而提高攻击效率&#xff0c;达到最大攻击效果。 2、网络侦查在网络攻击中的作用 识别潜在目标系统&#xff0c;确认目标系统适合哪种类型的攻击。 3、百度…

jenkins部署服务到windows系统服务器

1、安装openSSH windows默认不支持ssh协议&#xff0c;需要下载安装&#xff0c;主要适用于jenkins传输文件已经执行命令使用 点击查看下载openSSH 2、项目配置 这里简单说说怎么配置&#xff0c;主要解决点就是ssh执行cmd或shell命令时不能开启新窗口导致应用部署失败或者断…

【机器学习系统的构建】从模型开发的过程讲清楚K-Fold 交叉验证 (Cross-Validation)的原理和应用

0、前言 最近在学习集成学习的时候了解到了k折交叉验证&#xff0c;其实在之前学习吴恩达老师的课程中也学过交叉验证&#xff0c;但是当时也不是很明白。这次借着自己的疑问以及网上搜找资料&#xff0c;终于把交叉验证给弄明白了。 在弄清楚前&#xff0c;我有这样几个疑问…

rancher/elemental 构建不可变IOS(一)

一、什么是elemental Elemental 是 Rancher 的一个变种&#xff0c;专注于提供一个更轻量级的 Kubernetes 发行版。它旨在提供简化的部署和管理体验&#xff0c;同时保持 Kubernetes 的灵活性和强大功能。Elemental 通常针对较小的部署场景或资源受限的环境&#xff0c;例如测…

BFS Ekoparty 2022 -- Linux Kernel Exploitation Challenge

前言 昨天一个师傅给了我一道 linux kernel pwn 题目&#xff0c;然后我看了感觉非常有意思&#xff0c;题目也不算难&#xff08;在看了作者的提示下&#xff09;&#xff0c;所以就花时间做了做&#xff0c;在这里简单记录一下。这个题是 BFS Lab 2022 年的一道招聘题&#…

JavaEE技术之MySql高级-搭建主从复制(主从同步原理、一主多从配置)

文章目录 MySQL主从同步1、MySQL主从同步原理2、一主多从配置2.1、准备主服务器2.2、准备从服务器2.3、启动主从同步2.4、实现主从同步2.5、停止和重置2.6、常见问题问题1问题2 MySQL主从同步 1、MySQL主从同步原理 基本原理&#xff1a; slave会从master读取binlog来进行数据…

软件架构的艺术:探索演化之路上的18大黄金原则

实际工作表明&#xff0c;一步到位的设计往往不切实际&#xff0c;而演化原则指导我们逐步优化架构&#xff0c;以灵活响应业务和技术的变化。这不仅降低了技术债务和重构风险&#xff0c;还确保了软件的稳定性和可扩展性。同时&#xff0c;架构的持续演进促进了团队协作&#…

SQL查询语句(二)逻辑运算关键字

上一篇文章中我们提到了条件查询除了一些简单的数学符号之外&#xff0c;还有一些用于条件判断的关键字&#xff0c;如逻辑判断 关键字AND,OR,NOT和范围查找关键字BETWEEN,IN等&#xff1b;下面我们来介绍一些这些关键字的用法以及他们所表达的含义。 目录 逻辑运算关键字 AND…

HarmonyOS实战开发教程-如何开发一个2048游戏

今天为大家分享的是2048小游戏&#xff0c;先看效果图&#xff1a; 这个项目对于新手友友来说可能有一点难度&#xff0c;但是只要坚持看完一定会有收获。因为小编想分享的并不局限于ArkTs语言&#xff0c;而是编程思想。 这个游戏的基本逻辑是初始化一个4乘4的数组&#xff…
最新文章