This project is a Rust implementation of a Kolmogorov–Arnold Network (KAN) neural network. The KAN network is a type of feedforward neural network that uses a spline activation function to approximate any continuous function. The network is trained using backpropagation and gradient descent to minimize the loss function. The project includes a library for building and training the network, as well as an example application that demonstrates how to use the network to solve a regression problem.
src/bin/kan.rs
: The main entry point of the application.src/data_structures
: Contains various data structures used in the project likeKANLayer
,layer
,matrix
,spline
, andvector
.src/lib.rs
: The library file.src/network
: Contains the network implementation.src/tests
: Contains the unit tests for the various components of the project.src/utils
: Contains utility functions and modules likeactivations
,is_close_enough
, andloss_functions
.model
andmodel.json
: These files are related to the model used in the project.
To run the project, use the following command:
cargo run
To run the tests, use the following command:
cargo test
This project is licensed under the MIT License.
- Implement more advanced features like dropout and batch normalization.
- Optimize the code for better performance.
- Explore different applications of the KAN network.
- Add more unit tests and integration tests.
- Create a more user-friendly interface for training and using the network.
- Implement a GUI for visualizing the network and its results.
Contributions are welcome! Please feel free to submit pull requests or open issues.
- Add more activation functions: Implement more activation functions like ReLU, sigmoid, and tanh.
- Implement different loss functions: Implement different loss functions like mean squared error, cross-entropy, and hinge loss.
- Add support for different datasets: Add support for different datasets like MNIST, CIFAR-10, and ImageNet.
- Implement different optimization algorithms: Implement different optimization algorithms like Adam, SGD, and RMSprop.
- Improve the documentation: Improve the documentation of the code and the project.
- Add more examples: Add more examples of how to use the KAN network.
- Create a GUI: Create a GUI for visualizing the network and its results.
This project is still under development, but I hope it will be a useful resource for anyone interested in learning about KAN neural networks and implementing them in Rust.