Campionamento da gaussiano multivariato con Covariance grafico inversa


12

Sappiamo ad esempio da Koutis-Miller-Peng (basato sul lavoro di Spielman & Teng), che possiamo risolvere molto rapidamente i sistemi lineari per le matrici che sono la matrice laplaciana del grafico per alcuni grafici sparsi con pesi dei bordi non negativi .Ax=bA

Ora (prima domanda) prendi in considerazione l'uso di una di queste matrici laplaciane come covarianza o (seconda domanda) matrice di covarianza inversa di una distribuzione normale multivariata a media zero \ mathcal {N} (\ boldsymbol {0}, A) o \ mathcal {N} (\ boldsymbol {0}, A ^ {- 1}) . Per ciascuno di questi casi, ho due domande:AN(0,A)N(0,A1)

A. Con quale efficienza possiamo trarre un campione da questa distribuzione? (Tipicamente per disegnare un campione, calcoliamo la decomposizione di Cholesky A=LLT , disegniamo un normale standard yN(0,I) , quindi calcoliamo un campione come x=L1y ).

B. Con quale efficienza possiamo calcolare il determinante di A ?

Si noti che entrambi questi potrebbero essere risolti facilmente data una decomposizione di Cholesky, ma non vedo immediatamente come estrarre L più efficiente rispetto al semplice utilizzo di un algoritmo Cholesky sparse standard, che non utilizzerebbe le tecniche presentate nel riferimento sopra citato funziona e che avrebbe una complessità cubica per i grafici sparsi ma ad alta larghezza degli alberi.


Penso che potrebbe aiutare ad essere un po 'più specifico su ciò che considereresti "efficiente" in entrambi i casi. "Efficiente" equivale a "non dipende da una decomposizione di Cholesky"?
Suresh Venkat,

Grazie per il suggerimento È possibile che la risposta a tutte le domande sia "è necessario calcolare una decomposizione di Cholesky e non esiste una struttura che può essere sfruttata oltre la scarsità della matrice". Sarei interessato a sapere se questo fosse vero (ma spero che non lo sia). Rispetto a "efficientemente" nell'ultimo paragrafo, sì, intendo principalmente in modo più efficiente degli algoritmi Cholesky sparsi standard. Anche se ci fosse un modo per usare le tecniche del lavoro sopra menzionato per calcolare un Cholesky con la stessa velocità che si può fare con altri mezzi, sarebbe interessante.
dan_x,

Se si desidera campionare da , è possibile utilizzare , dove è la matrice di incidenza del grafico. Così, si può gustare da uno standard gaussiana su ( sono i bordi) e applicare la trasformazione lineare . Non so come questo si confronti con i suggerimenti di seguito, ma non è necessario calcolare la decomposizione di Cholesky. A = B T B B R E E BN(0,A)A=BTBBREEB
Lorenzo Najt,

Risposte:


3

Ci sono due problemi separati qui.

  1. Come utilizzare solutori efficienti per per applicare .A 1 / 2 bAx=bA1/2b
  2. Come calcolare il determinante.

Le risposte brevi sono 1) usare approssimazioni di funzioni di matrice razionale e 2) non lo fai, ma non è necessario comunque. Di seguito affronterò entrambi questi problemi.

Approssimazioni di radice quadrata a matrice

L'idea qui è di convertire un'approssimazione di funzione razionale per funzioni scalari in un'approssimazione di funzione razionale per funzioni matrice.

Sappiamo che esistono funzioni razionali che possono approssimare molto bene la funzione radice quadrata, per positivo . In effetti, per ottenere un'elevata precisione sull'intervallo , sono necessari i termini nella serie. Per ottenere i pesi appropriati ( ) e i poli ( ), basta cercare l'approssimazione della funzione razionale online o in un libro.bi[m,M]O(registroM

xr(x):=a1x+b1+a2x+b2++aNx+bN,
bi[m,M]ai-biO(logMm)aibi

Ora considera di applicare questa funzione razionale alla tua matrice:

r(A)=a1(A+b1I)1+a2(A+b2I)1++aN(A+bNI)1.

A causa della simmetria di , abbiamo dove è la decomposizione in valori singolari (SVD) di . Quindi, la qualità dell'approssimazione della matrice razionale è equivalente alla qualità dell'approssimazione della funzione razionale nella posizione degli autovalori.| | A 1 / 2 - R ( A ) | | 2AA=UΣUA

||A1/2r(A)||2=||U(Σ1/2r(Σ))U||2,=maxi|σir(σi)|
A=UΣUA

Denotando il numero della condizione di per , possiamo applicare a qualsiasi tolleranza desiderata eseguendo soluzioni Laplaciane del modulo spostate positivamente , κ A 1 / 2 b O ( log κ ) ( A + B I ) x = b .AκA1/2bO(logκ)

(A+bI)x=b.

Queste soluzioni possono essere fatte con il tuo solutore Laplacian grafico preferito: preferisco le tecniche di tipo multigrid, ma anche quella nel documento che citi dovrebbe andare bene. Il extra aiuta solo la convergenza del risolutore.bI

Per un eccellente documento che ne discute, oltre a tecniche di analisi complesse più generali che si applicano alle matrici non simmetriche, vedere Calcolo di funzioni , e relative matrici mediante integrali di contornoAαlog(A) , di Hale, Higham e Trefethen (2008 ).

"Calcolo" determinante

Il determinante è più difficile da calcolare. Per quanto ne so, il modo migliore è quello di calcolare la Schur decomposizione usando l'algoritmo QR, quindi leggere gli autovalori della diagonale della matrice triangolare superiore . Questo richiede tempo, dove è il numero di nodi nel grafico.A=QUQUO(n3)n

Tuttavia, il calcolo dei determinanti è un problema intrinsecamente mal condizionato, quindi se mai leggi un documento che si basa sui determinanti di calcolo di una matrice di grandi dimensioni, dovresti essere molto scettico sul metodo.

Fortunatamente, probabilmente non hai davvero bisogno del determinante. Per esempio,

  • Per estrarre campioni da una singola distribuzione gaussiana , la costante di normalizzazione è la stessa in tutti i punti, quindi non è necessario calcolarla.N(0,A1)
  • Se la tua matrice Laplaciana rappresenta la covarianza inversa di un'approssimazione gaussiana locale nel punto a una distribuzione non gaussiana, allora il determinante cambia effettivamente da punto a punto. Tuttavia, in ogni schema di campionamento efficace che conosco (tra cui la catena di Markov Monte Carlo, campionamento di importanza, ecc.) Ciò di cui hai veramente bisogno è il rapporto determinante , dove è il punto corrente e è il prossimo esempio proposto.A=Axx
    det(Ax01Axp),
    x0xp

Possiamo vedere come aggiornamento di basso rango all'identità, dove il numerico effettivo rank, , dell'aggiornamento di basso rango è una misura locale di quanto non sia gaussiana la vera distribuzione; in genere questo è molto più basso dell'intero rango della matrice. In effetti, se è grande, la distribuzione vera è localmente così non gaussiana che si dovrebbe mettere in discussione l'intera strategia di provare a campionare questa distribuzione usando approssimazioni gaussiane locali.Ax01Axp

Ax01Axp=I+QDQ,
rr

I fattori di basso rango e possono essere trovati con SVD randomizzato o Lanczos applicando la matrice a vettori diversi, ciascuna delle quali richiede un grafico Soluzione Laplaciana. Pertanto, il lavoro complessivo per ottenere questi fattori di basso rango è .QD

Ax01AxpI
O(r)O(rmax(n,E))

Conoscendo , il rapporto determinante è quindi det ( A - 1 x 0 A x p ) = det ( I + Q D Q ) = exp ( r i = 1 log d i ) .D=diag(d1,d2,,dr)

det(Ax01Axp)=det(I+QDQ)=exp(i=1rlogdi).

Queste tecniche di calcolo della razione determinante di basso rango si possono trovare in Un metodo MCMC stocastico di Newton per problemi inversi statistici su larga scala con applicazione all'inversione sismica , di Martin, et al. (2012). In questo documento viene applicato a problemi di continuum, quindi il "grafico" è una griglia nello spazio 3D e il grafico Laplacian è la matrice Laplaciana effettiva. Tuttavia, tutte le tecniche si applicano al Laplaciano grafico generale. Probabilmente ci sono altri documenti che applicano questa tecnica ai grafici generali ormai (l'estensione è banale e sostanzialmente ciò che ho appena scritto).

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.