Download de presentatie
De presentatie wordt gedownload. Even geduld aub
GepubliceerdDaniël Jansen Laatst gewijzigd meer dan 10 jaar geleden
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 SC S SC 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 SC 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
Verwante presentaties
© 2024 SlidePlayer.nl Inc.
All rights reserved.