Sei sulla pagina 1di 5

Chapter 1 INTRODUCTION Robert S.

Engelmore Edward Feigenbaum

EXPERT SYSTEMS AND ARTIFICIAL INTELLIGENCE Expert Systems are computer programs that are derived from a branch of computer science research called Artificial Intelligence (AI). AI's scientific goal is to understand intelligence by building computer programs that exhibit intelligent behavior. It is concerned with the concepts and methods of symbolic inference, or reasoning, by a computer, and how the knowledge used to make those inferences will be represented inside the machine. Of course, the term intelligence covers many cognitive skills, including the ability to solve problems, learn, and understand language; AI addresses all of those. But most progress to date in AI has been made in the area of problem solving -- concepts and methods for building programs that reason about problems rather than calculate a solution. AI programs that achieve expert-level competence in solving problems in task areas by bringing to bear a body of knowledge about specific tasks are calledknowledge-based or expert systems. Often, the term expert systems is reserved for programs whose knowledge base contains the knowledge used by human experts, in contrast to knowledge gathered from textbooks or non-experts. More often than not, the two terms, expert systems (ES) and knowledge-based systems (KBS), are used synonymously. Taken together, they represent the most widespread type of AI application. The area of human intellectual endeavor to be captured in an expert system is called the task domain. Task refers to some goaloriented, problem-solving activity. Domain refers to the area within which the task is being performed. Typical tasks are diagnosis, planning, scheduling, configuration and design. An example of a task domain is aircraft crew scheduling, discussed in Chapter 2. Building an expert system is known as knowledge engineering and its practitioners are called knowledge engineers. The knowledge engineer must make sure that the computer has all the knowledge needed to solve a problem. The knowledge engineer must choose one or more forms in which to represent the required knowledge as symbol patterns in the memory of the computer -- that is, he (or she) must choose a knowledge representation. He must also ensure that the computer can use the knowledge efficiently by selecting from a handful of reasoning methods. The practice of knowledge engineering is described later. We first describe the components of expert systems. The Building Blocks of Expert Systems Every expert system consists of two principal parts: the knowledge base; and the reasoning, or inference, engine. The knowledge base of expert systems contains both factual and heuristic knowledge. Factual knowledge is that knowledge of the task domain that is widely shared, typically found in textbooks or journals, and commonly agreed upon by those knowledgeable in the particular field. Heuristic knowledge is the less rigorous, more experiential, more judgmental knowledge of performance. In contrast to factual knowledge, heuristic knowledge is rarely discussed, and is largely individualistic. It is the knowledge of good practice, good judgment, and plausible reasoning in the field. It is the knowledge that underlies the "art of good guessing." Knowledge representation formalizes and organizes the knowledge. One widely used representation is the production rule, or simply rule. A rule consists of an IF part and a THEN part (also called a condition and an action). The IF part lists a set of conditions in some logical combination. The piece of knowledge represented by the production rule is relevant to the line of reasoning being developed if the IF part of the rule is satisfied; consequently, the THEN part can be concluded, or its problem-solving action taken. Expert systems whose knowledge is represented in rule form are called rule-based systems. Another widely used representation, called the unit (also known as frame, schema, or list structure) is based upon a more passive view of knowledge. The unit is an assemblage of associated symbolic knowledge about an entity to be represented. Typically, a unit consists of a list of properties of the entity and associated values for those properties. Since every task domain consists of many entities that stand in various relations, the properties can also be used to specify relations, and the values of these properties are the names of other units that are linked according to the relations. One unit can also represent knowledge that is a "special case" of another unit, or some units can be "parts of" another unit.

