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.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MTk5MTkwNjMsIm5iZiI6MTcxOTkxODc2MywicGF0aCI6Ii80MzcwMDAyOS8zMzQ0MjgzMTYtYjQwNjAyMWUtNWQ0My00OTBkLTk4ZmMtN2NlNTM0N2MxNDIxLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA3MDIlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwNzAyVDExMTI0M1omWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWJmZTY4NWUzODUwZTZlOTNhYjY2YjhhZWZiYzFmNDk0ZDQ4MWQ3OWFkMjhiNTllNmY4ZTRmNTNkOTZjMGE4MTQmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.oNz1YeluxXTBVtZYrGo06sF0OgtzXlE3Jm6BWEumIdI)
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.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MTk5MTkwNjMsIm5iZiI6MTcxOTkxODc2MywicGF0aCI6Ii80MzcwMDAyOS8zMzQ0NjkxMjAtNjgzYTE1NTctYjAxYS00MjA0LTg4ZmYtMTNlN2Q4MjkwMzAxLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA3MDIlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwNzAyVDExMTI0M1omWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTM3ZTFiMjg5NDFhZjllNTQyNzU5N2FhZmViN2MxNjBkMzNkNzFjMTE3ZjlmYzMxMjlmMGQ4MDBiNjZiOTA5MzkmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.s3esHl7PRHRqVaLCF7uh4broY84Go50AJuAhXIo_vEc)
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.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MTk5MTkwNjMsIm5iZiI6MTcxOTkxODc2MywicGF0aCI6Ii80MzcwMDAyOS8zMzQ0MDU5ODYtMmMzOWQ1MGUtYjQ4YS00MmUwLTkxZTQtZDQ4ZGIyNTkwMTA5LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA3MDIlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwNzAyVDExMTI0M1omWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWViYTUxMzY0YWFlMWZlY2QyNWVkNzI1ZjVhODdiNjg4NzViZDI0MDNhNmRmNWQ3YjMwNzUzODgzOTA2MmEzNjMmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.WAVMhe4YBZUB1VPnZZCJROxMTjkvSj6KyR1-zByIzHo)