跳至主要內容

KAN

Genhiy...大约 11 分钟论文笔记激活函数

这篇论文自4月30日发布,短短五一期间,一周时间,已经在paperwithcode上获得了7248个标星,可以说是非常火了,而且其声称可以用来替代MLP,而且作者单位麻省理工,所以阅读一下做一些笔记。

关键词:替代MLP、人工智能可解释性、参数效率

基本内容

为了解决什么问题?

MLPs在非线性回归、数据拟合、偏微分方程求解以及科学发现中存在一些限制,如固定激活函数的局限性、参数效率低、可解释性差等。

论文原话:如在transformer中:MLPs consume almost all non-embedding parameters and are typically less interpretable (relative to attention layers) without post-analysis tools.(mlp消耗了几乎所有的非嵌入参数,并且在没有分析后分析工具[5]的情况下,相对于注意层通常更难以解释)。

MLP 是如此基础,但还有其他选择吗?MLP 将激活函数放在神经元上,但我们是否可以将(可学习的)激活函数放在权重上?

怎么解决?

算法的核心思想:找激活函数而不是找权重,本质是找一个合理的坐标变换。而且激活函数是在边缘上而不是节点上。

与MLP相比,KAN有两个主要的区别:

  • 激活函数是在边缘上,而不是在节点上。
  • 激活函数是可学习的,而不是固定的。

KANs通过将每个权重参数替换为一个一元函数,利用样条函数来近似这些一元函数。因此,KAN 完全没有线性权重矩阵:每个权重参数都被替换为一个可学习的一维函数,参数化为样条(spline)。KAN 的节点仅对传入信号进行求和,而不应用任何非线性变换。

为了准确学习一个函数,模型不仅应该学习组合结构(外部自由度),还应该很好地近似单变量函数(内部自由度)。KAN 就是这样的模型,因为它们在外部类似于 MLP,在内部类似于样条。结果,KAN 不仅可以学习特征(得益于它们与 MLP 的外部相似性),还可以将这些学习到的特征优化到很高的精度(得益于它们与样条的内部相似性)。

这个变化乍一听似乎有些奇怪,但其实它与数学中的近似理论有着很深的联系。事实证明,Kolmogorov-Arnold 表示对应于 2 层网络,其 (可学习) 激活函数位于边上而不是节点上。

为什么可以这样解决?

从数学角度来看:MLP 受到通用近似定理 (UAT) 的启发,而 KAN 受到柯尔莫哥洛夫-阿诺德表示定理 (KART) 的启发。网络能否以固定宽度实现无限精度?UAT 的答案是“不”,而 KART 的答案是“可以”(但有警告)。

从算法方面来看:KAN 和 MLP 是双重的,因为-- MLP 对神经元具有(通常固定的)激活函数,而 KAN 对权重具有(可学习的)激活函数。这些 1D 激活函数被参数化为样条函数。

从实际角度来看:作者发现 KAN 比 MLP 更准确、更易于解释,尽管由于 KAN 的激活函数可学习,因此训练速度较慢。

效果如何?

  • KANs在准确性上超越了MLPs,尤其是在数据拟合和PDE求解任务中,展示了更快的神经缩放法则。
  • KAN 的缩放速度比 MLP 快得多,这在数学上基于 Kolmogorov-Arnold 表示定理。KAN 的缩放指数也可通过经验获得。
  • KAN 在函数拟合方面比 MLP 更准确,例如拟合特殊函数。KAN在PDE求解任务上比MLP更快更准确,例如求解泊松方程。
  • KAN不会像MLP那样容易灾难性遗忘,因此更加适合Continual learning问题,但目前文章中的案例有些简单且只有一个,目前缺乏更为广泛的实验证明。
  • KANs提供了更好的可解释性,使得网络结构和激活函数可以直观地被理解和解释。KAN可以从符号公式中揭示合成数据集的组成结构和可变依赖性。人类用户可以与 KAN 交互,使其更易于解释。将人类的归纳偏见或领域知识注入 KAN 很容易。
  • 论文还探讨了KANs在科学发现中的潜力,KAN 也是科学家的得力助手或合作者。如在数学的结理论和物理的Anderson局域化中的应用。
  • Deepmind的MLP有300000个参数,而KAN只有200个参数。KAN可以立即解释,而MLP需要特征归因作为后期分析。

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

目前还存在什么问题?

尽管 KAN 数学解释能力不错,但实际上它们只是样条和 MLP 的组合,利用了二者的优点,避免了缺点的出现。样条在低维函数上准确度高,易于局部调整,并且能够在不同分辨率之间切换。然而,由于样条无法利用组合结构,因此它们存在严重 COD 问题。另一方面,MLP 由于其特征学习能力,较少受到 COD 的影响,但在低维空间中却不如样条准确,因为它们无法优化单变量函数。

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

