450 likes | 582 Views
werkelijk systeem. geobserveerd gedrag. observeren. match. model abnormaal gedrag. voorspeld gedrag. voorspellen. College 7 : covering theorie (Deel 2). model MAB-diagnose: College 6: Covering theorie College 7: Algoritme voor covering theorie. Effects en causes (HERHALING).
E N D
werkelijk systeem geobserveerd gedrag observeren match model abnormaal gedrag voorspeld gedrag voorspellen College 7 : covering theorie (Deel 2) model MAB-diagnose: College 6: Covering theorie College 7: Algoritme voor covering theorie
Effects en causes (HERHALING) • verzameling effecten mogelijk veroorzaakt door di • verzameling mogelijke oorzaken van mi causes(mi): {dj|<dj,mi> C} effects(di): {mj|<di,mj> C}
Effects & causes (HERHALING) • verzameling effecten mogelijk veroorzaakt door Deffects(D): di D effects(di) • verzameling mogelijke oorzaken van Mcauses(M): mi M causes(di)
Oplossing van diagnose probleem (HERHALING) Vier aspecten van "parsimonious covering theory": (1) "cover" van de manifestatie (2) keuze voor minimaliteit (parsimony) (3) definitie van een verklaring voor de manifestaties (4) definitie van oplossing
Gewenste eigenschappen van covering-algorithme: Constructief:construeer een verklaring door gebruik van relatie Creden: • aantal mogelijke verklaringen is |2D| !! • meeste verklaringen zijn irrelevant • aantal verklaringen van een gegeven probleem is relatief klein Sequentieel:M+ wordt over de tijd aangeleverd
Onderwerpen • Generator & generator setvoor representatie van diagnoses • operatoren--> update van diagnoses bij nieuwe manifestaties • algoritme in termen van generatoren enoperatoren
Generator • Generator GI (g1, g2, …., gn) • gi D • gi’s zijn paarsgewijs disjunct: • gi ≠ leeg • representeert aantal klassen:[GI] = {{d1,d2,…,dn} | di in gi} • Voorbeeld:GI=({d1},{d2,d3},{d4})[GI]={{d1,d2,d4},{d1,d3,d4}}
Generator Dus: • GI is verzameling van disjuncte verzamelingen van disorders • [GI] is een cartesian product
Verklaringen • Generator gebruiken voor representatie van mogelijke verklaringen • 1 generator is vaak niet voldoende • nodig: set van generatoren
Generator set • Compacte representatie van verklaringen • G = {G1, G2, …., Gn} • GI zijn generators • generators mogen niet dezelfde verklaringen genereren:[GI] [GJ] = { } • Klassen (verklaringen) gegenereerd door G:[G] = [G1] U [G2] … U [Gn]
Voorbeeld d1 d2 d3 d4 d5 d6 d7 d8 d9 m1 m2 m3 m4 m5 m6 causes(m1) = {d1,d2,d3,d4} causes(m2) = {d5,d6,d7,d9} causes(m3) = {d2,d3,d5,d6} causes(m4) = {d1,d2,d8} causes(m5) = {d7,d8,d9} causes(m6) = {d2,d4,d8}
Voorbeeld • M+ = {m1,m4,m5} • 8 subset-minimale oplossingen representeren m.b.v. generatorset • G={G1,G2} G1=({d3,d4},{d8}) • G2=({d1,d2},{d7,d8,d9}) d3 en d4 zijn concurerende hyp’s in de context van d8 • G1 representeert 2 verklaringen, G2 representeert 6 verklaringen
Voorbeeld keelonsteking griep longontsteking asthma keelpijn hoesten koorts kortademigheid
Voorbeeld Diagnose-probleem: M+ = {keelpijn, kortademigheid} • generator g voor DP: {{keelontsteking,griep},{longontsteking,asthma}} • de gegenereerde klassen [g]: {{keelontsteking,longontsteking}, {keelontsteking,asthma}. {griep,longontsteking}, {griep,asthma}} irredundante oplossingen voor DP
Generator & klassen • Verschillende generator-sets kunnen dezelfde klassen genereren • Diagnose-probleem:M+ = {keelpijn,kortademigheid,hoesten} • G1= {({keelontsteking},{longontsteking}), ({griep},{longontsteking,asthma})} • G2= {({longontsteking},{keelonsteking,griep}), ({griep},{asthma})} • G3= {({longontsteking},{keelonsteking}), ({longontsteking},{griep}), ({griep},{asthma})}
Operatoren Idee: • sequentiele diagnose:manifestaties komen sequentieel • hypotheses representeren met generator-sets • gebruik `operatoren’ om set van hypotheses te updaten bij nieuwe manifestatie
Operatoren • division operator (delingsoperator):selectie van de hypotheses die ook covers zijn voor de nieuwe manifestatie • residu operator:selectie van de hypotheses die geen covers meer zijn voor de nieuwe manifestatie • augmented residual:vermeerdert de “residual” zodanig dat er nieuwe covers ontstaan
Division operator Div(GI,H1) levert een generator-set Q: • GI is generator:GI = (g1,g2,…,gn) • H1 is subset van D(bijv. causes(mj)) • Q = {Qk | Qk is een generator} • Qk = (qk1, qk2,…) Then: qki := if i<k then gi - H1 if i=k then gi H1 if i>k then gi
Division operator • Q1 = (q11,q12,…)q11: g1 H1q12: g2q13: g3 etc. • Q2 = (q21,q22,…)q21: g1 - H1q22: g2 H1q23: g3q24: g4 etc. • Q3 = (q21,q22,…)q31: g1 - H1q32: g2 - H1q33: g3 H1q34: g4 etc.
Division operator • iedere QI bevat een subset van H1(nl. qkk: gk H1) • gegenereerde klasse doorsnede H1 is nooit leeg • gj - H1 zorgt ervoor dat de nieuwe generatoren [Qk] niet dezelfde klassen (verklaringen) genereren.q11: g1 H1q21: g1 - H1--> dus in het eerste element verschillend
Voorbeeld division operator • M+ = {m1,m4,m5} • G1 = ({d3,d4},{d8}) • H1 = causes(m3) = {d2,d3,d5,d6} • Q1 = ({d3},{d8}) • Q2 = ({d4}, …. • Division van QG1 met H1 is {({d3},{d8})} {d3,d4} doorsnede H1, g2 {d8} doorsnede H1 --> geen generator! {d3,d4} - H1
Voorbeeld division operator • M+ = {m1,m4,m5} • G2 = ({d1,d2},{d7,d8,d9}) • H1 = causes(m3) = {d2,d3,d5,d6} • Q1 = ({d2},{d7,d8,d9}) • Q2 = ({d1}, …. • Division van QG2 met H1 is {({d2},{d7,d8,d9})} {d1,d2} doorsnede H1 {d7,d8,d9} doorsnede H1 --> geen generator! {d1,d2} - H1
Voorbeeld • `Oude’ generator set voor M+: {({d3,d4},{d8}), ({d1,d2},{d7,d8,d9})} • Nieuwe generator set voor M+ m3: {({d3},{d8}), ({d2},{d7,d8,d9})} {d3,d8}, {d1,d7}, {d2,d7} {d4,d8}, {d1,d8}, {d2,d8} {d1,d9}, {d2,d9} zijn ook covers van m3
Generalisatie van division operator • DiscoverSet = div(Generator) • generalisatie: DiscoverSet = div(GeneratorSet)div(G,H1) = GI G div(GI,H1)div(G,H1) en div(GI,H1) leveren beide een generatie-set op
Division operator Lemma:GI: generator, G: generator set • div(GI,H1) is een generator set[div(GI,H1)]={E in [GI]| E H1 ≠ { } } • div(G,H1) is een generator set[div(G,H1)]={E in [G]| E H1 ≠ { } } M.a.w.: de nieuwe H1 wordt ook gegenereert na divisie door H1
Eigenschappen • [div(GI,H1)] is subset van [GI] (meer manifestaties -> minder mogelijke verklaringen) • iedere E (explanation) uit [div(GI,H1)] bevat minstens 1 element uit H1 • iedere E uit [div(G,H1)] bevat minstens 1 element uit H1
merk op: • Divisions leveren generator sets op geen duplicaten van klassen • Nuttig voor oplossen van sequentiele diagnostisch probleem Idee: • Observaties M+ • mogelijke verklaringen [G] • nieuwe observatie mj • mogelijke verklaringen voor M+ mj div(G,causes(mj))
Residual operator • representatie van klassen uit [G] die geen cover zijn voor M+ en mj • nieuwe generator:(g1-H1, g2-H1, g3-H1,…,gn-H1)generatoren die geen element met H1 gemeen hebben.NB: als gi-H1 = leeg, dan nieuwe generator = leeg
Voorbeeld • G1=({d3,d4},{d8}); • G2=({d1,d2},{d7,d8,d9}) • res(G1, causes(m3)) =res(G1,{d2,d3,d5,d6}) = ({d4},{d8}) • res(G2,{d2,d3,d5,d6}) = ({d1},{d7,d8,d9})
Residual operator • res(G,H1) = G1 G res(G1,H1) Lemma: GI: generator, G: generator set • res(GI,H1) is een generator set[res(GI,H1)]={E [GI] | E H1 is leeg } • res(G,H1) is een generator set[res(G,H1)]={E in [G] | E H1 is leeg}
Partities • [res(GI,H1)] en [div(GI,H1)] zijn partities van GI • [res(G,H1)] en [div(G,H1)] zijn partities van G
Verdere generalisaties • divisions met een generator (i.p.v. disrorder set H) • divisions met een generator set • residual met een generator (i.p.v. disorder set H) • residual met een generator set
Operator augmented residual • uitbreiding van de residual operator • augmented residual (augres):vermeerdert de “residual” zodanig dat er nieuwe covers ontstaan • augres(GI,H1)=nieuwe generator:(g1-H1, g2-H1, g3-H1,…,gn-H1,A)A = H1 - Union giH1=causes(mj)
Voorbeeld • Generator set voor M+: {({d3,d4},{d8}), ({d1,d2},{d7,d8,d9})} • augres(G1,H1) =augres({({d3,d4},{d8}), {d2,d3,d5,d6}) ={({d4},{d8},{d2,d5,d6})} • augres(G2,H1) =augres({({d1,d2},{d7,d8,d9}),{d2,d3,d5,d6}) ={({d1},{d7,d8,d9},{d3,d5,d6})} • augres(G,H1)= {({d4},{d8},{d2,d5,d6}), ({d1},{d7,d8,d9},{d3,d5,d6})}
Samenvatting • concept van generator set voor representatie van oplossingen voor diagnostisch probleem • operatoren voor manipuleren van generator sets tijdens het oplossen van het diagnose probleem
Samenvatting • M+ aanwezig • G1 representeert alle mogelijke covers voor M+ nieuwe manifestatie mj bekend • div(G1,causes(mj)) zijn de covers uit G1 die ook covers zijn voor M+ U mj • res(G1,causes(mj)) zijn de covers voor M+ die niet mj verklaren • augres(G1,causes(mj)) zijn de covers voor M+ die niet mj verklaren, vermeerdert zodanig dat ze mj wel verklaren
Diagnose-proces • Sequentiële diagnose • Subset-minimale verklaringen voor M+ U Mj div(G1,causes(mj)) + augres(G1,causes(mj)) • augres operator genereert soms enkele redundante covers • minimale verklaringen zijn een subset van div(G1,causes(mj)) U augres(G1,causes(mj))
Voorbeeld ontstekingamandelen keel- ontsteking long ontsteking oorontsteking asthma oorpijn keelpijn koorts kort ademig hoesten
Voorbeeld • Diagnose probleem: M+ = {keelpijn,kortademig,koorts} • Generator set:{({keelontsteking},{asthma,longontsteking}), ({ontsteking amandelen},{longontsteking})} • H1= causes(oorpijn) = {oorontsteking, ontsteking amandelen}
Voorbeeld • [div(G,H1)] = {{longontsteking, ontsteking amandelen}} • [augres(G,H1)] = {{keelontsteking,asthma,oorontsteking}, {keelontsteking,asthma,ontsteking amandelen},{keelontsteking,longontsteking,oorontsteking}, {keelontsteking,longontsteking,ontsteking amandelen}} • {{longontsteking, ontsteking amandelen}} {keelontsteking,longontsteking,ontsteking amandelen}}
Algoritme • manifestaties komen sequentieel • constructie van nieuwe hypotheses op basis van eerdere hypotheses
Algoritme • revise(G,H1) = F U res(Q,F)Waarbij: • F = div(G,H1) • Q = augres(G,H1) begin hyp = { {} } while MoreManifestations do m = NextManifestation hyp = revise(hyp, causes(m)) end-while return(hyp) end
Verwijderen van redundante oplossingen • QL: “nieuwe covers” verkregen met “augmentation operator” • QJ: “oude covers” die ook de nieuwe manifestatie mnieuw bedekt. • Res(QL,QJ) = alle subsetminimale diagnoses voor Morg + mnieuw
Voorbeeld mnieuw causes(mnieuw) hypothesis M1 {d1,d2,d3,d4} {({d1,d2,d3,d4})} M4 {d1,d2,d8} {({d1,d2}), ({d3,d4},{d8})} M5 {d7,d8,d9} {({d1,d2},{d8,d8,d9}), ({d3,d4},{d8})
Volgende keer: Diagnose met correctmodellen