Skip to content
Back to skills

Kolmogorov Arnold Networks Guide

ASecurity

Papers and tutorials on KAN learnable activation networks

  • 3,639 stars
  • 0 votes
  • 0 copies
  • 7 views
  • Added June 6, 2026
researchpythongonodeexpressgitapi

Works with

  • api

Security analysis

A96/100
  • mediumInstalls packages at runtime which could introduce malicious dependencies

Pro shows the line behind each finding and how to fix it

Scanned June 6, 2026

npx -y skills add brycewang-stanford/Auto-Empirical-Research-Skills --skill kolmogorov-arnold-networks-guide --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Kolmogorov Arnold Networks Guide?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Kolmogorov Arnold Networks Guide
[![Security: A β€” Skills Directory](https://www.skillsdirectory.com/api/skills/brycewang-stanford-kolmogorov-arnold-networks-guide/badge)](https://www.skillsdirectory.com/skills/brycewang-stanford-kolmogorov-arnold-networks-guide)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: kolmogorov-arnold-networks-guide
description: "Papers and tutorials on KAN learnable activation networks"
metadata:
  openclaw:
    emoji: "πŸ“"
    category: "domains"
    subcategory: "ai-ml"
    keywords: ["KAN", "Kolmogorov-Arnold", "learnable activations", "spline networks", "neural architecture", "interpretability"]
    source: "https://github.com/mintisan/awesome-kan"
---

# Kolmogorov-Arnold Networks (KAN) Guide

## Overview

Kolmogorov-Arnold Networks (KANs) are a novel neural network architecture that places learnable activation functions on edges (weights) instead of fixed activations on nodes. Based on the Kolmogorov-Arnold representation theorem, KANs use B-spline functions as learnable edge activations, achieving better accuracy and interpretability than MLPs with fewer parameters in certain domains. This collection tracks the rapidly growing KAN literature.

## Core Concept

```
Traditional MLP:
  x β†’ [fixed activation(linear transform)] β†’ y
  Activations on nodes, weights on edges

KAN:
  x β†’ [learnable spline functions on edges] β†’ sum β†’ y
  Each edge learns its own activation function (B-spline)

Kolmogorov-Arnold Theorem:
  f(x₁,...,xβ‚™) = Ξ£ Ξ¦α΅’(Ξ£ Ο†α΅’β±Ό(xβ±Ό))
  Any multivariate continuous function = composition of
  univariate functions and addition
```

## Key Papers

```bibtex
@article{liu2024kan,
  title={KAN: Kolmogorov-Arnold Networks},
  author={Liu, Ziming and Wang, Yixuan and Vaidya, Sachin and
          Ruehle, Fabian and Halverson, James and
          Solja{\v{c}}i{\'c}, Marin and Hou, Thomas Y. and
          Tegmark, Max},
  journal={arXiv:2404.19756},
  year={2024}
}
```

## Implementation

```python
# Using pykan (official implementation)
# pip install pykan

from kan import KAN
import torch

# Create a KAN model
model = KAN(
    width=[2, 5, 1],    # Input: 2, Hidden: 5, Output: 1
    grid=5,               # Spline grid resolution
    k=3,                  # Spline order (cubic)
)

# Training data
x = torch.randn(1000, 2)
y = torch.sin(x[:, 0]) + torch.cos(x[:, 1])
y = y.unsqueeze(1)

# Train
dataset = {"train_input": x[:800], "train_label": y[:800],
           "test_input": x[800:], "test_label": y[800:]}
model.train(dataset, steps=100, lr=0.01)

# Visualize learned functions
model.plot()

# Prune and simplify
model = model.prune()
model.plot()
```

## KAN vs MLP Comparison

```python
# Comparison on function approximation
from kan import KAN
import torch.nn as nn

# KAN: learnable activations on edges
kan_model = KAN(width=[2, 5, 1], grid=5, k=3)
# Parameters: ~150 (spline coefficients)

# MLP: fixed activations on nodes
class MLP(nn.Module):
    def __init__(self):
        super().__init__()
        self.net = nn.Sequential(
            nn.Linear(2, 50),
            nn.ReLU(),
            nn.Linear(50, 50),
            nn.ReLU(),
            nn.Linear(50, 1),
        )
    def forward(self, x):
        return self.net(x)

mlp_model = MLP()
# Parameters: ~2,700

# KAN advantages:
# - Fewer parameters for same accuracy
# - Interpretable (visualize learned functions)
# - Better for scientific discovery (symbolic regression)
# - Grid refinement for progressive accuracy

# MLP advantages:
# - Faster training
# - Better scaling to high dimensions
# - More mature tooling and optimization
```

## Extensions and Variants

| Variant | Innovation | Application |
|---------|-----------|-------------|
| **KAN 2.0** | MultKAN with multiplication nodes | Improved scaling |
| **Temporal KAN** | Time-series adaptation | Forecasting |
| **ConvKAN** | KAN + convolutions | Image processing |
| **GraphKAN** | KAN on graph structures | Graph learning |
| **FourierKAN** | Fourier basis instead of splines | Periodic functions |
| **WavKAN** | Wavelet-based activations | Signal processing |
| **BSRBF-KAN** | B-spline + radial basis | Function approximation |

## Scientific Applications

```python
# KAN for symbolic regression (discovering equations)
from kan import KAN

# Generate data from unknown equation: f(x,y) = x*exp(y)
import torch
x = torch.rand(1000, 2) * 2
y = x[:, 0:1] * torch.exp(x[:, 1:2])

dataset = {"train_input": x[:800], "train_label": y[:800],
           "test_input": x[800:], "test_label": y[800:]}

model = KAN(width=[2, 1, 1], grid=10, k=3)
model.train(dataset, steps=200)

# Symbolic fitting β€” discover the equation
model.auto_symbolic()
# Output: f(x₁, xβ‚‚) = x₁ * exp(xβ‚‚)
# KAN can discover symbolic expressions from data
```

## Research Landscape

```markdown
### Key Research Directions
1. **Scaling** β€” Making KANs work at LLM scale
2. **Efficiency** β€” Reducing spline computation overhead
3. **Theory** β€” Understanding approximation guarantees
4. **Architecture search** β€” Optimal KAN topologies
5. **Hybrid models** β€” Combining KAN and MLP strengths
6. **Domain applications** β€” Physics, chemistry, biology
7. **Interpretability** β€” Extracting symbolic knowledge
```

## Use Cases

1. **Scientific discovery**: Extract equations from experimental data
2. **Function approximation**: High-accuracy low-parameter models
3. **Interpretable ML**: Understand what the network learned
4. **Physics-informed**: Embed physical constraints in activations
5. **Education**: Teach alternative neural network architectures

## References

- [awesome-kan](https://github.com/mintisan/awesome-kan)
- [KAN Paper](https://arxiv.org/abs/2404.19756)
- [pykan Implementation](https://github.com/KindXiaoming/pykan)
- [KAN 2.0 Paper](https://arxiv.org/abs/2408.10205)

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…