Sunday, March 25, 2012

Artificial Intelligence

In many science fiction stories, there are electromechanical devices, robots and computers who are at least as smart as human beings and sometimes smarter. But, what is the reality? Is it possible to build a machine that "thinks" as well or better than a human being? Or is this simply an impossible dream and will never happen? If artificial intelligence (abbreviated AI) is possible, how close are the computers of today towards that goal?

Like most questions of this sort, it depends upon the definition of artificial intelligence. There is no consensus even within the AI scientific community. Elaine Rich in her book, Artificial Intelligence, defines it this way: "Artificial intelligence is the study of how to make computers do things at which, at the moment, people are better." One good example of something that fits this definition is chess playing. Once it was thought that people who played darn good chess were such geniuses that no machine could ever beat them. Perhaps they are. But in 1997 the supercomputer Deep Blue beat the world chess champion, Gary Kasparov. Nonetheless, chess aside, Gary Kasparov can do many things that Deep Blue cannot. A chess program go only do one thing well, and that is play chess. It is like an idiot savant.

A better definition of what we would expect from an AI is as follows: "Artificial intelligence is the part of computer science concerned with designing intelligent computer systems, that is, systems that exhibit the characteristics we associate with intelligence in human behavior." This quote is from Avron Barr and Edward A. Feigenbaum's book, The Handbook of Artificial Intelligence. But what are these characteristics? In the book, Godel, Escher, Bach: An Eternal Golden Braid, by Douglas R. Hofstadter, Hofstadter gives the following "essential abilities for intelligence" (by the way, I highly recommend this book, which is entertaining as well as informative):

Ÿ "To respond to situations very flexibly."

Ÿ "To make sense out of ambiguous or contradictory messages."

Ÿ "To recognize the relative importance of different elements of a situation."

Ÿ "To find similarities between situations despite differences which may separate them."

Ÿ "To draw distinctions between situations despite similarities which may link them."

The problem is that the abilities, such as those listed above, that are easy for human beings, are very difficult to program into a computer. Nonetheless, progress has been made. Some areas of research where machine intelligence has come a long way are:

Expert Systems: Software designed to act as an expert in a particular area of expertise, for example, an income tax consultant. I happen to use one of these every year to do my taxes and believe me, it's a lot better than trying to make sense of the U.S. Tax Code yourself.

Natural Language Processing: Software that understands and/or generates a natural language such as English. Translation software also fits into this category. I have more to say on this subject below.

Speech Recognition: Hardware and software that understands human speech. I've noticed that lately that many automatic phone answering services now use this technology.

Computer Vision: Hardware and software that can interpret visual images.

Robotics: A robot is a machine that can perform manual tasks that previously were performed by a human being, such as vacuuming a rug or assembling automobiles or dancing. I have Rhomba vacuum which does a tolerable job, but sometimes get stuck under low hung furniture.

Computer Assisted Instruction: Teaching machines. This was kind a fad for a while, but doesn't seem to be used much anymore.

Automatic Programming: Software that can create other software.

Planning and Decision Support: Software that aids planning.

Expert Systems

"An expert system is a class of computer programs developed by researchers in artificial intelligence. In essence, they are made up of a set of rules that analyze information (usually supplied by the user of the system) about a specific class of problems, as well as provide analysis of the problem(s), and, depending upon their design, recommend a course of user action in order to implement corrections."

I got this definition from Wikipedia in an article that gives a good introductory explanation of this branch of artificial intelligence. For a deeper understanding what is meant by an expert system, you may want to read the article. I'll try to summarize as briefly as I can.

The idea behind expert systems is to provide help usually provided by an expert in a particular field, such as software troubleshooting or diagnosing an illness in a medical patient. Three features of expert systems are rules of thumb, fuzzy logic and a data base of solutions. When an expert in a field, such a physician, goes about solving a problem, such a determining what ails a patient, he or she usually has several rules-of-thumb that he or she uses. Depending upon the answers to key questions about the problem, the expert knows what the solution is by applying a rule of thumb. For example, suppose a patient complains about frequent severe headaches. After asking questions about the headaches and other accompanying symptoms and perhaps performing some tests, the doctor may determine that the person is suffering from migraines and prescribe pills. In expert systems, these rules of thumb are coded into the software.

Fuzzy logic is logic based on approximations rather than formal logic. It takes into account such vague statements as "almost," "nearly," and so forth, and manipulates them to come up with an approximate answer. For example, if a patient asks how much pain he or she is in and replies "not so much," this is considered less pain than "it hurts terribly." Certain conclusion may be drawn by which answer is given.

Expert systems also usually have large data bases which can be readily accessed using the rules of thumb and fuzzy logic.

Anyone who has gone to a software web site and used their self troubleshooting system has used an expert system. Computer and video games also use expert systems.

In my novel, The Isaac Project (available at Renaissance Pageturner Editions, http://www.pageturnereditions.com), the core software of the artificial intelligence being developed is an expert system.

Natural Language Processing

If you were going to design a humanoid robot, one of the most important abilities it must have is the ability to understand human speech, at least to the point where it could understand the commands you give it. It would also be nice if it would talk back to you. To be able to communicate with your computer in a normal conversational way would also be a good thing. You may have also noticed that lately, when you call certain businesses, you don't necessarily have to press buttons to enter information to their automated answering systems. Some allow you to speak the required information. All these artificial intelligence tasks fall under the province of natural language processing. Other tasks that require natural language processing are translation from one human language to another, transforming text to speech, answering questions, and retrieving information.

Natural language processing is the study and software development associated with the automatic generation and understanding of natural human languages. Natural language generation software converts information from computer data bases into normal human language. Natural language understanding software converts human language into forms that a computer can understand and manipulate.

One of the earliest systems, called SHRDLU, used a restricted world of blocks. It used a small restricted vocabulary to manipulate blocks of different shapes and sizes on a computer monitor screen. Because it worked extremely well, researchers were excessively optimistic about developing natural language software. However, it turned out that in the real world, language processing was much more difficult than supposed.

Some of the problems are: Ambiguity. For example when it is not clear which word in a sentence an adjective or adverb is modifying. Some strings of words can be interpreted in many ways. In spoken words, sounds that represent successive letters blend into each other. Some written languages, such as Chinese and Thai, do not signal word boundaries. Most words have several meanings. The grammar for natural languages is ambiguous. Typing errors, speech irregularities and OCR errors. Some sentences don't literally mean what they say.

Many of these problems have been partially or wholly solved, but artificial intelligence experts still have a long way to go before you can have an intelligent conversation with your computer or friendly robot.

I note with interest the various web sites with talking heads called chatbots. I urge you to visit one of these sites to learn what a natural language artificial intelligence artifact can do. A popular one is called The ALICE Chatbot Foundation.


No comments: