Showing posts with label computers. Show all posts
Showing posts with label computers. Show all posts

Saturday, April 7, 2012

Artificial Intelligence and Emotions

In an article in Scientific American by the skeptic Michael Shermer, he wrote about the IBM supercomputer Watson. In it he asks the question, "Does Watson know that it won Jeopardy?" Did it take pride in its victory? That is an interesting question that goes to the heart of whether an artificial intelligence will ever become self-aware. Shermer asked the first question of IBM's David Ferucci, who replied, "Yes. Because I told it that it had won."

In truth, there is no way to test whether an artificial intelligence or any entity is self-aware. An AI can be programmed to say that it is self-aware, but that proves nothing. We know that we ourselves are self-aware, and we assume that all humans are self-aware. Actually, the mechanism of our self-awareness has not been determined yet. There are many theories, but no definitive answer.

As far as the other question, "Did it take pride in its victory," pride is an emotion, and like all emotions has value to the entity "feeling" it. An AI or robot that was programmed to simulate the "pride" emotion may know that its methodology for solving whatever spurred the "pride" emotion is sound.

In many science fiction stories and movies, robots are shown as these analytical beings that think only in terms of logic with no emotional content at all. In my mind a robot with these characteristics would be badly designed. In designing an AI the designer should mimic nature. Emotions have a definite function in humans and animals and should have in AIs and robots as well. For one thing simulated emotion helps the AI relate to human beings as was pointed out in the movie, 2001, A Space Odyssey, in a scene where Astronaut Bowmen is being interviewed by the press.

Depending upon the use the robot is put to, different simulated emotions should be a part of its software. "Fear" is useful emotion for any entity to keep it out of danger. "Loyalty" to its master is another emotion that most robots should have. A robot that baby-sits children should simulate "love" for those children. A soldier robot should "hate" the enemy.

I used quotes around the emotions because AI emotions would not be identical to emotions felt by human beings, but would trigger responses similar to the response these emotions trigger in humans and animals.

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.


Saturday, December 3, 2011

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.


Saturday, March 12, 2011

Computers That Learn

One of the great themes of science fiction is the computer that becomes as smart or smarter than a human being although not many novels and movies have been made in which this is the central theme. Off hand I can only think of a couple of movies, Colossus the Forbin Project and HAL in 2001, A Space Odyssey. In most science fiction the thinking machines are robots. At present computers can do many marvelous things, but none can compare with the human brain that makes sense of countless diverse, quickly changing stimuli without effort. Doing what we do with ease is often an impossible task for computers.

Nonetheless, researchers in artificial intelligence are hard at work trying to achieve the goal of computers that think as well or better than a human being. For example, Researchers at the Leipzig Max Planck Institute for Human Cognitive and Brain Sciences and the Wellcome Trust Centre for Neuroimaging in London have developed a mathematical model which could significantly improve the automatic recognition and processing of spoken language. In the future, such algorithms that imitate brain mechanisms could help machines perceive the world around them. Perception of its environment would go a long way toward achieving true artificial intelligence.

If you've ever had to deal with a voice activated automated telephone system, you probably realize how difficult it is for a computer to understand even simple words. If you speak a little too quickly or slowly, if your pronunciation is not clear, or if there is background noise, the system fails to understand you.

According to Stefen Kiebel of the Leipzig Max Plank Institute, the brain classifies the various signals from the smallest, fast-changing components such as single sound units like a vowel or consonant up to big, slow-changing elements such as the topic. The significance of the information at various duration levels is probably much greater than previously thought for the processing of perceived information. The brain searches for time dependent structures in the environment to determine what happens next. In this way, the brain can, for example, predict the next sound based on the slower-changing information.

To test this hypothesis, the researchers constructed a mathematical model to imitate, in a highly simplified manner, the brain processes that occur during the comprehension of speech. The processes were described by algorithms that process speech at different duration levels. The model succeeded well. In contrast to other artificial speech recognition devices, it could process speeded up speech sequences. In addition it could predict the next speech sound. If a prediction turned out to be wrong, the model detected the error. This indicates that the model represented processes in a way that was similar to the way the brain functions.

This new approach may be the beginning of a truly intelligent computer.