The problem-solving model, or paradigm, organizes and controls the steps taken to solve the problem. One common but powerful paradigm involves chaining of IF-THEN rules to form a line of reasoning. If the chaining starts from a set of conditions and moves toward some conclusion, the method is calledforward chaining. If the conclusion is known (for example, a goal to be achieved) but the path to that conclusion is not known, then reasoning backwards is called for, and the method is backward chaining. These problem-solving methods are built into program modules called inference engines or inference procedures that manipulate and use knowledge in the knowledge base to form a line of reasoning. The knowledge base an expert uses is what he learned at school, from colleagues, and from years of experience. Presumably the more experience he has, the larger his store of knowledge. Knowledge allows him to interpret the information in his databases to advantage in diagnosis, design, and analysis. Though an expert system consists primarily of a knowledge base and an inference engine, a couple of other features are worth mentioning: reasoning with uncertainty, and explanation of the line of reasoning. Knowledge is almost always incomplete and uncertain. To deal with uncertain knowledge, a rule may have associated with it a confidence factor or a weight. The set of methods for using uncertain knowledge in combination with uncertain data in the reasoning process is called reasoning with uncertainty. An important subclass of methods for reasoning with uncertainty is called "fuzzy logic," and the systems that use them are known as "fuzzy systems." Because an expert system uses uncertain or heuristic knowledge (as we humans do) its credibility is often in question (as is the case with humans). When an answer to a problem is questionable, we tend to want to know the rationale. If the rationale seems plausible, we tend to believe the answer. So it is with expert systems. Most expert systems have the ability to answer questions of the form: "Why is the answer X?" Explanations can be generated by tracing the line of reasoning used by the inference engine (Feigenbaum, McCorduck et al. 1988). The most important ingredient in any expert system is knowledge. The power of expert systems resides in the specific, high-quality knowledge they contain about task domains. AI researchers will continue to explore and add to the current repertoire of knowledge representation and reasoning methods. But in knowledge resides the power. Because of the importance of knowledge in expert systems and because the current knowledge acquisition method is slow and tedious, much of the future of expert systems depends on breaking the knowledge acquisition bottleneck and in codifying and representing a large knowledge infrastructure. Knowledge engineering is the art of designing and building expert systems, and knowledge engineers are its practitioners. Gerald M. Weinberg said of programming in The Psychology of Programming: "'Programming,' -- like 'loving,' -- is a single word that encompasses an infinitude of activities" (Weinberg 1971). Knowledge engineering is the same, perhaps more so. We stated earlier that knowledge engineering is an applied part of the science of artificial intelligence which, in turn, is a part of computer science. Theoretically, then, a knowledge engineer is a computer scientist who knows how to design and implement programs that incorporate artificial intelligence techniques. The nature of knowledge engineering is changing, however, and a new breed of knowledge engineers is emerging. We'll discuss the evolving nature of knowledge engineering later. Today there are two ways to build an expert system. They can be built from scratch, or built using a piece of development software known as a "tool" or a "shell." Before we discuss these tools, let's briefly discuss what knowledge engineers do. Though different styles and methods of knowledge engineering exist, the basic approach is the same: a knowledge engineer interviews and observes a human expert or a group of experts and learns what the experts know, and how they reason with their knowledge. The engineer then translates the knowledge into a computer-usable language, and designs an inference engine, a reasoning structure, that uses the knowledge appropriately. He also determines how to integrate the use of uncertain knowledge in the reasoning process, and what kinds of explanation would be useful to the end user. Next, the inference engine and facilities for representing knowledge and for explaining are programmed, and the domain knowledge is entered into the program piece by piece. It may be that the inference engine is not just right; the form of knowledge representation is awkward for the kind of knowledge needed for the task; and the expert might decide the pieces of knowledge are wrong. All these are discovered and modified as the expert system gradually gains competence. The discovery and cumulation of techniques of machine reasoning and knowledge representation is generally the work of artificial intelligence research. The discovery and cumulation of knowledge of a task domain is the province of domain experts. Domain knowledge consists of both formal, textbook knowledge, and experiential knowledge -- the expertise of the experts. Tools, Shells, and Skeletons Compared to the wide variation in domain knowledge, only a small number of AI methods are known that are useful in expert systems. That is, currently there are only a handful of ways in which to represent knowledge, or to make inferences, or to generate explanations. Thus, systems can be built that contain these useful methods without any domain-specific knowledge. Such systems are known as skeletal systems, shells, or simply AI tools.

