当前位置:   article > 正文

杀死MLP? KAN网络解读_mpl与kan

mpl与kan

KAN火爆出圈

自KAN发布以来,在国内外引发了热烈的讨论,国内“TOP3人工智能公众号“量子位、新智元、机器之心对KAN给出了极其高度的评价,而其在Github上的satr数量也飞速暴涨,可以说是当下的绝对热点。但国内外的各种平台上,其负面评价也层出不穷。那么KAN究竟是何方神圣?

不得不提的Kolmogorov–Arnold Representation

要说KAN就不得不提到Kolmogorov–Arnold Representation(为方便表示后面记作KAR)。KAR定理指出,任意一个多元连续函数都可以表示成两层嵌套的一元函数的加和形式。根据下图公式,两层嵌套中内层为多个一元函数的加和,外层可以理解为一个泛函。需要注意的是,除去一元函数外,其余运算均为”+“,因此,但从网络设计的结构来看,左下角的网络结构呼之欲出,正方形方块(内部是曲线的)代表的就是一元函数,然后将每一个函数作用后的结果直接相加。但此时面临的问题是,如何获得这些一元函数的表达式呢?因为一元函数本身可能不连续,也难以用可以反传的可微形式表达。

如何解决一元函数的表示问题?—— B-spline曲线

以下内容参考自

02 保姆级理解 B-Spline

B-spline曲线是一种常见的连续曲线拟合表示的形式,其通过分段连续多项式生成的方式来拟合一条一元函数曲线。简单来说,其通过指定控制点和节点向量,通过递推表达的方式,从低阶(一阶)基函数来拟合出高阶分段多项式,如右下角图所示,随着阶数的提高,能拟合的曲线复杂度提升。详细定义可以参考原文。

这里给出了一个计算示例,当指定基函数和控制点数目的时候,就可以通过递推迭代的方式来计算出B-spline曲线的结果。简单来说,只要给定迭代时的控制点or系数,就可以最终控制拟合的一元函数曲线,而这个系数恰好是可学习的,为KAN的实现打下了基础。

KAN结构

在了解了一元函数的B-spline曲线表达的基础上,我们来了解KAN的基本结构。根据KAR的定义,网络结构是一个两层嵌套的形式,而每一个一元函数(与MLP中的激活函数对应)是通过B-spline曲线来实现的。

以上图的结构为例,给出了KAN向量表达式的推导。

在实现细节上,这里的KAN结构中引入了b(x),其作用类似与残差结构中的f(x),目的是为了保证当网络变深变宽时仍然可以较好的训练,而spline(x)函数则是用于拟合一元函数的,c为可学习参数, B(x)为指定的基函数。需要注意的是,B-spline曲线的控制点的可以指定的,原文的实验证明了当Grid扩展(控制点增多)时,RMSE会降低,训练时间大体上是增加的。

KAN的可解释性

原文提到的可解释性主要是指与人的交互性,根据上图,训练过程中,第一步是带正则项的初步训练,此时选择的KAN宽度较大;第二步是剪枝,删除不必要的节点,降低网络的复杂度;第三步则是人工交互,选择待拟合的公式或曲线中可能存在的函数,例如指数函数、三角函数等,知道网络的拟合方向;最后微调结果并输出最终的拟合公式or结果。笔者实操下来,这一步对人工交互的依赖比较大,选择不同的函数对结果影响较大。

KAN的相关实验结果

原文中主要针对了公式拟合和偏微分方程求解进行了对比实验,实验结果证明了KAN在精度上优于MLP,但相对应的训练时间有所提升。特别的,KAN相比于MLP,会有更好调整余地,增加or减少分支时,可以直接在原结构上进行操作,而刚增加时对原网络性能影响(降低)不大。

其实作者也对比了MLP和KAN的异同,笔者个人认为,KAN当前在偏微分方程求解、公式拟合等科学性问题上具有较高的精度,也提供了比较好的交互体验,但直接谈完全取代MLP还为时过早。

KAN代码

GitHub - KindXiaoming/pykan: Kolmogorov Arnold Networks

安装非常的容易:

  1. python -m venv pykan-env
  2. source pykan-env/bin/activate # On Windows use `pykan-env\\Scripts\\activate`
  3. pip install pykan

作者也给出了简要的使用说明:

pykan/hellokan.ipynb at master · KindXiaoming/pykan

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/盐析白兔/article/detail/640731
推荐阅读
相关标签
  

闽ICP备14008679号