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.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjAxNTA5MDEsIm5iZiI6MTcyMDE1MDYwMSwicGF0aCI6Ii80MzcwMDAyOS8zMzQ0MjgzMTYtYjQwNjAyMWUtNWQ0My00OTBkLTk4ZmMtN2NlNTM0N2MxNDIxLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA3MDUlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwNzA1VDAzMzY0MVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTg4ODMwZTczNTJhYWU1N2UwNjg4ZmE1N2E5ZGM0OTdjNzg1NGRmNzY0YThiZmFmYTkyZTU1MGMwN2VlM2Y2N2EmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.nQtwZqmz_9O5sMEZ5YE1EPD1H6CuKycTSWlh6-afqDw)
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.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjAxNTA5MDEsIm5iZiI6MTcyMDE1MDYwMSwicGF0aCI6Ii80MzcwMDAyOS8zMzQ0NjkxMjAtNjgzYTE1NTctYjAxYS00MjA0LTg4ZmYtMTNlN2Q4MjkwMzAxLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA3MDUlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwNzA1VDAzMzY0MVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWJjNGNmZDJjZTIxMzk0ZWQ0MTI1MDMyYzQ3MzNlNWNhNzRhZWNlN2IxMGVlOTZjZGIxNmQ0MTk2N2E4NWIwNWUmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.tDtrp5NXwSqwxK9dsY4xd_4Lf1E9X15YGNJ6WSpO0P4)
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.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjAxNTA5MDEsIm5iZiI6MTcyMDE1MDYwMSwicGF0aCI6Ii80MzcwMDAyOS8zMzQ0MDU5ODYtMmMzOWQ1MGUtYjQ4YS00MmUwLTkxZTQtZDQ4ZGIyNTkwMTA5LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA3MDUlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwNzA1VDAzMzY0MVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWMxYzQzZjE2NTQwM2ZmMGQ1ODFmM2QzNWVjNjZiODEyZjRjNDEyZDQ0MDU2N2NlYWQwMWE1ZmRhNDcxNmRmYjQmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.WvPgXp3A4X2VleO0o4qG0EfBqsGxATAVr9xfkvrX7iA)