Spettro approssimativo di una matrice di grandi dimensioni


14

Voglio calcolare lo spettro ( tutti gli autovalori) di una matrice sparsa di grandi dimensioni (centinaia di migliaia di righe). Questo è difficile.

Sono disposto ad accontentarmi di un'approssimazione. Ci sono metodi di approssimazione per fare questo?

Mentre spero in una risposta generale a questa domanda, sarei anche soddisfatto di una risposta nel seguente caso specifico. La mia matrice è un Laplaciano normalizzato di un grafico di grandi dimensioni. Gli autovalori saranno compresi tra 0 e 2, molti dei quali raggruppati attorno a 1.


La matrice è sparsa o densa?
Aron Ahmadia,

La matrice è scarsa. Ho modificato la domanda per riflettere questo.
MRocklin,

Perché vuoi tutti gli autovalori? Questa è quasi universalmente una brutta cosa da fare quando si dispone di una matrice sparsa o strutturata, quindi è importante sapere come si prevede di utilizzarla.
Jed Brown,

Lo spettro di un grafico laplaciano contiene alcune informazioni importanti che mi piacerebbe ispezionare. Non ho bisogno di tutti, ho solo bisogno di sapere approssimativamente dove sono.
MRocklin,

Risposte:


15

Se il tuo grafico non è indirizzato (come sospetto), la matrice è simmetrica e non puoi fare nulla di meglio dell'algoritmo di Lanczsos (con reorthogonalization selettivo se necessario per stabilità). Poiché l'intero spettro è composto da 100000 numeri, immagino che tu sia interessato principalmente alla densità spettrale.

Per ottenere una densità spettrale approssimativa, prendi lo spettro del sottospazio Krylov principale di dimensione 100 o giù di lì, e sostituisci la sua densità discreta con una versione levigata.

Lo spettro di Krylov principale avrà quasi autovalori ben isolati (se presenti), si avvicina agli autovalori alla fine dello spettro dei non isolati ed è alquanto casuale nel mezzo, con una distribuzione la cui funzione di distribuzione cumulativa ricorda quella dello spettro reale . Convergerebbe ad esso nell'aritmetica esatta se la dimensione cresce. (Se il tuo operatore fosse di dimensione infinita, questo sarebbe ancora il caso e otterresti l'integrale della vera funzione di densità spettrale sullo spettro continuo.)


Lo spettro del sottospazio di Krylov principale non sarà solo i 100 autovalori più grandi? Sono anche interessato alla distribuzione degli autovalori moderati e più piccoli.
MRocklin,

1
@MRocklin: No. Ho aumentato la mia risposta per fornire maggiori dettagli.
Arnold Neumaier,


4

Se stai bene pensando a cose che non sono autovalori ma funzioni che in qualche modo ti dicono ancora qualcosa sullo spettro, allora penso che dovresti dare un'occhiata ad alcuni lavori di Mark Embree alla Rice University.


2

Ecco ancora un altro modo per caratterizzare lo spettro.

UNvK=λKvKUN

S(ω)=ΣKπ-1σσ2+(λK-ω)2=σπTr[σ2+(ω-UN)2]-1
S(ω)=σπzT[σ2+(ω-UN)2]-1z
z+1-1σω[σ2+(ω-UN)2]-1z[ω+ioσ-UN]-1[ω-ioσ-UN]-1S(ω)

ω

ω


0

Vedi l'articolo "Sulla decomposizione spettrale approssimativa basata sul campionamento" di Sanjiv Kumar, Mehryar Mohri e Ameet Talwalkar (ICML 2009.). Usa il campionamento delle colonne della tua matrice.

Poiché la matrice è simmetrica, è necessario eseguire le operazioni seguenti:

Lascia che A sia la tua matrice n * n. Si desidera ridurre il calcolo degli autovalori di una matrice n * n al calcolo degli autovalori di una matrice k * k. Per prima cosa scegli il valore di k. Supponiamo che tu scelga k = 500, poiché puoi facilmente calcolare gli autovalori di una matrice 500 * 500. Quindi, scegli casualmente k colonne della matrice A. Contrasta la matrice B che mantiene solo queste colonne e le righe corrispondenti.

B = A (x, x) per un insieme casuale di k indici x

B ora è ak * k matrice. Calcola gli autovalori di B e moltiplicali per (n / k). Ora hai k valori che sono approssimativamente distribuiti come gli autovalori di A. Nota che ottieni solo k valori, non n, ma la loro distribuzione sarà corretta (fino al fatto che sono un'approssimazione).


-1

Puoi sempre usare i limiti del teorema del cerchio di Gershgorin per approssimare gli autovalori.

Se i termini off-diagonali sono piccoli, la diagonale stessa è una buona approssimazione dello spettro. Altrimenti, se si finisce con un'approssimazione dell'eigenspace (con altri metodi) si potrebbe provare ad esprimere le voci diagonali in questo sistema. Ciò porterà a una matrice con termini off-diagonali più piccoli e la nuova diagonale sarà una migliore approssimazione dello spettro.


Gerschgoring non fornisce approssimazioni ma limiti di errore, quindi è irrilevante qui. Inoltre, l'utilizzo del metodo su una matrice sparsa richiederebbe una matrice di autovettori densa, impossibile da memorizzare per il problema dei PO.
Arnold Neumaier,

Come ho detto, la diagonale è essa stessa un'approssimazione dello spettro con i limiti di errore forniti dal teorema del cerchio di Gershgorin, ovviamente i limiti di errore di Gershgorin non sono approssimazioni. La diagonale sarà una buona approssimazione se i termini off-diagonali sono piccoli, il che credo sia il caso da quando OP ha detto che la matrice è scarsa.
FKaria,

5
La maggior parte delle matrici sparse che sorgono in pratica hanno alcuni elementi off-diagonali significativi in ​​ogni riga e colonna, il che rende le diagonali approssimazioni molto scarse (ad esempio, per un Laplaciano di un grafico regolare la diagonale è costante) e l'errore è inutile.
Arnold Neumaier,
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.