woodbury公式的证明

本文参考自:woodbury matrix identity
http://en.wikipedia.org/wiki/Woodbury_matrix_identity
The Woodbury matrix identity is:这里假设A是n×n可逆矩阵,U,C,V分别为n×k,k×k,k×n矩阵。
( A + U C V ) − 1 = A − 1 − A − 1 U ( C − 1 + V A − 1 U ) − 1 V A − 1 {(A + UCV)^{ - 1}} = {A^{ - 1}} - {A^{ - 1}}U{({C^{ - 1}} + V{A^{ - 1}}U)^{ - 1}}V{A^{ - 1}} (A+UCV)1=A1A1U(C1+VA1U)1VA1
假设 A + U C V A + UCV A+UCV可逆,C可逆, C − 1 + V A − 1 U {C^{ - 1}} + V{A^{ - 1}}U C1+VA1U也是可逆的。
证明:
M = A + U C V M=A + UCV M=A+UCV
因为:A可逆,我们有:
M A − 1 = I + U C V A − 1 M{A^{ - 1}} = I + UCV{A^{ - 1}} MA1=I+UCVA1
两边右乘U,有:
M A − 1 U = U + U C V A − 1 U M{A^{ - 1}}U = U + UCV{A^{ - 1}}U MA1U=U+UCVA1U
提出UC项,有:
M A − 1 U = U C ( C − 1 + V A − 1 U ) M{A^{ - 1}}U = UC({C^{ - 1}} + V{A^{ - 1}}U) MA1U=UC(C1+VA1U)
因为有 C − 1 + V A − 1 U {C^{ - 1}} + V{A^{ - 1}}U C1+VA1U可逆
M A − 1 U ( C − 1 + V A − 1 U ) − 1 = U C M{A^{ - 1}}U{({C^{ - 1}} + V{A^{ - 1}}U)^{ - 1}} = UC MA1U(C1+VA1U)1=UC
我们该如何去处理这个UC项呢?因为U和C维度的关系,UC可能不是一个方阵,想到M是可逆的,这里我们把他配成M的形式,(乘以V,再加上A)有:
M A − 1 U ( C − 1 + V A − 1 U ) − 1 V + A = U C V + A = M M{A^{ - 1}}U{({C^{ - 1}} + V{A^{ - 1}}U)^{ - 1}}V + A = UCV + A = M MA1U(C1+VA1U)1V+A=UCV+A=M
所以有: M = M A − 1 U ( C − 1 + V A − 1 U ) − 1 V + A M = M{A^{ - 1}}U{({C^{ - 1}} + V{A^{ - 1}}U)^{ - 1}}V + A M=MA1U(C1+VA1U)1V+A
两边同时乘以M逆再一刀左边,有:
I − A − 1 U ( C − 1 + V A − 1 U ) − 1 V = M − 1 A I - {A^{ - 1}}U{({C^{ - 1}} + V{A^{ - 1}}U)^{ - 1}}V = {M^{ - 1}}A IA1U(C1+VA1U)1V=M1A
所以,
M − 1 = ( A + U C V ) − 1 = A − 1 − A − 1 U ( C − 1 + V A − 1 U ) − 1 V {M^{ - 1}} = {(A + UCV)^{ - 1}} = {A^{ - 1}} - {A^{ - 1}}U{({C^{ - 1}} + V{A^{ - 1}}U)^{ - 1}}V M1=(A+UCV)1=A1A1U(C1+VA1U)1V
可以看到,当U和V都是单位阵的时候,就会退化成下面的公式:

PS:这里的两个公式我没有找到推到过程,只能验证A*A^(-1)=I。在这里求教大家了

( A + C ) − 1 = C − 1 ( A − 1 + C − 1 ) − 1 A − 1 {(A + C)^{ - 1}} = {C^{ - 1}}{({A^{ - 1}} + {C^{ - 1}})^{ - 1}}{A^{ - 1}} (A+C)1=C1(A1+C1)1A1
同时也等于:
( A + C ) − 1 = A − 1 − A − 1 ( C − 1 + A − 1 ) − 1 A − 1 {(A + C)^{ - 1}} = {A^{ - 1}} - {A^{ - 1}}{({C^{ - 1}} + {A^{ - 1}})^{ - 1}}{A^{ - 1}} (A+C)1=A1A1(C1+A1)1A1

