chapter01 - WordPress.com

advertisement
Expert Systems: Principles and Programming, Fourth Edition
Chapter 1
Introduction to Expert Systems
At a Glance
Table of Contents

Overview

Objectives

Instructor Notes

Quick Quizzes

Discussion Questions

Key Terms
1-1
Expert Systems: Principles and Programming, Fourth Edition
1-2
Lecture Notes
Overview
During the 20th Century, various definitions of artificial intelligence were proposed, including
“making computers think like people.” A special type of artificial intelligence called expert
systems, developed in the 1960s, dealt with complex problems in a narrow domain, such as, for
example, medical disease diagnosis. Today, expert systems are used in business, science,
engineering, manufacturing, and many other fields. The problems expert systems are used to
solve are generally those for which there are no known or efficient algorithms. Expert systems
are knowledge-based and hence are very effective for solving real-world problems. The
advantages and disadvantages of expert systems are discussed within the context of selecting an
appropriate problem domain. Expert systems are suitable for some but not all applications.
Future advances in artificial intelligence will hinge on the use of new quantum computers as well
as those with massive computational abilities in conjunction with other computers on the
Internet.
Chapter Objectives
After completing this chapter, students will be able to answer the following:










What is the meaning of an expert system?
What is meant by the problem domain and knowledge domain?
What are the advantages of an expert system?
What are the general stages in the development of an expert system?
What are the general characteristics of an expert system?
What earlier expert systems have given rise to today’s knowledge-based systems?
What are some applications of expert systems in use today?
What is the structure of a rule-based expert system?
What is the difference between procedural and nonprocedural paradigms?
What are the characteristics of artificial neural systems?
Instructor Notes
What is an Expert System?
Many definitions of artificial intelligence (AI) have been proposed. The most popular is still: “making computers
think like people.” No one particular technique of AI can deal successfully with all problems; rather, a combination
of methods works best. In order for an expert system to effectively address any problem, there must be a welldefined problem domain. Expert systems is a very successful application of artificial intelligence technology. The
first step in solving any problem is defining the problem area or domain to be solved.
It is worthwhile to examine how AI fits into the scheme of life itself. From a computer perspective, life is
synonymous with software, but we also can view life from a biological perspective, including artificial life made
possible through cloning. The notion of artificial life gives rise to artificial intelligence, intelligence being the
capacity to learn, acquire, adapt, modify, and extend knowledge to solve problems. Hence we consider the desire to
Expert Systems: Principles and Programming, Fourth Edition
1-3
build intelligent machines that can react with the real-world, be endowed with consciousness, solve problems and
communicate those solutions.
One of the goals of expert systems technology, as defined by Professor Edward Feigenbaum of Stanford University,
is the development of a computer system that emulates, or acts in all respects, with the decision-making capability of
a human expert. Although we are nowhere close to creating a general-purpose problem-solver, expert systems can
function very well within the confines of restricted domains.
Expert system technology may include special expert system languages, programs, and hardware designed to
facilitate the implementation of those systems. The knowledge in expert systems may come from expertise, or
knowledge obtainable from various forms of media, including books, magazines, or even knowledgeable persons.
In an expert system, or knowledge-based system, the user supplies facts or other information to the system and
receives expert advice or expertise in response. The system itself consists of two components  the knowledge-base
and the inference engine, which draws conclusions from it.
An expert’s knowledge is specific to one problem domain  a special problem area such as medicine, finance,
science, or engineering. The expert’s knowledge about solving specific problems is called the knowledge domain of
the expert. The problem domain is always a superset of the knowledge domain. In the knowledge domain that it
knows about, the expert system reasons, or makes inferences about the solution of a problem.
Advantages of Expert Systems
Advantage
Increased availability
Reduced cost
Reduced danger
Performance
Multiple expertise
Increased reliability
Explanation
Fast response
Steady, unemotional, and
complete responses at all times
Intelligent tutor
Intelligent database
Description
Expertise is available on any suitable computer hardware and is the
manifestation of mass produced expertise.
The cost of providing expertise is usually lower.
Expertise systems can function in environments potentially hazardous to
humans.
Expertise is permanent  the system’s knowledge will last indefinitely.
Multiple experts can work simultaneously and continuously. The combined
efforts may exceed those of the individuals systems working separately.
Confidence levels may be increased by providing a second opinion to that of a
human or in tie-breaking situations.
Expert systems can readily verify and support conclusions, thus increasing
confidence.
Real-time response is readily available and is a function of the
software/hardware used  far surpassing the response of a human.
This may compensate in stressful or fatigue situations which may affect a
human expert.
Students may interact with the system which serves as a tutor – affords
practice / scenarios along with explanations
Access of databases in an intelligent manner  e.g., data mining
Expert Systems: Principles and Programming, Fourth Edition
1-4
General Concepts of Expert Systems
The knowledge of an expert system can be represented in a number of ways, including IF-THEN type rules:
IF you are hungry THEN eat
Some systems such as CLIPS allow object as well as rules, where knowledge is encapsulated in the rules and
objects. The process of building an expert system is called knowledge engineering and refers to the acquisition of
knowledge from the human (or other) source and its coding in the expert system. The general stages of development
of an expert system include the following iterative process:
1.
2.
3.
The knowledge engineer establishes a dialog with the human expert to elicit his/her knowledge.
The knowledge engineer codes the knowledge explicitly in the knowledge base.
The expert then evaluates the expert system and gives a critique to the knowledge engineer.
Why is AI used? An algorithm is an ideal solution to a problem because it is guaranteed to yield a solution in a
finite amount of time. When an algorithm is not available, or is not efficient, we rely on AI. The expert system
relies on inference  a reasonable solution is about all we can expect. An explanation facility allows the user to
explore multiple lines of “What if” type questions  this is called hypothetical reasoning. When an expert system
learns new rules by example, we call this rule induction.
Both human experts and expert systems must be able to deal with uncertainty when a problem reaches their limits of
ignorance to qualify their levels of confidence. It is much easier to program expert systems with shallow knowledge
 based on empirical and heuristic knowledge, than deep knowledge  based on the basic structure, function, and
behavior of objects. Typical expert systems cannot generalize through analogy to reason about new situations in the
way people can. The knowledge acquisition bottleneck results from the time-consuming and labor intensive task of
building an expert system.
Characteristics of an Expert System




High performance  the system’s performance must exceed that of an expert in the field.
Adequate response time  the expert system must respond in a reasonable amount of time.
Good reliability  the system must be reliable and not prone to crashes.
Understandable  the system should be capable of verifying / explaining its reasoning
The Development of Expert Systems Technology
The roots of expert systems lie largely in the area of cognitive science  the study of how humans know or process
information. AI machines must have the ability to recognize signs  semiotics  the whole concept of signs in
general.
In the late 1950s and 1960s, the General Problem Solver, created by Newell and Simon, resulted in fears that people
would lose their jobs  replaced by computers. One of the most significant results of Newell and Simon was the
notion that human understanding could be expressed by IF-THEN production rules. Long-term memory consists of
many such rules having the simple IF THEN structure. This contrasts with short-term memory which is used for
temporary storage of knowledge during problem solving. Another element necessary for human problem solving is
a cognitive processor which tries to find the rules that will be activated by appropriate stimuli. Conflict resolution
refers to deciding which rule has the highest priority. The Newell / Simon model of human problem solving
combines long-term memory (rules) short-term memory (working memory), and a cognitive processor (inference
engine)  this is the basis for all modern rule-based expert systems. Rules like these are a type of production
system.
By the early 1970s, it became apparent that domain knowledge was key to building machine problem solvers that
could function similarly to human experts. Today’s expert systems are known as knowledge-based expert systems
Expert Systems: Principles and Programming, Fourth Edition
1-5
rather than general problem solvers. These systems are considered an alternative programming model, or paradigm,
to traditional algorithmic programming. Which the acceptance of the knowledge-based paradigm, a number of
expert systems were created:
DENDRAL  used in chemical mass spectroscopy to identify chemical constituents
MYCIN  medical diagnosis of illness
DIPMETER  geological data analysis for oil
PROSPECTOR  geological data analysis for minerals
XCON/R1  configuring computer systems
Expert Systems Applications and Domains
Conventional computer programs are generally used to solve problems that have algorithmic solutions. Examples of
programming languages used to solve algorithmic problems include C, Java, and C#. Classic AI languages include
LISP and PROLOG, both used for symbolic manipulation.
Before building an expert system, it is essential to decide if an expert system is the appropriate paradigm. The
appropriate domain for an expert system depends on a number of factors:





