Code Monkey home page Code Monkey logo

kan-tutorial's Introduction

Basics of Kolmogorov-Arnold Networks (KAN)

This repo contains notebooks with toy examples to build intuitive understanding of Kolmogorov-Arnold Networks (KAN). The repo contains a series of Jupyter notebooks to explore concepts and code to build KANs, designed to build your understanding of KANs gradually, starting from the basics of B-splines used as activation functions and progressing through more complex scenarios including symbolic regression.

Original paper: Liu et al. 2024, KAN: Kolmogorov-Arnold Networks

About the Tutorials

With the help of toy examples, notebooks are structured to help in understanding both the theoretical underpinnings and practical applications of KANs.

  1. B-Splines for KAN:

    • Understanding the mathematical construction of B-splines.
    • Exploring how B-splines are used for functional approximation.
  2. Deeper KANs

    • Constructing and understanding [1, 1, 1, ..., 1] KAN configurations.
    • Implementing and exploring backpropagation through stacked splines.
  3. Grid Manipulation in KANs

    • How to expand model's capacity through grid manipulation.
    • How KANs prevent catastrophic forgetting in continual learning?
  4. Symbolic Regression using KANs

    • Training KANs with fixed symbolic activation functions.
    • Understanding the implications of symbolic regression within neural networks.

Prerequisites

To follow these tutorials, you should have a basic understanding of machine learning concepts and be familiar with Python programming. Experience with PyTorch and Jupyter Notebooks is also recommended.

Contributions

Contributions to this tutorial series are welcome! If you have suggestions for improvement or want to add new examples, please feel free to submit a pull request or open an issue.

kan-tutorial's People

Contributors

pg2455 avatar

Stargazers

 avatar Vasilis Tosounidis avatar Hoang Tung avatar Sonny avatar Zeng haolong avatar  avatar MaCaRons7 avatar ajiken avatar Hoang Thang Ta avatar  avatar  avatar Mehedi Hasan Tanver avatar Luca Spallanzani avatar  avatar  avatar Alexandros Vassiliades avatar BingLiu avatar  avatar  avatar  avatar Han NeurAI avatar Raevskiy Rudolf avatar ChenZhijie avatar Will_Chen avatar Yetintin avatar Mk.AI avatar  avatar Tak Hur avatar Andranik Arakelov avatar Learn2Learn avatar Muhammad Kabir Hamzah  avatar Brad avatar valeman avatar  avatar Khush Gupta avatar  avatar  avatar Avinash avatar  avatar Soham Pal avatar Rohan Gautam avatar Bobo Jamson avatar Mustafa Kamel Ahmed avatar  avatar  avatar Warui avatar  avatar Pantelis Dogoulis avatar  avatar STATIS avatar Jacob avatar Ian Liu avatar Eric Lemus Avalos avatar JN avatar Venkat Sai Suman Lamba Karanam avatar Daniel  avatar Shibu Meher avatar  avatar kayjay avatar Ryan Reece avatar skyetomez avatar shivam avatar Jinsong Hao avatar Jade Manning avatar Sanjay Mullapudi avatar Mehdi Ait Mouha avatar  avatar Scott Sun avatar  avatar Gihyeon Lee avatar Ma avatar Tadej Fius avatar  avatar  avatar  avatar  avatar  avatar saehan Lee/SLAM in the hazardous environments avatar Binh Nguyen avatar  avatar Juwon Kim avatar  avatar Amir01 avatar  avatar  avatar Pei-Yong Wang avatar Patrick Gustav Blaneck avatar Hasan Shahrier avatar dlescos avatar Christopher Wansing avatar dikshie avatar Jay Walia avatar  avatar  avatar fista avatar Roger Lloret-Batlle avatar Sarah Barbosa avatar  avatar  avatar Gabriel Finatti avatar

Watchers

 avatar

kan-tutorial's Issues

Tutorial #4 breaks if KAN shape is changed

RuntimeError: einsum(): operands do not broadcast with remapped shapes [original->remapped]: [4, 2, 12]->[1, 4, 2, 12] [1280, 2, 12]->[1280, 2, 1, 12]
-- nvm the first value is not a variable it's just the input size

Questions on other usecases

Are there ways of making tutorials for the following topics (in order of complexity):

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.