Invisible Species
With the increasingly important role of intelligent machines in all phases of our lives—military, medical, economic and financial, political—it is odd to keep reading articles with titles such as
Whatever Happened to Artificial Intelligence?
This is a phenomenon that Turing had predicted: that machine intelligence would become so pervasive, so comfortable, and so well integrated into our information-based economy that people would fail even to notice it.
It reminds me of people who walk in the rain forest and ask, “Where are all these species that are supposed to live here?” when there are several dozen species of ant alone within fifty feet of them. Our many species of machine intelligence have woven themselves so seamlessly into our modern rain forest that they are all but invisible.
Turing offered an explanation of why we would fail to acknowledge intelligence in our machines. In 1947, he wrote: “The extent to which we regard something as behaving in an intelligent manner is determined as much by our own state of mind and training as by the properties of the object under consideration. If we are able to explain and predict its behavior we have little temptation to imagine intelligence. With the same object, therefore, it is possible that one man would consider it as intelligent and another would not; the second man would have found out the rules of its behavior.”
I am also reminded of Elaine Rich’s definition of artificial intelligence, as the “study of how to make computers do things at which, at the moment, people are better.”
It is our fate as artificial intelligence researchers never to reach the carrot dangling in front of us. Artificial intelligence is inherently defined as the pursuit of difficult computer-science problems that have not yet been solved.
“I think you should be more explicit here in step two.”
THE FORMULA FOR INTELLIGENCE
The computer programmer is a creator of universes for which he alone is the lawgiver.... No playwright, no stage director, no emperor, however powerful, has ever exercised such absolute authority to arrange a stage or a field of battle and to command such unswervingly dutiful actors or troops.
—Joseph Weizenbaum
A beaver and another forest animal are contemplating an immense man-made dam. The beaver is saying something like “No, I didn’t actually build it. But it’s based on an idea of mine. ”
—Edward Fredkin
Simple things should be simple; complex things should be possible.
—Alan Kay
What Is Intelligence?
A goal may be survival—evade a foe, forage for food, find shelter. Or it might be communication—relate an experience, evoke a feeling. Or perhaps it is to partake in a pastime—play a board game, solve a puzzle, catch a ball. Sometimes it is to seek transcendence—create an image, compose a passage. A goal may be well defined and unique, as in the solution to a math problem. Or it may be a personal expression with no clearly right answer.
My view is that intelligence is the ability to use optimally limited resources—including time—to achieve such goals. There is a plethora of other definitions. One of my favorites is by R. W Young, who defines intelligence as “that faculty of mind by which order is perceived in a situation previously considered disordered.”
15
For this definition, we will find the paradigms discussed below quite apropos.
Intelligence rapidly creates satisfying, sometimes surprising plans that meet an array of constraints. The products of intelligence may be clever, ingenious, insightful, or elegant. Sometimes, as in the case of Turing’s solution to cracking the Enigma code, an intelligent solution exhibits all of these qualities. Modest tricks may accidentally produce an intelligent answer from time to time, but a true intelligent process that reliably creates intelligent solutions inherently goes beyond a mere recipe. Clearly, no simple formula can emulate the most powerful phenomenon in the Universe: the complex and mysterious process of intelligence.
Actually, that’s wrong. All that is needed to solve a surprisingly wide range of intelligent problems is exactly this: simple methods combined with heavy doses of computation (itself a simple process, as Alan Turing demonstrated in 1936 with his conception of the Turing Machine,
16
an elegant model of computation) and examples of the problem. In some cases, we don’t even need the latter; just one well-defined statement of the problem will do.
How far can we go with simple paradigms? Is there a class of intelligent problems amenable to simple approaches, with another, more penetrating class that lies beyond its grasp? It turns out that the class of problems solvable with simple approaches is extensive. Ultimately, with sufficient computational brute force (which will be ample in the twenty-first century) and the right formulas in the right combination, there are few definable problems that fail to yield. Except perhaps for this problem: What is the complete set of unifying formulas that underlies intelligence?
Evolution determined an answer to this problem in a few billion years. We’ve made a good start in a few thousand years. We are likely to finish the job in a few more decades.
These methods, described briefly below, are discussed in more detail in the supplementary section in the back of this book “How to Build an Intelligent Machine in Three Easy Paradigms.”
Let’s take a look at a few plain yet powerful paradigms. With a little practice, you, too, can build intelligent machines.
The Recursive Formula: Just Carefully State the Problem
A recursive procedure is one that calls itself. Recursion is a useful approach to generating all of the possible solutions to a problem, or, in the context of a game such as chess, all of the possible move-countermove sequences.
Consider the game of chess. We construct a program called “Pick Best Move” to select each move. Pick Best Move starts by listing all of the possible moves from the current state of the board. This is where the careful statement of the problem comes in, because to generate all of the possible moves we need to precisely consider the rules of the game. For each move, the program constructs a hypothetical board that reflects what would happen if we made this move. For each such hypothetical board, we now need to consider what our opponent would do if we made this move. Now recursion comes in, because Pick Best Move simply calls Pick Best Move (that is, itself) to pick the best move for our opponent. In calling itself, Pick Best Move then lists all of the legal moves for our opponent.
The program keeps calling itself, looking ahead to as many moves as we have time to consider, which results in the generation of a huge move-countermove tree. This is another example of exponential growth, because to look ahead an additional half-move requires multiplying the amount of available computation by about five.
Key to the recursive formula is pruning this huge tree of possibilities, and ultimately stopping the recursive growth of the tree. In the game context, if a board looks hopeless for either side, the program can stop the expansion of the move-countermove tree from that point (called a “terminal leaf” of the tree), and consider the most recently considered move to be a likely win or loss.
When all of these nested program calls are completed, the program will have determined the best possible move for the current actual board, within the limits of the depth of recursive expansion that it had time to pursue.
The recursive formula was good enough to build a machine—a specially designed IBM supercomputer—that defeated the world chess champion (although Deep Blue does augment the recursive formula with databases of moves from most of the grand-master games of this century). Ten years ago, in the
Age of Intelligent Machines,
I noted that while the best chess computers were gaining in chess ratings by forty-five points a year, the best humans were advancing by closer to zero points. That put the year in which a computer would beat the world chess champion at 1998, which turned out to be overly pessimistic by one year. Hopefully my predictions in this book will be more accurate.
17
Our simple recursive rule plays a world-class game of chess. A reasonable question, then, is, What else can it do? We certainly can replace the module that generates chess moves with a module programmed with the rules of another game. Stick in a module that knows the rules of checkers, and you can also beat just about any human. Recursion is really good at backgammon. Hans Berliner’s program defeated the human backgammon champion with the slow computers we had back in 1980.
18
The recursive formula is also a rather good mathematician. Here the goal is to solve a mathematical problem, such as proving a theorem. The rules then become the axioms of the field of math being addressed, as well as previously proved theorems. The expansion at each point is the possible axioms (or previous proved theorems) that can be applied to a proof at each step. This was the approach used by Allen Newell, J. C. Shaw, and Herbert Simon for their 1957 General Problem Solver. Their program outdid Russell and Whitehead on some hard math problems, and thereby fueled the early optimism of the artificial intelligence field.
From these examples, it may appear that recursion is well suited only for problems in which we have crisply defined rules and objectives. But it has also shown promise in computer generation of artistic creations. Ray Kurzweil’s Cybernetic Poet, for example, uses a recursive approach.
19
The program establishes a set of goals for each word—achieving a certain rhythmic pattern, poem structure, and word choice that is desirable at that point in the poem. If the program is unable to find a word that meets these criteria, then it backs up and erases the previous word it has written, re-establishes the criteria it had originally set for the word just erased, and goes from there. If that also leads to a dead end, it backs up again. It thus goes backward and forward, hopefully making up its “mind” at some point. Eventually, it forces itself to make up its mind by relaxing some of the constraints if all paths lead to dead ends. After all, no one will ever know if it breaks its own rules.
Recursion is also popular in programs that compose music.
20
In this case the “moves” are well defined. We call them notes, which have properties such as pitch, duration, loudness, and playing style. The objectives are less easy to come by but are still feasible by defining them in terms of rhythmic and melodic structures. The key to recursive artistic programs is how we define the terminal leaf evaluation. Simple approaches do not always work well here, and some of the cybernetic art and music programs we will talk about later use complex methods to evaluate the terminal leaves. While we have not yet captured all of intelligence in a simple formula, we have made a lot of progress with this simple combination: recursively defining a solution through a precise statement of the problem and massive computation. For many problems, a personal computer circa end of the twentieth century is massive enough.
Neural Nets: Self-Organization and Human Computing
The neural net paradigm is an attempt to emulate the computing structure of neurons in the human brain. We start with a set of inputs that represents a problem to be solved.
21
For example, the input may be a set of pixels representing an image that needs to be identified. These inputs are randomly wired to a layer of simulated neurons. Each of these simulated neurons can be simple computer programs that simulate a model of a neuron in software, or they can be electronic implementations.
Each point of the input (for example, each pixel in an image) is randomly connected to the inputs of the first layer of simulated neurons. Each connection has an associated synaptic strength that represents the importance of this connection. These strengths are also set at random values. Each neuron adds up the signals coming into it. If the combined signal exceeds a threshold, then the neuron fires and sends a signal to its output connection. If the combined input signal does not exceed the threshold, then the neuron does not fire and its output is zero. The output of each neuron is randomly connected to the inputs of the neurons in the next layer. At the top layer, the output of one or more neurons, also randomly selected, provides the answer.