革命性新网络KAN【第二篇-相比MLP,KAN胜在哪?】

目录

导言

简化KANs并使它们具有交互式意义

为什么不符号回归?

性能更强

帕累托最优

求解偏微方程

持续学习

可解释性验证


本文承接【第一篇-base】,展开讲解KAN与MLP的对比。原文从不同角度给出了KAN相比MLP的优越性,同时也给出了KAN目前的一些限制。
下面就让我们从6个方面走进KAN。希望大家有所收获!

导言

与传统的MLP 相比,KAN 有4个主要特点

1)激活函数位于“边”而不是节点(Node)上;

2)激活函数是可学习而不是固定的;

3)可使用非线性核函数替代MLP“边”(Edge)上的线性函数

4)可设定细粒度的结点(Knot)来提高逼近精度。

KAN \approx MLP + Spline

在数学中,样条曲线是由多项式分段定义的函数。一般的Spline可以是特定区间的3阶多项式。

在插值问题中,样条插值通常优于多项式插值,因为即使使用低次多项式,也能产生类似的精度结果,同时避免了高次多项式的Runge's phenomenon(在一组等距插值点上使用高次多项式进行多项式插值时出现的区间边缘振荡问题)。

有侵删除

简化KANs并使它们具有交互式意义

研究人员设计了一个简单的回归实验,以展现用户可以在与KAN的交互过程中,获得可解释性最强的结果。
假设用户对于找出符号公式感兴趣,总共需要经过5个交互步骤。

步骤 1:带有稀疏化的训练。
从全连接的KAN开始,通过带有稀疏化正则化的训练可以使网络变得更稀疏,从而可以发现隐藏层中,5个神经元中的4个都看起来没什么作用。

步骤 2:剪枝
自动剪枝后,丢弃掉所有无用的隐藏神经元,只留下一个KAN,把激活函数匹配到已知的符号函数上。

步骤 3:设置符号函数
假设用户可以正确地从盯着KAN图表猜测出这些符号公式,就可以直接设置:

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

步骤 4:进一步训练
在网络中所有的激活函数都符号化之后,唯一剩下的参数就是仿射参数;继续训练仿射参数,当看到损失降到机器精度(machine precision)时,就能意识到模型已经找到了正确的符号表达式。

步骤 5:输出符号公式
使用Sympy计算输出节点的符号公式,验证正确答案。

为什么不符号回归

性能更强

作为合理性检验,研究人员构造了五个已知具有平滑KA(柯尔莫哥洛夫-阿诺德)表示的例子作为验证数据集,通过每200步增加网格点的方式对KANs进行训练,覆盖G的范围为{3,5,10,20,50,100,200,500,1000}。使用不同深度和宽度的MLPs作为基线模型,并且KANs和MLPs都使用LBFGS算法总共训练1800步,再用RMSE作为指标进行对比。

从结果中可以看到,KAN的曲线更抖,能够快速收敛,达到平稳状态;并且比MLP的缩放曲线更好,尤其是在高维的情况下。同时,三层KAN的性能要远远强于两层,表明更深的KANs具有更强的表达能力,符合预期

帕累托最优

通过拟合特殊函数,作者展示了KAN和MLP在由模型参数数量和RMSE损失跨越的平面中的Pareto Frontier。在所有特殊函数中,KAN始终比MLP具有更好的Pareto Frontier。

求解偏微方程

在求解偏微方程任务中, 研究人员绘制了预测解和真实解之间的L2平方和H1平方损失。下图中,前两个是损失的训练动态,第三和第四是损失函数数量的扩展定律(Sacling Law)。如下结果所示,与MLP相比,KAN的收敛速度更快,损失更低,并且具有更陡峭的扩展定律

持续学习

灾难性遗忘是当前机器学习中的一个严重问题。

而研究证明了,KAN具有局部可塑性,并且可以利用样条(splines)局部性,来避免灾难性遗忘。相比之下,由于MLP通常使用全局激活(如ReLU/Tanh/SiLU),因此,任何局部变化都可能不受控制地传播到远处的区域,从而破坏存储在那里的信息。

文中采用了一维回归任务(由5个高斯峰组成)——每个峰值周围的数据按顺序(而不是一次全部)呈现给KAN和MLP。结果显示,KAN仅重构当前阶段存在数据的区域,而使之前的区域保持不变。而MLP在看到新的数据样本后会重塑整个区域,从而导致灾难性的遗忘。

