Structure of expert systems

Download Report

Transcript Structure of expert systems

EXPERT SYSTEMS
AND
KNOWLEDGE
REPRESENTATION
Ivan Bratko
Faculty of Computer and Info. Sc.
University of Ljubljana
EPERT SYSTEMS

An expert system behaves like an expert in some
narrow area of expertise

Typical examples:
 Diagnosis in an area of medicine
 Adjusting between economy class and business
class seats for future flights
 Diagnosing paper problems in rotary printing

Very fashionable area of AI in period 1985-95
SOME FAMOUS
EXPERT SYSTEMS

MYCIN (Shortliffe, Feigenbaum, late seventies)
Diagnosis of infections

PROSPECTOR (Buchanan, et al. ~1980)
Ore and oil exploration

INTERNIST (Popple, mid eighties)
Internal medicine
Structure of expert systems
FEATURES OF EXPERT SYSTEMS

Problem solving in the area of expertise

Interaction with user during and after problem solving

Relying heavily on domain knowledge

Explanation: ability of explain results to user
REPRESENTING KNOWLEDGE WITH
IF-THEN RULES

Traditionally the most popular form of knowledge
representation in expert systems

Examples of rules:



if condition P then conclusion C
if situation S then action A
if conditions C1 and C2 hold then condition C
does not hold
DESIRABLE FEATURES OF RULES

Modularity: each rule defines a relatively independent
piece of knowledge

Incrementability: new rules added (relatively
independently) of other rules

Support explanation

Can represent uncertainty
TYPICAL TYPES OF EXPLANATION

How explanation
Answers user’s questions of form: How did you reach
this conclusion?

Why explanation
Answers users questions: Why do you need this
information?
RULES CAN ALSO HANDLE
UNCERTAINTY

If condition A then conclusion B with certainty F
EXAMPLE RULE FROM MYCIN
if
1 the infection is primary bacteremia, and
2 the site of the culture is one of the sterilesites, and
3 the suspected portal of entry of the organism is the
gastrointestinal tract
then
there is suggestive evidence (0.7) that the identity of
the organism is bacteroides.
EXAMPLE RULES FROM AL/X

Diagnosing equipment failure on oil platforms, Reiter 1980
if
the pressure in V-01 reached relief valve lift pressure
then
the relief valve on V-01 has lifted [N = 0.005, S = 400]
if
NOT the pressure in V-01 reached relief valve lift pressure,
and the relief valve on V-01 has lifted
then
the V-01 relief valve opened early (the set pressure has drifted)
[N = 0.001, S = 2000]
EXAMPLE RULE FROM AL3
Game playing, Bratko 1982
if
1 there is a hypothesis, H, that a plan P succeeds, and
2 there are two hypotheses,
H1, that a plan R1 refutes plan P, and
H2, that a plan R2 refutes plan P, and
3 there are facts: H1 is false, and H2 is false
then
1 generate the hypothesis, H3, that the combined
plan ‘R1 or R2' refutes plan P, and
2 generate the fact: H3 implies not(H)
A TOY KNOWLEDGE BASE:
WATER IN FLAT
Flat floor plan
Inference network
IMPLEMENTING THE
‘LEAKS’ EXPERT SYSTEM

Possible directly as Prolog rules:
leak_in_bathroom :hall_wet,
kitchen_dry.


Employ Prolog interpreter as inference engine
Deficiences of this approach:
 Limited syntax
 Limited inference (Prolog’s backward chaining)
 Limited explanation
TAILOR THE SYNTAX WITH
OPERATORS

Rules:
if
hall_wet and kitchen_dry
then
leak_in_bathroom.

Facts:
fact( hall_wet).
fact( bathroom_dry).
fact( window_closed).
BACKWARD CHAINING
RULE INTERPRETER
is_true( P) :fact( P).
is_true( P) :if Condition then P,
is_true( Condition).
% A relevant rule
% whose condition is true
is_true( P1 and P2) :is_true( P1),
is_true( P2).
is_true( P1 or P2) :is_true( P1) ; is_true( P2).
A FORWARD CHAINING
RULE INTERPRETER
forward :new_derived_fact( P),
% A new fact
!,
write( 'Derived: '), write( P), nl,
assert( fact( P)),
forward
% Continue
;
write( 'No more facts').
% All facts derived
FORWARD CHAINING INTERPRETER, CTD.
new_derived_fact( Concl) :if Cond then Concl,
% A rule
not fact( Concl),
% Rule's conclusion not yet a fact
composed_fact( Cond).
% Condition true?
composed_fact( Cond) :fact( Cond).
% Simple fact
composed_fact( Cond1 and Cond2) :composed_fact( Cond1),
composed_fact( Cond2).
% Both conjuncts true
composed_fact( Cond1 or Cond2) :composed_fact( Cond1) ; composed_fact( Cond2).
FORWARD VS. BACKWARD CHAINING

Inference chains connect various types of info.:






data
...
goals
evidence
...
hypotheses
findings, observations
...
explanations, diagnoses
manifestations
...
diagnoses, causes
Backward chaining: “goal driven”
Forward chaining: “data driven”
FORWARD VS. BACKWARD CHAINING

What is better?

Checking a given hypothesis: backward more natural

If there are many possible hypotheses: forward more
natural (e.g. monitoring: data-driven)

Often in expert reasoning: combination of both
e.g. medical diagnosis
water in flat: observe hall_wet, infer forward
leak_in_bathroom, check backward kitchen_dry

GENERATING EXPLANATION

How explanation: How did you find this answer?

Explanation = proof tree of final conclusion


E.g.: System: There is leak in kitchen.
User: How did you get this?
% is_true( P, Proof) Proof is a proof that P is true
:- op( 800, xfx, <=).
is_true( P, P) :fact( P).
is_true( P, P <= CondProof) :if Cond then P,
is_true( Cond, CondProof).
is_true( P1 and P2, Proof1 and Proof2) :is_true( P1, Proof1),
is_true( P2, Proof2).
is_true( P1 or P2, Proof) :is_true( P1, Proof)
;
is_true( P2, Proof).
WHY EXPLANTION

Exploring “leak in kitchen”, system asks:
Was there rain?

User (not sure) asks:
Why do you need this?

System:
To explore whether water came from outside

Why explanation = chain of rules between current
goal and original (main) goal
UNCERTAINTY

Propositions are qualified with:
“certainty factors”, “degree of belief”, “subjective
probability”, ...

Proposition: CertaintyFactor

if Condition then Conclusion: Certainty
A SIMPLE SCHEME FOR
HANDLING UNCERTAINTY

c( P1 and P2) = min( c(P1), c(P2))

c(P1 or P2) = max( c(P1), c(P2))

Rule “if P1 then P2: C”
implies: c(P2) = c(P1) * C
DIFFICULTIES IN
HANDLING UNCERTAINTY

In our simple scheme, for example:
Let c(a) = 0.5, c(b) = 0, then c( a or b) = 0.5

Now, suppose that c(b) increases to 0.5
Still: c( a or b) = 0.5
This is counter intuitive!

Proper probability calculus would fix this

Problem with probability calculus: Needs conditional
probabilities - too many?!?
TWO SCHOOLS RE. UNCERTAINTY

School 1: Probabilities impractical! Humans don’t
think in terms of probability calculus anyway!

School 2: Probabilities are mathematically sound and
are the right way!

Historical development of this debate: School 2
eventually prevailed - Bayesian nets, see e.g. Russell
& Norvig 2003 (AI, Modern Approach), Bratko 2001
(Prolog Programming for AI)