| Neural Networks 101 | |
|
Neural networks (NNs) are massively parallel systems designed to mimic the architecture of the human or animal brain. This topic received a lot of the public attention in the past years, as NNs are capable of performing a variety of tasks that are difficult or impossible to do with conventional computers. The reasons why NNs often outperform classical statistical methods lie in their abilities to analyze incomplete, noisy data, to deal with problems that have no clear cut solution and to learn on historical data. Because of these advantages, they have shown success in predictions of data series that have high degree of volatility and fluctuations. It is mathematically proven that three-layer neural networks are capable to approximate any nonlinear function. However, the most fascinating and almost magic-like feature of NNs is that they not programmed like conventional computers, but are literally trained to produce desired results. This time we'll just start exploring the world of Neural Networks: later articles will feature more information and hands-on articles on applying various architectures in the real-world applications.
Basics
NN usually consists of two or more layers or groups of processing elements called neurons. The term neuron denotes a basic unit of a neural network model attended for data processing. Neurons are connected into a network in the way that the output of each neuron represents the input for one or more other neurons. According to its direction, the connection (often called synapse as its biological counterpart) between neurons can be either one-directional or bi-directional, and due to its polarity the connection can be excitatory or inhibitory. Neurons are grouped into layers, with three main types of layers used in practice: input, hidden, and output. The input layer receives input data from external environment, and sends it to the hidden layer(s). In the hidden layer the information is processed and sent to the output layer neurons, where the network output is compared to the desired output and the network error is computed.

In the most typical case, the error information then flows backward through the network and the values of connection weights between the neurons are adjusted using the error term. The process is repeated in the network for a number of iterations that is necessary to achieve the output closest to the desired (actual) output. Finally, the network output is presented to the user. Neural network learning is basically the process by which the system arrives at the values of connection weights between neurons.
Connection types
Connections in the network are either realized between two layers or between neurons in the same layer. There are various types of connections between layers:
Here are the examples of some well known NN architectures along with their main features:
Connections between neurons in the same layer can be:
Some of the "intra-layer" networks with recurrent connection are:
Examples of the networks with on-center/off-surround connection are:
Connection between input and output data
NNs can also be distinguished according to the connection between input and output that can be:
Input and transfer functions
When a neuron receives the input from the previous layer, the value of its input is computed according to an input function, usually called a "summation" function. In the simplest case, input of a neuron is the sum of all weighted outputs that arrive into that neuron. Besides this standard network input, there are other additional specific types of inputs in a network, including independant inputs from external environment and bias inputs. Input values can be normalized to an interval to avoid the extreme influence of high-valued inputs.
After receiving the input according to the summation function, the output of a neuron is computed and sent to other neurons it is connected to. The output of neurons is computed according to the so-called transfer function. Several most frequently used transfer functions are:
Learning
Every NN goes through three operative phases:
There are two main types of learning in a neural network: supervised and unsupervised. The difference between those two types is in the availability of known output in the training sample. In supervised learning, the set of training data consists of previous cases with known input and output values. The neural network system receives the actual output, computes the error and adjusts the weights according to the error.
On the other hand, the actual outputs are not known in unsupervised learning. Inputs are available to the network, but the weights cannot be adjusted based on the actual output. This type of learning is commonly used for pattern recognition problems and clustering. Kohonen's self-organizing network is based on unsupervised learning.
Learning rules
A learning rule represents the formula that is used in NN to adjust the connection weights among neurons. Among various learning rules developed so far, four of them are most commonly used: