Java Machine Learning Library
January 2019 - June 2019
Status: Completed
This project is a custom-made neural network library for Java. It allows users to create a neural network object which can implement, train, load, and save. The library was made in a way that the different layers can be resized and configured completely allowing it to work on almost any application where a neural network is used.
Purpose of the project
This project was created in order to learn exactly how machine learning works. Although I had a basic understanding, I was curious to see exactly how it works. Therefore, I decided to create this library without using any sort of machine learning library such as TensorFlow.
Outcome
After completion of this project, I now have proficiency in:
How machine learning works
Forward propagation of Neural Networks
Back propagation of Neural Networks
The project was a complete success. I trained it to around 80% accuracy when predicting handwritten digits. Since the library is extremely lightweight, it does have some advantages over larger machine learning libraries. It will be very exciting to see where this can be used in future projects.
Steps
Learn About Machine Learning
The first step, and the longest, was learning about machine learning. I did many hours of research on the mathematics and working principle behind neural networks in order to get a comprehensive idea of how they operate. After understanding them, it became much clearer on how to begin coding one.
Code and test
The next step was to code the library. This process took a little over a month, including the required debugging and testing. After completing the library, I implemented it by training a neural net to recognize and predict handwritten digits, which was able to achieve 80% accuracy.