This project implements and analyzes the Kolmogorov-Arnold Network (KAN), an innovative type of neural network based on the Kolmogorov-Arnold theorem. The project includes practical implementations and comparisons with other machine learning approaches.
- Python 3.9.6
- Main dependencies:
matplotlib==3.6.2
numpy==1.24.4
scikit_learn==1.1.3
torch==2.2.2
pandas==2.0.1
- Clone the repository:
git clone https://github.com/xtreamsrl/KAN
cd KAN
- Install dependencies:
pip install -r requirements.txt
- kan_presentation.ipynb: A comprehensive introduction to the Kolmogorov-Arnold Network (KAN) and its applications
- kaggle_vs_kan.ipynb: Demonstration of using KAN to solve a Kaggle competition
- KAN implementation using PyTorch
- Network simplification techniques:
- Sparsification
- Refinement
- Network pruning
- Learning visualization through animations
- Comparison with traditional neural networks
model = KAN(width=[2,5,1], grid=3, k=3, device=device)
_ = model.fit(dataset, opt="LBFGS", steps=150)
model = model.prune() # Pruning
model = model.refine(10) # Refinement
The project includes functionality to generate dynamic visualizations of network learning, saved as MP4 videos.
For in-depth tutorials and video content, visit:
https://www.youtube.com/@umarjamilai/videos
- Project is optimized for both CPU and CUDA GPU execution
- Includes implementations for both regression and classification problems
- Provides tools for comparative analysis with other machine learning models
This project is distributed under an open source license. See LICENSE file for details.