Sunday, January 27, 2008

AI: Promise or Reality?

Artificial Intelligence (AI) is not a failed dream of creating a digital simulation of the human mind, but a very successful field, deeply integrated to the computing landscape – so deeply integrated, in fact, that we often fail to identify its contributions.

In part, AI's low profile is due to our own exaggerated expectations about anything that involves the word "Intelligence" – itself a controverted term. It is no surprise, then, that the field's most successful exponents usually hide their origins behind more specific titles, such as specialist systems (or "decision support"), pattern recognition, computer vision...

Then again, what is Artificial Intelligence? The field's scope is almost as hard to define as "intelligence" itself, but I came to a working definition which I find well suited:

Artificial Intelligence develops "dumb" solutions to problems that we humans solve in "intelligent" ways.

The classic example are chess playing programs, which most often implement some variation of this basic algorithm:
  1. Systematically generate all possible moves, all possible reactions for each move, all possible moves for each reaction... And so on, going as deep as allowed by the underlying machine's performance and the game's time constraints;

  2. In order to reduce the number of generated moves, use tips known from experience ("heuristics") to avoid or postpone trying certain move classes – for example, avoiding / postponing moves involving the King, which in chess is generally a bad idea;

  3. Use a defined metric (such as number of lost / taken pieces) or a data base of moves from previous games to rank the generated moves, and then choose the "best" according to the chosen criterion.

A human trying to play that way would be doomed to failure. Unless he had exceptional memory and math abilities, he would never be able to implement this strategy with the needed depth and consistency to make it effective. But for a computer finds it very easy, because it explores its two greatest strengths:
  • The ability to perform precise, lightning fast mathematical and logical calculations;

  • The ability to store large volumes of data with the highest fidelity and quickly retrieve them.

Computers are intellectual robots. They are not creative, but perform repetitive tasks much more efficiently than any human possibly could. Where mechanical solutions could be found to "intelligent" problems, AI was successful in solving them. It is the problems that are difficult to describe and specify methodical solutions for – in general, the problems that we solve "without thinking" – that give trouble to AI.

But then where are AI's success stories? We can cite a few:

Compilers

Compilers use results from symbolic logic (the technology that led MIT's AI Lab to its glory and fall) to identify and implement optimizations to the machine code. The Java virtual machine goes one step further, using statistical techniques to find the system bottlenecks and decide what to do.

Google

Google is the perfect example of how AI's successes, once they reach the mainstream, lose the "intelligent" label. The PageRank algorithm used by the search tool ultimately does no more than creating a giant graph and walking through it after nodes (pages) that comply to a query. Generating and walking over graphs of possible solutions (using all kinds of dirty tricks to restrict the graph size and the search scope) is AI's rice-and-beans.

Games

Year after year, game controlled characters become ever smarter. In some games, those characters already prepare ambushes, try to flank the player and even attempt strategic withdrawals. However there is no risk of these games gaining "life" and trying to conquer the world – the techniques that allow such sophisticated behaviours are similar to those used to create specialist systems, the same kind applied in the telephone and credit industries.

Windows On-line Help

Do you know the Windows On-line Help – the one that guides you through a sequence of questions and answers, and sometimes even finds a solution to your problem? That is a most trivial specialist system, which is a pity – with the knowledge and infrastructure of today, we could do it much better.

AI is a bit like robotics. Just as the successful robots of today are not androids, but specialized machines created to perform specific tasks (such as assembling cars), AI's success stories are in designing programs to solve complex but specific problems, not in reproducing Human intelligence. Obviously, just as robotics engineers insist on dreaming of humanoid chassis, we never stopped dreaming of digital minds – but while these dreams do not come true, there is a world of problems within our reach to solve.