Skip to main content

Path Signature-Weighted Kolmogorov-Arnold Networks for Time Series

Project description

SigKAN: Signature-Weighted Kolmogorov-Arnold Networks for Time Series

SIGKAN representation

This folder includes the original code implemented for the paper of the same name.

A pypi package is available at pypi

The SigKAN is a novel layer that combines the power of path signature and Kolmogorov-Arnold Networks.

The idea behing is to use a learnable path signature that is transformed in weights to the KAN layer.

The Signature is passed through a GRKAN (Gated Residual KAN unit) that is a modified GRN where some Dense layers are replaced by KAN layers.

New in version 0.2.0:

The signature is now computed using keras_sig instead of iisignature_tensorflow_2 that is a keras implementation of the signature based on signatory and signax. Keras_sig being in pure keras3 the package is compatible and tested with all keras backend (tensorflow2, jax and torch). However, we recommend strongly to use jax as backend as it is the most efficient for this task.

The computation of the signature also profits from an optimization for GPU computation inside keras_sig.

The KAN part implementation has been inspired from efficient_kan and works similarly to it, thus not exactly like the original implementation.

The SigKAN is a keras layers and can be used as any other keras layer, for example:

import tensorflow as tf
from sigkan import SigKAN
model = Sequential([
    Input(shape=X_train.shape[1:]),
    SigKAN(100, 2, dropout = 0.), # 100 units, signature of order 2, takes an input shape (batch, sequence, features) and returns a tensor of shape (batch, sequence, 100)
    Flatten(),
    Dense(100, 'relu'),
    Dense(units=n_ahead, activation='linear')
])

A more complete example is provided in a notebook in the example folder.

The code is provided as is and is not specially maintained.

Please cite our work if you use this repo:

@article{inzirillo2024sigkan,
  title={SigKAN: Signature-Weighted Kolmogorov-Arnold Networks for Time Series},
  author={Inzirillo, Hugo and Genet, Remi},
  journal={arXiv preprint arXiv:2406.17890},
  year={2024}
}

Shield: CC BY-NC-SA 4.0

This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.

CC BY-NC-SA 4.0

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

sigkan-0.2.0.tar.gz (3.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

sigkan-0.2.0-py3-none-any.whl (4.1 kB view details)

Uploaded Python 3

File details

Details for the file sigkan-0.2.0.tar.gz.

File metadata

  • Download URL: sigkan-0.2.0.tar.gz
  • Upload date:
  • Size: 3.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.7.1 CPython/3.12.2 Linux/6.8.0-49-generic

File hashes

Hashes for sigkan-0.2.0.tar.gz
Algorithm Hash digest
SHA256 871b126a1f51dc07b9c4ffbc99cfb20773de55b799cefeacbda3b0586fdd83f3
MD5 6d7c265a7430d2bb5a3a6f7716387abb
BLAKE2b-256 9f7a3ee9311f400a087060111dcaec08902d963bc32a9fefe3c4da2d6e403559

See more details on using hashes here.

File details

Details for the file sigkan-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: sigkan-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 4.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.7.1 CPython/3.12.2 Linux/6.8.0-49-generic

File hashes

Hashes for sigkan-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 fe866c387c9327b07a5e73dda614bfeda8d7118a4f5ab192d82988b194eca1b5
MD5 c1ca9ca48d6f0adb5a0a011a2acb06d4
BLAKE2b-256 235a3f3e59da7e4ffc4d5cd217e034e82526ac3f3399895cf1a5f93723bad03f

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page