Building expert systems by using shells offers significant advantages. A system can be built to perform a unique task by entering into a shell all the necessary knowledge about a task domain. The inference engine that applies the knowledge to the task at hand is built into the shell. If the program is not very complicated and if an expert has had some training in the use of a shell, the expert can enter the knowledge himself. Many commercial shells are available today, ranging in size from shells on PCs, to shells on workstations, to shells on large mainframe computers. They range in price from hundreds to tens of thousands of dollars, and range in complexity from simple, forward-chained, rule-based systems requiring two days of training to those so complex that only highly trained knowledge engineers can use them to advantage. They range from general-purpose shells to shells custom-tailored to a class of tasks, such as financial planning or real-time process control. Although shells simplify programming, in general they don't help with knowledge acquisition. Knowledge acquisition refers to the task of endowing expert systems with knowledge, a task currently performed by knowledge engineers. The choice of reasoning method, or a shell, is important, but it isn't as important as the accumulation of high-quality knowledge. The power of an expert system lies in its store of knowledge about the task domain -- the more knowledge a system is given, the more competent it becomes. Bricks and Mortar The fundamental working hypothesis of AI is that intelligent behavior can be precisely described as symbol manipulation and can be modeled with the symbol processing capabilities of the computer. In the late 1950s, special programming languages were invented that facilitate symbol manipulation. The most prominent is called LISP (LISt Processing). Because of its simple elegance and flexibility, most AI research programs are written in LISP, but commercial applications have moved away from LISP. In the early 1970s another AI programming language was invented in France. It is called PROLOG (PROgramming in LOGic). LISP has its roots in one area of mathematics (lambda calculus), PROLOG in another (first-order predicate calculus). PROLOG consists of English-like statements which are facts (assertions), rules (of inference), and questions. Here is an inference rule: "If object-x is part-of object-y then a component-of object-y is object-x." Programs written in PROLOG have behavior similar to rule-based systems written in LISP. PROLOG, however, did not immediately become a language of choice for AI programmers. In the early 1980s it was given impetus with the announcement by the Japanese that they would use a logic programming language for the Fifth Generation Computing Systems (FGCS) Project. A variety of logic-based programming languages have since arisen, and the termprolog has become generic. 24.8 Expert systems as cognitive tools 24.8. 1 What Are Expert Systems? Expert systems are computer-based tools that are designed to function as intelligent aids to decision making in all sorts of tasks. Early expert systems, such as MYCIN, were developed to help physicians diagnose bacterial infections with which they were unfamiliar. Prominent expert systems have also been developed to help geologists decide where to drill for oil, fire fighters decide how to extinguish different kinds of fires, computer sales technicians how to configure computer systems, and employees to decide among a large number of company benefits alternatives. Problems whose solution includes recommendations based on a variety of decisions are good candidates for expert systems. Expert systems have evolved from research in the field of artificial intelligence (AI). Al is a field of computer science and cognitive science that focuses on the development of both hardware innovations and programming techniques that enable machines to perform tasks that are regarded as intelligent when done by people. Intelligence is the capacity to learn, reason, and understand. Artificial means simulated. So, in other words, Al researchers and expert system builders attempt to develop programs that simulate the human capability to reason and to learn. Simulated means only imitating a real object or event. Al programs, including expert systems, may perform functions that resemble human thinking, such as decision making. In reality though, Al programs are just computer programs; they only imitate a human activity within a narrowly defined situation. An expert system, then, is a computer program that simulates the way human experts solve problems-an artificial decision maker. For example, when we consult an expert (e.g., doctor, lawyer, teacher) about a problem, the expert asks for current information about our condition, searches his or her knowledge base (memory) for existing knowledge that can be related to elements of the current situation, processes the information (thinks), arrives at a decision, and presents his or her solution. Like a human expert, an expert system (computer program) is approached by an individual with a problem. The system queries the individual about the current status of the. problem, searches its own knowledge base (stored previously) for pertinent facts and rules that reflect the knowledge of an expert, processes the information, arrives at a decision, and reports the solution to the user.

Most expert systems consist of several components, including the knowledge base, inference engine, and user interface. The knowledge base consists of facts and rules that are programmed into the system by the designer., For example, an expert system designed to diagnose cars that will not start might include facts and rules such as: Fact: Battery supplies voltage to ignition. Fact: Ignition routes voltage to solenoid. Rule: IF ignition is on, AND solenoid is not engaged, THEN battery is dead, OR ignition switch is faulty. The expert system inference engine is programmed into the system and acts on the knowledge base and current problem data to generate solutions. It sets a goal and then collects information from the knowledge base in order to yield a solution. When the knowledge base does not contain enough information, the inference engine asks the user to supply the missing information. The inference engine continues to seek information until it is able to reach a solution which the system then presents to the user. The inference engine is the logic unit in the expert system. The part of the expert system that makes it a cognitive tool is the knowledge base. Building the knowledge base requires the designer to articulate the expertise that the system provides, not only in the form of facts but also rules. Identifying the causal relationships and procedural knowledge underlying a knowledge domain necessarily engages designers of expert systems in higher-order thinking. 24.8.2 How Are Expert Systems Used as Cognitive Tools? When analyzing outcomes from building and using expert-systems, a distinction must be drawn between using an existing expert system rule base to support decision making and building an expert system. The former is the most common application. Although expert systems are primarily used in businesses as advisors that control production processes or in certain professions to assist practitioners in decision making, they also have many applications in education. Chandler (1994) describes the development of an expert-system design to help teachers plan science education lessons. Considerable research has focused on developing expert-system advisors to help teachers identify and classify learning disabled students (cf. Fuchs, 1992). Expert-system advisors have been developed to guide novices through the instructional development process (Tennyson & Christensen, 1991) or to assist students in selecting the correct statistical test (Karake, 1990; Saleem & Azad, 1992). With this type of application, professional knowledge engineers produce expert-system knowledge bases that are accessed by users when they need advice in making decisions (Bossinger & Milheim, 1993). However, simply using existing knowledge bases to get advice does not engage users as deeply as building a knowledge base to reflect their own thinking (Wideman & Owston, 1993). Querying a knowledge base to help solve a problem involves primarily comprehension of the problem and its factors; the application of some predetermined rules for solving the problem is often hidden from the user within the expert system itself Expert systems can 'also function as cognitive tools (Kommers, Jonassen & Mayes, 1992). Trollip, Lippert, Starfield, and Smith (1992) believe that the development of expert systems results in deeper understanding because they provide an intellectual environment that demands the refinement of domain knowledge, supports problem solving, and monitors the acquisition of knowledge. Building expert systems requires the developer to model explicitly the knowledge of the expert (Starfield, Smith & Bleloch, 1990). This entails identifying declarative knowledge (facts and concepts), structural knowledge (the knowledge of the interrelationships of ideas in memory), and procedural knowledge (how to apply the former). In fact, building expert systems is one of the few formalisms for depicting procedural knowledge. Psychologists usually represent procedural knowledge as a series of IF-THEN rules (Gagne, 1985); such a representation mode is obviously well suited to expert-system codification. As learners identify the IF-THEN structure of a domain, they will tend to understand the nature of decision- making tasks better, and this deeper understanding should make subsequent practice opportunities more meaningful. This is not to suggest that the mere development of an expert system necessarily leads learners to acquire the compiled procedural knowledge of a domain. Students could correctly identify many of the IF-THEN rules involved in flying an airplane, but actually acquiring the procedural expertise to fly would still require extended practice opportunities in realistic performance settings. When expert systems are used as cognitive tools, the roles of teachers and students change dramatically. Students as knowledge engineers assume a more active role in acquiring prerequisite knowledge and focusing and directing interactions with the teacher, who assumes the role of expert (Morrelli, 1990). This frees the teacher from having to motivate students and allows them to respond as an expert to student probing concerning the more demanding and interesting aspects of various problems. Students must analyze the knowledge domain (identifying outcomes, factors, and values for those factors) and then synthesize rules and rule sequences. Morrelli argues that interaction between active, self-directed learners and a supportive, articulate teacher is an excellent model for learning science. We agree. 24.8.3 What Research Supports the Use of Expert Systems as Cognitive Tools? Much of the research with the use of expert systems has focused on teachers and students as users of predefined rule bases. For instance, students who used an expert system to select the most appropriate statistical analysis procedure were more accurate in their selections and also retained the information better than students who used traditional computer-assisted instruction (Marcoulides, 1988). Grabinger and Pollock (1989) used expert systems to direct students to evaluate their own projects. Students who generated their own feedback with the help of expert systems produced a greater number of criteria in subsequent exercises and favored the method to teacher-only feedback. As described earlier, using expert systems supplants (provides or substitutes knowledge that is not known) thinking and therefore does not necessarily engage users in thinking critically about the content they are studying.

