Linsonng / GraphKan

Implementation of GraphKan with torch geometrics and its application on signal classification

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Graphkan: Implementation of Graph Neural Network version of Kolmogorov Arnold Networks with torch geometrics

In this repository, we have implemented Graphkan using pytorch_geometric. Therefore, you can easily apply GraphKan to your own graph tasks. We have tested GraphKan on signal classification tasks, and the results are as follows.

Model Set 1 Set 2 Set 3 Set 4
GCN 0.9343 0.9457 0.8871 0.8186
GCN with Kolmogorov Arnold Networks 0.9643 0.9600 0.9214 0.8400

Learning curve on Set 1 is as below.

image

We can see that GraphKAN exhibits better expressive power in representation learning compared to original graph networks. image

Training log is uploaded as PDF.

GCN: \log\graph.pdf

GCN with Kolmogorov Arnold Networks: \log\kangraph.pdf

Usage

If you want to use GraphKan on your own task, you can replace original ChebConv with the kanChebConv in model/GNNs.py.

Tips

(1) You can utilize various types of KAN, including FourierKan, ChebyKan and so on. However, it is unfortunate that FourierKAN and ChebyKAN are not effective for our tasks, and further investigation is needed to determine the cause.

(2) According to our experiments, the inclusion of LayerNorm or BatchNorm in your network may be necessary.

Thanks to the efficient-kan.

About

Implementation of GraphKan with torch geometrics and its application on signal classification


Languages

Language:Jupyter Notebook 89.3%Language:Python 10.7%