KE SARA, SARA, what ever will be, will be …











{October 23, 2007}   Artificial Intelligence

Artificial Intelligence

What is Artificial Intelligence?

Artificial Intelligence is a very, very large and diverse field consisting of numerous AI-related sciences such as (hold your breath !) neuroscience, philosophy, psychology, robotics, linguistics – basically any research gravitated towards the artificial reproduction of the methods or results of human reasoning and brain activity (from The Artificial Intelligence Dictionary).

Then why is there so much Interest in AI?

There is so much interest in AI because of its wide-ranging applications – especially commercial ones. For example, researchers have written neural network software (software that employ internetwork of neurons to analyse data – similar to the human brain) that process stock market information to generate forecasts – highly accurate forecasts. Also, research in speech recognition could one day revolutionize the manner in which we communicate with electronic devices – we can tell them what do do, instead of having to press a multitude of tiny buttons. In fact, IBM’s OS/2 Warp 4.0 Operating System has built-in voice recognition capabilities – once voice recognition technology matures, this would be the rule, not the exception. Similarly, handwriting recognition technology allows us to write, instead of type. We no longer have to adapt to computers – computers will adapt to us. The applications are endless – Artificial Intelligence software can diagnose diseases (Expert Systems), coordinate machine systems (Fuzzy logic), aid in space exploration (intelligent robots remotely explore the planet Mars), translate documents between lanaguages (Natural Language Processing, NLP), etc. Just look at the impact of the virtual pet, Tamagotchi, on society today – and we have barely even touched the surface of mainstream applications of AI.


Genetic Algorithms

As with many other methods of artificial intelligence, the concept behind genetic algorithms is that nature has successfully created intelligence in the human race and so, if we follow as closely as possible the way intelligence forms in nature, we may possibly create something that can solve the sort of problems that “true intelligence” is required for. The aim of genetic programming is to ‘evolve’ an algorithm to suit a particular problem by random alterations and a system similar to cross-breeding of plants and animals.

So how do we make a genetic Algorithm?

In real life, most organisms (that is, those which consist of more than a single cell) have a number of chromosomes which contain many genes, blocks of DNA that store all the required information for the body to synthesize proteins. (Proteins are required to build muscles and other body tissues, as well as the plasma membranes which surround every cell in our bodies).

Humans have 46 chromosomes that code for every required protein in the body and contain all the information required to create an entirely new human being. The reason that all humans are different is that when gametes (sperm or eggs) are created (through the process called meiosis), a process called ‘crossing over’ occurs. This is where different chromosomes from an individual are ‘blended’ together, creating entirely new chromosomes which are still valid, and contain a mixture of many different characteristics from the individual.

Genetic algorithms use this concept to create programs that change in a semi-random fashion in order to work towards a particular goal. Firstly a series of programs are randomly created, and the ones that work the best (produce results the closest to the required ones) are “bred” together (their genetic material combined) and another series of programs is created. As before, the best-performing programs are picked out and the required qualities eventually become more and more focussed as more “generations” of programs are created.

What sorts of programming tasks are suited to genetic Algorithms?

If you think of what has happened in nature, where an entire race of intelligent, thinking and feeling beings has been created by a very similar method, starting with nothing but a mixture of various atmospheric gases and lightning (it has been shown that it is possible to create amino acids, the building blocks of proteins, by passing electric current through a mixture of gases thought to exist on the world millions of years ago), who knows what might appear though the genetic algorithm system?

It’s very good at finding solutions to problems that are difficult or impossible to solve using “traditional” programming – things along the lines of the “travelling salesman” problem and factoring large prime numbers, where there is no obvious solution other than just intuitively trying various values that may be correct.

* Maze Solving

* Sorting

* Games

* Money

* Robotics

And what USEFUL things can you do with Genetic Algoritms?

Hmm, that’s a harder question ! Well, all of the above problems have applications in real life!

  • The stock market prediction should speak for itself! <grin>
  • If a perfect solution to the “travelling salesman” problem could be found, this should lead to a method to factorise large primes, and thus break the currently most sophisticated encryption algorithms.
  • Chess has always been seen to be a measure of intellect and strategic ability. Skills learnt in the process of playing games such as chess and the Japanese “go” are meant to translate well into leadership ability or the ability to command well in a war or another strategic exchange – a large-scale version of the game. When the perfect unbeatable chess-playing program evolves, is trained or whatever, it may turn out to be effective in world war three … or whatever !

What sorts of problems are common with genetic algorithms?

When applied to problems more complicated than playing tic-tac-toe or navigating a vehicle around a single maze, the program required begins to get more and more complicated, and as its length increases arithmetically, the number of possible programs increases geometrically. Thus the process of evolving solutions to complex problems can take a huge amount of time: the probability of randomly hitting the correct solution if you generate a program decreases as the problem increases in complexity, and thus the process of iterating towards a perfect solution can take a much longer time.

All in all….

As with all artificial intelligence, genetic algorithms show a lot of promise for the future, even though they may not be particularly helpful at the moment. Stock market predictions and control mechanisms for robotics stand to benefit from these, as genetic algorithms have already made amazing “discoveries” (how to make a robot ‘limbo’ under a pole and so on … see above) and as computers get faster they should continue in this manner.


Artificial Neural Networks

What is Artificial Neural Networks?
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, 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 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!

We can make money with these things???
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.).

Advertisements


Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

et cetera
%d bloggers like this: