Snažím se porozumět experimentu z tohoto papír , konkrétně oddíl 5.2.

V příspěvku navrhují nový algoritmus pro výpočet log-determinantu řídkých matic a v části 5 jej testují na datové sadě, kterou generují.

Chtějí to otestovat na syntetické datové sadě, a tak vytvoří řídkou matici o velikosti 5000×5000, jejíž přesná matice (inverzní k kovarianční matici) je parametrizována pomocí $ \ rho = -0,22 $ . Podle článku má každý uzel 4 sousedy s částečnou korelací $ \ rho $ . Potom pomocí Gibbsova vzorníku odebere jeden vzorek z vícerozměrné gaussovské distribuce, kterou popisuje matice J. Na tomto vzorek, vypočítám pravděpodobnost logu jako: $$ \ log (x | \ rho) = \ log \ det J (\ rho) – x ^ TJ (\ rho) x + G $$ . a vykreslím hodnoty jako na obrázku 2.

Pokud je moje chápání správné, vyhodnotí logaritmickou pravděpodobnost vzhledem k pouze jednomu vzorku? Chápu, že graf na obrázku 2 je následující vzorec výše, který se počítá pouze pro jeden vzorek? Obvykle počítám logaritmickou pravděpodobnost na datové sadě, nejen na jediném vzorku.

Moje otázka je následující: jaký přesně je význam $ \ rho $ a jak vytvořím $ J (\ rho) $ a vzorek z toho? (tj. s balíčkem python? jinak, jaký je algoritmus?)?

Myslím, že základním předpokladem je, že $ \ log \ det J (\ rho ) $ pro dva různé vzorky $ J (\ rho) $ je stejné, proč?

Vlastně jsem se šel podívat k často citované odkazované knize , což je velmi dobrá kniha o GMRF, ale nenašel jsem žádné jasné spojení mezi jediným parametrem $ \ rho $ a matice, kterou generují. Parametrizace GMRF je popsána v části 2.7, strana 87. Tam se nikdy nepoužívá jediný parametr a prostor parametrů je ve skutečnosti popsán 2rozměrným vektorem $ \ Theta $ :

$$ \ pi (x | \ Theta) \ propto exp (\ frac {- \ theta_1} {2} \ sum_ {i \ cca j} (x_i – x_j) ^ 2 – \ frac {\ theta_2} {2} \ sum_i x_i ^ 2) $$ Ale pravděpodobně odkazují na jinou matici.

Aktualizovat Vlastně si myslím, že matice přesnosti $ J (\ rho) $ , které popisují interakci mezi 4 sousedy, je jen pásmová matice , tj. Matice s více úhlopříčkami. V tomto případě (představuji si) se 2 horními a 2 spodními úhlopříčkami, všechny vyplněné $ – 0,22 $ a jen $ 1 $ na hlavní úhlopříčce.

Jak ale mohu ochutnat z distribuce popsané maticí přesnosti? Mám to invertovat a získat kovarianční matici dat a poté z ní odebrat vzorek? Pokud ano, níže je uveden kód, jak to provést. Může být užitečné, aby někdo viděl kód, který můžeme použít k vzorkování z tohoto GMRF, za předpokladu, že $ \ vec (0) $ znamená a maticová dimenze 30.

import numpy as np def precision(k, numero): return np.diag(np.repeat(1, k)) + np.diag(np.repeat(numero, k-1), -1) + np.diag(np.repeat(numero, k-2), -2) + np.diag(np.repeat(numero, k-1), 1) + np.diag(np.repeat(numero, k-2), 2) J = precision(30, -0.22) Sigma = np.linalg.inv(J) np.random.multivariate_normal(np.repeat(0, 30), Sigma) 

Odpověď

Když máte matici přesnosti GMRF, pokud vytvoříte dodatečný předpoklad periodických hranic (nazývaných také torusový předpoklad) vzorkování z GMRF se pak stává docela snadným s metodami založenými na FFT. Toto je podrobně popsáno v Algoritmu 2.10 Gaussian Markovových náhodných polí (teorie a aplikace) od Rue a Held. Celá část 2.6 je věnována představení tohoto algoritmu.

Věřím, že autoři článku, kterého zmiňujete, použili tuto techniku, protože se zabývají 25 miliony proměnných GMRF (takže potřebujete efektivní metoda vzorkování, jako jsou spektrální metody). Navíc se zdá, že GMRF, které ukazují na obrázku 3, mají periodické hranice.

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *