Artificial Neural Networks



What is an ANN?

In order to further the main aim of artificial intelligence (to create a computer system that mimics the human brain as well as possible), the artificial neural network was created as an example of the closest possible artificial intellect to a real brain.

The human brain consists of a huge collection of neurons (brain cells), each of which has a large number of connections to other neurons in the brain or the spinal cord. Electrical signals travel along these connections, and each neuron processes its inputs and generates a set of output signals which are then sent to neurons that it is connected to.

A neural network functions almost identically, except that there are far less neurons in the network: the human brain can contain many billions, but a neural network could not possibly contain this many with today's computer systems due to limitations in memory, disc space, and processor speed.

A large number of nodes (computer neurons) interact together in the same way as neurons in the brain, with many inputs coming into each neuron, which then produces one or more output signals to send to other nodes. Each node contains an activation function which determines how to process the incoming signals and to produce an output.


It's not JUST based on the human brain though, is it?

Quite right! While the concept of the neural network is based on the human brain, various other examples of this sort of idea have been found in nature. Of course in brains of other "higher organisms" (that is, animals which have human-like brains) but also in other behaviour.

Some animals have only primitive networks of nerves, which are very much like artificial neural networks. While the amount of nervous tissue present in animals like this (fish, insects etc.) is relatively small, they still manage to swim, fly or run in formation, hunt, attack, defend themselves and many other important actions that would take a huge amount of traditional programming to write (and a very strange processor, if we're talking about programming a fish!)

An example of a neural network operating in the real world between organisms (i.e. not inside the physiology of one particular organism) is an ant colony. Each ant has its own particular job, and it is told what to do by a complex interaction of other ants. Each single ant can only process several simple commands, but when you combine that with the number of different sorts of ants and their "programmability", it seems to be enough to allow the colony to effectively defend itself, ensure that its members have enough food to survive, and perform other important functions necessary to its survival.


What is an activation function?

The activation function is, in effect, an algorithm which decides what the particular neuron to which it belongs should do in reaction to inputs coming in from adjacent neurons. It places 'weightings' on all the inputs, mixes them together in some way known only to the activation function (or a strange biological reaction in real life) and spits out an answer, or many answers in the brain: each neuron is connected to many others. In a "multiple" situation such as the brain, each neuron may have a number of activation functions, each to decide the output sent to any of its neighbouring neurons.

Activation functions are not necessarily static: neural networks have a particularly useful ability - they can 'learn' the proper responses to particular situations. There are various ways of 'training' a neural network, some involving directly programming the neurons, but usually having something to do with pouring a huge amount of data through the system and having a separate program alter the weightings in each of the activation functions in order to produce the correct results as dictated by some outside idea.

For example, if you were predicting the stock market, you'd get the predictions from a few decades back, run them through the network, and try and adjust the weightings so that it would successfully predict which stocks to buy and which to sell at any given time. Once the neural network could successfully predict trends in pre-recorded data, put it into the real world, where, hopefully, it will implement the skills it has learned beforehand and make you money!


You mean we can make money with these?!

Yes ... sometimes! They aren't always accurate, and of course you have to find the proper program for the job. A team of researchers, amazingly enough, managed to make an AI program that would do stock market predictions rather well - check out the Genetic Algorithms page for more info on that.


What makes neural networks worthwhile?

  • Neural networks are particularly useful for situations where the relationship between inputs and outputs is complex and would be difficult to program.
  • Neural networks can adapt to different situations without specific programming.
  • Neural networks are fast and can withstand noise in data

  • There must be a downside, right?

    That's quite true! Think of how long it takes to "boot up" a human. The human brain continues to grow with the rest of the body up until around the age of 18-20 years, and during this time new neurons are continually being created and 'trained' for their own particular purposes (for example, speech or movement). It takes a long time for a human to learn to balance; around nine to twelve months to learn to walk, and much longer than that to teach one to use all of its senses properly (to understand spoken and written language, to talk etc.).


    All in all...

    Luckily, neural networks don't need to learn to do as much as a human does, and the senses available are far less confusing that sight, smell, taste, touch and hearing, but they are still slow to train. Once trained, they can solve problems very quickly (think of how a human brain reacts almost instinctively to billions of small changes in the environment) though, making them one of the most powerful and promising methods of artificial intelligence around. Main Map