基于扎实的数学基础的准确快速的回归模型。
该代码代表了 Kolmogorov-Arnold 回归模型的实现以及模型识别的两种方法。这种方法最近以“KAN:Kolmogorov-Arnold Networks”的名称而广受欢迎。
代码是用 MATLAB 编写的。
该代码是我和 Andrew Polar 在 2019-2023 年进行的合作项目的结果。这种方法的基本概念已发表在参考文献中。 2021 年排名第一。我们最新的论文,参考文献。 2于 2023 年 5 月作为预印本发布(第一版),具有该方法最通用的表述。更新了参考号。 2024 年 6 月作为预印本发布的2 (第二版)还包括偏微分方程的数据驱动解。
代码的主要亮点是:
主脚本mainTriang
运行代码。在脚本中,标记modelMethod
选择模型类型(样条线或分段线性)和参数估计方法(GN 或 NK)。最新添加的是加速 NK 方法(参见参考文献2 ,有关并行化/矢量化的部分)。在模型构建函数中,标志printProgr
切换命令行窗口中进度的打印输出。
该代码构建模型并绘制log(RMSE)
作为数据传递次数的函数。该模型由两个矩阵组成,参数为: fnB
和fnT
。
获得的模型可用于对新数据集进行预测。对于模型的样条版本,
y = modelKA_basisC( x, xmin, xmax, ymin, ymax, fnB, fnT );
应该执行,其中x
是与脚本mainTriang
中格式相同的输入数据, y
将是预测的输出数据。对于模型的分段线性版本,进行预测的函数是modelKA_linear
(其格式与上面相同)。
计算示例是一个合成数据集 - 对于每个记录,输入是 2D 中三个点的坐标,输出是由这些点形成的三角形的面积。这些点属于单位正方形。在配备第 11 代 Intel Core i5 的笔记本电脑上,默认示例大约需要 14 秒。
单元测试共有三个脚本: testBasis
用于验证基函数的导数, testDeriv
用于通过输入和参数验证模型输出的导数,以及testSpline
用于将实现的样条线与内置 MATLAB 样条线进行比较。
偏微分方程的数据驱动解在脚本solvePDE_NK
中单独实现。计算示例是二阶偏微分方程;详细信息在参考文献中给出。 2,2024 年 6 月的更新版本。默认示例在配备第 11 代英特尔酷睿 i5 的笔记本电脑上大约需要 15 秒。
脚本mainMIT
运行的示例与其他研究人员最近的 Python 实现中的示例相同(文件中的链接)。添加它只是为了重现参考文献中报告的最新基准测试结果。 2 .
该代码由 Michael Poluektov 博士(邓迪大学数学科学和计算物理系)开发。
作者要感谢 Andrew Polar 博士的大力帮助,他为该研究项目做出了同样的贡献,并在他的 GitHub 页面上维护了该方法在 C# 和 C++ 中的单独实现。
A. Polar 和 M. Poluektov,工程师。应用。阿蒂夫。英特尔。 ,99:104137,2021,链接。 ↩
M. Poluektov 和 A. Polar,arXiv:2305.08194,2023,链接。 ↩ ↩ 2 ↩ 3 ↩ 4 ↩ 5