让咱们先退几步来贯通这个定理

栏目分类
新闻资讯

你的位置:海晏县卫索具有限公司 > 新闻资讯 > 让咱们先退几步来贯通这个定理

让咱们先退几步来贯通这个定理

发布日期:2024-07-03 15:56    点击次数:143

让咱们先退几步来贯通这个定理

图片

第一届“欧洲基础物理东说念主工智能会议”(EuCAIFCon)于2024年4月30日至5月3日在阿姆斯特丹举行。会议上许多接头齐蚁合在基础模子上,探讨是否不错摆布东说念主工智能发现潜在的新物理定律。令东说念主惊诧的是,最近一篇名为KAN的论文在arXiv上发布,探讨了摆布神经采集发现或再行发现物理和数学模子的可能性。

图片

接下来咱们将长远探讨构建KANs的数学公式和观念。以了解为什么这个采齐集引起如斯大的震憾!

KA示意定理

KAN或Kolmogorov-Arnold采集基于着名数学家Kolmogorov和Arnold的示意定理。最初,让咱们先退几步来贯通这个定理。

KA定理是由这些数学家提议的,用于措置希尔伯特的第13个问题:是否整个七次方程的解齐不错用两个变量的代数函数来抒发?这是什么真谛呢?

假定有如下的七次多项式:

图片

方程1

希尔伯特问,其解x,被以为是三个变量a,b,c的函数,是否不错示意为有限数地方二元函数的组合:

图片

KA示意定理指出,关于任何一语气函数

图片

存在一元一语气函数g_q, ψ_{p,q},使得:

图片

方程2:KA示意定理

这意味着(2d+1)(d+1)个一元函数g_q, ψ_{p,q}足以精准示意一个d变量函数。这里的关节点是,惟一的的确多变量函数是加法,因为其他整个函数齐不错使用一元函数和乞降来示意。

咱们需要记着,g_q, ψ_{p,q}齐是一元函数。因此,任何多变量的一语气函数齐不错示意为一元函数的组合。哇!我之前不知说念。太酷了!

想考KA定理和多层感知器(MLPs)

论文的作家指出,这些一维函数(之前界说的)可能是不光滑以致是分形的,因此在实际中可能无法学习。为了构建KANs,作家们杰出了KA示意定理的界说,但最初咱们来想考MLPs。

多层感知器(MLPs)基于通用贴近定理,该定理指出任何一语气函数f:[0, 1]ᵈ → [0, 1]齐不错通过至少包含一个遮蔽层的神经采集(权重、偏差和非线性激活函数)来纵情精准地贴近。在反向传播经由中,采集学习优化权重和偏差以充任函数贴近器,而激活函数保抓不变。

当今,咱们能否把柄上述KA示意定理构建一个基于神经采集的架构?

