De presentatie wordt gedownload. Even geduld aub

De presentatie wordt gedownload. Even geduld aub

Voorstellen en redeneren over kennis: diagnose en uitleg

Verwante presentaties


Presentatie over: "Voorstellen en redeneren over kennis: diagnose en uitleg"— Transcript van de presentatie:

1 Voorstellen en redeneren over kennis: diagnose en uitleg

2 Tot nu toe Vandaag A B als A dan B A B Abductief redeneren

3 Mag dat? Maar… zo werken de dokters! Alle katten zijn sterfelijk.
Socrates was sterfelijk. Dus Socrates was een kat. Eugene Ionesco “Les Rhinoceros” Maar… zo werken de dokters!

4 Bij de dokter Alle mensen die malaria hebben, hebben koortsaanvallen, hoofdpijn en braakneigingen. Socrates heeft koortsaanvallen, hoofdpijn en braakneigingen. Dus, Socrates heeft malaria. Herinneren jullie Gideon nog?

5 B. Speurder die een dief probeert te vinden
Vlugge Vraag Wie nog werkt abductief? Juiste antwoord: B. De speurder begint met aanwijzingen en door die te gebruiken probeert hij een dief te vinden. De wetenschapper kijkt naar de natuur, hij ziet A en hij ziet B en hij concludeert dat B vanuit A volgt. Dat is inductief rederen. B. Speurder die een dief probeert te vinden A. Wetenschapper die nieuwe verbanden zoekt bij de natuurverschijnselen

6 Let op! Top-down Abductief Deductief Bottom-up
Deductief redeneren: hetgeen wat we tot nu toe gezien hebben Deductief of abductief onafhankelijk van top-down of bottom-up; we kunnen beide technieken gebruiken in beide gevallen. Er bestaat trouwens een derde vorm van redenen: inductief redeneren, maar het is voor later. Bottom-up

7 is een diagnose of een uitleg voor
Diagnose en uitleg B als A dan B A A is een diagnose of een uitleg voor B

8 Wij zoeken een uitleg voor koorts
Voorbeeld koorts ← malaria. koorts ← ontsteking. ontsteking ← pneumonie. ontsteking ← artritis. hoofdpijn ← malaria. Wij zoeken een uitleg voor koorts

9 Wij zoeken een goede uitleg voor koorts
koorts ← malaria. koorts ← ontsteking. ontsteking ← pneumonie. ontsteking ← artritis. hoofdpijn ← malaria. Is hoofdpijn een goede uitleg? Nee. Koorts kan niet verklaard worden door deze aanname! Een goede uitleg α voor een stelling β: (1) α is voldoende voor β: KB  {α} ² β

10 Wij zoeken een goede uitleg voor koorts
koorts ← malaria. koorts ← ontsteking. ontsteking ← pneumonie. ontsteking ← artritis. hoofdpijn ← malaria. Is false een goede uitleg? Nee. De gegevens worden inconsistent! Een goede uitleg α voor een stelling β: (2) α is niet strijdig met KB: KB  {α} is consistent

11 Wij zoeken een goede uitleg voor koorts
koorts ← malaria. koorts ← ontsteking. ontsteking ← pneumonie. ontsteking ← artritis. hoofdpijn ← malaria. Is malaria  artritis een goede uitleg? Nee. Malaria alleen is voldoende

12 Wij zoeken een goede uitleg voor koorts
koorts ← malaria. koorts ← ontsteking. ontsteking ← pneumonie. ontsteking ← artritis. hoofdpijn ← malaria. Bijkomende aanname: kind. Is malaria  kind een goede uitleg? Nee. kind is overbodig! Een goede uitleg α voor een stelling β: (3) α moet zo weinig mogelijk termen hebben

13 Zo weinig mogelijk? Minimaal ten opzichte van 
geluk ← goede_gezondheid  goede_loon geluk ← zen goede_gezondheid  goede_loon en zen - beide zijn minimaal!

14 Wij zoeken een goede uitleg voor koorts
koorts ← malaria. koorts ← ontsteking. ontsteking ← pneumonie. ontsteking ← artritis. hoofdpijn ← malaria. Is ontsteking een goede uitleg? Nee. Te algemeen! Een goede uitleg α voor een stelling β: (4) α is over abductieve predicaten (diegene waarop we een uitleg willen baseren) Abductieve predicaten

15 Samenvatting Gegeven: KB en uit te leggen formule β
Een abductieve uitleg α α is voldoende voor β: KB  {α} ² β KB  {α} is consistent α telt zo weinig mogelijk conjuncten/disjuncten α is over abductieve predicaten

16 Een abductieve uitleg voor elleboogpijn is:
Vlugge Vraag elleboogpijn ← tenniselleboog  tennisser. elleboogpijn ← golfelleboog  golfspeler. elleboogpijn ← gewrichtspijn. gewrichtspijn ← artritis  behandeld. tennisser. golfspeler. Een abductieve uitleg voor elleboogpijn is: golfelleboog  tenniselleboog. gewrichtspijn. artritis  behandeld. Abductieve predicaten staan in cursief. Het juiste antwoord is C. A past niet omdat “tenniselleboog” overbodig is (in strijd met eis 3: α telt zo weinig mogelijk conjuncten/disjuncten). B past ook niet, omdat gewrichtspijn geen abductief predicaat is. C voldoet aan alle eisen.

17 Doel: berekenen van een abductieve uitleg
1. Priemimplicaten 2. Berekenen van een uitleg

18 Vereenvoudigende opmerkingen
Uit te leggen β is een atoom Een uitleg α is een conjunctie Desda = dan en slechts dan als Uit te leggen β is een atoom Anders, neem een nieuwe atoom b α is een uitleg voor β tov KB desda α is een uitleg voor β tov KB  {b ← β, β ← b} Een uitleg α is een conjunctie Anders neem aan dat DNF[α] = γ1  …  γn Dan is ten minste een van de γi‘s een uitleg γi telt minder termen dan α!

19 Priemimplicaten KB  {α} ² β equivalent met KB ² (α  β)
Aanname: α is een conjunctie Dus, α is een disjunctie Dus: priemimplicaat is een disjunctie γ: KB ² γ Voor ieder γ’  γ, KB ² γ’ γ is over de abductieve predicaten γ is, dus, α  β

20 Vlugge Vraag Priemimplicaat: p  q  r Uit te leggen: r
Uitleg voor r: p  q p  q p  q p  q Abductieve predicaten staan in cursief. Het juiste antwoord is D. “γ is, dus, α  β”

21 Vlugge Vraag Stelling: p  p is altijd een priemimplicaat ongeacht het KB Waar Niet waar Abductieve predicaten staan in cursief. De stelling is niet waar. Het is “bijna” waar: als KB |= p dan is p  p niet minimaal; ook als KB |=  p dan is p  p niet minimaal; in alle andere gevallen is de stelling wel waar. Daarom zijn triviale priemimplicaten ook niet zo interessant. We nemen aan dat impicaten dus niet triviaal zijn.

22 Berekenen van een uitleg
Bereken alle priemimplicaten met β Schrap β van de priemimplicaten Voor alle restanten over abductieve predicaten, bereken hun negaties. Hoe kunnen we de priemimplicaten berekenen?

23 Berekenen van de priemimplicaten
Resolutie gebaseerd! Als KB ² c dan KB ` c Naïef: bereken alle implicaten mbv resolutie kies de priemimplicaten gegeven β gebruik de priemimplicaten om α’s te genereren inefficiënt

24 Vlugge Vraag n-1 2 Hoeveel priemimplicaten houden En in?
Ei  pi → Oi+1. Ei  qi → Ei+1 Oi  pi → Ei+1 Oi  qi → Oi+1. E0 O0 E0 Ei Ei+1 Oi+1 Oi En pi qi Abductieve predicaten staan in cursief. Uitleg is een pad in een graaf rechts: we moeten met E0 beginnen en in En eindigen. Ieder pad heeft een vorm {x0, …, x{n-1}} waar xi of pi of qi is en het totale aantal van de pi-en even is. Er zijn 2^{n-1} paden (en dus 2^{n-1} priemimplicaten). 2 n-1

25 Bereken priemimplicaten
Peter Jackson: PIG (Prime Implicate Generator) Genereer onmiddellijk de priemimplicaten Iteratief Probeer heuristieken toe te passen Meer details: PIG (Prime Implicate Generator) Peter Jackson “Computing Prime Implicates”, ACM, 1992 “Computing Prime Implicates”, ACM, 1992

26 PIG in de praktijk c1 = elleboogpijn ← tenniselleboog  tennisser. c2 = elleboogpijn ← golfelleboog  golfspeler. c3 = elleboogpijn ← gewrichtspijn. c4 = gewrichtspijn ← artritis  behandeld. c5 = tennisser. c6 = golfspeler. Welke clausules hebben als hoofd een atoom uit het lichaam van c1…c6? c1 c2 c3 c4 c5 c6 Partners {c6} {c4}

27 PIG in de praktijk Resolutiestap met c1…c6 Twee paren: c2-c6 en c3-c4
c2 = elleboogpijn ← golfelleboog  golfspeler. c3 = gewrichtspijn ← artritis  behandeld. c4 = elleboogpijn ← gewrichtspijn. c6 = golfspeler. Twee paren: c2-c6 en c3-c4 Resolutiestap met c1…c6 c1 c2 c3 c4 c5 c6 Partners {c6} {c4} {c3} {c2}

28 PIG in de praktijk c1 = elleboogpijn ← tenniselleboog  tennisser.
c2 = elleboogpijn ← golfelleboog  golfspeler. c3 = elleboogpijn ← gewrichtspijn. c4 = gewrichtspijn ← artritis  behandeld. c5 = tennisser. c6 = golfspeler. Begin met een clausule met partner en gooi die weg: c2. Resolvent van c2 en c6: c7 = elleboogpijn ← golfelleboog. Voeg c7 toe aan het programma. Het lichaam van c7 is alleen over abductieve predicaten Voeg c7 aan de antwoordenverzameling

29 PIG in de praktijk c3 = gewrichtspijn ← artritis  behandeld.
c4 = elleboogpijn ← gewrichtspijn. Herhaal het proces met c3 (en c4). Bereken: c8 = elleboogpijn ← artritis  behandeld. Voeg c8 toe aan het programma en aan de antwoordverzameling.

30 PIG in de praktijk c7 = elleboogpijn ← golfelleboog.
c8 = elleboogpijn ← artritis  behandeld. c7 en c8 hebben geen partners. alle partners zijn afgehandeld Het proces stopt. Antwoorden vanuit de antwoordverzameling: golfelleboog. artritis  behandeld.

31 Wat hebben we gedaan? Kandidaten = clausules met partners.
Kies één van de kandidaten (heuristiek) Neem een van zijn partners Voeg een resolvent toe aan het programma. als het een goede uitleg is, voeg toe aan de antwoordverzameling. Herhaal het proces. Er zijn wel nog addertjes onder het gras… Addertjes: subsumptie check om eindigheid te garanderen

32 Vlugge Vraag Kies één van de kandidaten Neem een van zijn partners
Voeg een resolvent toe aan het programma. als het een goede uitleg is, voeg toe aan de antwoordverzameling. Herhaal het proces. koorts ← malaria. koorts ← ontsteking. ontsteking ← pneumonie. ontsteking ← artritis. hoofdpijn ← malaria. Juiste antwoord is B: 1) (koorts <- ontsteking) + (ontsteking <- pneumonie) en 2) (koorts <- ontsteking) + (ontsteking <- artritis) Hoeveel resolventen worden door PIG aan het programma toegevoegd tot dat het proces stopt? A. 1 B. 2 C. 3

33 Vlugge Vraag Kandidaten = clausules met partners.
Kies één van de kandidaten Neem een van zijn partners Bereken een resolvent Voer de subsumptie-controle uit Als die slaagt voeg het aan de verzameling clausules. Anders neem een andere partner. Herhaal het proces. Zonder de subsumptie-controle stopt het algoritme altijd? Ja Nee Het juiste antwoord is “Nee”, neem clausules a <- b en b <- b, c. We produceren resolventen a <- b,c; a <- b,c,c; etc – de subsumptie-controle lost dit probleem op.

34 PIG is leuk maar… Kunnen we meer dan een uitleg genereren?
Efficiëntie? Wat gebeurt als de formules variabelen inhouden? En wat als r(b) een deel uitmaakt van een uitleg voor r(a)? En wat als we het in Prolog doen? negatie als eindig falen ipv de echte negatie

35 Voorbeeld met variabelen
xor-poort(x1). xor-poort(x2). xor-poort(p)  ab(p) → out(p) = xor(in1(p), in2(p)) xor-poort(p)  ab(p) → out(p) = in2(p) x1 x2 a1 a2 o or-poort(o). or-poort(p)  ab(p) → out(p) = or(in1(p), in2(p)) or-poort(p)  ab(p) → out(p) = in2(p) and-poort(a1). and-poort(a2). and-poort(p)  ab(p) → out(p) = and(in1(p), in2(p)) Wat gebeurt er als een and slecht is weten we niet. Full adder a.k.a. een volledig opteller: 2 XOR-poorten, 2 AND-poorten en een OR-poort Voor ieder poort geven we aan wat voor gedrag we verwachten als het poort goed is en als het poort foutief is (als we het ten minste weten; voor or en xor – wel, voor and - niet). Voor alle draden geven we aan de relaties tussen in- en out-waarden. out(a1) = in2(o)

36 Voorbeeld 0 1 1 + 0 ----- x1 x2 a2 o a1
Gegeven (KB): A = 1, B = 0, Cin = 1. Uit te leggen (β): S = 1, Cout = 0. Ergens is er een fout… x1 x2 a1 a2 o Stel x2 foutief is, dan Cin = in(x2) = out(x2) = S = 1. Stel o foutief is en a1 goed. Dan out(a1) = 0 en Cout = 0. A = 1, B = 0, Cin = 1. Dus S moet 0 zijn en Cout 1. Onze opteller zegt S = 1, Cout = 0. Een abductieve uitleg (α): x1 en o zijn foutief, a1 is goed. x1 is foutief, a1 en a2 zijn goed. x2 en o zijn foutief, a1 is goed.

37 Vlugge Vraag x1 x2 a2 o a1 Wat betekent
“Een abductieve uitleg: x2 en o zijn foutief, a1 is goed” voor andere poorten? Alle andere poorten zijn goed. Alle andere poorten zijn foutief. Het maakt niet uit of andere poorten goed of foutief zijn. Het juiste antwoord is C.

38 1 x1 1 x2 a2 1 x2 en o zijn foutief, a1 is goed o a1

39 Er zijn ook andere mogelijkheden
x1 en o zijn foutief, a1 is goed. x1 is foutief, a1 en a2 zijn goed. x2 en o zijn foutief, a1 is goed. x1 x2 a1 a2 o

40 Huiswerk 10 Kies een van de bestaande technieken voor het berekenen van een abductieve uitleg. Wat de techniek samen. Wat is de complexiteit van het algo? Sterke en zwakke punten? Aanbevolen: Eiter, Makino, “Generating all abductive explanations from a propositional Horn theory”. Denecker, De Schreye, “SLDNFA: an abductive procedure for normal abductive programs”. Deadline: 8 mei 2007

41 Abductieve uitleg = goede uitleg?
Doel: verklaring voor een abnormaal gedrag. Eis (3) “α telt zo weinig mogelijk conjuncten” abnormale  Consistentiegebaseerde uitleg

42 Vlugge Vraag Een abductieve uitleg: x1 en o zijn foutief, a1 is goed
Is dat ook een consistentiegebaseerde uitleg? Ja Nee Antwoord is Nee. waarom – zie volgende transparant

43 Foutieve x1 is voldoende!
x1 x2 a1 a2 o 1 1 1 x1 is foutief, dus x1 geeft de waarde van de tweede invoer als een uitvoer door. x2 is goed, dus S is 1. a2 is goed dus out(a2) = 0. a1 is goed, dus 0 is de waarde van out(a1). o is goed dus Cout is 0.

44 Waarom is ab(x1) geen abductieve uitleg?
x1 x2 a1 a2 o 1 1 1 De waarde van x2 is inderdaad overbodig, het maakt niet uit of x2 foutief of goed is. We weten niets over het foutief gedrag van de and-poorten, We weten wel dat als o foutief is, dan out(a1) = 0. Dus of moeten we aannemen dat a1 goed is en o – foutief, of dat o, a1 en a2 goed zijn. Maw uitleg is afhankelijk van het feit of o goed of foutief is.

45 Samenvatting abductieve consistentiegebaseerde aanname geen
wereld U, sommige elementen zijn abnormaal formeel KB  α ² β KB  {Ab(a)|aα}  {Ab(a)|aα}  {β} ² false atomen in de uitleg abnormaal en normaal abnormaal andere atomen maakt niet uit normaal problemen zwak zonder een model van een abnormaal gedrag kan te veel diagnoses opleveren

46 Berekenen van een consistentiegebaseerde uitleg
Stelling [Reiter 1987]: α is een consistentiegebaseerde uitleg desda KB  {Ab(a)|aα}  {β} ² false Algoritme (genereer en controleer): Bereken alle mogelijke α  U, beginnend met kleine |α| Controleer of KB  {Ab(a)|aα}  {β} ² false Ab(o) Ab(a1) desda = dan en slechts dan als U – het universum, alle atomen U

47 Iets beters? Gebaseerd op de noties van Conflictverzameling
Doorsnijdende verzameling HS boom

48 Vlugge Vraag 1 1 x1 x2 a2 1 o a1 Conflictverzameling :
KB  {β}  { Ab(d) | d} ² false Conflictverzameling? A. {x1, x2} B. {x1, a1} C. {x1, a1, a2, o} 1 x1 x2 a1 a2 o 1 Juiste antwoorden zijn A en C. Bovendien, A is minimaal, C is niet minimaal.Wat zijn de minimale conflictverzamelingen in C? Er is maar een: {x1,a2,o} 1

49 Uitleg vs. conflictverzameling
KB  {Ab()|}  {Ab(d)|d}  {β} ² false Conflictverzameling : KB  {β}  {Ab(d) | d} ² false

50 Doorsnijdende verzameling
Doorsnijdende verzameling D voor een collectie van verzamelingen C D  SC S SC D  S   S1 S2 S3 D

51 Uitleg als een doorsnijdende verzameling van conflicten
Vlugge Vraag Stelling: Ab(α) is een uitleg desda α is een minimale doorsnijdende verzameling voor een collectie van de minimale conflictverzamelingen van KB  {β} Het juiste antwoord is nee. {x2,o} en {x2,a2} zijn andere mogelijkheden. {{x1, x2}, {x1, a2, o}} {x1} Is deze uitleg uniek? A. Ja B. Nee {x2,a2} {x2,o}

52 Berekenen van een minimale doorsnijdende verzameling
Gegeven een collectie C van verzamelingen HS boom knopen gemarkeerd met of met  of met een verzameling uit C kanten gemarkeerd met een element van de verzamelingen uit C Doorsnijdende verzameling = hitting set, HS dus vandaan.

53 collectie C van verzamelingen
wortel: gemarkeerd met  als C leeg is anders, een verzameling uit C voor een knoop n H(n) – markeringen van het pad vanuit de wortel n gemarkeerd met ? geen kinderen anders n gemarkeerd met SC voeg knopen n1, …, n|S| als kinderen van n (n, ni) gemarkeerd door een unieke element van S voor ieder ni: Bestaat er een Σ C zodanig dat ΣH(ni) = ? Markeer ni met Σ Anders markeer ni met  collectie C van verzamelingen

54 C = {{2,4,5},{1,2,3},{2,4,6}, {1,3,5},{2,4},{2,3,5},{1,6}} Reiter

55 A B Vlugge Vraag C = {{1,2}, {1,3}} Welke boom is een HS boom voor C?
1 3 2 A {1,3} {1,2} 1 2 3 B Beide

56 C = {{2,4,5},{1,2,3},{2,4,6}, {1,3,5},{2,4},{2,3,5},{1,6}} Reiter Let op: niet alle doorsnijdende verzamelingen hebben zo’n pad. Voor ons is het voldoende dat de minimale zo’n pad hebben. Een pad naar  is een doorsnijdende verzameling en alle minimale doorsnijdende verzamelingen hebben zo’n pad!

57 HS boom = alle minimale doorsnijdende verzamelingen voor een gegeven collectie
Kunnen we de boom kleiner maken?

58 Verbetering (1) n8 is overbodig!

59 De markering van n9 kan bepaald worden zonder berekenen H(n9)  H(n3).
Verbetering (2) De markering van n9 kan bepaald worden zonder berekenen H(n9)  H(n3).

60 Verbetering (3) {2,4} C {2,4,5} C {2,4,5} is overbodig

61 Verbetering algo Breedte eerst
Als n met S gemarkeerd is, en H(n’)  S = , markeer n’ met S. Pruning: H(n) = H(n’) markeer n’ met  en stop! n gemarkeerd met  en H(n)  H(n’) Als markering(n’)  markering(n) markeer (n,n’’) als overbodig )( voor alle n’’ zodanig dat markering((n,n’’)) markering(n)\markering(n’). verwijder de hele boom onder n’’ )( betekent overbodigheid

62 Kleinere boom Reiter

63 Berekenen van een consistentiegebaseerde uitleg
Bereken alle minimale conflictverzamelingen Bereken een doorsnijdende verzameling met behulp van een HS boom Het berekenen van een Do het tegelijkertijd!

64 Hulpfunctie TP Aanname: functie TP zodanig dat Opmerking: voor C  U
TP(KB, Comp, β) = Δ als KB  {β}  {Ab(α)|αComp} ² false en Δ  Comp is een conflictverzameling TP(KB, Comp, β) = , anders. Opmerking: voor C  U TP(KB, U – C, β) = Δ als Δ  U is een conflictverzameling en ΔC =  TP(KB,U - C, β) = , anders

65 Eindelijk het algoritme
x1 x2 a1 a2 o 1 Bereken de HS boom gebruik TP(KB, U – H(n), β) om n te markeren Geef H(n) terug voor een met gemarkeerde n. TP(KB, {x1,x2, a1, a2, o}, β) {x1,x2} x1 x2 TP(KB, {x1, a1, a2, o},β) {x1,a2, o} o x1 a2 TP(KB, {x2, a1, a2, o}, β) TP(KB, {x1,a1,o}, β) Niet consistent. Aanname: TP(KB, {x1,x2, a1, a2, o}, β) = {x1, x2}. Niet consistent. Aanname: TP(KB, {x1, a1, a2, o}, β) = {x1, a2, o}. Uitleg: {x1}, {x2, a2}, {x2, o} Consistent! Overbodig – prunningregel. Consistent!

66 Vlugge Vraag x 1 a n x n a Halve aftrekker
x Halve aftrekker 1 a n x n a {x} {n,a} Geef een consistentie-gebaseerde uitleg. Als ze niet antwoorden: vragen wat zijn de conflictverzamelingen? ({x}, {n,a})

67 Huiswerk 11 Abnormale wezens Lees het artikel van Reiter
Doet denken aan verstekregels Lees het artikel van Reiter Bespreek de relatie tussen consistentiegebaseerde uitleg en verstekregels. Deadline: 8 mei 2007

68 Wat hebben we gedaan? Diagnose en uitleg Twee soorten uitleg
consistentiegebaseerde abductieve Console, Torasso: Efficiënte algoritmen om ze te berekenen Uitleg


Download ppt "Voorstellen en redeneren over kennis: diagnose en uitleg"

Verwante presentaties


Ads door Google