
Design neural networks in C++ by organizing neurons into input, hidden, and output layers and training them by adjusting weighted connections to match outputs.
Parse neural network topology from command line arguments and store it in a vector using a GetData class and getTopology function, then print the layer and neuron counts.
Generate training samples by converting rgb values to grayscale using a weighted formula, then train the neural network by adjusting weights to match known outputs.
Design the neural network structure by implementing a neuron class and layer vectors driven by a topology vector, including a bias with unit output and random connection weights.
Run the neural network from the command line, print neuron and layer indices, demarcate each layer's neurons, and validate a seven-layer topology with bias neurons.
Learn to extract training samples from a text file by reading inputs and target outputs into separate vectors, then feed them into a neural network and prepare for training.
Explore feed forward mechanism in a neural network that moves data from input layer through layers to output layer, using biases, weights, and a transfer function during training.
Add a show vector function to display the input, output, and target vectors during testing. Retrieve results from the output layer and compare them to targets for backpropagation.
Learn back propagation by comparing network outputs with training targets, computing the root mean square error, and updating weights via output and hidden layer gradients.
Compute hidden gradients and update weights across hidden and next layers using the sum down approach, transfer function derivative, learning rate eta, and momentum alpha in backpropagation.
Test a neural network in c++ by printing the recent average error and weights, then use feed forward with fixed weights after training to compare outputs to expected results.
This course teaches the practical design of a Neural network simulator using C++. It is recommended for all levels of C++ programmers with a theoretical knowledge of Neural network and looking forward to implement them in practice. The course interactively simulates the Neural network from the design of the class called Neuron, to the implementation of the Neuron layers in Vectors and finally the top level design consisting of the input layer, hidden layer and the output layer. Some random training samples will be generated which will be feed to the input layer through a vector and progress to the output layer through feed forward. The back propagation is also implemented which enables us to calculate the error and update the weight for a more accurate result. The training samples used in this course is for demonstration as the concept of sample generation is well explained. At the end of the course the student should be able generate real samples for testings.
Some of the Core concepts we will learn in this course includes:
Feed forward .
Bias Neuron.
Transfer function.
Back propagation.
Activation function.
Root mean square error.
Transfer function derivative.
Generating training samples.
Output and hidden layer Gradient.
Some of the C++ concepts used includes:
Assert()
prototyping
Class design
Nested Vectors
Reference Variables
Static class variables
Data hiding and encapsulation