{"id":15940257,"url":"https://github.com/remigenet/sigkan","last_synced_at":"2025-06-17T06:04:26.984Z","repository":{"id":246092782,"uuid":"815497475","full_name":"remigenet/SigKAN","owner":"remigenet","description":"SigKAN: Signature-Weighted Kolmogorov-Arnold Networks for Time Series","archived":false,"fork":false,"pushed_at":"2024-11-24T17:48:12.000Z","size":58358,"stargazers_count":46,"open_issues_count":0,"forks_count":11,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-05T02:51:15.155Z","etag":null,"topics":["kolmogorov-arnold-networks","rough-paths","signature","temporal","tensorflow2","time-series"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/remigenet.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-06-15T10:36:45.000Z","updated_at":"2025-04-01T07:41:36.000Z","dependencies_parsed_at":"2024-06-29T10:59:50.306Z","dependency_job_id":null,"html_url":"https://github.com/remigenet/SigKAN","commit_stats":null,"previous_names":["remigenet/sigkan"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/remigenet/SigKAN","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/remigenet%2FSigKAN","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/remigenet%2FSigKAN/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/remigenet%2FSigKAN/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/remigenet%2FSigKAN/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/remigenet","download_url":"https://codeload.github.com/remigenet/SigKAN/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/remigenet%2FSigKAN/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":260301984,"owners_count":22988717,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["kolmogorov-arnold-networks","rough-paths","signature","temporal","tensorflow2","time-series"],"created_at":"2024-10-07T06:40:52.563Z","updated_at":"2025-06-17T06:04:26.975Z","avatar_url":"https://github.com/remigenet.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# SigKAN: Signature-Weighted Kolmogorov-Arnold Networks for Time Series\n\n![SIGKAN representation](image/SigKAN.drawio.png)\n\nThis folder includes the original code implemented for the [paper of the same name](https://arxiv.org/abs/2406.17890).\n\nA pypi package is available at [pypi](https://pypi.org/project/sigkan/)\n\nThe SigKAN is a novel layer that combines the power of path signature and Kolmogorov-Arnold Networks.\n\nThe idea behing is to use a learnable path signature that is transformed in weights to the KAN layer.\n\nThe Signature is passed through a GRKAN (Gated Residual KAN unit) that is a modified GRN where some Dense layers are replaced by KAN layers.\n\nNew in version 0.2.0:\n\nThe signature is now computed using [keras_sig](https://github.com/remigenet/keras_sig) instead of [iisignature_tensorflow_2](https://github.com/remigenet/iisignature-tensorflow-2/) that is a keras implementation of the signature based on [signatory](https://github.com/patrick-kidger/signatory) and [signax](https://github.com/anh-tong/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. \n\nThe computation of the signature also profits from an optimization for GPU computation inside keras_sig. \n\nThe KAN part implementation has been inspired from [efficient_kan](https://github.com/Blealtan/efficient-kan) and works similarly to it, thus not exactly like the [original implementation](https://github.com/KindXiaoming/pykan).\n\nThe SigKAN is a keras layers and can be used as any other keras layer, for example:\n\n```python\nimport tensorflow as tf\nfrom sigkan import SigKAN\nmodel = Sequential([\n    Input(shape=X_train.shape[1:]),\n    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)\n    Flatten(),\n    Dense(100, 'relu'),\n    Dense(units=n_ahead, activation='linear')\n])\n```\n\nA more complete example is provided in a notebook in the example folder.\n\nThe code is provided as is and is not specially maintained.\n\nPlease cite our work if you use this repo:\n\n```\n@article{inzirillo2024sigkan,\n  title={SigKAN: Signature-Weighted Kolmogorov-Arnold Networks for Time Series},\n  author={Inzirillo, Hugo and Genet, Remi},\n  journal={arXiv preprint arXiv:2406.17890},\n  year={2024}\n}\n```\n\nShield: [![CC BY-NC-SA 4.0][cc-by-nc-sa-shield]][cc-by-nc-sa]\n\nThis work is licensed under a\n[Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License][cc-by-nc-sa].\n\n[![CC BY-NC-SA 4.0][cc-by-nc-sa-image]][cc-by-nc-sa]\n\n[cc-by-nc-sa]: http://creativecommons.org/licenses/by-nc-sa/4.0/\n[cc-by-nc-sa-image]: https://licensebuttons.net/l/by-nc-sa/4.0/88x31.png\n[cc-by-nc-sa-shield]: https://img.shields.io/badge/License-CC%20BY--NC--SA%204.0-lightgrey.svg\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fremigenet%2Fsigkan","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fremigenet%2Fsigkan","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fremigenet%2Fsigkan/lists"}