因为: ( A + C ) − 1 = A − 1 − A − 1 ( C − 1 + A − 1 ) − 1 A − 1 = A − 1 − ( − C − 1 + C − 1 + A − 1 ) ( C − 1 + A − 1 ) − 1 A − 1 = A − 1 + C − 1 ( C − 1 + A − 1 ) − 1 − ( C − 1 + A − 1 ) ( C − 1 + A − 1 ) − 1 A − 1 = A − 1 + C − 1 ( C − 1 + A − 1 ) − 1 A − 1 − A − 1 = C − 1 ( C − 1 + A − 1 ) − 1 A − 1 \begin{array}{l} {(A + C)^{ - 1}} = {A^{ - 1}} - {A^{ - 1}}{({C^{ - 1}} + {A^{ - 1}})^{ - 1}}{A^{ - 1}}\\ = {A^{ - 1}} - ( - {C^{ - 1}} + {C^{ - 1}} + {A^{ - 1}}){({C^{ - 1}} + {A^{ - 1}})^{ - 1}}{A^{ - 1}}\\ = {A^{ - 1}} + {C^{ - 1}}{({C^{ - 1}} + {A^{ - 1}})^{ - 1}} - ({C^{ - 1}} + {A^{ - 1}}){({C^{ - 1}} + {A^{ - 1}})^{ - 1}}{A^{ - 1}}\\ = {A^{ - 1}} + {C^{ - 1}}{({C^{ - 1}} + {A^{ - 1}})^{ - 1}}{A^{ - 1}} - {A^{ - 1}}\\ = {C^{ - 1}}{({C^{ - 1}} + {A^{ - 1}})^{ - 1}}{A^{ - 1}} \end{array} (A+C)1=A1A1(C1+A1)1A1=A1(C1+C1+A1)(C1+A1)1A1=A1+C1(C1+A1)1(C1+A1)(C1+A1)1A1=A1+C1(C1+A1)1A1A1=C1(C1+A1)1A1

同样,当C是个单位阵的时候,会有下列公式:
在这里插入图片描述

  • 0
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
学习人工智能,机器学习都离不开数学基础和编程知识。无论你是数据科学的初学者还是已经从事人工智能开发的有经验人员,这门课都适合于你。为什么这么说?首先人工智能和机器学习本质上就是算法,而算法就是数学及统计学以及编程的结合。当前市场上有许多开源的软件包如SKLEARN确实可以帮助没经验的或缺乏数学或算法基础的人实现机器学习模型及预测,但这些工具无法使你真正懂得算法的本质或来源,或者无法使你在不同场合下灵活运用及改进算法。记住,在实际工作中找到适合应用场景的解决方案是最难但是最重要的。但这离不开数学基础和算法理解。比如,线性回归是一类普遍的机器学习算法,所有的机器学习软件都有现成的方法实现模型,但如果在训练数据中加入几条新数据,那么新建立的模型和原来的模型有和联系或不同?再比如,为什么深度神经网络中的Sigmoid函数一般只用到输出层?神经网络的向后传播理论如何与泰勒展开和复合函数的偏导数联系在一起?人工智能中推荐系统和文字向量如何与矩阵的奇异分解以及特征向量联系?模型中对标签进行数据变换如何影响预测值?所有这些问题的答案,你都可以从本课中找到线索。本课系统地讲述了有关人工智能,机器学习背后的数学知识。特别指出,微积分和代数知识是本课的核心。统计学基础被安排在另外的课程中。除此之外,我在每一章节或主要知识点后都安排了各类程序以解释和回顾所学到的东西。最后要提到的是,这不是一门工程项目实践课。但我会另外专门安排有关人工智能,机器学习的实践课程

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

通信仿真爱好者

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值