Google It All

Wednesday, April 1, 2009

Neural networks and artificial intelligence in robotics

When talking of artificial intelligence(AI) many people think that neural nets should be as intelligent as human brain. Some people don’t even imagine how widely they are used in their life. Lets narrow us to something more simple and understandable.

The most exiting usage of AI is robotics. Today isn’t very hard to build simple robot with few sensors and couple motors. But harder part is to make it react to real world as you expect to be. Usually when programming robot brain usually there is checking sensor states and reacting on particular circumstances like hitting the wall, line on the ground and so on. But more sensors robot has more complex reactions may be. Programming of more complex systems may be pain without using simple neural networks.

In neural networks we have two subjects: “knowledge” and “learning”. This means that intelligent systems has some knowledge,or so called experience and ability to learn and improve. Lets have an example: Suppose we have T form maze. In this maze there is a mouse. In one side of T there is electric shock and in another side si a cheese. During some tries mouse will learn which side to choose in order to avoid electric shock and get cheese. You see – wee have touched both subjects: learning and knowledge. Speaking of science on first try probability of choices ara 50×50 percents, but after repeat tries probability grows due to experience gained. Everything seems fine until we face hardware – a robot. How to make robot feel hunger, anger, thirst, pain, satisfaction?

We human have these standard reflexes on birth brought by genes. Using them we grow and learn. Once you burned a hand in oven, you will always remember how painful it is and try to avoid the heat. With artificial intelligence there is almost the same. Just in different level. In modern world AI is making first steps in understanding how our conscious works, how neurons interact and how brain works.

In digital electronics neuron could be interpreted as multiple input AND, OR or XOR element. But in reality neuron is analogue element with multiple inputs with different sensitivities. Sum of these input signals defines the activity of neuron. The output signal of neuron may be processed as rezult or forwarded to another neuron input.

In general neural network is a set of interconnected elements where each of them has their own input signals and outputs some resulting signal. For instance simple robot platform:





Mathematically everything is possible to describe with formula: Outputs=f(Inputs),

Function may be any logical algorithm, finite state algorithm or simply as a set of operations of any programming language. But understand, that algorithm isn’t a reaction to one or another input, but simply describes method which is used by neural network. Teaching neural network is done by examples: network inputs are affected by some actions and output signals are compared to our expected reaction. If it differs – then we get so called an “error”. In order to reduce this error sensitivities of inputs are reduces so, that error would be minimal. This process is repeated many times until network reacts as expected.

Some science has to be done while choosing right structure of neural networks. If neural network will be too small, then it will be ineffective and it won’t be able to learn what you want. If there will be too many neurons, then learning can take much more time then expected.

After initial training - neural network may be used to control robot platform. It can learn by itself reacting to real world objects. For instance: it can learn to find the most effective way to turn to light with minimal collision number and so on…

This is very narrow area we have touched in this article. Building effective neural networks require some knowledge and experience. But such simple solutions can be good starting point.

Looking further there are many more interesting things that touches neural networking like genetic algorithms. They are used to copy real world example, where it acts as population of several neural networks and can duplicate and form effective neural net that is most effective for particular purposes. But this is early to talk about artificial intelligence as it is more likely artificial reflex.

No comments: