Umělá inteligence II Roman Barták, KTIML roman.bartak@mff.cuni.cz http://ktiml.mff.cuni.cz/~bartak Dnešní program Agent pracující v částečně pozorovatelném prostředí udržuje na základě senzorického modelu domnělý stav a na základě přechodového ř modelu odhaduje, jak se svět může vyvíjet. domnělý stav reprezentuje možné skutečné stavy světa buď výčtově nebo logickou formulí (přes vlastnosti stavu) pomocí teorie pravděpodobnosti umíme kvantifikovat, které z domnělých stavů jsou pravděpodobnější teď přidáme pravděpodobnost k přechodům mezi stavy Pravděpodobností uvažování o čase reprezentace přechodů s pravděpodobností typy řešených ý úloh (otázek) základní odvozovací algoritmy temporální modely (skryté Markovské modely, dynamické Bayesovské sítě)
Čas a neurčitost Podobně jako v logické reprezentaci sloužil situační kalkulus, budeme dynamiku světa modelovat sérií časových řezů. Každý řez/stav / t bude popsán (stejnou) množinou náhodných proměnných, které se dělí na nepozorovatelné náhodné proměnné X t pozorované náhodné proměnné E t (konkrétní pozorované hodnoty označíme e t t) t je označení časového řezu (uvažujeme tedy diskrétní čas se stejnými časovými kroky) Notace: X a:b označuje množinu proměnných od X a po X b Modelová situace Uvažujme agenta pracujícího na tajné podzemní základně, ze které nikdy nevychází. Zajímá ho, zda venku prší. náhodná nepozorovatelná proměnná R t Jediné pozorování, které má k dispozici, je zda ráno ředitel přišel s či bez deštníku. náhodná pozorovaná proměnná U t
Přechodový model Přechodový model popisuje, jak je stav ovlivněn předchozími stavy. Přesněji popisuje pravděpodobnostní distribuci P(X t X 0:t-1 ). Problém č. 1: s rostoucím t neomezeně roste množina X 0:t-1 použijeme Markovský předpoklad: současný stav závisí pouze na pevně daném konečném počtu předchozích stavů hovoříme potom o obecných Markovských řetězcích/procesech např. současný stav závisí pouze na předchozím stavu Markovský proces prvního řádu P(X t X 0:t-1 ) = P(X t X t-1 ) Problém č. 2: pořád máme nekonečně mnoho různých přechodů použijeme předpoklad stacionárního procesu, tj. stav se vždy mění podle stejných pevně daných pravidel distribuce P(X t X t-1 ) je stejná pro všechny časy t Senzorický model Senzorický model popisuje na čem závisí pozorované náhodné proměnné E t. Ty mohou záviset i na proměnnýchě ýh z předchozích stavů, ale uděláme Markovský kýsenzorický předpoklad ř d pozorované proměnné závisí pouze na nepozorovatelných proměnných ě ýhx t ze stejného stavu. P(E t X 0:t, E 1:t-1 ) = P(E t X t )
Bayesovské sítě pro přechodový a senzorický model Přechodový a senzorický model můžeme popsat Bayesovskou sítí. Kromě tabulek P(X t X t-1 ) a P(E t X t ) musíme ještě zadat, jak to vše začalo P(X 0 ). Z vlastností Bayesovských sítí víme P(X 0t 0:t, E 1t 1:t ) = P(X 0 ) Π i P(X i X i-1 ) P(E i X i ) Zpřesnění modelu Markovský proces prvního řádu předpokládá, že stavové proměnné ě obsahují veškerou informaci i pro charakteristiku pravděpodobnostní distribuce dalšího stavu. Co když je tento předpoklad nepřesný? můžeme zvýšit řád Markovského procesu můžeme rozšířit množinu stavových proměnných např. přidáme proměnnou Season t nebo sadu proměnných Temperature t, Humidity t, Pressure t první případ (větší řád) lze vždy převést na druhý případ (více proměnných)
Řešené úlohy Filtrace: úloha zjistit pravděpodobnost aktuálního stavu na základě dosavadních pozorování P(X t e 1:t ) Predikce: úloha zjistit pravděpodobnost budoucího stavu na základě dosavadních pozorování P(X t+k e 1:t ) pro k>0 Vyhlazování: úloha zjistit pravděpodobnost minulého stavu na základě dosavadních pozorování P(X k e 1:t ) pro k: 0 k < t Nejpravděpodobnější průchod: úloha zjistit z posloupnosti pozorování nejpravděpodobnější posloupnost stavů, která tato pozorování generuje argmax P(x x 1:t 1:t e 1:t ) Filtrace Úkolem je zjistit pravděpodobnost aktuálního stavu na základě dosavadních pozorování P(X t e 1:t ). Dobrý finanční algoritmus odhaduje aktuální stav z odhadu předchozího stavu a aktuálního pozorování (rekurzivní odhad) P(X t+1 e 1:t+1 ) = f(e t+1,p(x t e 1:t )) Jak najdeme funkci f? P(X t+1 e 1:t+1 ) = P(X t+1 e 1:t,e t+1 ) Bayesovo pravidlo = α P(e t+1 X t+1,e 1:t ) P(X t+1 e 1:t ) = α P(e t+1 X t+1 ) P(X t+1 e 1:t ) = α P(e t+1 X t+1 ) Σ P(X x )P(x t t+1 x t,e 1:t t e 1:t ) p = α P(e t+1 X t+1 ) Σ P(X x t t+1 x t ) P(x t e 1:t ) Můžeme tedy použít techniku dopředné propagace zprávy: P(X t e 1:t ) = f 1:t f 1:t+1 = α FORWARD(f 1:t, e t+1 ) f 1:0 = P(X 0 ) Markovský senzorický předpoklad podmiňování P(Y) = Σ z P(Y z) P(z)
Filtrace P(R t+1 u 1:t+1 ) = α P(u t+1 R t+1 ) P(R t+1 u 1:t ) = α P(u t+1 R t+1 ) Σ r t P(R t+1 r t ) P(r t u 1:t ) příklad P(R 0 )= 0 0.5, 5 05 0.5 P(R 1 ) = Σ P(R r 0 1 r 0 ) P(r 0 ) = 0.5, 5 05 0.5 P(R 1 u 1 ) = α P(u 1 R 1 ) P(R 1 ) = α 0.9, 0.2 0.5, 0.5 0.818, 0.182 P(R 2 u 1) = Σ P(R r t 2 r 1 ) P(r 1 u 1 ) = 0.7, 0.3 0.818 + 0.3, 0.7 0.182 0.627, 0.372 P(R 2 u 1,u 2 ) = α P(u 2 R 2) P(R 2 u 1) = α 0.9, 0.2 0.627, 0.372 = 0.883, 0.117 Predikce Úkolem je zjistit pravděpodobnost p budoucího stavu na základě dosavadních pozorování P(X t+k e 1:t ) pro k>0. Jedná se v podstatě o filtraci bez přidávání dalších pozorování P(X t+k+1 e 1:t ) = Σ x t+k P(X t+k+1 x t+k ) P(x t+k e 1:t ) Po určité době (mixing time) konverguje předpovězená distribuce ke stacionární distribuci a nadále zůstane stejná.
Vyhlazování Úkolem je zjistit pravděpodobnost d minulého stavu na základě dosavadních pozorování P(X k e 1:t ) pro k: 0 k< t. Opět použijeme rekurzivní předávání zpráv, tentokrát ve dvou směrech. ě P(X k e 1:t ) = P(X k e 1:k,e k+1:t ) Bayesovo pravidlo = α P(X k e 1:k ) P(e k+1:t X k,ee 1:k ) podmíněná nezávislost = α P(X k e 1:k ) P(e k+1:t X k ) = α f 1:k b k+1:t P(e k+1:t X k ) = Σ P(e x k+1 k+1:t X k,x k+1 ) P(x k+1 X k ) podmiňování = Σ P(e x k+1 k+1:t x k+1 ) P(x k+1 X k ) = Σ P(e x e k+1 k+1,e k+2:t x k+1 ) P(x k+1 X k ) = Σ P(e x k+1 k+1 x k+1 ) P(e k+2:t x k+1 ) P(x k+1 X k ) Popíšeme jako zpětnou propagaci zprávy: P(e k+1:t X k ) = b k+1:t b k+1:t = BACWARD(b k+2:t, e k+1 ) b t+1:t = P(e t+1:t X t ) = P( X t ) = 1 podmíněná nezávislost podmíněná nezávislost P(R k u 1:t+1 ) = α P(R k u 1:k ) P(u k+1:t R k ) P(u k+1:t R k ) = Σ r k+1 P(u k+1 r k+1 ) P(u k+2:t r k+1 ) P(r k+1 R k ) P( R 2 ) = 1 P(u = 2 R 1 ) Σ P(u r )P( r 2 2 r 2 2 ) P(r 2 R 1 ) = 0.9 1 0.7,0.3 + 0.2 1 0.3,0.7 = 0.69,0.41 Vyhlazování příklad
Nejpravděpodobnější průchod Úkolem je zjistit z posloupnosti pozorování nejpravděpodobnější posloupnost stavů, která tato pozorování generuje argmax P(x x 1t 1t 1:t 1:t e 1:t ). Pozor, je to něco jiného než zjistit posloupnost nejpravděpodobnějších stavů! Na problém se můžeme podívat takto: hledáme cestu v grafu, kde uzly odpovídají možným stavům v každém časovém kroku díky Markovské vlastnosti víme, že nejpravděpodobnější cesta do daného stavu se skládá z nejpravděpodobnější cesty do některého předchůdce a přechodu do daného stavu tuto t vlastnost t opět můžeme popsat rekurzivně ě Viterbiho algoritmus nejpravděpodobnější cesta do daného stavu se skládá z nejpravděpodobnější cesty do některého předchůdce a přechodu do daného stavu max x1,,xt P(x 1,,x t,x t+1 e 1:t+1 ) = α P(e t+1 X t+1 ) max (P(X x t t+1 x t ) max x1,,xt-1 P(x 1,,x t e 1:t )) použijeme techniku dopředné propagace zprávy: m 1:t = max x1,,xt-1 P(x 1,,x t-1,x t e 1:t ) m 1:t+1 = P(e t+1 X t+1 ) max (P(X x t t+1 x t ) m 1:t )
Skryté Markovské modely Uvažujme, že stav světa je popsán jedinou náhodnou proměnnou X t (podobně pozorovaná proměnná E t bývá jediná). Hovoříme potom o skrytém (částečně pozorovaném) Markovském modelu (HMM Hidden Markov Model). Pro takový speciální případ můžeme úlohy řešit efektivně pomocí maticových operací. Uvažujme, že proměnná X t nabývá hodnoty z množiny {1, S}, tj. S je počet č možných stavů ů světa. pravděpodobnostní tabulku P(X t X t-1 ) pro přechody lze popsat maticí T o rozměrech S S, kde: T (i,j) = P(X t = j X t-1 =i) podobně můžeme popsat tabulku pro pozorování, kde využijeme toho, že konkrétní pozorování e t známe, takže popisujeme P(E t = e t X t =i), použijeme diagonální matici O t, kde: O t (i,i) = P(E t = e t X t =i) Dopředné zprávy (z filtrace) Maticový přístup P(X( t e 1:t ) = f 1:t f 1:t+1 = α P(e t+1 X t+1 ) Σ P(X x t t+1 x t ) P(x t e 1:t ) Pomocí matic (uvažujme, že zpráva f 1:t je ve tvaru jednoho sloupce) T (i,j) = P(X t = j X t-1 =i) O t (i,i) = P(E t = e t X t =i) (,) f 1:t+1 = α O t+1 T T f 1:t Zpětné zprávy (z vyhlazování) P(e k+1:t X k ) = b k+1:t b k+1:t = Σ P(e x k+1 k+1 x k+1 ) P(e k+2:t x k+1 ) P(x k+1 X k ) Pomocí matic (uvažujme, že zpráva b k:t je ve tvaru jednoho sloupce) b k+1:t = T O k+1 b k+2:t
Úplné vyhlazování Při vyhlazování nám typicky nejde pouze o jednu proměnnou, ě ale o vyhlazení všech proměnných ě najednou. P(X k e 1:t ) = α f 1:k b k+1:t pro vyhlazení jedné proměnné vzhledem k e 1:t potřebujeme čas O(t) triviální algoritmus tedy postup vyhlazení opakuje pro všechny yp proměnné čas O(t 2 ) lepší přístup používá dynamické programování, tj. pamatujeme si dopředné zprávy a při zpětném průchodu je spojíme se zpětnými zprávami čas O(t) algoritmus forward-backward nevýhodou přístupu je prostorová složitost O( f t) Úplné vyhlazování algoritmus forward-backward 1 to t do
Úplné vyhlazování Můžeme úplné vyhlazení udělat s menšími paměťovými nároky při zachování časové složitosti O(t)? Idea: pokud bychom uměli výpočet udělat pouze v jednom směru, stačí nám konstantní paměť (nezávislá na t) můžeme zprávu f 1:t získat ze zprávy f 1:t+1? potom bychom mohli dopřednou zprávu propagovat stejně jako zpětnou zprávu Použijeme maticový přístup f 1:t+1 = α O t+1 T T f 1:t f 1:t = α (T T ) -1 (O t+1 ) -1 f 1:t+1 Algoritmus nejprve dopředným průchodem vypočteme f 1:t efektivně potom při zpětném chodu dohromady počítáme f 1:k a b k+1:t Vyhlazování se zpožděním Uvažujme nyní případ, kde nás zajímá hodnota P(X t-d e 1t 1:t ) s pevně daným zpožděním d, tzv. vyhlazování s konstantním zpožděním. Ideálně chceme, aby výpočet při zvětšení t fungoval inkrementálně tj. v konstantním čase. máme P(X t-d e 1:t ) = α f 1:t-d b t-d+1:t chceme P(X t-d+1 e 1:t+1 )=α α f 1:t-d+1 b t-d+2:t+1 Inkrementální postup: umíme f 1:t-d+1 = α O t-d+2 T T f 1:t-d potřebujeme inkrementální výpočet b t-d+2:t+1 z b t-d+1:t b t-d+1:t = T O t-d+1 b t-d+2:t =(Π i=t-d+1,,t T O i ) b t+1:t = B t-d+1:t 1 b t-d+2:t+1 = (Π i=t-d+2,,t+1 T O i ) b t+2:t+1 = B t-d+2:t+1 1 B = -1-1 t-d+2:t+1 (O t-d+1 ) T B t-d+1:t T O t+1
Vyhlazování se zpožděním algoritmus Lokalizace Uvažujme případ, kdy náhodně pohybující se agent má mapu světa, senzory ukazující okolí a potřebuje zjistit, kde se nachází. Model: náhodná á proměnná ě X t popisuje lokaci v čase t možné hodnoty 1,..,n pro n možných pozic Nb(i) množina pozic v okolí pozice i, kam agent může přejít přechodová tabulka P(X t+1 =j X t =i) = 1/ Nb(i), pokud j Nb(i), jinak 0 senzorická proměnná E t popisuje výsledek pozorování okolí (čtyři senzory NSEW) hodnoty popisují přítomnost překážky NSEW (16 hodnot) uvažujme chybovost senzoru ε senzorická tabulka P(E t =e t X t =i) = (1-ε) 4-d it ε d it kde d it je počet odchylek pozorování e t od skutečného okolí pozice i příklad
Lokalizace ukázka P(X 1 E 1 =NSW) P(X 2 E 1 =NSW, E 2 =NS) chyba lokalizace (Manhattanská vzdálenost)