Intelligent Computers via Self-Indulged Experience

Mankind took centuries to learn to fly; yet a computer figured it out in a few hours. In another case, a laptop running over a weekend can design dozens of electronic circuits that has taken mankind years to work out. With these capabilities, the general public still perceives a computer as a number cruncher or that computers need human operators before anything useful can be produced. That perception may change in the not too distant future, because some machines are teaching themselves about their environment and how to solve real world problems, and they are learning at an alarming rate.

So how is this possible? How do machines learn for themselves? What are the capabilities of these machines and what accomplishments have these computers made to date? How will these systems affect jobs in engineering, research and development and what impact will they have on the product concept-to-market development cycle? Could these systems have an impact on home activities and what about their impact on society as a whole? A lot of questions for an emerging technology.

First, a distinction should be made between Artificial Intelligence and Machine Intelligence. The general public has grown to accept Artificial Intelligence as a machine that exhibits human-like characteristics. A good example of this would be the recent film "AI - Artificial Intelligence. Machine intelligence, on the other hand, does not need to demonstrate human characteristics, but it does need to have the ability to learn and the ability to apply what is has learned in a changing environment to meet its program goal.

At first, one may think that machine learning is not so much different from the human learning process. For the most part, humans learn from personal experience or from shared experiences via dialog or written documentation. However, in the past a computer has not had the programming to perform this complex task of learning. But that learning handicap is in a state of change.

Human Learning

Before addressing the techniques of machine learning, it may be helpful to understand a few steps in human learning. The shared experiences of friends, colleagues or writers are easy to grasp but perhaps are not fully understood and appreciated. On the other hand, personal experiences tend to be the best instrument for learning. Here more of the senses and mental processes are involved in the learning process. In short, the mind assimilates the sensory data of the situation and processes it into useful information. Contemplation of the information yields knowledge about how a system works or how a situation came about. Thus raw data leads to information that leads to knowledge, and with an accumulation of knowledge, some gain wisdom.

But let's take a closer look at the data-information-knowledge process. Let's say you have a problem to solve. A problem can be considered a system of interacting elements. First, you make your observations and collect raw data about the system, simple enough. Next, the process of turning data into information has a couple of steps. First, repetition or a constant rate of change has to be observed in the data so a pattern can be established. The pattern will lead you to clues as to how the system works.

Analysis of these clues helps you understand how the system works and points you in the direction of a possible solution. Once you understand how a system works, you have gained the knowledge to formulate a solution to correct the initial problem. You test your solution and repeat the cycle by making observations and gather raw data about the changed system. As you can see, human learning and problem solving is an iterative and analytical process that may take one cycle or may take several cycles, depending on the complexity of the problem.

Machine Learning

The machine learning process seems to be more of a brute force approach. Current techniques used in machine learning are referred to as genetic programming, and involve three primary areas called natural selection, crisscross and mutation. The names seem to stem from the steps genetic evolution takes in nature. A very good paper addressing this technique can be found in the Feb, 2003 issue of Scientific American at

In the case of machine intelligence, a computer will run a program that will first define a high level description of what task the solution is expected to accomplish. Also incorporated in the program logic is a means of measuring how well the derived solutions match the prescribed task. Initialization of the system starts with the program randomly generating many possible solutions. The program will evaluate this initial population of solutions and will only keep those with higher levels of alignment with the desired results. This process of eliminating solutions is the first step of the genetic evolution and is called "natural selection."

In the mathematical or computer world, solutions (formulas) are always comprised of constants and variables combined in some structured order. In the next step of genetic programming, the program will perform a "crisscross" between elements of the solutions. The process involves swapping the constants or variables or a collection of both between the remaining solutions.

For example, one solution may have a formula of 3a(a-2) and another solution may have a formula of 2a(5-a), so the resulting crisscross may result in 3a(5-a) and 2a(a-2) respectively. Then the program will evaluate this new generation of solutions along with the original solutions that were kept from the first process and only the ones with higher levels of alignment will be kept for the next phase.

The final genetic process is a "mutation" where the program will alter the value of the constants or variable of a solution. For example, one solution may be 3a(a-2) and after the mutation process it may become 2a(a-1). Here again the carryover solutions along with the mutated solutions will be evaluated and only those with the higher level of alignment will be kept. This cycle can repeat itself many times over until the desired results are obtained.

Golem Project

The capabilities and accomplishments of this programming approach may be best illustrated in the following three examples. The Golem project (Genetically Organized Lifelike Electro Mechanics) that made the news a while back is one of the best examples of machine intelligence and problem solving using genetic programming. In this project, the researchers set up a genetic programmed system and tied it into a rapid prototyping machine that fabricated the computer-generated parts. The object of this project was to create a computer-conceived robot that could propel itself along a flat plane. The computer didn't work with formulas, it worked with tubes that could be formed into various shapes and pistons that would provide the movement. After several generations, the best model that emerged looked like an arrow. There was a piston in the shaft of the arrow that provided propulsion. Another model had a pyramid shape that had a bar at the base with a spike on the end that was used to pull the structure along. Additional information can be found at the following link Stories/092000/Evolutionary_Robots.html. (Note: what appear to be spaces in this link are really underline characters.)

The Golem software was released to the public and some 30,000 individuals participated in the project over a distributed network protocol where various designs could be shared with all. Currently, the Golem project has concluded and scientists have determined that no further enhancements can be made by adding additional computation time or power. The researchers are now pursuing a new direction in the evolutionary process by focusing on ideas based on modularity, regularity, hierarchy, symbiosis and co-evolution. The program that was used to generate many of their models can still be downloaded and is found at /pr/golem/download.html.

Practical Designs

Some practical accomplishments of machine intelligence are found in the first referenced URL link. Here a system was set up to design a variety of electronic circuits. Instead of numbers, variables and formulas, this program was given resistors, capacitors, inductors (coils) and transistors. And using the same genetic programming process, it was able to replicate many of the human designed circuits. Some of these circuits worked better then the human designed ones, and the researcher will be filing patents for these computer-designed circuits. Some of the circuits have baffled the researchers because they don't understand how the circuits work and they do work as good if not better than the human designed ones.

One of the systems was set up to use program code instead of electrical parts and it derived the programming logic for a Proportional, Integrative and Derivative or PID controller (a device that functions like a control for industrial equipment). The resulting program code performed superior to the device that had been around since 1942, and had only been improved once in 1995. From this last example, it should be clear that the strength of genetic programming is that it is free to depart from the burden of traditional thinking and by doing so it will derive many novel designs not previously considered.

Learning To Fly

The third and most interesting example of machine learning involves a computer that taught itself to fly. August, 2002 Reuters released a story where a Swedish research scientist set up an experiment to see if a computer could learn to fly. In the experiment the researchers built a robot with lightweight balsa wings covered with plastic sheet. The robot was attached to 2 vertical poles in order to keep it stationary but allow it vertical motion. The robot was connected to a computer that could send random instructions to it at a rate of 20 instructions per second. The wings of the robot could move up and down, forward and backward, and twist in either direction. The computer would send instructions to the robot that would produce a small wing movement in one of these directions. The aim of the computer program was to produce the maximum lift in the robot by sending a string of wing movement instructions. There was a feedback sensor that would indicate to the program how successful the instructions were.

At first, the instructions only produced twitching and jerking movements. The computer program was given the ability to randomly change the instructions, consistent with genetic programming, in order to derive the best combination of instructions for maximum lift. After about 3 hours,the computer came up with the right combination of movements that enabled the robot to fly and achieve the maximum elevation. The news story can be found at the following link. (Note: what appear to be spaces in this link are really underline characters.)

The most intriguing thing about this experiment is that the machine cheated at its first attempt, which shows the unpredictability of the machine intelligence. Apparently the computer instructed the wings to point vertically down so the robot would stand on the tips of the wings, thereby achieving an elevation equal to the length of the wings. Another case where the computer cheated occurred when the wing movements found some objects that had been left too close to the experiment and the robot used them for leverage to gain elevation.

Of course, cheating is only in the eyes of the human, for all the computer was trying to do was satisfy its programming requirements. After correction of the surprise strategies, the computer finally derived a flapping technique and flew.

Business Impact

With respect to the affects on engineering, research and development, we can expect to see the product-to-market cycle time decrease dramatically, and we can expect to see a wave of novel products. These systems are still in their infancy and the effects may not be felt until there is broad distribution of the technology. These genetically programmed machines may have the most effect on the white-collar jobs in research, engineering and development. The impact of these machines on this industry may be equal to the impact robotic arms had on the auto industry. In the past the white-collar jobs have been somewhat secure, depending on the industry and economy. But with broad distribution of genetically programmed computers, there may be a need for retooling of certain occupations.

Closer To Home

It shouldn't be difficult to believe that these systems will infiltrate our homes as computer programmers harness the process of this technique and start to imbed machine intelligence into their programs and appliances. We may first see them in video games, but they could easily be adapted to entertainment centers and later, general home appliances. Eventually, they will appear in public places to serve the public interest. Finally, it is interesting to note that a computer has a highly accurate internal clock that dwarfs the precision of any timepiece worn by a human. Yet the computer has no sense of time. It goes from task to task unmoved if it is Monday morning at 8am or Saturday night at 9pm. It just keeps churning away looking for the best solution to meet the boss's job requirement.