| A neural network is an interconnected group of neurons. The prime examples
are biological neural networks, especially the human
brain. In modern usage the term most often refers to artificial neural networks (ANN), or neural nets
for short, and this is the sense that is used in the rest of this article.
An artificial neural network is a mathematical or computational model for information processing based on a connectionist approach to computation. There is no precise agreed definition
amongst researchers as to what a neural network is, but most would agree that it involves a network of relatively simple
processing elements, where the global behaviour is determined by the connections between the processing elements and element
parameters. The original inspiration for the technique was from examination of bioelectrical networks in the brain formed by neurons and their synapses. In a
neural network model, simple nodes (or "neurons",
or "units") are connected together to form a network of nodes — hence the term
"neural network".
Structure
Like the brain, an artificial neural net is a massively parallel collection of small and simple processing units where the interconnections form a large part
of the network's intelligence. Artificial neural networks, however, are quite different from the brain in terms of structure. For
example, a neural network is much smaller than the brain. Also, the units used in a neural network are typically far simpler than
neurons. Nevertheless, certain functions that seem exclusive to the brain, such as learning, have been replicated on a simpler
scale with neural networks.
See also: artificial neuron, perceptron
Models
In a typical neural network, each node operates on a principle similar to a biological
neuron. In a biological neuron, each incoming synapse of a neuron has a weight
associated with it. When the weight of each synapse, times it's input, is summed up for all incoming synapses, and that sum is
greater than some 'threshold value', then the neuron fires, sending a value to another neuron in the network.
The typical neural network node attempts to emulate this behavior. Each node has a set of input lines which are analagous to
input synapses in a biological neuron. Each node also has an 'activation function' (also known as a 'transfer function'), which
tells the node when to fire, similar to a biological neuron. In it's simplest form, this activation function can just be to
generate a '1' if the summed input is greater than some value, or a '0' otherwise. Activation functions, however, do not have to
be this simple - in fact to create networks that can do useful work, they almost always have to be more complex, for at least
some of the nodes in the network.
A feedforward neural network, which is one of the more common neural
network types, is composed of a set of these nodes and connections. These nodes are arranged in layers. The connections are
typically formed by connecting each of the nodes in a given layer to all of the neurons in the next layer. In this way every node
in a given layer is connected to every other node in the next layer.
Typically there are at least three layers to a feedforward network - an input layer, a hidden layer, and an output layer. The
input layer does no processing - it is simply where the data vector is fed into the network. The input layer then feeds into the
hidden layer. The hidden layer, in turn, feeds into the output layer. The actual processing in the network occurs in the nodes of
the hidden layer and the output layer.
When enough neurons are connected together in layers, the network can be 'trained' to do useful things using a training
algorithm. Feedforward networks, in particular, are very useful, when trained appropriately, to do intelligent classification or
identification type tasks on unfamiliar data.
Calculations
The sigmoid curve is often used as a transfer function because it
introduces non-linearity into the network's calculations by "squashing" the neuron's activation level into the range [0,1]. The
sigmoid function has the additional benefit of having an extremely simple derivative function, as required for back-propagating
errors through a feed-forward neural network. Other functions with similar features can be used, most commonly tanh which squashes activations into the range of [-1,1] instead, or
occasionally a piece-wise linear function that simply clips the activation rather than squashing it.
If no non-linearity is introduced by squashing or clipping, the network loses much of its computational power, becoming a
simple matrix multiplication operation from linear algebra.
Alternative calculation models in neural networks include models with loops, where some kind of time delay process must be
used, and "winner takes all" models, where the neuron with the highest value from the calculation fires and takes a value 1, and
all other neurons take the value 0.
Typically the weights in a neural network are initially set to small random values. This represents the network knowing
nothing; its output is essentially a random function of its input. As the training process proceeds, the connection weights are
gradually modified according to computational rules specific to the learning algorithm being used. Ideally the weights eventually
converge to values allowing them to perform a useful computation. Thus it can be said that the neural network commences knowing
nothing and moves on to gain some real knowledge, though the knowledge is sub-symbolic.
Advantages
Artificial neural networks (ANN) have several advantages, because they resemble the principles of the neural
system structure.
- Learning: ANN have the ability to learn based on the so called learning stage.
- Auto organisation: a ANN creates its own representation of the data given in the learning process.
- Tolerance to faults: because ANN store redundant information, partial destruction of the neural network do not damage
completely the network response.
- Flexibility: ANN can handle input data without important changes like noisy signals or others changes in the given input data
(e.g. if the input data is an object, this can be a little different without problems to the ANN response).
- Real Time: ANN are parallel structures; if they are implemented in this way using computers or special hardware real time can
be achieved.
- Scalability: An ANN can be easily ported to fit any problem from a particular problem area.
Applications
Usefulness
Neural networks are particularly useful for dealing with bounded real-valued data, where a real-valued output is desired; in this way neural networks will
perform classification by degrees, and are capable of expressing values equivalent to "not sure". If the neural network is
trained using the cross-entropy error function (see Bishop's book) and if the neural network output is sigmoidal, then the
outputs will be estimates of the true posterior probability of a class.
Real life applications
In real life applications, neural networks perform particularly well on the following common tasks:
Other kinds of neural networks, in particular continuous-time recurrent neural networks (CTRNN), are used in conjunction with
genetic algorithms (GAs) to produce robot controllers. The
genome is then constituted of the networks parameters and the fitness of a network is the adequacy of the behaviour exhibited by
the controlled robot (or often by a simulation of this behaviour).
Types of neural networks
Single-layer perceptron
The earliest kind of neural network is a single-layer perceptron network, which consists of a single layer of output
nodes; the inputs are fed directly to the outputs via a series of weights. In this way it can be considered the simplest kind of
feed-forward network. 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 McCulloch-Pitts neurons or
threshold neurons. In the literature the term perceptron often
refers to networks consisting of just one of these units. They were described by Warren McCulloch and Walter Pitts in the 1940s.
A perceptron can be created using any values for the activated and deactivated states as long as the threshold value lies
between the two. Most perceptrons have outputs of 1 or -1 with a threshold of 0 and there is some evidence that such networks can
be trained more quickly than networks created from nodes with different activation and deactivation values.
Perceptrons can be trained by a simple learning algorithm that is usually called the delta rule. It 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-unit perceptrons are only capable of learning linearly separable patterns; in 1969 in a famous monograph entitled Perceptrons by Marvin Minsky and Seymour Papert showed that it was impossible for a single-layer perceptron
network to learn an XOR function. They conjectured (incorrectly) that a
similar result would hold for a multi-layer perceptron network. 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 very recent result can be found in [Auer, Burgsteiner, Maass:
The p-delta learning rule for parallel perceptrons, 2001 (state Jan 2003: submitted for publication)].
A single-layer neural network can compute a continuous output instead of a step function. A common choice is the so-called logistic function:

With this choice, the single-layer network is identical to the logistic regression model, widely used in statistical modeling.
Multi-layer perceptron
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. This result holds only for restricted classes of activation functions, e.g. for the sigmoidal
functions.
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. Using this information, the
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 says that the network has learned a certain target function. To
adjust weights properly one applies a general method for non-linear optimization task that is called gradient
descent. For this, the derivation of the error function with respect to the network weights is calculated and the weights are
then changed 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 reaching a network that performs well, 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 to end up in a
local minimum of the error function. Today there are practical solutions
that make backpropagation in multi-layer perceptrons the solution of choice for many machine learning tasks.
Recurrent network
Recurrent networks (RNs) are models with bi-directional data flow. While a feed-forward network propagates data
linearly from input to output, RNs also propagate data from later processing stages to earlier stages.
A simple recurrent network (SRN) is a variation on the multi-layer perceptron, sometimes called an "Elman network" due
to its invention by Jeff Elman. A
three-layer network is used, with the addition of a set of "context units" in the input layer. There are connections from the
middle (hidden) layer to these context units fixed with a weight of one. At each time step, the input is propagated in a standard
feed-forward fashion, and then a learning rule (usually back-propagation) is applied. The fixed back connections result in the
context units always maintaining a copy of the previous values of the hidden units (since they propagate over the connections
before the learning rule is applied). Thus the network can maintain a sort of state, allowing it to perform such tasks as
sequence-prediction that are beyond the power of a standard multi-layer perceptron.
In a fully recurrent network, every neuron receives inputs from every other neuron in the network. These networks are
not arranged in layers. Usually only a subset of the neurons receive external inputs in addition to the inputs from all the other
neurons, and another disjunct subset of neurons report their output externally as well as sending it to all the neurons. These
distinctive inputs and outputs perform the function of the input and output layers of a feed-forword or simple recurrent network,
and also join all the other neurons in the recurrent processing.
Hopfield network
The Hopfield network is a recurrent neural network in which all connections are symmetric. Invented by John Hopfield in 1982, this network
guarantees that its dynamics will converge. If the connections are trained using Hebbian learning then the Hopfield network can perform robust content-addressable memory, robust to
connection alteration.
Boltzmann machine
The Boltzmann machine can be thought of as a noisy
Hopfield network. Invented by Geoff Hinton and Terry Sejnowski in 1985, the Boltzmann
machine is important because it is one of the first neural networks to demonstrate learning of latent variables (hidden units).
Boltzmann machine learning was slow to simulate, but the contrastive divergence algorithm of Geoff Hinton (circa 2000) allows models including Boltzmann machines and product of experts to be trained much faster.
Committee of machines
A committee of machines (CoM) is a collection of different neural networks that together "vote" on a given example.
This generally gives a much better result compared to other neural network models. In fact in many cases, starting with the same
architecture and training but different initial random weights gives vastly different networks. A CoM tends to stabilize the
result.
The CoM is similar to the general machine learning bagging method, except that the necessary variety of machines
in the committee is obtained by training from different random starting weights rather than training on different randomly
selected subsets of the training data.
Instantaneously trained networks
Instantaneously
trained neural networks (ITNNs) are also called "Kak networks" after their inventor Subhash Kak. They were inspired by the phenomenon of short-term learning that seems to occur instantaneously.
In these networks the weights of the hidden and the output layers are mapped directly from the training vector data. Ordinarily,
they work on binary data but versions for continuous data that require small additional processing are also available.
Spiking neural networks
Spiking (or pulsed) neural networks (SNNs) are models which explicitly take into account the timing of inputs. The
network input and output are usually represented as series of spikes (delta function or more complex shapes). SNNs have an
advantage of being able to continuously process information. They are often implemented as recurrent networks.
Networks of spiking neurons -- and the temporal correlations of neural assemblies in such networks -- have been used to model
figure/ground separation and region linking in the visual system (see e.g. Reitboeck et.al.in Haken and Stadler: Synergetics of
the Brain. Berlin, 1989).
Gerstner and Kistler have a freely-available online textbook on Spiking Neuron Models (http://diwww.epfl.ch/~gerstner/BUCH.html).
Relation to optimization techniques
Analysis of many neural network techniques reveals their close relationship to mathematical optimization techniques. For instance, multi-layer perceptron back-propagation can be substituted with
more general global optimization techniques. The objective in training an ANN is, given some set of pairs of data and output, {
(d0, o0), (d1,o1), ... } to minimize some error function ||E||2, where
E(xi) = F(w,xi) - oi. Here F is the neural network function which given a vector of weights w
and an input vector produces an output vector for the network. Thus as well as using back-propagation to train the network, it is
also possible to use global optimization techniques to produce a weight vector w.
Related topics
External links
Bibliography
- Duda, R.O., Hart, P.E., Stork, D.G. (2001) Pattern classification (2nd edition), Wiley, ISBN 0471056693
- Hertz, J., Palmer, R.G., Krogh. A.S. (1990) Introduction to the theory of neural computation, Perseus Books. ISBN 0201515601
- Haykin, S. (1999) Neural Networks: A Comprehensive Foundation, Prentice Hall, ISBN 0-13-273350-1
|