其他缺点和潜在风险:

  • 和现有优化器的兼容性:从其给出的python程序中看,其程序不能使用Adam等常见的优化器而仅仅使用了自己实现的一个LBFGS。
  • 训练速度:往往激活函数组合比较复杂会导致训练速度很慢。
  • 文中承认存在serious curse of dimensionality,即高维度的时候,是否会导致网络参数显著增加: 根据KAR Theorem,如果有n个维度,则需要至少(2n+1)×n个参数,比如输入为108个则需要23436个参数。
  • KAN不能用于不连续问题(不可导函数、分段函数、离散化系统、阶跃函数、噪声干扰):KAR Theorem只是针对《多元连续函数》,不排除或许实际效果可能还不错。

其他问题

Q:学习激活函数是如何实现的?

A:目前来看,可能是其将激活函数通过coef2curve等流程将其转化成一个含参数的样条拟合过程,这一点的确比较精妙

评价

确实是很好的尝试,但是找激活函数比找权重难多了,这就像参数估计和非参数估计,确定函数形式估计参数肯定比连函数形式都不确定要简单。但是可能长久的来看,人为确定函数形式去估计参数肯定是不如连函数形式都由算法学习的,KAN暂时是还没有找到合适的高效优化手段,所以优化方法和算法上就需要科研工作者一步步去研究了。

btw,目前看下来还是没法替代MLP的,不过估计会有不少人抢着尝试把它用在cv和nlp上,只不过能否真正解决或者优化KAN就得看真实的效果了。就论文展现出的结果看,甚至还达不到Mamba所表现出的前景效果,所以个人谨慎乐观看待。

网友看法

LLMs, Transformers占据了很多人的很多时间,很多人也在设计各种精巧的prompt技术,比如ReAct,Tree of Thoughts。

不过,问题也很明显:简单的算术、算法问题还不能彻底解决,那么,可能应该质疑其对AI发展的作用。

KAN论文,给很多人带来了新的气息,作者在文章中明确表达了:KAN主要是为AI+science设计的,在ML方面的性能还不确定,如果读了论文,根本不会有“取代MLP”这样的想法,当然,在AI+science方面,希望有进一步发展。

这篇论文给我印象最深的一句话:The language of science is functions. 根据问题特点,设计解决方案。AI+science确实也要用next token prediction吗?专才优于通才。下围棋,会用AlphaGo, 而不是LLMs;做蛋白质折叠,会用AlphaFold,而不是LLMs;去医院看病,优先考虑专家门诊。分工合作,合作共赢。

KAN等新的网络结构,以及传统的APIs、AI solvers,处理科学工程等问题。Transformer, CNN, LSTM等结构,处理NLP、CV等问题。KAN甚至不一定需要考虑在NLP、CV上面的性能。

不过,联结主义与符号主义的融合,比如neurosymbolic,仍然是大问题。目前的LLMs,或许一个重要作用是UI.可惜,在UI方面,LLMs也没做到极致。希望能出现越来越多越来越好的专业系统。

通用大模型很可能是错误方向。

摘录

  1. In a sense, they showed that the only true multivariate function is addition, since every other function can be written using univariate functions and sum.

    One might naively consider this great news for machine learning: learning a high-dimensional function boils down to learning a polynomial number of 1D functions. However, these 1D functions can be non-smooth and even fractal, so they may not be learnable in practice [14]. Because of this pathological behavior, the Kolmogorov-Arnold representation theorem was basically sentenced to death in machine learning, regarded as theoretically sound but practically useless [14].

    However, we are more optimistic about the usefulness of the Kolmogorov-Arnold theorem for machine learning. First of all, we need not stick to the original Eq. (2.1) which has only two-layer nonlinearities and a small number of terms (2n + 1) in the hidden layer: we will generalize the network to arbitrary widths and depths. Secondly, most functions in science and daily life are often smooth and have sparse compositional structures, potentially facilitating smooth Kolmogorov-Arnold representations. The philosophy here is close to the mindset of physicists, who often care more about typical cases rather than worst cases. After all, our physical world and machine learning tasks must have structures to make physics and machine learning useful or generalizable at all [15].

    翻译:在某种程度上,他们的研究表明,唯一真正的多元函数是加法,因为其他任何函数都可以用单变量函数和求和来表示。

    有人可能会天真地认为这对机器学习来说是个好消息:学习一个高维函数归根结底就是学习一个多项式的一维函数。然而,这些一维函数可能不光滑甚至具有分形结构,因此在实践中可能无法学习 [14]。 由于这种病态行为,Kolmogorov-Arnold表示定理在机器学习中基本上被判了死刑,被认为在理论上是正确的但在实践中无用 [14]。

    然而,我们对Kolmogorov-Arnold定理在机器学习中的实用性持更乐观的态度。 首先,我们不需要局限于只有两层非线性单元和隐藏层中只有2n+1个项的原始方程(2.1):我们将把网络推广到任意宽度和深度。其次,科学和日常生活中的大多数函数通常是光滑的,具有稀疏的组合结构,这可能有助于实现光滑的Kolmogorov-Arnold表示。这里的哲学与物理学家的思维方式类似,他们通常更关注典型的情况而不是最坏的情况。毕竟,我们的物理世界和机器学习任务必须具有一定的结构,才能使物理学和机器学习在任何情况下都具有实用性或可推广性。