投影矩阵、最小二乘法和SVD分解
投影矩阵广泛地应用在数学相关学科的各种证明中,但是由于其概念比较抽象,所以比较难理解。这篇文章主要从最小二乘法的推导导出投影矩阵,并且应用SVD分解,写出常用的几种投影矩阵的形式。
问题的提出
已知有一个这样的方程组:
\[Ax=b\]
其中,\(A \in R^{m \times n},x,b \in R^n\)
- 当\(m=n\)时,且\(rank(A)=n\)时,这是一个适定方程组,有唯一解\(x=A^{-1}b\)
- 当\(m<n\)时,或者\(rank(A)<n\)时,这是一个欠定方程组,有无穷多个解。对于这种情况,我们使用\(ran(A)\)中与\(b\)距离最近的向量对应的\(x\)作为最小二乘解。而相应的\(ran(A)\)中的这个向量就是\(b\)在空间\(ran(A)\)中的投影。
最小二乘法
几何解法
如上图所示,\(b\)不在\(ran(A)\)中,\(Ax_0\)是\(ran(A)\)空间中对\(b\)在欧几里得范数下的最好估计。此时\[\forall x \in {R^n},\left\langle {Ax,b - A{x_0}} \right\rangle = 0\]
等价于
\[{x^T}{A^T}(b - A{x_0}) = 0\]
由于x的任意性,所以
\[{A^T}(b - A{x_0}) = 0\]
整理得
\[{x_0} = {({A^T}A)^{ - 1}}{A^T}b = {A^\dagger }b\]
其中\({A^\dagger } = {({A^T}A)^{ - 1}}{A^T}\)称为A的伪逆。
数值解法
原问题等价于
\[\min ||Ax - b||_2^2\]
记$ f(x)=||Ax-b||_2^2=(Ax-b)^T(Ax-b)=x^TA^T A x-2 b^T A x + b^Tb$,对x求导得,
\[\nabla f = 2({A^T}Ax - {A^T}b) = 0\]
解得,
\[{x} = {({A^T}A)^{ - 1}}{A^T}b = {A^\dagger }b\]
投影矩阵
对最小二乘解两边同时乘以A,就是对应的投影向量,即
\[{Ax} = {A({A^T}A)^{ - 1}}{A^T}b=Pb\]
那么\(P={A({A^T}A)^{ - 1}}{A^T}\)就是将\(b\)投影到\(ran(A)\)的投影矩阵。因为
\[P^T={A({A^T}A)^{ - 1}}{A^T}=P,P^2=P\]
满足投影矩阵的定义。
所以\(ran(A)\)对应的投影矩阵为
\[P={A({A^T}A)^{ - 1}}{A^T}\]
SVD分解下的投影矩阵
秩为r的矩阵A的SVD分解为\(A = U\Sigma {V^T} \in R^{m \times n}\)。其中,
\[U = [{U_r}|{\tilde U_r}],V = [{V_r}|{\tilde V_r}]\]
那么,带入公式可以得到
\(V_r V_r^T\)是\(ran(A^T)={null(A)}^\bot\)空间的投影矩阵
\(U_r U_r^T\)是\(ran(A)\)空间的投影矩阵
对于\(\forall x \in R^n\),有
\[ \left\langle {V_r V_r^T x,\tilde V_r {\tilde V_r}^T x} \right\rangle =x^T V_r V_r^T \tilde V_r {\tilde V_r}^T x=0\]
所以,\(\tilde V_r {\tilde V_r}^T\)是\(null(A)\)空间的投影矩阵
同理,\(\tilde U_r {\tilde U_r}^T\)是\(null(A^T)={ran(A)}^\bot\)空间的投影矩阵
投影矩阵、最小二乘法和SVD分解的更多相关文章
- 机器学习中的矩阵方法04:SVD 分解
前面我们讲了 QR 分解有一些优良的特性,但是 QR 分解仅仅是对矩阵的行进行操作(左乘一个酉矩阵),可以得到列空间.这一小节的 SVD 分解则是将行与列同等看待,既左乘酉矩阵,又右乘酉矩阵,可以得出 ...
- 矩阵的SVD分解
转自 http://blog.csdn.net/zhongkejingwang/article/details/43053513(实在受不了CSDN的广告) 在网上看到有很多文章介绍SVD的,讲的也都 ...
- SVD分解及线性最小二乘问题
这部分矩阵运算的知识是三维重建的数据基础. 矩阵分解 求解线性方程组:,其解可以表示为. 为了提高运算速度,节约存储空间,通常会采用矩阵分解的方案,常见的矩阵分解有LU分解.QR分解.Cholesky ...
- gemm() 与 gesvd() 到矩阵求逆(inverse)(根据 SVD 分解和矩阵乘法求矩阵的逆)
可逆方阵 A 的逆记为,A−1,需满足 AA−1=I. 在 BLAS 的各种实现中,一般都不会直接给出 matrix inverse 的直接实现,其实矩阵(方阵)的逆是可以通过 gemm()和gesv ...
- SVD分解的理解[转载]
http://www.bfcat.com/index.php/2012/03/svd-tutorial/ SVD分解(奇异值分解),本应是本科生就掌握的方法,然而却经常被忽视.实际上,SVD分解不但很 ...
- SVD分解技术详解
版权声明: 本文由LeftNotEasy发布于http://leftnoteasy.cnblogs.com, 本文可以被全部的转载或者部分使用,但请注明出处,如果有问题,请联系wheeleast@gm ...
- SVD分解 解齐次线性方程组
SVD分解 只有非方阵才能进行奇异值分解 SVD分解:把矩阵分解为 特征向量矩阵+缩放矩阵+旋转矩阵 定义 设\(A∈R^{m×n}\),且$ rank(A) = r (r > 0) $,则矩阵 ...
- 机器学习之SVD分解
一.SVD奇异值分解的定义 假设是一个的矩阵,如果存在一个分解: 其中为的酉矩阵,为的半正定对角矩阵,为的共轭转置矩阵,且为的酉矩阵.这样的分解称为的奇异值分解,对角线上的元素称为奇异值,称为左奇异矩 ...
- opencv2.4中SVD分解的几种调用方法
原帖地址: http://blog.sina.com.cn/s/blog_6109b5d00101ag7a.html 在摄影测量和计算机视觉中,考虑最优解问题时,经常要用到SVD分解.奇异 ...
随机推荐
- jsp页面JSTL标签 <c:fn:>
函数名 函数说明 使用举例 fn:contains 判断字符串是否包含另外一个字符串 <c:if test="${fn:contains(name, searchString)}&qu ...
- Maven的pom文件内容详细理解
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/20 ...
- hdu 1159(Common Subsequence)简单dp,求出最大的公共的字符数
Common Subsequence Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Other ...
- lua学习笔记(十三)
math库 定义在math中 所有三角函数都使用弧度 指数和对数函数 取整函数 伪随机数math.random 调用时没有参数返回0~1之间的随 ...
- spring download
http://maven.springframework.org/release/org/springframework/spring/
- mac虚拟机搭建自动化环境-wda和python wda client
尽量升级Xcode到最新版,保持iPhone的版本大于9.3 1.安装webDriverAgent到ios真机 从github上下载代码:git clone https://github.com/fa ...
- [转]mysqlx 同时使用 AND OR
- Mac下python连接mysql数据库
一.下载Mysql官方connector驱动 地址:https://dev.mysql.com/downloads/connector/python/ 根据提示安装.dmg文件即可. 二.验证是否安装 ...
- 【php】global的使用与php的全局变量
php的全局变量和其余编程语言是不同的,在大多数的编程语言中,全局变量在其下的函数.类中自己主动生效.除非被局部变量覆盖,或者根本就不同意再声明同样名称与类型的局部变量.可是php中的全局变量不是默认 ...
- iOS 线程管理的学习记录
本文转载至 http://www.2cto.com/kf/201312/265451.html 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 2 ...