如若探讨一个监督学习问题,给定{x_i, y_i}对,咱们想找到一个函数使得y_i ≈ f(x_i),那么KA示意定理告诉咱们,需要找到方程2中的一元函数(g_q, ψ_{p,q)。

图片

图1:想考和构建KAN,摘自论文

在这里,作家们以为,由于咱们只需要学习一元函数,咱们不错将每个一维函数参数化为B样条弧线(见下文),其局部B样条基函数的系数是可学习的。这导致了KAN的原型,并在图1(b)中进行了评释,输入维度n=2弘扬为一个两层神经采集,激活函数舍弃在边上而不是节点上(在节点上进行简便的乞降),中间层的宽度为2n+1。采集的构造,即激活数、节点数等,将很快暴露。鉴于方程2中的界说,原始KA示意定理不错被视为深度为2,每层包含(2d+1)项。

B样条:咱们不错将B样条函数贯通为由多个收尾点收尾的活泼带组成,用于创建平滑弧线。从数学角度更严格的界说是,p+1阶的B样条是由变量t中p阶的分段多项式函数B_{i, p}组成的蚁合。分段多项式连络处的t值被称为结点。

再次评释,B样条由分段多项式(基函数)构建,其阶数比其基多项式的度数多一。举例,二次B样条的多项式度数为2,阶数为3。这恰是KAN论文中展示和使用的内容。

构建KAN层

仍是提到,代表原始KA示意定理的两层采集太简便,无法纵情精准地贴近任何函数。咱们怎样让KAN更宽、更深呢?

这里,作家提议了KAN和MLPs之间的绝佳类比以便更长远探讨。最初,咱们需要了解什么是KAN层以及怎样将它们堆叠起来构建深度神经采集。

最初,不错将KA示意以矩阵面孔抒发:

图片

方程3:以矩阵面孔想考方程2

具有n_{in}维输入和n_{out}维输出的KAN层不错界说为一维函数的矩阵:

图片

方程4:开发矩阵的维度

在Kolmogov-Arnold定理(方程2)中,里面函数组成一个n_{in}=n和n_{out}=2n+1的KAN层,外部函数组成一个n_{in}=2n+1和n_{out}=1的KAN层。此时,咱们不错将KA示意视为两个KAN层的组合。让咱们尝试风尚于堆叠更多KAN层时的标志。

咱们不错使用作家提供的示例图来接头采集维度等内容:

图片

图2:想考KAN层:摘自论文

作家将n_i示意为KAN中第i层的节点数,第l层的第i个神经元由(l, i)示意,其中该神经元的激活由x_{l, i}给出。咱们以为激活函数是位于采集图边际的可学习函数,节点示意乞降运算。因此,在第1层(0层)和第2层(1层)之间,咱们看到有10个激活函数,分裂由ϕ_{0,1,1}, ϕ_{0,1, 天陵涯网络2}等示意。激活函数的数目由0层和1层的节点数决定。

这里咱们不错暴露地看到MLPs与KANs的区别。KANs的激活函数位于边际, 深圳市东吉联电子有限公司而MLPs的激活函数位于节点上。

在第0层,重庆神驰电池有限责任公司咱们有两个节点x_{0,1}, x_{0,2},在第一层,有5个,是以激活函数的数目将是n_l × n_{l+1}。

n_l和n_{l+1}是把柄方程4中界说的里面函数的输入和输出维度细则的。因此咱们从两个输入n_{in}=2运行,是以n_{out}必须为2n+1=5。这反过来决定了遮蔽层中激活函数的数目。

如若咱们不绝以节点数n_1=5和n_2=1(n_{out}),在该层有5个激活函数是合理的。这将是外部函数。重申一遍,KA示意由两个KAN层组成。

KAN层的矩阵面孔

当今咱们不错运行编写激活函数。让咱们望望:集合第l层和l+1层两个节点的激活函数由ϕ_{l, j, i}示意,其中{j, i}分裂代表那两层中的第j和第i个神经元。

因此,在第l层和l+1层之间的可学习激活函数:

图片

方程5:KAN边际的可学习激活函数

咱们不错再次检查图2,

图片

通过与图2相比来贯通节点数目。

咱们将ϕ_{l, j, i}的输入前激活示意为x_{l, i};然后在激活后有:

图片

激活前后的标志

第(l+1, j)神经元的激活值简便地是整个传入激活后的乞降。

摆布这些,咱们不错界说激活的可学习变换矩阵:

图片

方程6:KAN不同层的完竣可学习激活函数集

摆布这个咱们也不错编写变换章程:

图片

方程7:完竣变换章程:给定激活矩阵的预激活和激活后。

再次检查咱们的贯通,因此与图2相比:

图片

方程8:鉴于图2,检查咱们是否能贯通变换矩阵的维度!

如实有5个输出x_{1,1}, x_{1,2}, x_{1,3}, x_{1,4}, x_{1,5}。

一朝咱们准备好了变换矩阵,咱们不错简便地将它们组合(堆叠层)以便更长远地探讨,如下所示:

图片

方程9:通过堆叠些许KAN层来组成一个KAN

此时咱们也不错意志到,整个运算齐是可微分的(假定1D函数亦然),梯度不错通过采集流动,即咱们不错进行反向传播!

咱们还不错将KAN与MLP层进行相比,在MLP层中有权重矩阵(线性变换)和激活函数(非线性)分开:

图片

方程10:将KAN与MLP相比;权重(线性)和激活(非线性)。

权重矩阵中的值会更新,玻璃工艺品但一朝界说,MLP中的激活函数便是固定的。这是KAN与MLP层之间的关节区别,咱们的激活函数是可学习的。

由于关于KAN来说,当今一切齐归结为激活函数,作家界说了怎样构建这些函数。

可学习的激活函数

为了构建激活函数ϕ(x),作家提议使用基函数(b(⋅))和样条函数,并将它们组合如下:

图片

方程11:将基函数和样条函数算作线性组合的可学习激活函数。

作家选拔的基函数为SiLU:

图片

方程12:基函数b(⋅)的选拔

关于样条函数,它是B样条的线性类似:

图片

方程13:样条函数算作B样条的线性组合。

如若纪念第二张图,咱们看到它是k=3的B样条的线性组合,即阶数为3,是以B样条中的多项式的度数为2。像这么界说样条的一个上风是,通过增多弧线的数目不错使其纵情平滑。这也在图2中融会,作家增多了咱们集合不同多项式的区间数目,从7增多到12。

B样条的权重,即c_i,是可磨砺的,作家以为方程11中的因子w的惟一用途是更好地收尾激活函数的总体大小。

MLP与KAN的参数数目

作家还接头了经常情况下,KAN比MLP运行较慢。为了贯通这小数,咱们不错简便地通过假定采集深度为L,每层齐有疏通数目的节点n_i=N,每个样条的阶数为k(经常为3)在G个区间上,来联想参数数目:

图片

KAN与MLP的参数数目对比

有关词,KAN所需的宽度即N比MLP中的小,且KAN是可解说的,咱们将看到作家提议的一个例子。作家强调磨砺KAN比MLP慢的另一个原因是,由于激活函数是可学习的,不成能摆布“批处理联想”,即大批数据通过疏通的函数。这在MLP中不是问题,因为在磨砺和测试本事内激活是固定的。

结语

这篇论文中还有好多复杂的细节,但对我个东说念主而言最杰出的是KAN的可解说性。作家展示了KAN不错“发现”勤俭单的除法例定到结表面中的非等闲量度。这可能会进一步鼓舞KAN在AI与科学的基础模子中的应用。

作家建议,KAN可能比标志回来更具“蛊卦力”;作家给出了一个例子,通过KAN学习特别逶迤的20阶贝塞尔函数(J_{20}(x)),这通过标志回来在莫得任何干于阿谁迥殊函数(本例中为贝塞尔函数)的先验常识的情况下是不成能的。

通过KAN的“发现”示例

在作家提议的许多示例中,我可爱一个相对简便但令东说念主沉进的“自动可发现”特色的KAN。咱们老是可爱这类物理示例;比如,咱们从相对论速率加法公式运行:

图片

两个相对论速率的加法

咱们不错探讨KAN的深度,将每一层KAN视为发现一个数学运算;因此,望望上头的公式,最初咱们探讨乘法;作家融会,学习的激活函数将是线性和二次的,是以:

图片

使用KAN学习乘法,将其视为线性和二次函数的组合

对(1+v_1 * v_2)的求逆将使用一层,而(v_1 + v_2)与(1/(1+v_1 * v_2))的乘法将需要另外两层;所有5层。

中山市新达经贸有限公司

但推敲东说念主员发现,“自动发现”的KAN只须2层深,这不错通过速率手段来解说。

在相对论中,咱们不错通过速率手段简化变换章程;不错界说速率为:

图片

咱们不错使用双曲正切加法公式:

图片

使用这个,不错看到:

图片

当今只须两层透澈有道理。如若咱们不知说念速率手段,试图贯通这个2层的自动发现KAN可能会教化咱们发现这个手段。咱们不错像这个例子中那样使用KAN来发现/再行发现一些基本的物理定律吗?

加载和运行KAN

让咱们仔细望望上头的例子,作家在论文中也提到了这个例子,况兼不错在GitHub上找到。咱们将在Colab上运行它。

咱们将运行腹地装配并加载必要的库。

!pip install pykanfrom kan import KAN, create_dataset
import torch

咱们创建了包含两组速率的数据集,这些速率在磨砺和测试蚁合分开,况兼有相应的回来值,即标签(f(v_1, v_2))。为了保障起见,咱们不错使用matplotlib检查输入速率偏激相应加成相对速率的分散。

f = lambda x: (x[:,[0]]+x[:,[1]])/(1+x[:,[0]]*x[:,[1]]) # dataset creation where x[:, [0]] represents v1, x[:, [1]]: v2dataset = create_dataset(f, n_var=2, ranges=[-0.9,0.9])#plot the distribution import matplotlib.pyplot as plt### check train and test input distributionfig = plt.figure(figsize=(10, 5))fig.add_subplot(131)plt.hist(dataset['train_input'][:, 0], bins=20, alpha=0.7,          label=r'$v_1$-train', color='orange')plt.hist(dataset['train_input'][:, 1], bins=20, alpha=0.7,          label=r'$v_2$-train', histtype='step')plt.legend(fontsize=12)fig.add_subplot(132)plt.hist(dataset['test_input'][:, 0], bins=20, alpha=0.7,          label=r'$v_1$-test', color='orange')plt.hist(dataset['test_input'][:, 1], bins=20, alpha=0.7,          label=r'$v_2$-test', histtype='step')plt.legend(fontsize=12)fig.add_subplot(133)plt.hist(dataset['train_label'].numpy(), bins=20, alpha=0.7,          label=r'$\frac{v_1+v_2}{1+v_1\, v_2}$-train', color='orange')plt.hist(dataset['test_label'].numpy(), bins=20, alpha=0.7,          label=r'$\frac{v_1+v_2}{1+v_1\, v_2}$-test', histtype='step')plt.legend(fontsize=12)plt.tight_layout()plt.show()

咱们得到了数据和标签的这些直方图。

图片

图3:在[-1, 1]之间就地分散的速率偏激相应的(相对论性)加和值。

图片

图4:具有学习到的激活函数的两层KAN

第一层的激活函数仍是看起来像arctanh,第二层的激活函数看起来像tanh。这果然很酷!

尝试从模子中获得第一层激活函数的标志函数示意的建议,揭示了咱们内容看到的内容:

model.suggest_symbolic(0, 1, 0)>>> function , r2arctanh , 0.9986623525619507tan , 0.9961022138595581arcsin , 0.968244731426239

第二层也同样:

model.suggest_symbolic(1, 0, 0)>>> function , r2tanh , 0.9995558857917786arctan , 0.995667040348053gaussian , 0.9793974757194519

咱们如实得到tanh算作标志函数的最好建议。

我特别应承地看到基础AI、物理学和数学的推敲者将怎样吞并KAN和MLP,大略修改KAN使其更快、更好、可能更具解说性(如若这是可能的);此外,发现/再行发现物理定律的可能性玻璃工艺品,可能在天体物理学、天地学鸿沟,应该是使用KAN需要探索的另一个方面。

本站仅提供存储处事,整个内容均由用户发布,如发现存害或侵权内容,请点击举报。

上一篇:鼓吹案情拜谒及后续处理

下一篇:没有了

Powered by 海晏县卫索具有限公司 @2013-2022 RSS地图 HTML地图

Copyright 站群 © 2013-2024 SSWL 版权所有