矩阵求逆引理:
(
Z
+
U
W
V
)
−
1
=
Z
−
1
−
Z
−
1
U
(
W
−
1
+
V
Z
−
1
U
)
−
1
V
Z
−
1
(Z+UWV)^{-1} = Z^{-1} - Z^{-1}U(W^{-1}+V Z^{-1}U)^{-1}V Z^{-1}
(Z+UWV)−1=Z−1−Z−1U(W−1+VZ−1U)−1VZ−1
你可能知道这个定理是用来加速计算的,但你知道怎么用这个定理吗?什么时候可以用?
下面来解释一下这个定理的应用场景:
Z ∈ R n × n Z\in R^{n\times n} Z∈Rn×n, 我们需要对 Z Z Z求逆,计算 Z − 1 Z^{-1} Z−1. 计算复杂度为 O ( n 3 ) O(n^3) O(n3).
假设我们计算好了 Z − 1 Z^{-1} Z−1,然后发现 Z Z Z 受到了扰动变成了 Z ^ = Z + E \hat{Z}= Z+E Z^=Z+E,需要做什么修正呢?
如果直接计算 Z ^ − 1 \hat{Z}^{-1} Z^−1,再花费 O ( n 3 ) O(n^3) O(n3)的计算量,未免有点浪费,因为之前的计算结果 Z − 1 Z^{-1} Z−1完全没有用到,有什么办法用到已有的计算结果 Z − 1 Z^{-1} Z−1来加速求解 Z ^ − 1 \hat{Z}^{-1} Z^−1呢?
这就用到了逆矩阵引理!
假设扰动是低秩矩阵,即可分解成
E
=
U
W
V
E=UWV
E=UWV其中
U
∈
R
n
×
m
,
W
∈
R
m
×
m
,
V
∈
R
m
×
n
,
m
<
<
n
U\in R^{n\times m}, W \in R^{m \times m}, V\in R^{m \times n}, m<< n
U∈Rn×m,W∈Rm×m,V∈Rm×n,m<<n,且
W
W
W 可逆。例如奇异值分解。
接下来利用矩阵求逆引理,就可快速求解 Z ^ − 1 \hat{Z}^{-1} Z^−1 了,看看等式右端的计算复杂度,只需要计算 m m m 阶矩阵的逆和几个矩阵乘法即可,矩阵乘法是可以并行加速的,因此计算时间大大减少!