Friday, September 14, 2007

1990 Systems design takes an evolutionary turn

Systems design takes an evolutionary turn

COMPUTER scientists in Britain have borrowed concepts from the theory of evolution to create software that can match the design of a computer system to the problem it is asked to solve.

The project, called Gannet (Generation and Adaptation of Neural Networks by Evolutionary Techniques), was inspired by the ideas of Richard Dawkins, as explained in his book The Blind Watchmaker. The project aims to improve the rule of thumb approach that usually dictates the design of computer systems known as neural networks.

These are computer programs designed to represent a number of processing nodes connected in layers. The nodes collaborate to solve problems in a similar way to the human brain. The main advantage of neural networks is that they can be taught to do those things which traditional number-crunching computers find difficult, such as recognising a face, or detecting the presence of explosives in a piece of luggage.

In his book, Dawkins uses a computer program to show how it is possible to develop the features of simple life forms (which he calls 'biomorphs') by choosing as parents those biomorphs that possess desirable characteristics. Piling success on success, fully-formed features develop after remarkably few generations. The aim of Gannet is to develop software that will use a similar iterative process to recognise neural networks that perform well, and exploit these to build a subsequent generation of networks that performs even better.

The team working on Gannet includes specialists from Logica and Meiko, two British computer companies, the engineering department of the University of Cambridge and the physiology department of the University of Oxford.

Clifton Hughes, a principal consultant at Logica's R&D centre in Cambridge, explains that the success of a neural network depends on parameters which dictate the links between its processing nodes (computer scientists can arrange any number of nodes in any number of layers), and the way the processors talk to each other.

Computer scientists usually choose these parameters by informed guesswork, because they have only a limited understanding of why certain designs work best on certain problems. It is also virtually impossible to predict the exact size and complexity of a network that will be required to solve any given problem. Often, as long as a neural network works, its designer will decide it is not necessary to tweak it to make it work better. This can mean that the network will be slow, or even fail to learn how to solve problems at all.

The Gannet program exploits an approach to programming known as 'genetic algorithms'. It starts by producing a pool of trial networks, the parameters of each differing only slightly from the next, and in controlled ways. The software asks each network to solve the problem at hand and monitors their performance. It then takes a proportion of the characteristics of each network as the blueprint for its next pool of networks. The amount by which each network is represented in this second pool will depend on how well it solves the problem.

The designer can dictate the criteria by which the software decides if a neural network is performing well. It might be chosen because it solves the problem quickly, because it uses only a limited number of processors, or because it performs well when trying to recognise a particular input.

'We can actually watch the process of evolution and see the population filling up with networks that will solve the problem, and those that cannot solve it dying off,' says Hughes. 'This way we can tell what it is that makes a network good at solving a problem.'

Hughes believes that Gannet will therefore help computer scientists to understand why certain designs are better than others, as well as producing the most effective neural network. He says the early results of this Pounds sterling 260 000 two-year project are encouraging enough for the team to begin plying their networks with increasingly difficult problems. The current system is written in a programming language called C, and runs on a series of powerful computers called transputers.