Can the problem be solved effectively by conventional programming?
Is there a need and a desire for an expert system?
Is there at least one human expert who is willing to cooperate?
Can the expert explain the knowledge so that it is understandable by the knowledge engineer?
Is the problem-solving knowledge mainly heuristic and uncertain?
Languages, Shells, and Tools
Defining a problem begins with deciding how to model it  choosing the best paradigm. If a problem can be solved
by conventional programming, it is usually best to do so; otherwise, one can turn to non-conventional paradigms
such as AI. An expert system language is a higher-order language than third-generation languages  it is easier to
do certain things, but there is a smaller range of problems that can be solved. Procedural languages (e.g., C) focus
on providing flexibility and robust techniques to represent data. Modern languages (e.g., Java and C#) focus on data
abstraction by providing structures such as objects, methods, and packages. Expert systems, on the other hand,
focus on ways to represent knowledge  data abstraction and knowledge abstraction  e.g. CLIPS. When we refer
to a language, we think of a translator of commands written in a specific syntax. A tool refers to a language plus
associated utility programs to facilitate the development, debugging, and delivery of application programs. A shell
is a special-purpose tool designed for certain types of applications where the user must supply only the knowledge
base.
Elements of an Expert System
An expert system consists of the following components:

user interface  mechanism by which the user and the expert system communicate

explanation facility  explains the reasoning of the system to a user

working memory  a global database of facts used by the rules
Expert Systems: Principles and Programming, Fourth Edition
1-6

inference engine  makes inferences by deciding which rules are satisfied and executes the rule with
highest priority

agenda  a prioritized list of rules created by the inference engine, whose patterns are satisfied by facts or
objects in working memory

knowledge acquisition facility  an automatic way for the user to enter knowledge in the system rather than
by having the knowledge engineer explicitly code the knowledge
The knowledge base is also called the production memory. The production rules can be expressed in pseudocode
IF-THEN format. In a rule-based system, the inference engine determines which rule antecedents are satisfied by
the facts. There are two general methods of this type of inferencing:
1.
Forward chaining  reasoning from facts to the conclusions resulting from those facts  best for
prognosis, monitoring, and control.
2.
Backward chaining  reasoning in reverse from a hypothesis, a potential conclusion to be proved to the
facts that support the hypothesis  best for diagnosis problems.
A rule whose patterns are all satisfied is said to be activated or instantiated. Rule-based systems are built on the
concept of refraction to prevent trivial loops. Following the THEN part of a rule is a list of actions to be executed
when the rule fires  this right-hand side is known as the consequent.
Production Systems
The most popular type of expert system today is the rule-based system  knowledge is represented in terms of
multiple rules that specify what should or should not be concluded in different situations. In a forward-chaining
expert system, we start with the known initial facts and keep using the rules to draw new conclusions or take certain
actions. In a backward-chaining system, we start with a hypothesis (what you are trying to prove) and keep looking
for rules that would allow the hypothesis to be proven true. Forward-chaining are primarily data-driven; whereas,
backward-chaining systems are goal-driven.
Post Production Systems
The basic idea of Post is that any mathematical or logic system is simply a set of rules specifying how to change one
string of symbols into another set of symbols. The basic limitation of Post production rules is a lack of a control
strategy to guide the application of the rules.
A Markov algorithm is an ordered group of productions that are applied in order or priority to an input string. If the
highest priority rule is not applicable, we apply the next, and so on. This is an inefficient algorithm for systems with
many rules.
A Rete algorithm functions like a net holding a lot of information so that much faster response times and rule firings
can occur compared to a large group of IF-THEN rules which would have to be checked on-by-one in a
conventional program. Its drawback is the high memory space requirements. The Rete algorithm takes advantage
of temporal redundancy and structural similarity.
Procedural Paradigms
Programming paradigms can be classified as procedural and nonprocedural. An algorithm is a method of solving a
problem in a finite number of steps. A procedural program is often called a sequential program. The distinguishing
feature of a procedural program is that the programmer must specify exactly how a problem solution must be coded.
Expert Systems: Principles and Programming, Fourth Edition
1-7
Imperative programming focuses on the concept of a modifiable store  variables and assignments (e.g., C and
Fortran). During execution such programs make a transition from the initial state to a final state by passing through
a sequence of intermediate states. Imperative languages provide for top-down design. Because of their sequential
nature, imperative languages are not very efficient for directly implementing expert systems.
The fundamental idea of functional programming is to combine simple functions to produce more powerful
functions  a bottom-up design (opposite from imperative languages (e.g., LISP). Functional programming
languages were designed to be referentially transparent.
NonProcedural Paradigms
Nonprocedural paradigms do not depend on the programmer giving exact details on how the program is to be solved
 opposite of the procedural paradigms.
In declarative programming, there is a separation of the goal from the methods used to achieve the goal. The user
specifies the goal while the underlying mechanism of the implementation tries to satisfy the goal. Object-oriented
programming is a type of paradigm that can be considered partly imperative and partly declarative (e.g., C++, Java,
and C#). In OOP, we consider the data used by the program as objects and then implement operations on those
objects. Related to OOP is the concept of inheritance where subclasses can be derived from parent classes
(superclasses).
Expert systems can be considered declarative programming  the programmer does not specify how to achieve his
goal at the level of an algorithm. An application of AI, called induction-based programming, involves the program
learning by generalizing from a sample  applied to database access.
Artificial Neural Systems
In the 1980s, a new development in programming paradigms appeared called artificial neural systems (ANS). Based
on the way the brain processes information, this paradigm models solutions to problems by training simulated
neurons connected in a network. ANS are found in applications such as face recognition, medical diagnosis, games,
speech recognition, etc. One useful way to classify types of ANS is whether a training set of input and output data is
provided or not. The former is called a supervised model  e.g., face recognition; the latter is called an unsupervised
model.
ANS has provided solutions to some complex pattern recognition problems such as the Traveling Salesman
problem, which involves computing the shortest route through a given list of cities. An ANS is similar to an analog
computer that uses simple processing elements connected in a highly parallel manner. The processing elements
perform simple Boolean or arithmetic functions on their inputs. The key to the ANS is associating weights with
each element  information is represented by weights. ANS offers several advantages to the storage of conventional
computers:

Storage is fault tolerant.

The quality of the stored image degrades gracefully in proportion to the amount of net removed.

Data is stored naturally in the form of associative memory.

Nets can extrapolate and interpolate from their stored information.

Nets have plasticity.
ANS are excellent when functionality is needed for a long time without repair in a hostile environment. ANS offers
low maintenance costs. ANS are not well suited for number crunching or problems requiring optimum solution.
Expert Systems: Principles and Programming, Fourth Edition
1-8
Connectionist Expert Systems and Inductive Learning
An inference engine called MACIE (Matrix Controlled Inference Engine) was designed using ANS knowledge base
and was designed to classify a disease from its symptoms into one of the known diseases that the system has been
trained on. This system uses forward chaining to make inferences and backward chaining to query the user for
additional data to come to a conclusion.
The State of the Art in Artificial Intelligence
Many advances in AI were made during the 1990s and continuing on to the present. The most successful AI-based
systems have relied on biologically-based systems. The broad spectrum of potential applications of AI are limited
only by one’s imagination. They range from quantum mechanics, evolution, bioinformatics, defense, video games
and movies  the list goes on and on.
Quick Quiz
1.
The most popular definition of artificial intelligence is making _____ think like _____.
Answer: computers / people
2.
The term ____ means that the expert system is intended in act like a human expert.
Answer: emulate
3.
An expert’s knowledge is specific to one _____ domain and knowledge about solving
specific problems is called the _____ domain.
Answer: problem / knowledge
4.
The process of building an expert system is called _____ engineering.
Answer: knowledge
5.
Humans must know the extent of their knowledge and qualify their advice as a problem
reaches their _____.
Answer: limits of ignorance
6.
Heuristic knowledge is a type of (causal, shallow, deep) knowledge.
Answer: shallow
7.
A knowledge acquisition bottleneck occurs when transferring _____ knowledge to an expert
system.
Answer: human
8.
A _____ is a goal which is to be proven.
Answer: hypothesis
9.
The ability of AI machines to recognize signs forms the basis of a field named _____.
Answer: semiotics
Expert Systems: Principles and Programming, Fourth Edition
1-9
10. A significant result by Newell and Simon was that much of human understanding could be
expressed by IF-THEN ________.
Answer: production rules
11. _____-term memory is used for temporary storage of knowledge during problem solving.
Answer: Short
12. The classic expert system called MYCIN was used to _____.
Answer: diagnose illness
13. A(n) _____ is a language plus associated utility programs to facilitate the development,
debugging, and delivery of application programs.
Answer: tool
14. A knowledge base is also called the _____ in a rule-based system.
Answer: production memory
15. _____ chaining is reasoning from facts to the conclusions resulting from those facts.
Answer: forward
16. After an individual neuron emits an electrical signal when stimulated, no amount of further
stimulation can cause the neuron to fire again for a short time period. This phenomenon is
called _____.
Answer: refraction
17. A(n) _____ algorithm is an ordered group of productions applied in order or priority to an
input string.
Answer: Markov
18. A(n) _____ algorithm functions like a net, holding a lot of information, so that much faster
response times and rule firings can occur.
Answer: Rete
19. A(n) _____ is a method of solving a problem in a finite number of steps.
Answer: algorithm
20. Java is an example of a(n) _____ procedural language; whereas, LISP is an example of a
_____ procedural language.
Answer: imperative, functional
21. An empty list, containing no elements is called _____.
Answer: nil
22. C++, Java, and C# are examples of _____ languages.
Answer: object-oriented
Expert Systems: Principles and Programming, Fourth Edition
1-10
23. An ANS is based on the way the _____ processes information.
Answer: brain
24. The key to functioning of an ANS is the _____ associated with each element.
Answer: weights
25. The term _____ means that a neuron emits an electrochemical impulse.
Answer: firing
Discussion Questions
1.
What are some areas related to artificial intelligence that you have encountered in your dayto-day lives?
2.
What is the role of an inference engine?
3.
What are the parallels between a human expert and a computer expert system?
4.
What are production rules?
5.
Characterize domains in the context of expert systems.
6.
What is the difference between forward and backward chaining?
7.
What is the difference between procedural languages and nonprocedural languages?
8.
What advances do you foresee in artificial neural systems? Are there any limitations?
Key Terms
 Artificial Neural Systems: Are based on the way the human brain processes information.
 Artificial intelligence: Making computers think like people.
 Expert system: An intelligent computer program that uses knowledge and inference
procedures to solve problems difficult enough to require significant human expertise for their
solution.
 Nonprocedural paradigms: Do not depend on the programmer giving exact details on how
the program is to be solved.
 Procedural paradigms: Depend on the programmer giving exact details on how the program
is to be solved.
Download