可解释性验证

研究人员首先在一个有监督的玩具数据集中,设计了六个样本,展现KAN网络在符号公式下的组合结构能力。

可以看到,KAN成功学习到了正确的单变量函数,并通过可视化的方式,可解释地展现出KAN的思考过程。

在无监督的设置下,数据集中只包含输入特征x,通过设计某些变量(x1, x2, x3)之间的联系,可以测试出KAN模型寻找变量之间依赖关系的能力。

从结果来看,KAN模型成功找到了变量之间的函数依赖性但作者也指出,目前仍然只是在合成数据上进行实验,还需要一种更系统、更可控的方法来发现完整的关系。 

Life is a journey. We pursue love and light with purity.

你的 “三连” 是小曦持续更新的动力!
下期将推出 
Application to Mathematics&Physics 分析” or "代码对比解析"

零距离解读KAN的应用前景和MLP-KAN的源码对比

### 回答1: XPath规则是一种用于在XML文档中定位元素和属性的语法规则。它使用路径表达式来描述文档结构中的节点,可以通过节点名称、属性、位置等方式进行定位。XPath规则通常以斜杠(/)开头,表示从文档根节点开始进行定位。例如,/bookstore/book[1]/title表示定位到第一个book节点的title子节点。XPath规则还支持一些函数和运算符,可以进行更复杂的定位操作。 ### 回答2: XPath(XML Path Language)是一种用于在XML文档中定位元素的规则语言。以下是XPath规则的具体说明: 1. XPath使用路径表达式来定位元素。路径表达式由一系列的节点和操作符组成,用于描述元素的位置关系。 2. XPath使用/符号来表示元素之间的层级关系。例如,/bookstore/book表示bookstore元素下的所有book元素。 3. XPath使用//符号来表示在整个文档中查找元素。例如,//book表示在整个文档中查找所有book元素。 4. XPath使用[@属性名='属性值']来选择具有特定属性值的元素。例如,//book[@category='fiction']表示查找所有category属性值为fiction的book元素。 5. XPath使用[position()]来选择特定位置的元素。例如,//book[position()<3]表示查找前两个book元素。 6. XPath使用[text()]来选择指定文本内容的元素。例如,//book[text()='Harry Potter']表示查找文本内容为Harry Potter的book元素。 7. XPath使用逻辑运算符如and、or和not来组合多个条件。例如,//book[@category='fiction' and @price>10]表示查找category属性值为fiction且price属性大于10的book元素。 8. XPath还支持通配符来选择多个匹配模式的元素。例如,//book[contains(@title, 'XML')]表示查找title属性包含XML的book元素。 总之,XPath提供了丰富的定位和选择元素的规则,使得我们能够更加灵活和精确地在XML文档中定位所需的元素。 ### 回答3: XPath(XML Path Language)是一种用于在XML文档中定位元素的语言。XPath使用路径表达式来选择XML文档中的节点或节点集合。下面是一些XPath规则的具体说明: 1. 节点选择规则: - 路径表达式使用斜杠(/)表示从根节点开始进行路径选择。 - 双斜杠(//)表示选择所有符合条件的节点,不考虑位置。 - 单斜杠(/)表示选择当前节点的直接子节点。 - 句点(.)表示当前节点。 - 句点两个点(..)表示选择当前节点的父节点。 2. 谓语规则: - 谓语用于对节点进行更精确的选择。它们由方括号([])包围。 - 谓语可以包含条件表达式,例如[@属性名称='属性值']用于选择具有指定属性和属性值的节点。 3. 节点类型规则: - XPath指定了不同类型的节点,如元素节点(element node)、属性节点(attribute node)、文本节点(text node)等。 - 使用节点类型来选择特定类型的节点,例如使用@符号选择属性节点。 4. 轴规则: - 轴用于沿着节点和文档树进行导航。 - 常用的轴有child、parent、ancestor、descendant等,它们用于相对于当前节点选择相关节点。 5. 通配符规则: - 通配符“*”用于匹配任意类型的节点。 - 通配符“@*”用于选择具有任意属性的节点。 XPath规则可以根据具体的需求进行组合和嵌套,以便更准确地选择和定位XML文档中的节点。在实际应用中,XPath非常有用,可以用于解析XML文档、提取特定数据和进行数据筛选等任务。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值