729G43 Artificiell intelligens Probabilistisk logik Arne Jönsson HCS/IDA
Probabilistiska resonemang Osäkerhet Grundläggande sannolikhetslära Stokastiska variabler Bayes teorem Bayesianska nätverk Konstruktion Inferens HMM
Osäkerhet Agenten har nästan aldrig tillgång till hela sanningen om omgivningen Ofullständig eller felaktig förståelse av världen, jfr qualification problem Exempel: Mål: cykla hem efter jobbet Om inte: Jag måste jobba, Jag blir bortbjuden, Cykeln stulen eller punkterad, Huset brunnit ner, Jag blir bortrövad etc etc Kan mildra målet: komma hem nångång Eller resurserna: jag sticker nu innan jag blir bortrövad och cykeln stulen Rationella beslut fattade baserat på hur viktigt målet är jämfört med den kostnad det innebär att nå målet i termer av hur troligt det är att man lyckas
Osäkerhet Diagnosregel d Lufttomt(d) Punktering(d) Inte korrekt eftersom alla lufttomma däck inte punkterade d Lufttomt(d) Punktering(d) IngenVentil(d) IngenSlang(d) IntePumpat(d) qualification Funkar inte med d Punktering(d) Lufttomt(d) eftersom det kan vara pyspunka, nypunkat etc Om inget oförutsett inträffat så: Icke-monoton logik d Lufttomt(d) MPunktering(d) Punktering(d)
Sannolikhet Vill ha något i stil med: d Lufttomt(d) 0,8 Punktering(d) Sannolikheten för punktering givet att däcket är lufttomt är 0,8 Detta betyder att 80% av alla lufttomma däck har punktering inte att vi har 80% punktering, dvs satser är sanna eller falska med viss sannolikhet. Grad av sanning hanteras med Fuzzy logic
Varifrån kommer sannolikheterna Frekventistiskt perspektiv Sannolikheter är relativa frekvenser som baseras på experiment Subjektivistiskt perspektiv Sannolikheter beskriver en agents konfidens Objektivistiskt perspektiv Sannolikheterna är reala aspekter i verkligheten; objektiva sanningar, beroende på objektet, ex. sannolikheten för klave = 0,5
Beslutsteoretisk agent Räkna ut sannolikheter för nuvarande tillstånd baserat på percept och handling Räkna ut utfallssannolikheter för handlingar baserat på handlingsbeskrivningar och nuvarande tillstånd Välj handling med högst förväntad nyttighet givet sannolikheten att lyckas och information om handlingars nyttighet En beslutsteoretisk agent kan inte med säkerhet välja en handling, utföra den och vara säker på utfallet
Stokastiska variabler Stokastiska variabler P(a) betecknar sannolikheten att den stokastiska variabeln a är sann, ovillkorligt Stokastiska variabler skrivs med inledande versal, ex Punktering I boken betecknas okända stokastiska variabler med liten bokstav, P(a), vilket vi gör här också Stokastisk variabel, X, har sannolikhet för olika värden ur en värdedomänen <x 1, x 2, x n > Vanlig domän är <sant, falskt> P(Punktering=sant) = 0,2 Logiska konnektiv P(Punktering = sant Cykelpump= falskt) = 0,99
Konventioner P(X=sant) skrivs P(x) och P(X=falskt) skrivs P( x), P(Punktering=sant) skrivs som P(punktering) P(cykelpump punktering) = 0,1
Sannolikhetsfördelning Stokastisk variabels värdedomän kan ha fler olika värden P(Däcket=punkterat) = 0,2 P(Däcket=opumpat) = 0,3 P(Däcket=helt) = 0,5 P betecknar en vektor av sannolikheter P(Däcket) = <0,2, 0,3, 0,5> För domänen <sant, falskt> betecknar P(Cykelpump) alla värden, dvs P(Cykelpump=sant) och P(Cykelpump=falskt) P(Cykelpump, Punktering) betecknar alla kombinationer av värden P(cykelpump, Punktering) betecknar de fall då Cykelpump=sant medan Punktering är antingen sant eller falskt
Grundläggande axiom 0 P(a) 1 P(sant) = 1; P(falskt) = 0 För variabeln D med domänen d 1,..d n gäller: å i= 1 ) = 1 P(a Ú b) = P(a) + P(b) P(a Ù b) n P( D = d i a b
Betingad sannolikhet Sannolikheten att a är sann givet att b är sann tecknas P(a b) P(punktering luft) = 0,8, förutsatt att vi bara vet lufttomt P(punktering luft cykelpump) = 0,01, om vi vet mer Betingad sannolikhet kan definieras i termer av ovillkorlig sannolikhet P(a b) = P(a b) P(b) Produktregeln P(a b) = P(a b)p(b) P(a b) = P(b a)p(a)
Kedjeregeln Produktregeln för P P(A,B) = P(A B)P(B) P(A = a 1 B = b 1 ) = P(A = a 1 B = b 1 ) P(B = b 1 ) P(A = a 1 B = b 2 ) = P(A = a 1 B = b 2 ) P(B = b 2 ) Kan också skrivas P(a 1,a 2,...,a n ) = P(a n a n 1,...,a 1 )P(a n 1,...,a 1 ) fortsätt applicera P(a 1,a 2,...,a n ) = P(a n a n 1,...,a 1 )P(a n 1 a n 2..,a 1 )...P(a 2 a 1 )P(a 1 ) n P(a 1,a 2,...,a n ) = P(a i a i 1,...,a 1 ) Kedjeregeln i=1
Simultanfördelning, 1 Simultanfördelningen visar sannolikheten för varje möjlig kombination av värden på stokastiska variabler P(Punktering) betecknar såväl P(punktering) som P( punktering), ex P(Punktering) = <0,6, 0,4> P(Punktering) Punktering=sant 0,6 Punktering=falskt 0,4 För två variabler med tvåvärd värdedomän (t.ex. sant, falskt) blir det 2 x 2 = 4 värden, ex P(Punktering, Luft) betecknar alla kombinationer av de stokastiska variablerna Punktering och Luft
Simultanfördelning, 2 P(Punktering, Luft) luft luft punktering 0,1 0,4 punktering 0,4 0,1 Tabellens värden måste summeras till 1 Ur tabellen fås t.ex.: P( punktering luft) = 0,4 P(Punktering luft) = 0,1+ 0,4 = 0,5 P( punktering luft) = P( punktering luft) P( luft) = 0,4 0,4 + 0,1 = 0,8
Oberoende P(Punktering, Luft) ger tabell med 2x2=4 värden Fler variabler P(Punktering, Luft, Cykelpump) ger tabell med 2x2x2=8 värden För n binära stokastiska variabler har vi 2 n värden P(Tärning=6 Tärning=1) = P(Tärning=6), dvs sannolikheten för att få 6 är oberoende av tidigare tärningskast P(Punktering, Sol) är också oberoende och kan skrivas som P(Punktering) P(Sol) med 2+2 värden P(Punktering, Sol, Tandvärk, FredPåJorden) är oberoende, dvs P(Punktering) P(Sol) P(Tandvärk) P(FredPåJorden) Ger tabell med 2+2+2+2=8 värden istället för 2 4 =16 värden
Bayes teorem P(a b) = P(a b)p(b) P(a b) = P(b a)p(a) P(a b)p(b) = P(b a)p(a) P(b a)p(a) P(a b) = P(b) P(B A)P(A) P(A B) = P(B) Produktregeln Bayes teorem Bayesteorem för flervärda variabler
Bayes teorem, 2 Fördelen med Bayes teorem är att den låter oss uttrycka diagnossamband i termer av kausalsamband Kausalsamband, P(a b), b orsakar a, men vi vill ofta diagnostisera utifrån observationer Exempel P(rödaPrickar mässling) = 0,8 (kausalsamband) P(mässling) = 0,3 (ovillkorligt) P(rödaPrickar) = 0,5 Diagnostisera mässling utifrån patient med röda prickar: P(mässling rödaprickar) = P(rödaPrickar mässling)p(mässling) P(rödaPrickar) = 0,8 0,3 0,5
Mer Bayes P(a b) = P(b a)p(a) P(b) Eftersom vi har disjunkta händelser som fyller hela utfallsrummet kan P(b) tecknas som: P(b) = P(a)P(b a) + P( a)p(b a) a a b P(a b) = P(b a)p(a) P(a)P(b a) + P( a)p(b a)
Mer generell Bayes Om vi har flera möjliga orsaker till en viss observation o 2 o 1 s o n o 3 P(s) = n P(o i )P(s o i ) i=1 P(o k s) = P(s o k )P(o k ) n P(o i )P(s o i ) i=1
Exempel, Kahneman & Tversky, 1972 Stad med två taxibolag: Blå har 85%, Gröna har 15% Taxi inblandad i smitningsolycka Vittne säger att den var grön Test visar att vittnet blandar ihop grönt och blått 20% av fallen Hur tillförlitligt är vittnet? P(grön vittnargrön) P(vittnarGrön grön) = 0,8 P(vittnarGrön blå) = 0,2 P(vittnarGrön grön)p(grön) P(grön vittnargrön) = P(vittnarGrön) P(vittnarGrön) = P(grön)P(vittnarGrön grön) + P(blå)P(vittnarGrön Blå) P(grön vittnargrön) = 0,15 0,8 0,15 0,8 + 0,85 0,2 = 0,41
Normalisering, 1 P(vittnarGrön grön)p(grön) P(grön vittnargrön) = P(vittnarGrön) P(vittnarGrön blå)p(blå) P(blå vittnargrön) = P(vittnarGrön) I båda fallen har vi P(vittnarGrön) i nämnaren och egentligen är vi mest intresserade av vilken av dessa som är mest sannolik Vi normaliserar och inför: α = 1 P(vittnarGrön)
Normalisering, 2 Exempel. Är en individ med röda prickar marsian eller inte? P(marsian) = 0,2 P( marsian) = 1 P(marsian) = 0,8 P(rödaPrickar marsian) = 0,96 P(rödaPrickar marsian) = 0,26 OBS! P(rödaPrickar marsian) 1 P(rödaPrickar marsian) Till skillnad från P(rödaPrickar marsian) = 1 P( rödaprickar marsian) P(rödaPrickar marsian) P(marsian) P(marsian rödaprickar) = P(rödaPrickar) P(rödaPrickar marsian) P( marsian) P( marsian rödaprickar) = P(rödaPrickar) 1 Normalisera och inför α = P(rödaPrickar) P(marsian rödaprickar) = α P(rödaPrickar marsian) P(marsian) = 0,96 0,2 α = 0,19 α P( marsian rödaprickar) = α P(rödaPrickar marsian) P( marsian) = 0,26 0,8 α = 0,21 α
Normaliserad Bayes P(Y X)=αP(X Y)P(Y) där α är en normaliseringskonstant som ser till att P(Y X) summeras till 1 P(X Y) kausalsamband, ex mässling ger röda prickar Vi har också P(a b) P(a b) = = α P(a b) P(b) Jämför med Bayes P(a b) = P(b a)p(a) P(b) = α P(b a) P(a)
Exempel, taligenkänning Man vill välja det mest sannolika ord som en viss ljudsignal svarar mot P(Ord Signal) = P(Signal Ord) P(Ord) P(Signal) = α P(Signal Ord) P(Ord) P(Ord) anger hur vanligt ett visst ord är (i en viss kontext) P(Signal Ord) är den akustiska modellen och anger vilken ljudsignal ett ord oftast ger upphov till Ex: P( räv räv) = 0,7 P( oäv räv) = 0,1 P( rev räv) = 0,2
Villkorligt oberoende, 1 P(mässling rödaprickar feber) = α P(rödaPrickar feber mässling)p(mässling) Skalar inte upp eftersom vi har kombinationer av värden, generellt P(X 1,X 2,,X n Y) ger 2 n värden Men både röda prickar och feber beror på mässling så vi kan anta att röda prickar (feber) inte påverkas av om man har feber (röda prickar) eller inte, givet att vi vet mässling. De är villkorligt oberoende P(mässling rödaprickar feber) = α P(rödaPrickar mässling) P( feber mässling) P(mässling)
Villkorligt oberoende, 2 Generellt: Om variablerna X och Y är villkorligt oberoende givet variabeln Z så gäller att: P(X, Y Z) = P(X Z)P(Y Z) Vi har också varianterna: P(X Y, Z) = P(X Z) och P(Y X, Z) = P(Y Z) om X och Y villkorligt oberoende givet Z P(Feber Mässling RödaPrickar) = P(Feber Mässling) dvs sannolikheten för feber givet att man har mässling påverkas inte av om man har röda prickar eller ej
Naive Bayes Om en orsak kan ge upphov till flera olika effekter så kan man förenkla simultanfördelningen P(Mässling,RödaPrickar,Feber) = produktregeln = P(Mässling) P(RödaPrickar,Feber Mässling) Villkorligt oberoende ger : P(Mässling,RödaPrickar,Feber) = P(Mässling) P(Feber Mässling) P(RödaPrickar Mässling) Mer generellt P(Orsak, Effekt 1, Effekt 2,...Effekt n ) = P(Orsak) P(Effekt i Orsak) Kallas Naive Bayes eftersom den också ibland används när effekterna inte är villkorligt oberoende n i=1
Bayesianska nätverk Stokastiska variabler representerade som noder i ett nätverk Riktade länkar mellan par av noder En tabell med övergångssannolikheter som anger effekten på en nod från föräldarnoderna Grafen har inga riktade cykler (DAG)
Exempel Mässling ger feber och röda prickar. Eksem ger också röda prickar. Feber betyder att kroppstemperaturen överstiger 37 grader. Röda prickar kliar. Patienten kliar. Eksem? Stokastiska variabler Mässling Feber RödaPrickar Eksem T>37 Kliar
Bayesianskt nätverk Mässling Eksem Feber RödaPrickar T>37 Kliar
Övergångssannolikheter Ovillkorlig Mässling P(mässling) P( mässling) 0,1 0,9 Ett beroende T>37 Feber P(t>37 Feber) P( t>37 Feber) T 0,9 0,1 F 0,1 0,9 Beroende av två stokastiska variabler RödaPrickar Mässling Eksem P(rödaPrickar Mässling, Eksem) P( rödaprickar Mässling, Eksem) T T 0,8 0,2 T F 0,7 0,3 F T 0,6 0,4 F F 0,3 0,7
Bayesianskt nätverk P(mässling) 0,1 P(eksem) 0,8 Feber Mässling P(feber Mässling) T 0,9 Mässling Eksem F 0,1 RödaPrickar Feber T>37 RödaPrickar Kliar Mässling Eksem P(rödaPrickar Mässling, Eksem) T T 0,8 T F 0,7 F T 0,6 F F 0,3 T>37 Feber P(t>37 Feber) T 0,9 F 0,1 Kliar RödaPrickar P(kliar RödaPrickar) T 0,9 F 0,5
Inferens i bayesianska nät, 1 Det bayesianska nätverket beskriver domänen P(X 1 =v 1, X 2 =v 2, X n =v n ) kan beräknas utifrån föräldrarnas påverkan t.ex. P(mässling rödaprickar kliar eksem t>37 feber) = P(mässling)P(eksem)P(feber mässling)p(t>37 feber) P(rödaPrickar mässling eksem)p( kliar rödaprickar)= 0,1 0,8 0,9 0,9 0,8 0,1=0,005 Mässling Eksem Feber Röda prickar T>37 Kliar
Inferens i bayesianska nät, 2 Mer generellt: n P(X 1, X 2,..., X n ) = P(X i Parents(X i )) i=1 om noden X i bara beror av noder ovanför, dvs Parents(X i ) { X i 1,...,X 2,X 1 } dvs villkorligt oberoende I mässlingexemplet får t.ex. inte RödaPrickar bero av Kliar, dvs P(Kliar T>37, Feber, RödaPrickar, Mässling, Eksem) = P(Kliar RödaPrickar)
Inferens i bayesianska nät, 3 Betingade sannolikheter P(a b)=αp(a b) eller mer generellt P(A B)=αP(A,B) där P(A,B) kommer ur sambandet för föräldrars påverkan Exempel P(kliar eksem). Beror av såväl Mässling som RödaPrickar och räknas ut genom att summera över alla möjliga värden, dvs sant och falskt Mässling Eksem Feber Röda prickar T>37 Kliar
Inferens i bayesianska nät, 4! "#$%& '"(') = α, 6("#$%& 9ö:%!&$;"%&) =, 6 9ö:%!&$;"%& '"('), Fä((#$GH 6 Fä((#$GH!('"(')) -ö/01234502 >ä@@abcd, IäJJK3LM ) 6(&ö:%!&$;"%& '"('), Fä((#$GH)6(Fä((#$GH)!('"(') =!(&ö:%!&$;"%& '"(') )ä((#$gh)!()ä((#$gh)!('"(')) +!(&ö:%!&$;"%& '"(') )ä((#$gh)!( )ä((#$gh)!('"(')) = 0,8 = 0,1 = 0,8 + 0,6 = 0,9 = 0,8 = 0,496 6( &ö:%!&$;"%& '"('), Fä((#$GH) = 0,2 = 0,1 = 0,8 + 0,2 = 0,9 = 0,8 = 0,16!("#$%& '"(')) = X(!("#$%& &ö:%!&$;"%&) = 0,496 +!("#$%& &ö:%!&$;"%&) = 0,16 = X(0,9 = 0,496 + 0,5 = 0,16) = X = 0,526!( "#$%& '"(')) = X(!( "#$%& &ö:%!&$;"%&) = 0,496 +!( "#$%& &ö:%!&$;"%&) = 0,16 = X(0,1 = 0,496 + 0,5 = 0,16) = X = 0,13 6([#$%& '"(')) =< 0,802, 0,198 > Mässling Eksem Feber Röda prickar T>37 Kliar
Inferens i bayesianska nät, 4 Diagnos Från effekt till orsak P( mässling kliar) Kausalitet Från orsak till effekt P(kliar mässling) Interkausalitet Mellan orsaker till samma effekt P( mässling eksem rödaprickar) Blandad inferens P(eksem kliar mässling)
Inferens i bayesianska nät, 5 Beräkningstungt och det generella fallet är NP-komplett Villkorliga oberoenden gör det ibland lättare Ofta approximativa lösningar
Konstruktion av Bayesianska nätverk 1. Ordna de stokastiska variablerna, X 1,, X n 2. För varje nod, i=1 till n 1. Stoppa in X i i nätverket 2. Lägg in bågar från de stokastiska variablerna X 1,, X i-1 så att P(X i X 1,, X i-1 ) = P(X i Parents(X i )) dvs. så att varje nod är villkorligt oberoende av de tidigare noderna i nätverket, givet sina föräldrar
Exempel, 1 Mässling, Feber, Röda prickar, Värk Mässling Ordning: Värk, Feber, RödaPrickar, Mässling P(Feber Värk) P(Feber) Värk RödaP P(RödaP Värk, Feber) P(RödaP Värk) P(RödaP Värk, Feber) P(RödaP Feber) P(RödaP Värk, Feber) P(RödaP) Feber P(Mässling Värk, Feber, RödaP) P(Mässling Värk, Feber) P(Mässling Värk, Feber, RödaP) P(Mässling Feber) etc P(Mässling Värk, Feber, RödaP) P(Mässling)
Exempel, 2 Ordning: Mässling, Feber, RödaPrickar, Värk Värk P(Feber Mässling) P(Feber) Mässling RödaP P(RödaP Mässling) P(RödaP) P(RödaP Mässling, Feber) = P(RödaP Mässling) Feber P(Värk Mässling) P(Värk) P(Värk Mässling, Feber, RödaP) = P(Värk Mässling)
Variabelval Kausalsamband snarare än diagnossamband Från orsak till verkan Grundorsak Variabler som påverkas direkt av grundorsaken Observerbara effekter
Sammanfattning, 1 Stokastisk variabel A med sannolikhet att vara sann P(A=sant), skrivs också P(a) T.ex. P(a)=0,8, eller P(A) = <0,8 0,2> P(A,B) ger tabell med 4 (2 2 ) värden n stokastiska variabler P(X 1, X n ) ger 2 n värden. Problem! a a b 0,2 0,3 b 0,4 0,1 Oberoende P(Tärning=6 Tärning = 1) = P(Tärning=6)
Sammanfattning, 2 Bayes teorem, från kausal(orsak)samband till diagnossamband P(b a)p(a) P(a b) = = αp(b a)p(a) P(b) P(A B) = αp(b A)P(A) Villkorligt oberoende P(Orsak Obs 1...Obs n ) = P(Orsak Obs 1 )...P(Orsak Obs n ) kombinerat med kedjeregeln P(Orsak,Obs 1...Obs n ) = P(Orsak)P(Orsak Obs 1...Obs n ) ger Naive Bayes n i=1 P(Orsak,Obs 1...Obs n ) = P(Orsak) P(Orsak Obs i )
Sammanfattning, 3 Bayesianskt nätverk tar hänsyn till beroenden mellan variabler Mässling och Eksem 1 värde vardera Feber, T>37 och Kliar 2 värden vardera RödaPrickar 4 värden Totalt 12 värden Feber Mässling Röda prickar Eksem T>37 Kliar Jämför: 6 stokastiska variabler ger 2 6 = 64 värden
Probabilistiskt resonerande över tid Bayesianska nätverk beskriver en statisk situation Världen förändras med tiden Robot som går runt i världen Medicinsk diagnos Taligenkänning etc Tillstånd som förändras över tid, X t Observationer vid en viss tidpunkt, E t Diskreta observationstillfällen Sekvens av tillstånd, X a:b
Övergångssannolikheter X t-2 X t-1 X t X t+1 X t+2 P(X t X 0:t-1 ) = P(X t X 0,X 1,X 2,, X t-2,x t-1 ) Problem när t ökar Markovantagandet. Nuvarande tillstånd beror bara av ett ändligt antal tidigare tillstånd Första ordningens Markov process, beror bara av föregående tillstånd P(X t X 0:t-1 ) = P(X t X t-1 ) Andra ordningens markovprocess P(X t X 0:t-1 ) = P(X t X t-2, X t-1 ) X t-2 X t-1 X t X t+1 X t+2
Dold markovmodell (HMM) Tillstånden i den vanliga markovmodellen observerbara I en dold markovmodell kan man bara se observationerna, E t X t-2 X t-1 X t X t+1 X t+2 E t-2 E t-1 E t E t+1 E t+2 Tillstånden är dolda, hidden Markovantagande för observationerna; de beror bara av nuvarande tillstånd P(E t X 0:t-1, E 0:t-1 ) =P(E t X t )
Exempel Sannolikheten för mässling beror av om man har feber eller inte Mässling t-1 Mässling t Mässling t+1 Feber t-1 Feber t Feber t+1 Villkorliga sannolikhetstabeller, ex Mässling t-1 P(Mässling t Mässling t-1 ) T F 0.6 0.4 Mässling t P(Feber t Mässling t ) T F 0.9 0.3
Simultanfördelning Antag starttillståndet P(X 0 ) Övergångsmodellen P(X t X t-1 ) Observationsmodellen P(E t X t ) t i=1 P(X 0:t, E 1:t ) = P(X 0 ) P(X i X i 1 )P(E i X i )
Inferens i temporala modeller Filtrering, P(X t e 1:t ) Beräkna nuvarande sannolikhet givet alla bevis hittills Predicering, P(X t+k e 1:t ) Beräkna sannolikheten för ett framtida tillstånd Smoothing, P(X k e 1:t ) Beräkna sannolikheten för ett tidigare tillstånd Mest sannolika förklaring, argmax x1:t P(x 1:t e 1:t ) Beräkna den sekvens av tillstånd som genererat observationerna