Abtastung aus multivariaten Gaußschen mit graphischer Laplace-Kovarianz (invers)

12

Wir wissen beispielsweise aus Koutis-Miller-Peng (basierend auf der Arbeit von Spielman & Teng), dass wir lineare Systeme sehr schnell Ax=bfür Matrizen lösen können A, die die Laplace-Matrix für einige spärliche Graphen mit nicht negativen Kantengewichten sind .

Betrachten Sie nun (erste Frage) die Verwendung einer dieser Laplace-Matrizen A als Kovarianz oder (zweite Frage) inverse Kovarianzmatrix einer multivariaten Normalverteilung mit einem Mittelwert von Null oder . Für jeden dieser Fälle habe ich zwei Fragen:N(0,A)N(0,A1)

A. Wie effizient können wir aus dieser Verteilung eine Stichprobe ziehen? (Um eine Stichprobe zu zeichnen, berechnen wir normalerweise die Cholesky-Zerlegung , zeichnen eine normale Norm y \ sim \ mathcal {N} (\ boldsymbol {0}, I) und berechnen dann eine Stichprobe als x = L ^ { -1} y ).A=LLTyN(0,I)x=L1y

B. Wie effizient können wir die Determinante von A berechnen A?

Beachten Sie, dass beide Probleme bei einer Cholesky-Zerlegung leicht gelöst werden können, aber ich sehe nicht sofort, wie L effizienter extrahiert werden kann, als nur mit einem spärlichen Standard-Cholesky-Algorithmus, der die in den oben genannten Techniken nicht beschriebenen Techniken verwendet funktioniert, und die kubische Komplexität für Graphen mit geringer, aber hoher Baumbreite hätte.

dan_x
quelle
Ich denke, es könnte hilfreich sein, etwas genauer zu sagen, was Sie in beiden Fällen als "effizient" betrachten würden. Ist "effizient" dasselbe wie "nicht abhängig von einer Cholesky-Zersetzung"?
Suresh Venkat
Danke für den Vorschlag. Es ist möglich, dass die Antwort auf alle Fragen lautet: "Sie müssen eine Cholesky-Zerlegung berechnen, und es gibt keine Struktur, die über die Kargheit der Matrix hinaus genutzt werden kann." Es würde mich interessieren, ob dies wahr ist (aber ich hoffe, dass es nicht wahr ist). In Bezug auf "effizient" im letzten Absatz meine ich meistens effizienter als Standard-Cholesky-Algorithmen mit geringer Dichte. Wenn es eine Möglichkeit gäbe, die Techniken der oben genannten Arbeit zu verwenden, um einen Cholesky so schnell zu berechnen, wie dies mit anderen Mitteln möglich ist, wäre dies ebenfalls interessant.
dan_x
Wenn Sie eine Stichprobe aus erstellen möchten , können Sie , wobei die Inzidenzmatrix des Diagramms ist. Sie können also aus einem Standard-Gaußschen Wert auf ( sind die Kanten) abtasten und die lineare Transformation anwenden . Ich weiß nicht, wie dies mit den folgenden Vorschlägen verglichen wird, aber Sie müssen die Cholesky-Zerlegung nicht berechnen. N(0,A)A=BTBBREEB
Lorenzo Najt

Antworten:

3

Hier gibt es zwei verschiedene Probleme.

  1. Verwendung effizienter Löser für , um anzuwenden .Ax=bA1/2b
  2. Wie berechnet man die Determinante?

Die kurzen Antworten lauten: 1) Verwenden Sie Näherungen für rationale Matrixfunktionen und 2) Sie tun dies nicht, müssen es aber trotzdem nicht. Ich gehe auf diese beiden Probleme weiter unten ein.

Matrix Quadratwurzel Approximationen

Die Idee hier ist, eine rationale Funktionsnäherung für Skalarfunktionen in eine rationale Funktionsnäherung für Matrixfunktionen umzuwandeln.

Wir wissen, dass es rationale Funktionen gibt, die sich der Quadratwurzelfunktion sehr gut annähern können: für positives . Um eine hohe Genauigkeit für das Intervall erzielen, benötigen Sie Terme in der Reihe. Um die entsprechenden Gewichte ( ) und Pole ( ) zu erhalten, suchen Sie einfach online oder in einem Buch nach der Näherung rationaler Funktionen.

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

Wenden Sie nun diese rationale Funktion auf Ihre Matrix an:

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

