Stáhnout prezentaci
Prezentace se nahrává, počkejte prosím
ZveřejnilIveta Vacková
1
Iterativní algoritmy pro Gaussovské grafické modely Implementace do SW Mathematica
Vladislav Chýna
2
Základní pojmy Výpočet varianční matice Interativní algoritmy Implementace do SW Mathematica
3
Grafické modely Užitečný nástroj statistické analýzy
Základní pojmy Užitečný nástroj statistické analýzy Umožňuje zkoumat struktury podmíněných nezávislostí v souborech proměnných Idea: Reprezentovat data pomocí grafu Vrcholy = proměnné Chybějící hrana = proměnné jsou podmíněně nezávislé Omezení příspěvku: Gaussovské grafické modely Hlavní problém: Popsat rozdělení s danými marginály
4
Definice z teorie grafů
Základní pojmy Kompletní graf: Graf nebo podgraf je kompletní, pokud je každý jeho vrchol spojen se všemi ostatními vrcholy. Klika: Klika je množina vrcholů, která indukuje úplný graf, ale která po přidání dalšího vrcholu indukuje graf, který již není kompletní. Matice sousednosti: Matice sousednosti AG = (aij) grafu G = (V,E) je čtvercová matice definovaná: aij = 1 pokud {vi , vj} E. aij = 0 jinak.
5
Definice z teorie grafů 2
Základní pojmy Komplementární graf: Graf CG je komplementární k grafu G = (V,E), pokud má množinu vrcholů V a množinu hran CE, pro kterou platí {vi , vj} CE pokud vi vj a {vi , vj} E. . Antiklika: Antiklika je klika komplementárního grafu.
6
Příklad Základní pojmy G CG 4 3 4 3 1 2 1 2
7
Základní pojmy Výpočet varianční matice Interativní algoritmy Implementace do SW Mathematica
8
Výpočet varianční matice
Bayesovský přístup Věrohodnostní rovnice pro Gaussovské grafické modely X1,X2,...,XN náhodný výběr z mnohorozměrného normálního rozdělení N(0,K), kde D = K-1 pokud vrcholy i a j nejsou spojené v grafu G pokud podmnožina a vrcholů v G tvoří kliku (S znamená výběrovou varianční matici.).
9
Jak řešit věrohodnostní rovnice
Výpočet varianční matice Přímý výpočet Iterativní algoritmus I – Divergence I-divergence dvou pozitivně definitních matic A a B je definována:
10
Základní pojmy Výpočet varianční matice Interativní algoritmy Implementace do SW Mathematica
11
I. algoritmus Probíhá v cyklu po antiklikách ac
Iterativní algoritmus Probíhá v cyklu po antiklikách ac Stop pravidlo testuje, zda mimodiagonální prvky K-1ac,ac jsou nulové. K0 = S a = ac1,...,acm, b = V \ {a}, n = n´ mod m
12
II. algoritmus Probíhá v cyklu po klikách c K0 = I
Iterativní algoritmus Probíhá v cyklu po klikách c Stop pravidlo testuje, zda Kc,c = Sc,c K0 = I a = ac1,...,acm, b = V \ {a}, n = n´ mod m
13
Základní pojmy Výpočet varianční matice Interativní algoritmy Implementace do SW Mathematica
14
Vstupy Matice sousednosti G Implementace do SW Mathematica Vstup: S
Výpočet klik funkce novygraf
15
novygraf Implementace do SW Mathematica Idea Pokud vynecháme jednu hranu z kliky, dostaneme 2 kliky, v jejichž zápisu chybí vždy jeden vrchol z vynechané hrany Problém Graf má 2 nebo více klik Kliky nemají prázdný průnik {1,2,3} {2,3}, {1,3} {1,3,4} {1,3,4} {1,3,4} 4 3 4 3 1 2 1 2
16
Kód Implementace do SW Mathematica
podmnozina[mnozina_, prvek_] := Module[{vp}, vp = Map[( Intersection[prvek, #]) &, mnozina]; MemberQ[vp, prvek]]; neobsazena[m1_, m2_] := Complement[m2, Select[m2, (submnozina[m1, #]) &]]; novygraf[graf_, hrana_] := Module[{klikys, klikybez, bez1, bez2, bezduplicit}, klikys = Select[graf, MemberQ[#, hrana[[1]]] && MemberQ[#, hrana[[2]]] &]; klikybez = Complement[graf, klikys]; bez1 = DeleteCases[klikys, edge[[1]], 2]; bez2 = DeleteCases[klikys, edge[[2]], 2]; bezduplicit = neobsazena[klikybez, Union[bez1, bez2]]; Union[klikybez, bezduplicit]]; clique = {Range[kk]}; vektorvynechhran = Select[Position[maticesousednosti, 0], (#[[1]] > #[[2]]) &]; Map[(clique = novygraf[clique, vektorvynechhran [[#]]]) &, Range[Length[vektorvynechhran]]];
17
Generování Kn Matice sousednosti G Implementace do SW Mathematica
Vstup: S Matice sousednosti G novygraf Výpočet klik Generování Kn
18
Generování Kn Implementace do SW Mathematica
19
Kód a = clique[[Mod[iter, Length[clique]] + 1]]; iter = iter + 1;
Implementace do SW Mathematica a = clique[[Mod[iter, Length[clique]] + 1]]; iter = iter + 1; b = Complement[Range[kk], a]; knova[[a, a]] = s[[a, a]]; knova[[a, b]] = s[[a, a]].Inverse[kold[[a, a]]]. kstara[[a, b]]; knova[[b, a]] = kstara[[b, a]].Inverse[ kstara[[a, a]]].s[[a, a]]; knova[[b, b]] = kstara[[b, b]] - kstara[[b, a]]. Inverse[kstara[[a,a]]]. (IdentityMatrix[Length[a]] - s[[a,a]]. Inverse[kstara[[a, a]]]).s[[a, b]]; kstara = knova;
20
Stop pravidlo Matice sousednosti G Test Kc,c = Sc,c
Implementace do SW Mathematica Vstup: S Matice sousednosti G novygraf Výpočet klik ne Generování Kn Test Kc,c = Sc,c ano Tisk výsledků
21
Kód While[ stop < Length[Flatten[clique]],…………………
Implementace do SW Mathematica While[ stop < Length[Flatten[clique]],………………… Map[(If[Max[Abs[Flatten[knova[[clique[[#]], clique[[#]]]] - s[[clique[[#]], clique[[#]]]]]]] < , stop = stop + 1, stop = 0]) &, Range[Length[clique]]];]; Needs["DiscreteMath`Combinatorica`"] ShowLabeledGraph[g = MakeGraph[Range[kk], (MemberQ[Position[mon + Transpose[mon], 1], {#1, #2}]) &]];
22
Příklad Implementace do SW Mathematica 4 1 3 2 5 5 iterací 0,07 sekund
23
Otázky ?!? ?
Podobné prezentace
© 2024 SlidePlayer.cz Inc.
All rights reserved.