Cálculo / estimación rápida de un sistema lineal de bajo rango

10

Los sistemas lineales de ecuaciones son penetrantes en las estadísticas computacionales. Un sistema especial que he encontrado (por ejemplo, en el análisis factorial) es el sistema

Ax=b

donde Aquí es una matriz diagonal con una diagonal estrictamente positiva, es una matriz semi-definida simétrica positiva (con ), y es una matriz arbitraria . Se nos pide que resuelvamos un sistema lineal diagonal (fácil) que ha sido perturbado por una matriz de bajo rango. La forma ingenua de resolver el problema anterior es invertir usando la fórmula de Woodbury . Sin embargo, eso no se siente bien, ya que las factorizaciones de Cholesky y QR generalmente pueden acelerar la solución de sistemas lineales (y ecuaciones normales) dramáticamente. Recientemente llegué a la

A=D+BΩBT
Dn×nΩm×mmnBn×mAEn el siguiente artículo , parece tomar el enfoque de Cholesky, y menciona la inestabilidad numérica de la inversión de Woodbury. Sin embargo, el documento parece en forma de borrador, y no pude encontrar experimentos numéricos o investigaciones de apoyo. ¿Cuál es el estado del arte para resolver el problema que describí?
alegre
fuente
1
@gappy, ¿consideró usar la descomposición QR (o Cholesky) para la matriz (el término medio en la fórmula de Woodburry)? Las operaciones restantes son simples multiplicaciones matriciales. La fuente principal de inestabilidad es el cálculo de . Desde Sospecho esta aplicación de QR o Cholesky combinado con Woodbury será más rápido que QR en toda la matriz . Por supuesto, esto no es un estado del arte, solo observaciones generales. Ω1+BD1BTΩ1m<<nA
mpiktas
Sospecho que lo que Matthias Seeger aboga está dentro de del estado del arte, él es un tipo muy brillante y este tipo de cuestiones producen repetidamente en el tipo de modelos que investiga. Utilizo métodos basados ​​en Cholesky por las mismas razones. Sospecho que hay un debate en "Matrix Computations" de Golub y Van Loan, que es la referencia estándar para este tipo de cosas (aunque no tengo mi copia a mano). ϵ
Dikran Marsupial
Tenga en cuenta que al tomar su problema es equivalente a resolver el sistema donde . Entonces, eso simplifica un poco el problema allí mismo. Ahora, dejando , sabemos que es semidefinido positivo con como máximo valores propios positivos. Dado que , puede encontrar los valores propios más grandes y los vectores propios correspondientes de varias maneras. La solución es entonces donde da la descomposición propia deB¯=D1/2B(I+B¯ΩB¯T)x=b¯b¯=D1/2bΣ=B¯ΩB¯TΣmmnmx=Q(I+Λ)1QTb¯Σ=QΛQTΣ.
cardenal
Pequeñas correcciones: (1) El sistema equivalente es y (2) La solución final es(I+B¯ΩB¯T)D1/2x=b¯x=D1/2Q(I+Λ)1QTD1/2bD1/2x
Ω1+BTD1B

Respuestas:

2

"Matrix Computations" de Golub & van Loan tiene una discusión detallada en el capítulo 12.5.1 sobre la actualización de las factorizaciones QR y Cholesky después de las actualizaciones de rango p.

Fabian Pedregosa
fuente
Lo sé, y las funciones relevantes de lapack se mencionan tanto en el documento al que me vinculé como en el libro. Sin embargo, me pregunto cuál es la mejor práctica para el problema en cuestión, no para el problema de actualización genérico.
Gappy