In machine learning and cognitive science, neural networks are a family of statistical learning models inspired by biological neural networks and are used to estimate or approximate functions that can depend on a large number of inputs and are generally unknown.

Artificial Neural Networks

Warren McCulloch & Walter Pitts are the first known inventors of neuron in the 1940s (see McCulloch and Pitts Neuron Model) and early founders of Artificial Neural Networks ("ANN"). There are many types of Artificial Neural Networks (e.g., MLP, RNN, RBF, etc.), Multi-Layer Perceptrons (MLP) being the most popular (see Reference).

Design and Architecture

ANNs usually have an input layer, some hidden layers and one output layer. Each layer consists of some neurons. Input and output neurons are usually defined by you, the neural network architect. Neurons of hidden layers have several methods to be computed. It is also important to select or to design training and testing methods (see learning methods) based on simple or complex mathematical functions to connect the input neurons to output neurons.


Neural networks are based on discrete math functions similar to many mathematical systems and may not provide magical solutions or forecast to specific problems. For many years, ANNs have had problems with stability and accuracy. That set aside, it is nowadays becoming very promising since it has been recently improved with the advent of deep learnings strategies by researchers (see Deep Learning label on Google Scholar) led by LeCunn and Hinton.

Code Review

Here, we only review codes based on a full description of the problem and provided codes. We may not be able to review codes that lack sufficient technicals and details of an ANN. You may consider posting such questions on AI SE, where there are so many good AI programmers.

An Example of an ANN

An example of input, output, and hidden layers in an Artificial Neural Network

TensorFlow PlayGround