Neural-Net-Viz
Interactive Neural Network built with Processing, a JavaScript library. The goal is being able to change parameters and hyperparameters in learning time to ease understanding of some properties of Neural Networks.
The project is in development. Currently the user is able to change only the learning rate and the activation function (Relu or Sigmoid). Changing the specific weigths of the Net is in work.
- To change the learning rate there is a sliding button that varies from 0 to 1.
- To reset the network press space.
- To change the activation function press 'C', and the network will reset with the new activation function.
This project began as a personal way of understanding Neural Networks a bit better and learning to code in JavaScript. While my initial goal was just to learn more, I ended up deciding this project would be better off as a learning tool not just for me. As I played with the Net I understood interesting concepts such as exploding gradient and overfitting in a practical way. While the Network is simple, with 1 input and output and 1 hidden layer, it is possible to understand what a Network does in the context of Function Approximators, which has become, to me, the main paradigm in understanding Machine Learning models.
The main obstacle I ran in was learning JavaScript. Even though it is considerably easy to learn it took me a while to get the hand of the language. My choice of using the JavaScript library, Processing, was inspired by my brother who recently got interested in Computer Graphics. As his sugestion, I learned JavaScript and saw it as a the perfect tool for this project since it is made for visualization and graphics.