This repository demonstrates the application of efficient Kolmogorov-Arnold Networks (KAN) in a regression (curve fitting) task. The original KAN can be found here, while the original efficient KAN can be found here.
The curve function here is: y = a·sin(b·x)+c·cos(d·x), x = 0:0.2:10, as shown below.
You may change it to whatever function you would like to fit.
The training dataset was created using the matlab code ‘create_dataset.m’ under 'Data' folder.
Network specifics: size(inputlayer, hiddenlayer, outputlayer) = [51, 100, 4].
The input is curve values y with a length of 51, and the output is the coefficients vector [a, b, c, d] with a length of 4, as shown below.
![image](https://private-user-images.githubusercontent.com/43700029/334428316-b406021e-5d43-490d-98fc-7ce5347c1421.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MTg4NTMxODcsIm5iZiI6MTcxODg1Mjg4NywicGF0aCI6Ii80MzcwMDAyOS8zMzQ0MjgzMTYtYjQwNjAyMWUtNWQ0My00OTBkLTk4ZmMtN2NlNTM0N2MxNDIxLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA2MjAlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwNjIwVDAzMDgwN1omWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTExMzkxNmUxZmY3MjA1NjI4MGY3ZTJmYWNhNDJmYzE3YTJmYTFlNzViNjRkZDg3OGZhMjg2Y2MyYjQ4ZmUyZmMmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.F1fhrOqgVGMyEsu7oZU0RmCNOnfg3J9fAhhz0rMgWP8)
The loss curves of KAN and MLP after training for 30 epochs are as follows:
![image](https://private-user-images.githubusercontent.com/43700029/334469120-683a1557-b01a-4204-88ff-13e7d8290301.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MTg4NTMxODcsIm5iZiI6MTcxODg1Mjg4NywicGF0aCI6Ii80MzcwMDAyOS8zMzQ0NjkxMjAtNjgzYTE1NTctYjAxYS00MjA0LTg4ZmYtMTNlN2Q4MjkwMzAxLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA2MjAlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwNjIwVDAzMDgwN1omWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWIwYjAyMmZiYjJhYWU3NTNiYjdjODUzZTM2YzlkOTk1MWQxNDM3OGQwMzcwYjJmM2NmOGZmMDM3OThmYTkzZGQmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.XQbx7R_cAIqcnoPIGqfyvQLVfXIAcFYw-TV0k2iGwcg)
The predicted curves by MLP and KAN after training for 30 epochs are as follows:
![image](https://private-user-images.githubusercontent.com/43700029/334405986-2c39d50e-b48a-42e0-91e4-d48db2590109.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MTg4NTMxODcsIm5iZiI6MTcxODg1Mjg4NywicGF0aCI6Ii80MzcwMDAyOS8zMzQ0MDU5ODYtMmMzOWQ1MGUtYjQ4YS00MmUwLTkxZTQtZDQ4ZGIyNTkwMTA5LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA2MjAlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwNjIwVDAzMDgwN1omWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWQ2NTE1M2QyNTc3NmNjMmQxNjg2YjdhODViMGFmYzZjMzE3YjQ2MzVkNzk1N2ViYjU5NWJmNzAxNTIyMmU1MzEmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.W0AGtHPimiYyWoT3rgL7ruUM0WE0UjdjdL9Bhh4OBnM)