Any method to efficiently compute SVD of a perturbation of matrix $\bf A$ if the SVD of $\bf A$ is already known?

1.2k Views Asked by At

Suppose we know the SVD of matrix $\bf A$, and $\bf B$ is a slight perturbation of $A$ (e.g. $\|{\bf B}-{\bf A}\|_{\text F}$ is relatively small), then is there any method that can efficiently compute the SVD of $\bf B$? That is, can the knowledge of SVD of $\bf A$ be helpful for SVD of $\bf B$?

I searched a little bit and found there are some papers on the bound of perturbation, e.g. Perturbation Theory for the Singular Value Decomposition, but I currently have no luck in finding a method to compute SVD of perturbation taking advantage of the SVD of the original matrix.

Any help or reference will be very much appreciated!

1

There are 1 best solutions below

0
On BEST ANSWER

Let $X_t = A + (B-A)\times t$ and let $X_t = U_t\Sigma_tV_t'$ be the SVD decomposition of $X_t$. Let $\sigma_{t,i}$ denote $i$-th diagonal element of $\Sigma_t$. Then $$\dot{\sigma}_{t,i} = (U_t' \dot{X}_t V_t)_{ii}\\ \dot{U}_t = U_tH_t \\ \dot{V}_t = V_tK_t$$ where $$ H_{t,ij} = \frac{\sigma_{t,j}(U'_t\dot{X}_tV_t)_{ij} + \sigma_{t,i} (U'_t\dot{X}_tV_t)_{ji}}{\sigma_{t,j}^2 - \sigma_{t,i}^2} \\ K_{t,ij} = \frac{\sigma_{t,j}(U'_t\dot{X}_tV)_{ji} + \sigma_{t,i} (U'_t\dot{X}_tV_t)_{ij}}{\sigma_{t,j}^2 - \sigma_{t,i}^2} \\$$ and $H_{t,ii} = K_{t,ii} = 0$, provided that all singular values of $X_t$ are distinct.

Since $\dot{X}_t = B-A$ and $\Sigma_0$, $U_0$, $V_0$ are known, this system of ODE gives $\Sigma_1$, $U_1$, $V_1$, i.e. the SVD decomposition of the matrix $B$. A simple first order approximation can be obtained using the Euler scheme for solving this ODE.

Details an be found in Dieci, L., & Eirola, T. (1999). On smooth decompositions of matrices. SIAM Journal on Matrix Analysis and Applications, 20(3), 800-819.