Free-Knots Kolmogorov-Arnold Network: On the Analysis of Spline Knots and Advancing Stability

Liangwewi Nathan Zheng, Wei Emma Zhang, Lin Yue, Miao Xu, Olaf Maennel +1 more
1/16/2025
cs.LG

No official code found. Best implementation: IcurasLW/FR-KAN (8 stars, MIT, last commit 2025-05-25).

Abstract

Kolmogorov-Arnold Neural Networks (KANs) have gained significant attention in the machine learning community. However, their implementation often suffers from poor training stability and heavy trainable parameter. Furthermore, there is limited understanding of the behavior of the learned activation functions derived from B-splines. In this work, we analyze the behavior of KANs through the lens of spline knots and derive the lower and upper bound for the number of knots in B-spline-based KANs. To address existing limitations, we propose a novel Free Knots KAN that enhances the performance of the original KAN while reducing the number of trainable parameters to match the trainable parameter scale of standard Multi-Layer Perceptrons (MLPs). Additionally, we introduce new a training strategy to ensure $C^2$ continuity of the learnable spline, resulting in smoother activation compared to the original KAN and improve the training stability by range expansion. The proposed method is comprehensively evaluated on 8 datasets spanning various domains, including image, text, time series, multimodal, and function approximation tasks. The promising results demonstrates the feasibility of KAN-based network and the effectiveness of proposed method.

View on arXivView PDF

Code Implementations(1)

IcurasLW/FR-KANCommunity100%
MIT

FR-KAN official implementation

80Shell, PythonDec 30, 20241 years agoMIT

Similar Papers

Cite this paper

@article{zheng2025freeknots,
  title  = {Free-Knots Kolmogorov-Arnold Network: On the Analysis of Spline Knots and Advancing Stability},
  author = {Liangwewi Nathan Zheng and Wei Emma Zhang and Lin Yue and Miao Xu and Olaf Maennel and Weitong Chen},
  year   = {2025},
  eprint = {2501.09283},
  archivePrefix = {arXiv},
  url    = {http://arxiv.org/abs/2501.09283v1}
}

Add a badge to your README

Shows whether official code is linked for this paper.

Code of Paper badge
[![Code of Paper](https://codeofpaper.com/badge/2501.09283.svg)](https://codeofpaper.com/paper/2501.09283)

Discussion