KANU-Net: Kolmogorov-Arnold Networks based U-Net architecture for images segmentation

May 17, 2024 ยท View on GitHub

Overview

This repository consists the code for the implementation of U-Net architecture but with Kolmogorov-Arnold Convolutions instead of regular convolutions.

What is a KAN?

KANs are promising alternatives of Multi-Layer Perceptrons (MLPs). KANs have strong mathematical foundations just like MLPs: MLPs are based on the universal approximation theorem, while KANs are based on Kolmogorov-Arnold representation theorem. KANs and MLPs are dual: KANs have activation functions on edges, while MLPs have activation functions on nodes. KAN seems to be more parameter efficient than MLPs, but each KAN Layer has more parameters than a MLP layer.

mlp_kan_compare

For more information about this novel architecture please visit:

Installation

git clone https://github.com/JaouadT/KANU_Net.git
cd KANU_Net
pip install -r requirements.txt

Training

python train.py --model KANU_Net --dataset BUSI --gpu 0

Results

The following are the results after training KANU_Net and regular U-Net with the same experimental setup:

ModelAccuracyDiceIoUSensitivityPrecisionSpecificity
KANU_Net97.8573.8360.0870.1997.8897.85
U-Net95.2374.9562.1769.4484.3398.64

Acknowledgements and credits

This model is built upon U-Net and the authors of the implementation of the KA-Conv. We extend our gratitude to the creators of the original KAN for their pioneering work in the field.