*A Feed Forward Neural Net is an artificial Neural Network wherein connections between the nodes always ensure that information always moves in the forward direction and never backwards. Being the first and simplest type of Artificial Neural Network devised in the history of computer science, it is very different from the more advanced neural networks widely used today such as Recurrent Neural Nets or Convolutional Neural Nets which contain in-built self-referential deep learning mechanisms where information flows back and forth in loops or cycles.*

*Feed Forward Neural Nets however, move in only one direction, pertaining to the forward flow of information, from the input nodes, through the hidden nodes (if any) and to the output nodes. There are no cycles or loops in the entire network architecture as shown in the diagram below. Thus, in today’s article, we shall continue the onward journey from the birth of Perceptrons (in our last blog article) to the foundation of the first type of Deep Learning Architecture that was build on the model of the human brain and central nervous systems to augment us in solving technological problems in various domains across the world!*

**From Perceptrons to the Feed Forward Mechanism**

As discussed on our last blog article, Artificial neural networks, as the name implies, are inspired from their biological counterparts, the biological brain and the nervous system. This was purposely done to derive inspiration form the evolutionarily fine-tuned modus operandi of the human brain in order to teach a computer program or software to think like Homo sapiens so it can derive key insights and patterns form abnormally large sets of data to augment us in our day to day decisions in the world of Science, Technology and Business. Originally the biological brain was entirely different form a conventional digital computer in terms of its structure and the way it processes information. In many ways, our biological brains are far more advanced and superior to conventional computers.

The most important distinctive feature of a biological brain however, is its ability to “learn” and “adapt”, while a conventional computer does not have such abilities. Conventional computers accomplish specific tasks based upon the instructions loaded to them, the so-called “programs” or “software”. With this objective in mind, we began our pursuit to mimic and remodel the structure and functions of our brains through the advent of the most basic and purpose driven form of Artificial Neural Network based on the Feed Forward Mechanism. Detailed studies of the human brain through Neuroscience, Bio-Physics and Computer Science revealed this basic but interesting way human brains identify or recognize shapes and objects in their visual cortex and categorize them with specific flawlessness as shown below.

In this diagram we can already see the basic resemblance of the human visual mechanism with the Artificial Feed Forward Mechanism in terms of the flow and categorization of information through successive layers. We can also see that the basic building block of neural networks is a “neuron”. A neuron can be perceived as a processing unit.

In a neural network, neurons are connected with each other through “synaptic weight”s, or “weight”s in short. Each neuron in a network receives “weighted” information via these synaptic connections from the neurons that it is connected to and produces an output by passing the weighted sum of those input signals (either external inputs from the environment or the outputs of other neurons) through an “activation function”. This basic fundamental building block of biological nervous systems is represented through the mathematical and computational model of a Perceptron as shown below:

In the above diagram we see the example of a Neuron based Perceptron Model showing the input (x_1-x_n ) , their corresponding weights (w_1-w_n), a bias (b) and an Activation function (f) applied to the weighted sum of the inputs represented by the variable ‘x’ up to ‘n’ indices. As shown above, it works in two steps – It calculates the weighted sum of its inputs and then applies an activation function to normalize the sum. The activation functions can be linear or nonlinear. Also, there are weights associated with each input of a neuron. These are the parameters which the network has to learn during the training phase.

In this mechanism, if there is no “feedback” from the outputs of the neurons towards the inputs throughout the network as was originally designed in the very first versions, then such networks are referred to as “** Feed Forward Neural Networks**”. Otherwise, if there exists such a feedback, i.e. a synaptic connection from the outputs towards the inputs (either their own inputs or the inputs of other neurons) as designed in latter improved versions of deep learning, then such a network is called a “

**”.**

*Recurrent Neural Network*Usually, Neural Networks are arranged in the form of “layers”. In this frame of mathematical architecture, Feed Forward Neural Networks fall into two categories depending on the number of the layers, either “** Single-Layer Perceptron Network**” or “

**” as we shall see when we discuss further.**

*Multi-Layer Perceptron Networks***Single-Layer Perceptron Network**

The simplest kind of neural network is a Single-Layer Perceptron network, which consists of a single layer of output nodes; in this case, the inputs are fed directly to the outputs via a series of weights. The sum of the products of the weights and the inputs is calculated in each node, and if the value is above some threshold (typically 0) the neuron fires and takes the activated value (typically 1); otherwise it takes the deactivated value (typically -1). Neurons with this kind of activation function are also called linear threshold units.

A Perceptron can be created using any values for the activated and deactivated states as long as the threshold value lies between the two. Perceptrons can be trained by a simple learning algorithm that is usually called the ** Delta Rule**. The Delta Rule calculates the errors between calculated output and sample output data, and uses this to create an adjustment to the weights, thus implementing a form of

**.**

*Gradient Descent*Single-Layer Perceptrons are only capable of learning linearly separable patterns; in 1969 in a famous paper entitled Perceptrons, Marvin Minsky

and Seymour Papert showed that it was impossible for a Single-Layer Perceptron Network to learn an XOR function (nonetheless, this resulted in the advent of Multi-Layer Perceptrons, which are capable of producing any possible Boolean function).

In case of a Single-Layer Perceptron, although a single threshold unit is quite limited in its computational power, it has been shown that networks of parallel threshold units can approximate any continuous function from a compact interval of the real numbers into the interval [-1,1]. This result can be found in Peter Auer, Harald Burgsteiner and Wolfgang Maass’ “A learning rule for very simple universal approximators consisting of a single layer of Perceptrons”

The above diagram is a typical graphical example of a Single-Layer Feed-Forward Perceptron Network. There are two layers in this structure, including the input layer. However, the input layer does not count because there is no computation performed in that layer. So all Input signals in this computation model are passed on to the output layer via the weights and the neurons in the output layer compute the output signals.

**Multi-Layer Perceptron Network**

This class of networks consists of multiple layers of computational units, usually interconnected in a feed-forward way. Each neuron in one layer has directed connections to the neurons of the subsequent layer. In many applications the units of these networks apply a sigmoid function as an activation function. The universal approximation theorem for neural networks states that every continuous function that maps intervals of real numbers to some output interval of real numbers can be approximated arbitrarily closely by a multi-layer perceptron with just one hidden layer as shown in the diagram below. This result holds for a wide range of activation functions.

In the above diagram, a Multi-Layer Feed-Forward Neural Network with one “hidden layer” is depicted. As opposed to a Single-Layer Network, there is (at least) one layer of “hidden neurons” between the input and output layers. According to Haykin et all, the function of hidden neurons is to intervene between the external input and the network output in some useful manner. Existence of one or more hidden layers enable the network to extract higher-order statistics.

For the example given above, there is only one hidden layer and the network is referred as a 5-3-2 network because there are 5 input neurons, 3 hidden neurons, and 2 output neurons.

In both the two diagrams as discussed till now, the networks are “fully connected” because every neuron in each layer is connected to every other neuron in the next forward layer. If some of the synaptic connections were missing, the network would be called as “partially connected”.

Furthermore, the most important feature of a Neural Network that distinguishes it from a conventional computer is its “learning” capability. A Neural Network can learn from its environment and improve its performance through learning. Learning is a process by which the free parameters of a neural network are adapted through a process of stimulation by the environment in which the network is embedded. The type of learning is determined by the manner in which the parameter changes take place.

Multi-layer networks use a variety of learning techniques, the most popular being ** Back-Propagation**. Here, the output values are compared with the correct answer to compute the value of some predefined error-function. By various techniques, the error is then fed back through the network.

**Back-Propagation**

Among many other learning algorithms, the “** Back-Propagation Algorithm**” is the most popular and the mostly used one for the training of Feed-Forward Neural Networks. It is, in essence, a means of updating networks synaptic weights by back propagating a gradient vector in which each element is defined as the derivative of an error measure with respect to a parameter. Error signals are usually defined as the difference of the actual network outputs and the desired outputs. Therefore, a set of desired outputs must be available for training. For that reason, back-propagation is a supervised learning rule.

Using information as discussed above, the Back-Propagation Algorithm adjusts the weights of each connection in order to reduce the value of the error function by some small amount. After repeating this process for a sufficiently large number of training cycles, the network will usually converge to some state where the error of the calculations is small. In this case, one would say that the network has learned a certain target function. To adjust weights properly, one applies a general method for non-linear optimization that is called gradient descent. For this, the network calculates the derivative of the error function with respect to the network weights, and changes the weights such that the error decreases (thus going downhill on the surface of the error function). For this reason, back-propagation can only be applied on networks with differentiable activation functions.

In general, the problem of teaching a network to perform well using techniques such as Back Propagation, even on samples that were not used as training samples, is a quite subtle issue that requires additional techniques. This is especially important for cases where only very limited numbers of training samples are available.

The danger is that the network overfits the training data and fails to capture the true statistical process generating the data. Computational learning theory is concerned with training classifiers on a limited amount of data. In the context of neural networks, a simple heuristic, called early stopping, often ensures that the network will generalize well to examples not in the training set. Other typical problems of the back-propagation algorithm are the speed of convergence and the possibility of ending up in a local minimum of the error function. Today there are practical methods that make back-propagation in multi-layer Perceptrons the tool of choice for many machine learning tasks.

One also can use a series of independent neural networks moderated by some intermediary, a similar behaviour that happens in brain. These neurons can perform separately and handle a large task, and the results can be finally combined.

**Applications of Feed Forward Neural Nets**

Feed-forward Neural Networks were primarily devised with two broad goals in mind:

The scientific goal of building models of how real brains work. This can potentially help us understand the nature of human intelligence, formulate better teaching strategies, or better remedial actions for brain damaged patients.*Brain Modelling:*The engineering goal of building efficient systems for real world applications. This may make machines more powerful, relieve humans of tedious tasks, and may even improve upon human performance.*Artificial System Building:*

These should not be thought of as competing goals. We often use exactly the same Neural Networks and techniques for both. Frequently progress is made when the two approaches are allowed to feed into each other. There are fundamental differences though, e.g. the need for biological plausibility in brain modelling, and the need for computational efficiency in artificial system building. Simple Feed-Forward Neural Networks, such as Multi-Layered Perceptrons, are surprisingly effective for both purposes. Other real-world applications of Feed Forward Neural Nets are as follows:

- Airline Marketing
- Data Compression – PCA
- ECG Noise Filtering
- Social Media Facial Recognition
- Medical Image Recognition
- Optical Character Recognition
- Pattern Recognition/Computer Vision
- Sonar Target Recognition

Thus, it is quite evident that Feed Forward Neural Nets are the earliest and most encountered type of Artificial Neural Networks and applied across various disciplines of life especially at the on-set of Machine Learning. But Feed Forward Networks are quite limited in handling complex tasks of the modern world which consider, further detailed complexities and mechanisms of information processing in the human brain and as a result have proven to be game changing in the world of today.

*Stay Tuned for our Next Blog Article to learn more about the subsequent advancements in Artificial Neural Network Models which are changing the world as we know it today!*