What is an artificial neural network?
A look at the role of neural nodes and how deep learning is used to create algorithms
An artificial neural network (ANN) is a type of artificial intelligence computer system, the design for which has been inspired by the biological structure found in an animal brain.
Through a system of connected "neurons", these networks are capable of recognising numerical patterns by 'learning' to process certain stimuli and making assessments without human intervention.
A simple example might be the training of an ANN to recognise objects in images. In the case of recognising a dog, the network will be given a number of pre-labelled 'dog' images which it will then use as a reference point for future analysis. Unlike humans, networks are unable to assess whether a dog has fur or a tail, but instead breaks down the control images into minute identifying characteristics.
In practical terms, a neural network provides a sorting and classification layer that sits on top of your managed data, helping to cluster and group data based on similarities. It's possible to create highly sophisticated spam filters, algorithms to detect fraudulent behaviour, and customer relationship tools that accurately assess mood, all using an artificial neural network.
How an artificial neural network works
ANNs are heavily inspired by the neurological structure of an animal brain - that is, they are made up of a collection of neurons, or computation nodes, that are able to communicate along synapse-like channels. In other words, the output of one node will form the input of another.
Neural networks represented a significant leap in the development of artificial intelligence, which often relies on the use of pre-defined processes and regular human intervention. With this structure, the analytical load is spread across several interconnected neurons, with the first set of neurons passing processed information along for further analysis.
A basic structure of a single 'hidden' layer neural network
Much like the structure of a fishing net, a neural network will have strands connecting processing nodes together. The vast number of connections enable enhanced communication between these nodes, increasing accuracy and data processing throughput.
The network element manifests when layers of these nets are piled on top of each other, creating an input and output flow of data from the first to the last layer. As data passes from one layer of nodes to another, new contextual information is added to the analysis of the data (this differs to the human brain where neurons are connected in a 3D mesh, rather than layered).
Like an organic brain, nodes 'fire' across an ANN when they receive specific stimuli, passing the signal over to another node. However, in the case of ANNs, the input signal is defined as a real number, with the output being the sum of the various inputs.
The value of these inputs is dependent on their weighting, which serves to increase or decrease the importance placed on the inputs respective to the task being performed. The goal is to take an arbitrary number of binary inputs and translate them into a single binary output.
A more complex neural network, increasing the sophistication of its processing
Earlier models of neural networks used shallow structures, where only one input and output layer were used. Modern systems now are compromised of an input layer, where data first enters the network, multiple 'hidden' layers, which add complexity to the analysis, and an output layer.
This is where the term 'deep learning' has derived - the 'deep' part specifically referring to any neural network that uses more than one 'hidden' layer.
The evening party example
To best explain this, let's consider the following example. Imagine you have been invited to an evening party and you are trying to decide whether or not you should go. Your decision may be influenced by a large number of factors, but let's look at just three - namely: 'will my friends be going?', 'Is it easy to get to?', and 'Is it raining outside?'.
With an artificial neural network, it's possible to model this decision-making process by translating the three considerations to binary numbers, i.e. x1, x2, x3, which are then given binary assignments. We could model it so that weather is given a binary value of '1' if good and '0' if bad, with the same format repeated for each consideration.
In order to arrive at an answer, we need to also define a threshold - that is, the point at which you say yes to attending the party. Using the assignment values above, we could say that with a threshold of '2', you would need two of the three considerations to be worth '1' to result in you attending the party.
For example, good weather and a short journey to the party would result in two '1' values, enough to hit the threshold of the node and activate it to pass on its signal. If the weather is poor and your friends are not attending, the input values would fail to hit the required threshold.
Every input is also given a weighting, which is used to figure out how much importance should be placed on the value of each input. Each input value is then multiplied with its weighting, with the sum of these calculations forming a single value either above or below the threshold.
While each of the considerations in our example could sway you one way or another, it's likely that you will place greater importance on one or two of the factors. If you are entirely put off by the idea of leaving the house during a heavy downpour, then the inclement weather will outweigh the other two considerations. In this example, we could place greater importance on the weather value by giving it a higher weighting:
- Weather = w5
- Friends = w2
- Distance = w2
If we imagine that the threshold has now been set to 6, poor weather (a 0 value) would prevent the rest of the inputs from reaching the desired threshold, and therefore the node would not 'fire' (you would decide against going to the party).
Admittedly it's a fairly simple example, but it provides a neat overview of how decisions are made based on the weight of evidence provided. If you're to extrapolate this to, say, an image recognition system, the various 'considerations' (inputs) would be the dismantled characteristics of a given image, whether that's colour, size, or shapes. A system training to identifying a dog, for example, may give greater weighting to shapes, or perhaps colour.
When a neural network is in training, the weights and thresholds are set to random values. These are then continually adjusted as training data is passed through the network until a consistent output is achieved.
Benefits of neural networks
Neural networks have the ability to learn organically. That is, the outputs from a neural network aren't completely limited by the inputs; artificial neural networks can generalise inputs, making them valuable for pattern recognition systems.
They can also find shortcuts to achieve computationally intensive answers. Artificial neural networks can infer relations between data points, rather than expecting for records in a data source to be unambiguously connected.
They can also be fault-tolerant. When neural networks are scaled over multiple systems, they can route around missing nodes that can't communicate. In addition to routing around parts of a network that no longer functions, artificial neural networks can recreate data by inference and help determine non-functioning nodes. This is useful for self-diagnosis and debugging of a network.
However, perhaps the biggest advantage deep neural networks provide is the ability to process and cluster unstructured data, such as pictures, audio files, video, text and numerical data. Given the analytical hierarchy, where each layer of nodes trains on the output of the previous layer, deep neural networks are capable of handling vast quantities of this unstructured data in order to find similarities before it reaches a human.
Examples of neural networks
There are many examples of neural network applications that take advantage of its ability to derive meaning from complex or inexact data.
Image recognition Artificial neural networks can solve problems such as analysing photos for specific objects. Such algorithms can be deployed to tell dogs from cats. More importantly, neural networks have been deployed to diagnose cancers using only cell shape information.
Financial Neural networks have been used to figure out exchange rate forecasting and stock performance and selection prediction for nearly 30 years. Neural networks also are used to determine credit scores, learning to correctly identify good or poor credit risks.
Telecommunications Neural networks have been used in telecoms firms to optimise routing and quality of service by evaluating network traffic in real-time.