Neural Network

A basic feedforward-backpropagation network made in Processing

This project was created for CSE 5526: Introduction to Neural Networks in Spring 2018.

The goal of this project was to create a feedforward backpropagation network to learn the parity problem. The parity problem is simple: from a 4-bit binary number, output 1 if there is an odd number of 1's, and 0 otherwise. For instance, 0101 -> 0, and 1000 -> 1.

I implemented this project in Processing, which is built upon Java. Processing includes a graphical user interface (GUI) for me to draw the UI elements on, and allow the user to see the network learning (my favorite part!).

The neural network asked was 4 inputs, one hidden layer with 4 nodes, and 1 output layer. My implementation allows for any number of inputer, outputs, hidden layers, and nodes per layer. This enabled me to test different network architectures for experimentation. Note that the inputs and outputs are hard-coded, so using a number other than 4 for inputs and 1 for outputs will give an error. Feel free, however, to create your own functions that create input/output for the network to learn!

Get the code here