Presentation on theme: "B. Ross Cosc 4f79 1 Uncertainty Knowledge can have uncertainty associated with it - Knowledge base: rule premises, rule conclusions - User input: uncertain,"— Presentation transcript:
B. Ross Cosc 4f79 1 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
B. Ross Cosc 4f79 2 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
B. Ross Cosc 4f79 3 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
B. Ross Cosc 4f79 4 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
B. Ross Cosc 4f79 5 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
B. Ross Cosc 4f79 6 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
B. Ross Cosc 4f79 7 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
B. Ross Cosc 4f79 8 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
B. Ross Cosc 4f79 10 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).
B. Ross Cosc 4f79 11 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).
B. Ross Cosc 4f79 13 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