130 likes | 269 Views
Uncertainty. • Knowledge can have uncertainty associated with it - Knowledge base: rule premises, rule conclusions - User input: uncertain, unknown, partial truths • Much expert system research in inventing new methods to denote uncertainty, and reason about it.
E N D
Uncertainty • Knowledge can have uncertainty associated with it - Knowledge base: rule premises, rule conclusions - User input: uncertain, unknown, partial truths • Much expert system research in inventing new methods to denote uncertainty, and reason about it. eg. IF dog_barks THEN dog_bites CF 80 : 80 means this conclusion most likely holds with a ‘strength’ of 80 eg. Indicate intensity of pain (0-10): ___ : user gives a numeric value which will be associated with value "pain" • Three example techniques 1. Bayesian probability 2. Fuzzy logic 3. MYCIN certainty factors
1. Bayesian • Use the exact mathematics of probability theory to handle uncertain information • Bayes’s formula: determine the probability of an earlier event given that a later one occurred • p(H | E) = P(H) * P (E | H) P(E) where P(H | E) = prob. H is true given evidence E P(H ) = prob. H is true P(E | H) = prob of seeing E when H is true P(E) = prob. E is true • This matches with rule: IF E THEN H
1. Bayesian • Advantages: • statistically sound formula • Disadvantages / Requirements • probabilities of events must be available and known • often not possible for many problems • must update probabilities in system • sum of probabilities for a rule must equal 1 • experts often don’t think this way! • conditional independence: events in Bayes’ formula are independent • but this might not be so in many cases • user input: is not always “probabilistic”, but is arbitrary
2. Fuzzy Logic • Fuzzy logic: a branch of logic in which there are degrees of membership within sets, rather than strictly true and false membership • introduces uncertainty as consequence of user's uncertain input • permit partial truths to be denoted • --> language is subjective, eg. tall, cold, tiny, important,... • eg. instead of tall(bob) being True or False, it can be True fv 80 • fuzzy operators map language concepts: let X and Y be fv’s (between 0 and 1) X and Y - new_fv = min(X,Y) : intersection X or Y - new_fv = max(X,Y) : union not X - new_fv = 1 - X : negation very X - new_fv = X * X : concentration somewhat X - new_fv = X^0.5 : dilation indeed X - new_fv = 2 * X*X (for O <= X <= .5) = 1 - 2((1 - X)^2 ) for X > .5 : intensification
2. Fuzzy Example: IF noisy_disk fv X AND bad_formatting fv Y THEN defective disk fv 0.90 then let X=.9, Y=.3 then combined premise fv = 0.3 (minimum) - confidence of rule as whole is .9 * .3 = 0.27 • Advantages: • gives intuitively appealing results • can account for many ambiguous types of concepts • Disadvantages • doesn't consider amount of supporting evidence: lots of separate evidence that backs up an inference doesn’t mean that inference is more likely
Bayes vs Fuzzy • (see “Fuzzy Systems - a Tutorial” by J.F. Brule’ on web) let t(X) =“X is tall”, s(Y)=“Y is smart” let t(bob) = .90 and s(bob) = .90 • Bayes: t(bob) * s(bob) = .90*.90 = .81 • ie. if Bob is very tall, and Bob is very smart, then Bob is quite tall and smart • Fuzzy: min(t(bob), s(bob)) = .90 • ie. if Bob is very tall, and Bob is very smart, then Bob is very tall and smart • Hence fuzzy approach is more intuitive in this case; Bayes combinations are always reduced in overall strength for all values < 1.0
3. MYCIN confidence factors • Certainty theory: a model of uncertain information used in the MYCIN • expert system (Shortliffe and Buchanan 1975… free online!) • uses: • - scale for confidence factors, eg. -100 <--> 100 • - threshold “d” (eg. 20) • - premise and conclusion cf's • - user input cf's • - formulae for firing rules and combining results • • IF e1 AND e2 AND e3 THEN f1 CF w • - combining premises: minimum: e = min( cf(e1), cf(e2), cf(e3) ) • - e must be > threshold for rule to fire; if so... • - inferring cf for result: (multiply) w * e
3. Uncertainty • incrementally acquired evidence: combine belief and disbelief values of facts established by different rules cf(cf1, cf2) = cf1 + cf2*(100-cf1)/100 : both > 0 = 100*(cf1 + cf2) / (100 - min(|cf1|, |cf2|)) : one < 0 = - cf (-cf1, -cf2) : both < 0 • net effect: the more that a fact is established as true, the higher the overall cf will be • likewise, if negative results for a fact are obtained, it will bring down the overall cf ---> amount of evidence is accounted for
MYCIN rules
MYCIN • premises, conclusions, and user input have uncertainty factors (CF's) • formulae are used to combine CF's during the inference process • the intension is that resulting CF's for the inference faithfully reflect the uncertainty inherent in the KB and user input • eg. MYCIN: Let range be -100 (totally invalid) ≤ CF ≤ 100 (totally certain) cutoff d = 20 Consider: If lives_in_water CF A and has_gills CF B then is_a_fish CF 75. 1.if A=15 and B=30 then premise CF = min(15,30) = 15 < d therefore rule not used. 2. if A = -100 and B = 90 then premise CF = -100 < d therefore rule not used 3. if A=90 and B=90 then premise CF = 90 and conclusion CF = 67.5 --> assert: fact(is_a_fish CF 67.5).
MYCIN • In addition, if a fact is determined a number of times, then the CF's for these multiple instances are combined to yield an overall CF eg. Given: fact(is_a_fish CF 75). (*) and you determine: fact(is_a_fish CF 40). Then we get: 75 + 40 - (75x40)/100 = 85 ----> replace (*) with: fact(is_a_fish CF 85).
Summary • the nature of expert knowledge means that knowledge is often uncertain • certainty factors are controversial: they aren't provably correct! • cf's are arbitrary values; only meaning they have is relative to one another in an application (and that can be pretty arbitrary also) • cf's can add confusion if the expert doesn't think in terms of them • Alternative approach: explicitly model uncertain knowledge should it be relevant eg. values: dog_bites, dog_may_bite, dog_behavior_uncertain,... then the rules might be: IF dog_barks THEN dog_may_possibly_bite IF dog_stares AND dog_snarls THEN dog_will_probably_bite IF dog_lunges THEN dog_bites