SineKAN: Kolmogorov-Arnold Networks Using Sinusoidal Activation Functions

Eric A. F. Reinhardt, P. R. Dinesh, Sergei Gleyzer
7/4/2024
cs.LGcs.CV

No official code found. Best implementation: ereinha/SineKAN (21 stars, last commit 2024-12-19).

Abstract

Recent work has established an alternative to traditional multi-layer perceptron neural networks in the form of Kolmogorov-Arnold Networks (KAN). The general KAN framework uses learnable activation functions on the edges of the computational graph followed by summation on nodes. The learnable edge activation functions in the original implementation are basis spline functions (B-Spline). Here, we present a model in which learnable grids of B-Spline activation functions are replaced by grids of re-weighted sine functions (SineKAN). We evaluate numerical performance of our model on a benchmark vision task. We show that our model can perform better than or comparable to B-Spline KAN models and an alternative KAN implementation based on periodic cosine and sine functions representing a Fourier Series. Further, we show that SineKAN has numerical accuracy that could scale comparably to dense neural networks (DNNs). Compared to the two baseline KAN models, SineKAN achieves a substantial speed increase at all hidden layer sizes, batch sizes, and depths. Current advantage of DNNs due to hardware and software optimizations are discussed along with theoretical scaling. Additionally, properties of SineKAN compared to other KAN implementations and current limitations are also discussed

View on arXivView PDF

Code Implementations(1)

ereinha/SineKANCommunity100%

SineKAN: Kolmogorov-Arnold Networks Using Sinusoidal Activation Functions

213Python, Jupyter NotebookJul 4, 20241 years ago

Similar Papers

Cite this paper

@article{reinhardt2024sinekan,
  title  = {SineKAN: Kolmogorov-Arnold Networks Using Sinusoidal Activation Functions},
  author = {Eric A. F. Reinhardt and P. R. Dinesh and Sergei Gleyzer},
  year   = {2024},
  eprint = {2407.04149},
  archivePrefix = {arXiv},
  url    = {http://arxiv.org/abs/2407.04149v3}
}

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/2407.04149.svg)](https://codeofpaper.com/paper/2407.04149)

Discussion