Aufgrund der Symmetrie von haben wir wobei die Singularwertzerlegung (SVD) von . Die Qualität der rationalen Matrixnäherung entspricht also der Qualität der rationalen Funktionsnäherung am Ort der Eigenwerte.A

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

Indem wir die Bedingungsnummer von mit , können wir auf jede gewünschte Toleranz anwenden, indem wir positiv verschobene Laplace-Lösungen der Form AκA1/2bO(logκ)

(A+bI)x=b.

Diese Lösungen können mit Ihrem bevorzugten Laplace-Löser durchgeführt werden. Ich bevorzuge Techniken vom Typ Multigrid, aber die in dem von Ihnen zitierten Artikel sollte auch in Ordnung sein. Das zusätzliche hilft nur bei der Konvergenz des Lösers.bI

Eine ausgezeichnete Arbeit, die dies diskutiert, sowie allgemeinere komplexe Analysetechniken, die für unsymmetrische Matrizen gelten, finden Sie unter Berechnen von , und verwandtenAαlog(A) Matrixfunktionen durch Konturintegrale von Hale, Higham und Trefethen (2008) ).

Determinante "Berechnung"

Die Determinante ist schwerer zu berechnen. Soweit ich weiß, besteht der beste Weg darin, die Schur-Zerlegung mit dem QR-Algorithmus zu berechnen und dann die Eigenwerte aus der Diagonale der oberen Dreiecksmatrix abzulesen . Dies dauert , wobei die Anzahl der Knoten im Diagramm ist.A=QUQUO(n3)n

Die Berechnung von Determinanten ist jedoch ein inhärent schlecht konditioniertes Problem. Wenn Sie also jemals eine Arbeit lesen, die sich auf die Berechnung von Determinanten einer großen Matrix stützt, sollten Sie der Methode sehr skeptisch gegenüberstehen.

Zum Glück brauchen Sie die Determinante wahrscheinlich nicht wirklich. Beispielsweise,

  • Um Stichproben aus einer einzelnen Gaußschen Verteilung , ist die Normalisierungskonstante an allen Punkten gleich, sodass Sie sie niemals berechnen müssen.N(0,A1)
  • Wenn Ihre Laplace-Matrix die inverse Kovarianz einer lokalen Gaußschen Näherung am Punkt zu einer nicht-Gaußschen Verteilung darstellt, ändert sich die Determinante tatsächlich von Punkt zu Punkt. Doch in jeder effektiven Stichprobenplan die ich kenne (einschließlich Markov - Kette Monte Carlo, Importance Sampling, etc.) , was Sie wirklich brauchen , ist die Determinante Verhältnis , wo ist der aktuelle Punkt und ist das vorgeschlagene nächste Beispiel.A=Axx
    det(Ax01Axp),
    x0xp

Wir können als eine niedrigrangige Aktualisierung der Identität , wobei die effektive Der Rang der Aktualisierung mit niedrigem Rang ist ein lokales Maß dafür, wie nicht-Gauß die wahre Verteilung ist. Typischerweise ist dies viel niedriger als der volle Rang der Matrix. Wenn groß ist, ist die wahre Verteilung lokal so nicht-Gaußsch, dass man die gesamte Strategie in Frage stellen sollte, diese Verteilung unter Verwendung lokaler Gaußscher Näherungen abzutasten.Ax01Axp

Ax01Axp=I+QDQ,
rr

Die niedrigrangigen Faktoren und können mit randomisierter SVD oder Lanczos gefunden werden, indem die Matrix auf verschiedene Vektoren , für deren Anwendung jeweils ein Graph erforderlich ist Laplace-Lösung. Somit ist die Gesamtarbeit zum Erhalten dieser Faktoren mit niedrigem Rang .QD

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

Wenn man , ist das Determinantenverhältnis dann D=diag(d1,d2,,dr)

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

Diese Berechnungsverfahren für die Determinantenration mit niedrigem Rang finden sich in einer stochastischen Newton-MCMC-Methode für großräumige statistische inverse Probleme bei der Anwendung auf die seismische Inversion von Martin et al. (2012). In diesem Artikel wird es auf Kontinuumsprobleme angewendet, sodass der "Graph" ein Gitter im 3D-Raum ist und der Graph Laplace die tatsächliche Laplace-Matrix ist. Alle Techniken gelten jedoch für allgemeine Graph-Laplace-Werte. Es gibt wahrscheinlich andere Artikel, die diese Technik inzwischen auf allgemeine Grafiken anwenden (die Erweiterung ist trivial und im Grunde das, was ich gerade geschrieben habe).

Nick Alger
quelle