前言
在领域内一个算法中用到了Woodbury identity, 百度了一下它的推导还算是有趣. 因此记录下来.
正文
两个引理:
- ( I + P ) − 1 = ( I + P ) − 1 ( I + P − P ) = I − ( I + P ) − 1 P (I+P)^{-1}=(I+P)^{-1}(I+P-P)=I-(I+P)^{-1}P (I+P)−1=(I+P)−1(I+P−P)=I−(I+P)−1P
-
(
I
+
P
Q
)
−
1
P
=
P
(
I
+
Q
P
)
−
1
(I+PQ)^{-1}P=P(I+QP)^{-1}
(I+PQ)−1P=P(I+QP)−1
证明:
P = P I = P ( I + Q P ) ( I + Q P ) − 1 = ( P + P Q P ) ( I + Q P ) − 1 = ( I + P Q ) P ( I + Q P ) − 1 \begin{split} P=PI=P(I+QP)(I+QP)^{-1}&=(P+PQP)(I+QP)^{-1}\\ &=(I+PQ)P(I+QP)^{-1} \end{split} P=PI=P(I+QP)(I+QP)−1=(P+PQP)(I+QP)−1=(I+PQ)P(I+QP)−1
Woodbury identity :
(
A
+
B
D
−
1
C
)
−
1
=
A
−
1
−
A
−
1
B
(
D
+
C
A
−
1
B
)
−
1
C
A
−
1
(A+BD^{-1}C)^{-1}=A^{-1}-A^{-1}B(D+CA^{-1}B)^{-1}CA^{-1}
(A+BD−1C)−1=A−1−A−1B(D+CA−1B)−1CA−1
- 假设A是一个可逆矩阵,则有:
( A + B C D ) − 1 = ( A [ I + A − 1 B C D ] ) − 1 = [ I + A − 1 B C D ] − 1 A − 1 (A+BCD)^{-1}=(A[I+A^{-1}BCD])^{-1}=[I+A^{-1}BCD]^{-1}A^{-1} (A+BCD)−1=(A[I+A−1BCD])−1=[I+A−1BCD]−1A−1
结合引理1有:
A − 1 − ( I + A − 1 B C D ) − 1 A − 1 B C D A − 1 A^{-1}-(I+A^{-1}BCD)^{-1}A^{-1}BCDA^{-1} A−1−(I+A−1BCD)−1A−1BCDA−1
使用引理2两次有:
原式 = A − 1 − A − 1 ( I + B C D A − 1 ) − 1 B C D A − 1 = A − 1 − A − 1 B ( I + C D A − 1 B ) − 1 C D A − 1 \begin{split} 原式&=A^{-1}-A^{-1}(I+BCDA^{-1})^{-1}BCDA^{-1}\\ &=A^{-1}-A^{-1}B(I+CDA^{-1}B)^{-1}CDA^{-1}\\ \end{split} 原式=A−1−A−1(I+BCDA−1)−1BCDA−1=A−1−A−1B(I+CDA−1B)−1CDA−1
当C是一个可逆矩阵时, 上式等于
A − 1 − A − 1 B ( C − 1 + D A − 1 B ) − 1 D A − 1 A^{-1}-A^{-1}B(C^{-1}+DA^{-1}B)^{-1}DA^{-1} A−1−A−1B(C−1+DA−1B)−1DA−1