The use of expert systems as cognitive tools is relatively recent. Trollip and Lippert (1987) found that the analysis of subject matter required to develop expert systems is so deep and so incisive that learners develop a greater comprehension of their subject matter. They reported that building expert system rule bases engages learners in analytical reasoning, elaboration strategies such as synthesis, and metacognition. Lippert (1988, 1989), among the early advocates of expert systems as cognitive tools, argued that asking students to construct small rule bases is a valuable method for teaching problem solving and knowledge structuring for students from sixth grade to adults. Not only do learners solve problems, they also engage in metacognitive reflection on their problem solving while constructing rule bases (Trollip & Lippert, 1988). Developing the knowledge base requires learners to isolate facts, variables, and rules about the relationships between content in a domain. Developing rule bases as a cognitive tool represents a constructivist application of expert systems (Jonassen, Wilson, Wang & Grabinger, 1993). A small body of research has validated the use of expert systems as cognitive tools. Lai (1992) found that when nursing students developed medical expert systems, they developed enhanced reasoning skills and acquired a deeper understanding of the subject domain. Lippert (1988) described the development of rule bases to solve problems about forces by six freshmen physics students who used an expert-system shell to create questions, decisions, rules, and explanations pertaining to classical projectile motion. The students developed more refined, domain-specific knowledge due to greater degrees of elaboration during encoding and greater quantity of material processed in an explicit, coherent context, and therefore in greater semantic depth (Lippert & Finley, 1988). Students identified factors such as kind of force acting on an object (e.g., gravitational or centripetal), motion of the object (e.g., free fall, circular, or sliding), velocity of the object, and so on. The decisions that students defined were based on the laws that affect the motion and the formulas that should be applied. Students reported meaningful learning from evaluating their own thought processes, more enthusiasm for learning, and the learning of content that they were not expected to master. Knox-Quinn (1992) reported that MBA (masters of business administration) students who developed knowledge bases on tax laws in an accounting course were consistently engaged in higher-order thinking, such as classifying information, breaking down content, organizing information, and integrating and elaborating information. All of the students who developed rule bases showed substantial gains in the quantity and quality of declarative and procedural knowledge and improved their problem-solving strategies. Students who built expert systems reasoned similarly to experts. Like most cognitive tools, die research base on expert systems is very limited. However, with the increased interest in constructivist applications of expert systems and other computer tools, the research base should grow dramatically. We predict that future research will continue to verify the cognitive and metacognitive effects of learners functioning as knowledge engineers. http://learngen.org/~aust/EdTecheBooks/AECT_HANDBOOK96/24/24-08.html

Potrebbero piacerti anche