Calcolo / stima rapidi di un sistema lineare di basso rango


10

I sistemi lineari di equazioni sono pervasivi nelle statistiche computazionali. Un sistema speciale che ho riscontrato (ad es. Nell'analisi fattoriale) è il sistema

Ax=b

dove

A=D+BΩBT
Qui D è una matrice diagonale n×n con una diagonale strettamente positiva, Ω è una matrice semi-definita positiva simmetrica m×m (con mn ) e B è una arbitraria n×mmatrice m . Ci viene chiesto di risolvere un sistema lineare diagonale (facile) che è stato disturbato da una matrice di basso rango. Il modo ingenuo di risolvere il problema sopra è invertire A usando la formula di Woodbury. Tuttavia, ciò non sembra corretto, dal momento che le fattorizzazioni Cholesky e QR di solito possono accelerare notevolmente la soluzione di sistemi lineari (ed equazioni normali). Di recente ho trovato il seguente articolo , che sembra adottare l'approccio di Cholesky e menziona l'instabilità numerica dell'inversione di Woodbury. Tuttavia, l'articolo sembra in forma di bozza e non sono riuscito a trovare esperimenti numerici o ricerche di supporto. Qual è lo stato dell'arte per risolvere il problema che ho descritto?

1
@gappy, hai preso in considerazione l'uso della decomposizione QR (o Cholesky) per la matrice (il termine medio nella formula di Woodburry)? Le restanti operazioni sono semplici moltiplicazioni di matrici. La principale fonte di instabilità è quindi il calcolo di Ω - 1 . Dato che m < < nΩ1+BD1BTΩ1m<<n Ho il sospetto che questa applicazione di QR o di Cholesky combinato con Woodbury sarà più veloce rispetto a barre su tutte le matrici . Questo ovviamente non è uno stato dell'arte, solo osservazioni generali. A
mpiktas,

Ho il sospetto che quello che Matthias Seeger sostiene è all'interno dello stato dell'arte, lui è un ragazzo molto brillante e questi tipi di problemi affiorano ripetutamente nel tipo di modelli indaga. Uso i metodi basati su Cholesky per gli stessi motivi. Sospetto che ci sia una discussione in "Matrix Computations" di Golub e Van Loan, che è il riferimento standard per questo genere di cose (anche se non ho la mia copia a portata di mano). ε
Dikran Marsupial,

Nota che prendendo il vostro problema è equivalente a risolvere il sistema ( I + ˉ B Ohm ˉ B T ) x = ˉ b dove ˉ b = D - 1 / 2 b . Quindi, questo semplifica un po 'il problema proprio lì. Ora, lasciando Σ = ˉ BB¯=D-1/2B(io+B¯ΩB¯T)X=B¯B¯=D-1/2B , sappiamo che Σ è semidefinito positivo con al massimoΣ=B¯ΩB¯TΣ autovalori positivi. Dal m « n , trovando il m. mm«nmautovalori più grandi e autovettori corrispondenti possono essere eseguiti in vari modi. La soluzione è quindi dove Σ = Q Λ Q T dà la composizione elettronica di ΣX=Q(io+Λ)-1QTB¯Σ=QΛQTΣ
cardinale il

Piccole correzioni: (1) sistema equivalente è e (2) la soluzione finale è x = D - 1 / 2 Q ( I + Λ ) - 1 Q T D - 1 / 2 b . (Avevo lasciato cadere un D 1 / 2 di fronte x(io+B¯ΩB¯T)D1/2X=B¯X=D-1/2Q(io+Λ)-1QTD-1/2BD1/2Xin entrambi i casi.) Si noti che tutti gli inversi sono di matrici diagonali e quindi sono banali.
cardinale il

@mpiktas: Penso che intendevi poiché nella versione che hai scritto il prodotto matrice non è ben definito a causa di una mancata corrispondenza dimensionale. :)Ω-1+BTD-1B
cardinale il

Risposte:


2

"Matrix Computations" di Golub & van Loan ha una discussione dettagliata nel capitolo 12.5.1 sull'aggiornamento delle fattorizzazioni QR e Cholesky dopo gli aggiornamenti di rango-p.


Lo so, e le funzioni relative al lapack sono menzionate sia nel documento che ho collegato che nel libro. Mi chiedo tuttavia quale sia la migliore pratica per il problema in questione, non per il problema di aggiornamento generico.
gappy
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.