paint-brush
比较柯尔莫哥洛夫-阿诺德网络 (KAN) 和多层感知器 (MLP)经过@aibites
新歷史

比较柯尔莫哥洛夫-阿诺德网络 (KAN) 和多层感知器 (MLP)

经过 Shrinivasan Sankar8m2024/06/29
Read on Terminal Reader

太長; 讀書

KAN 挑战了当今所有 LLM 的基础多层感知器。但它们能否生存下来并取得成功?让我们来比较一下。
featured image - 比较柯尔莫哥洛夫-阿诺德网络 (KAN) 和多层感知器 (MLP)
Shrinivasan Sankar HackerNoon profile picture
0-item

我们已经将经典的多层感知器 (MLP) 视为理所当然,并围绕它构建了许多架构。MLP 是当今我们看到的每个 LLM 或基础模型(例如 chatGPT、LLAMA、DALLE 和 CLIP)的重要组成部分。甚至是简单的识别模型(例如 YOLO-v*)。


如果我现在告诉你,我们在 MLP 领域有一个竞争对手,你会怎么想?城里有一篇新论文,名为“Kolmogorov-Arnold 网络”,简称 KAN,它对 MLP 提出了挑战。如果他们提出的解决方案真正具有可扩展性,那么我们就可以拥有下一代神经网络,这将使我们更接近通用人工智能 (AGI)。


虽然 MLP 包含 ReLU、sigmoid、tanh、GeLU 等激活函数,但 KAN 建议我们学习这些激活函数。那么,KAN 是如何做到的呢?它背后的数学原理是什么?它是如何实现的?我们又如何训练 KAN?

我已尽力在此总结了 KAN 论文。您可以选择阅读此摘要或阅读长达 48 页的论文!

视觉解释

如果您和我一样,希望将事物形象化以便更好地理解,这里有这篇文章的视频形式:


MLP——问题

让我们从我们非常熟悉的 MLP 开始。MLP 由节点和边组成。在每个节点中,我们将输入相加,并应用 ReLU、GeLU 和 SeLU 等激活函数,以生成该特定节点的输出。

论文中的一张图说明了 MLP 和 KAN 之间的区别


这些激活函数在训练过程中永远不会改变。换句话说,它们没有任何参数。它们不够智能,无法根据给定的训练数据集进行自我调整。因此,在训练过程中进行训练或更新的是每个节点的权重。

现在,如果我们质疑激活函数需要固定并使其可训练的假设,结果会怎样?这就是 KAN 网络试图解决的挑战。KAN 网络的激活函数在训练过程中得到更新。在深入研究之前,让我们先从多项式和曲线拟合开始。

多项式和曲线拟合

因此,KAN 的基本思想是任何多元复合函数都可以分解为几个单变量函数的总和。

演示 x^2 和 x^3 函数的动画

例如,假设我们有一个 3 次方程,其中 y=x³,如上图黄色曲线所示。还有另一个 2 次方程,y=x²,如上图动画中的蓝色曲线所示。我们可以在这个可视化中看到,使用 x² 永远无法实现 x³ 所实现的曲率。


假设我们给出了下面红点和蓝点所表示的数据,并且我们希望找到两个类之间的二元分类边界。

一个玩具问题,其中 x^3 比 x^2 更适合。但仍可以通过添加两个 x^2 曲线来解决 x^2!

使用二阶多项式 ,我们将无法找到两者之间的边界,因为 x² 曲线是“U”形,但数据是“S”形。虽然使用适合这些数据,但它会带来额外的计算成本。另一种解决方案可能是当输入x为负时使用 ,而当 x 为正时使用 - (上图中用手绘制的蓝色曲线)。

我们所做的只是添加两个低次多项式,以获得具有更高自由度的曲线。这正是 KAN 网络背后的确切思想。

玩具问题

现在让我们来看一个稍微复杂一点的玩具问题,我们知道数据是由一个简单的方程式y=exp(sin(x1² + x2²) + sin(x3² + x4²))生成的。所以我们有 4 个输入变量,并且有三个运算,即指数、正弦和平方。因此,我们可以选择四个输入节点和三个层,每个层专用于三种不同的运算,如下所示。

一个简单的 KAN 网络,有 4 个输入,3 个层,3 个基函数

KAN 网络用于解决一个玩具问题,该网络具有四个输入和三个用于计算的基函数(指数、正弦和平方)

训练后,节点将收敛到平方、正弦和指数函数以拟合数据。


由于这是一个玩具问题,我们知道数据来自哪个方程。但实际上,我们不知道真实世界数据的分布。解决这个问题的一种方法是使用 B 样条函数。

样条线和 B 样条线

B 样条的基本思想是,任何给定的函数或曲线都可以表示为更简单的函数或曲线的组合。这些更简单的函数称为基函数。例如,让我们以下图中的红色曲线为例。为了简单起见,我们尝试仅用两个基函数来表示它。


我们可以将其分解为 3 个点,因为我们将用两个基函数之和来表示它。这些点称为节点。基函数的数量可以是任意的n 。控制此基函数组合方式的参数是c。当我们“连接”两条曲线时,节点处可能会出现不连续性。解决方案是限制节点处曲线的曲率,以便获得平滑的曲线。例如,我们可以将两条曲线的斜率限制为在节点处相同,如下图中的绿色箭头所示。

我的涂鸦是为了说明 B 样条和基函数

由于我们无法在神经网络中施加这样的约束,他们在论文中引入了残差激活函数。这更像是一种正则化。实际上,这是添加到标准样条函数的 SeLU 激活,如下文所示。

样条网格和 KAN 的细粒度化

KAN 引入了一种称为细粒度的新训练方法。我们都熟悉的是微调,即向模型添加更多参数。然而,在细粒度的情况下,我们可以提高样条网格的密度。这就是所谓的网格扩展。

论文中的部分图片展示了细粒度化相当于对标准神经网络进行微调

从论文上图我们可以看出,细粒度只是使 B 样条网格变得密集,从而使其更具代表性,从而更加强大。

计算复杂性

样条函数的缺点之一是它们是递归的,因此计算成本很高。它们的计算复杂度为 O(N²LG),高于 MLP 的通常复杂度 O(N²L)。额外的复杂性来自网格间隔 G。

作者通过以下方式来解释这个固有问题:

  • 对于同一问题,KAN 所需的参数数量比 MLP 少
  • KAN 在训练过程中能够快速高效地收敛,因此需要更少的训练时间。

我们将在结果部分看到这些防御的图表。现在,让我们进一步了解 KAN 的另一个特色。

可解释性和选择 KAN 层

由于 KAN 可以学习函数,因此它并不像 MLP 那样只是一个黑盒子,我们可以通过为给定数据或问题选择 MLP 的深度和宽度来设计它们。因此,为了使 KAN 更具可解释性并设计出良好的 KAN 网络,我们需要遵循以下步骤:

  • 稀疏化。我们从一个比预期更大的 KAN 网络开始,通过引入激活函数的 L1 范数而不是像机器学习中通常那样引入输入来引入正则化。
  • 修剪。一旦稀疏网络训练完毕,我们就可以删除低于设定标准或分数的特定阈值的不必要节点。
  • 符号化。当我们模糊地知道什么函数构成给定数据时,我们可以设置几个节点来采用该函数。这称为符号化。例如,如果我们处理声波,大多数数据都是正弦波,因此我们通过将一些节点设置为正弦波来简化我们的工作。该框架通过提供一个名为fix_symbolic(l,i,j,f)接口函数使我们能够做到这一点,其中l、i、j是节点层和位置, f是可以是sine, cosine, log, etc的函数

训练 KAN 模型的不同步骤

本文建议的训练 KAN 网络的不同步骤总结

上图总结了不同的步骤。我们从一个大型网络开始,然后进行稀疏化(步骤 1),修剪生成的网络(步骤 2),设置一些符号化(步骤 3),训练网络(步骤 4),最后得到训练好的模型。

实验与结果

使用上述步骤,他们针对五种不同的小问题训练了 KAN 网络,以说明其有效性并将其与 MLP 进行比较。比较的关键要点如下:

  • KAN 的训练速度比 MLP 快得多,从而降低了其固有的计算复杂性。
  • KAN 可以用更少的参数完成 MLP 需要更多参数才能完成的任务
  • 与 MLP 相比,KAN 收敛非常平稳,损失下降很快

第一个点由上图顶部的五张图中的粗蓝线表示,这些图分别表示 5 个小问题。最后两个点由底部的图表示,该图显示了解决任何给定问题的损失曲线和参数计数。

论文结果表明,KAN 收敛速度更快,可以用更少的参数在更短的时间内进行训练,从而克服计算复杂性问题

灾难性遗忘

下一个要点是,在灾难性遗忘问题上,KAN 远胜于 MLP。如果我们输入序列数据进行持续学习,KAN 似乎比 MLP 更能记住过去的数据。如下图所示,KAN 重现了数据中的 5 个阶段,但 MLP 却举步维艰。

论文中的图表显示,KAN 比 MLP 更善于克服灾难性遗忘

其他结果

他们还进行了大量的实验,以证明 KAN 可用于解决涉及偏微分和物理方程的问题。我们先不讨论这些细节,而是看看何时应该选择 KAN 而不是 MLP。

在 KAN 和 MLP 之间进行选择

他们给出了下图来指导我们何时选择 KAN 而不是 MLP。因此,如果符合以下条件,请选择 KAN:

  • 你正在处理波形或图形等结构化数据
  • 希望从数据中不断学习
  • 不要太在意训练时间!
  • 高维数据

在论文中选择 KAN 和 MLP 图

否则,MLP 仍可获胜。

喊出来

如果你喜欢这篇文章,为什么不关注我呢推特我每周每天都会在哪里分享来自顶尖人工智能实验室的研究更新?

也请订阅我的YouTube 频道我在这里以直观的方式解释人工智能概念和论文。

讨论与结论

在我看来,KAN 不会取代 MLP,就像 transformer 横扫 NLP 领域一样。相反,KAN 将证明其对数学和物理中的小众问题很有用。即便如此,我觉得我们还需要更多改进。但对于用基础模型解决的大数据问题,KAN 还有很长的路要走,至少就目前的情况而言。

此外,KAN 架构的训练方法和设计往往偏离了现代神经网络设计和训练的标准方式。尽管如此,GitHub 页面已经有 13k 个 star 和 1.2k 个 fork,这表明它有发展前途。让我们拭目以待吧。