子空间投影

参考文章:
[1] https://www.cnblogs.com/seniusen/p/9994177.html
[2] https://blog.csdn.net/xdfyoga1/category_2315349.html

问题:向量 b = ( 2 , 3 , 4 ) b = (2, 3, 4) b=(2,3,4) z z z 轴上和在 x y xy xy 平面上的投影是什么,哪个矩阵能产生到一条线上和到一个平面的投影?

1. 投影

b b b 被投影到 z z z 轴上时,它的投影 p p p 就是 b b b 沿着那条线的部分。当 b b b 被投影到一个平面时,它的投影就是 b b b 在平面中的部分。

在这里插入图片描述
z z z 轴上的投影为 p 1 = ( 0 , 0 , 4 ) p1=(0,0,4) p1=(0,0,4),到 x y xy xy 平面上的投影为 p 2 = ( 2 , 3 , 0 ) p2=(2,3,0) p2=(2,3,0),两个投影矩阵 P 1 P1 P1 P 2 P2 P2 分别为
在这里插入图片描述
P 1 P1 P1 就是选出每个向量的 z z z 分量, P 2 P2 P2 就是选出每个向量的 x x x y y y 分量。
在这里插入图片描述
上图中的投影矩阵的作用可以理解为:向量 b b b 的投影 p p p 与向量 b b b 的关系,或通过投影矩阵,可以获得向量 b b b 的某个投影分量。 (向量 b b b 经过矩阵 P 1 P1 P1 P 2 P2 P2 后得到了其投影 p 1 p_1 p1 p 2 p_2 p2,所以投影是通过矩阵完成的,我们将该矩阵称为投影矩阵)

在这个例子中, z z z 轴和 x y xy xy 平面是正交子空间,就像地面和两面墙的交线一样。

除此之外,它们还是正交补的。整个空间的任意向量都可以表示为它们在两个子空间中分量的和。

2. 到一条线上的投影

假设一条过原点的直线方向为 a = ( a 1 , a 2 , ⋯ , a m ) a=(a1,a2,⋯,am) a=(a1,a2,,am),我们要将点 b = ( b 1 , b 2 , ⋯ , b m ) b=(b1,b2,⋯,bm) b=(b1,b2,,bm) 投影到这条直线上。

将向量 b b b 投影到向量 a a a p p p b b b a a a 上的投影, p p p a a a 上离 b b b 最近的点 e = b − p e=b-p e=bp 这好比 b b b p p p 之间的误差,这个误差与 a a a 相互垂直。
在这里插入图片描述
投影 p p p a a a 在一条直线上,因此有 p = x ^ a p = \hat xa p=x^a x ^ \hat x x^ 是一个标量);误差 e = b − p = b − x ^ a e=b−p=b−\hat xa e=bp=bx^a,然后由 e e e 垂直于 a a a,我们可得:
e ⋅ a = 0 → ( b − x ^ a ) ⋅ a = 0 → a ⋅ b − x ^ a ⋅ a = 0 e \cdot a = 0 \to (b-\hat xa) \cdot a = 0 \to a\cdot b - \hat x a\cdot a = 0 ea=0(bx^a)a=0abx^aa=0
因此,可求得系数 x ^ \hat x x^
x ^ = a ⋅ b a ⋅ a = a T b a T a \hat x = \frac{a\cdot b}{a\cdot a} = \frac{a^Tb}{a^Ta} x^=aaab=aTaaTb
投影为
p = x ^ a = a T b a T a a p = \hat x a = \frac{a^Tb}{a^Ta} a p=x^a=aTaaTba

如果 b = a b=a b=a,那么 x ^ = 1 \hat x=1 x^=1,投影还是它自己, P b = b Pb=b Pb=b
如果 b ⊥ a b⊥a ba,那么 x ^ = 0 \hat x=0 x^=0,投影为 P b = 0 Pb=0 Pb=0

第一种就是 b b b 就在列空间里,投影矩阵为 I I I ,即相当于不做任何投影;第二种极端情况就是 b b b 垂直于列空间,此时 P b = 0 Pb=0 Pb=0 ,一般情况下向量会有一分量在列空间里,另一分量与列空间垂直,因此投影完成的功能就是去掉垂直部分,保留另一部分。


将投影重写为
p = a x ^ = a a T b a T a = a a T a T a b p = a \hat x =a \frac{a^Tb}{a^Ta} = \frac{aa^T}{a^Ta}b p=ax^=aaTaaTb=aTaaaTb
因此,投影矩阵为
P = a a T a T a P = \frac{aa^T}{a^Ta} P=aTaaaT

可以看出:

投影矩阵的性质

  1. 如果向量 a a a 变为两倍,投影矩阵 P P P 不变,它还是投影到 p p p;若 b b b 变成了两倍,投影 p p p 也会变成2倍;
  2. 用任何向量 b b b 乘以投影矩阵 P P P,结果总在投影矩阵的列空间里。
    因为 b b b 给出了对其列的线性组合,而我们又知道任何向量 b b b 乘以投影空间总在向量 a a a 上,因此投影矩阵 P P P 的列空间,是通过 a a a 的一条线,列空间维数是1,投影矩阵的秩是1;
  3. 投影矩阵是对称的,因为 ( a a T ) T = a a T (aa^T)^T=aa^T (aaT)T=aaT
  4. 如果投影矩阵平方,那就是进行两次投影,和进行一次投影是一样的结果,因此有 P 2 = P P^2=P P2=P

同时, I − P I−P IP 也是一个投影矩阵, ( I − P ) b = b − p = e (I−P)b=b−p=e (IP)b=bp=e。当 P P P 投影到一个子空间时, I − P I−P IP 投影到和它垂直的另一个子空间。

3. 到子空间的投影

假设 n n n R m R_m Rm 空间中的向量 a 1 , ⋯ , a n a1,⋯,an a1,,an 是线性不相关的,我们想找到一个线性组合 p = x ^ 1 a 1 + ⋯ + x ^ n a n p=\hat x_1 a_1+\cdots+\hat x_n a_n p=x^1a1++x^nan 使得 p p p 距离一个给定向量 b b b 最近

a 1 , ⋯ , a n a1,⋯,an a1,,an 可以看做是矩阵 A A A 的列,我们要找的线性组合是在矩阵 A A A 的列空间中。我们要找的是距离 b b b 最近的一个组合 A x ^ A\hat x Ax^也就是 b b b 在列空间的投影
在这里插入图片描述
对上图中红框内的公式进行说明:它解释的是 "我们要找的是距离 b b b 最近的一个组合 A x ^ A\hat x Ax^也就是 b b b 在列空间的投影 " 这句话。第二个等式借用了上面推出来的投影矩阵的表达式。 A x ^ A\hat x Ax^,则投影矩阵是关于 A A A 的。


同理,误差 e = b − A x ^ e=b−A\hat x e=bAx^ 垂直于子空间,也就是垂直于子空间的所有向量。
在这里插入图片描述
也即
A T ( b − A x ^ ) = 0 → A T A x ^ = A T b A^T(b-A\hat x) = 0 \to A^TA\hat x = A^Tb AT(bAx^)=0ATAx^=ATb
A T A A^TA ATA 是一个 n×n 的矩阵,因为 A A A 的列是线性不相关的,所以其是可逆的。可得线性组合系数为
x ^ = ( A T A ) − 1 A T b \hat x = (A^TA)^{-1}A^Tb x^=(ATA)1ATb
所以有,投影和投影矩阵分别为
p = A x ^ = A ( A T A ) − 1 A T b p = A \hat x = A(A^TA)^{-1}A^Tb p=Ax^=A(ATA)1ATb P = A ( A T A ) − 1 A T P = A(A^TA)^{-1}A^T P=A(ATA)1AT
A T ( b − A x ^ ) = 0 A^T(b-A\hat x) = 0 AT(bAx^)=0 可知,误差 e e e 位于 A A A 的左零空间 N ( A T ) N(A^T) N(AT) 中,向量 b b b 被分为了投影 p p p 和误差 e e e 两部分。

A T A A^TA ATA 是可逆的当且仅当 A A A 的列是线性不相关的。

A x = 0 Ax=0 Ax=0 时,我们有 A T A x = 0 A^TAx=0 ATAx=0 。而当 A T A x = 0 A^TAx=0 ATAx=0 时,我们有
x T A T A x = 0 → ( A x ) T A x = 0 → A x = 0 x^TA^TAx=0 \to (Ax)^TAx = 0 \to Ax = 0 xTATAx=0(Ax)TAx=0Ax=0
因此 A T A A^TA ATA A A A 有着一样的零空间,当 A A A 的列线性不相关时, A T A A^TA ATA 是一个方阵,对称并且可逆。


这里有另一种说法,更好理解。
参考:https://blog.csdn.net/xdfyoga1/article/details/37568067

4. 二维空间 R 2 R^2 R2 推广到高维空间 R n R^n Rn 的情况

在这之前,我们需要讨论一下为什么要投影?

  • A x = b Ax=b Ax=b 无解,当无解时我们只能求解最接近的那个可解问题来求原方程的最优解,即要将 b b b 作调整,使其变成 A A A 的列空间中最接近 b b b 的那个向量。

那么怎样才算是最接近的呢?

  • 这就要将 b b b A A A 的列空间投影得到 p p p ,因为 p p p 在列空间中,因此 A x = p Ax=p Ax=p 是有解的,这就是为什么要作投影,可以用来解决方程无解的情况。

为了理解方便,接下来我主要以三维情况为例,但是要知道更高维和三维本质上是一样的。

假设有三维中的一个平面和一个不在平面上的向量 b b b ,现在要将 b b b 投影在平面上,平面有两个基向量 a 1 a_1 a1 a 2 a_2 a2 ,它们线性无关,回想下和方程组的联系,可知这个平面是矩阵 A A A 的列空间,即 A = [ a 1 a 2 ] A=\left [ \begin{matrix} a_1 & a_2 \end{matrix} \right ] A=[a1a2],当然矩阵 A A A 可以是两列,也可以是 n n n 列,这里写成两列,投影 p p p 是基向量的组合,即 p = x ^ 1 a 1 + x ^ 2 a 2 p=\hat{x}_{1}a_{1}+\hat{x}_{2}a_{2} p=x^1a1+x^2a2 ,写成矩阵的形式即 p = A x ^ p=A\hat{x} p=Ax^ ,根据误差向量 e = b − A x ^ e=b-A\hat{x} e=bAx^ 垂直于平面,我们可得出等式, e e e 垂直于平面的意思就是 e e e 分别垂直于两个基向量 a 1 a_1 a1 a 2 a_2 a2 ,因此分别得到
a 1 T ( b − A x ^ ) = 0 a_{1}^{T}(b-A\hat{x})=0 a1T(bAx^)=0 a 2 T ( b − A x ^ ) = 0 a_{2}^{T}(b-A\hat{x})=0 a2T(bAx^)=0
将两个方程合并成矩阵形式:
[ a 1 T a 2 T ] ( b − A x ^ ) = [ 0 0 ] \begin{bmatrix} a_{1}^{T}\\ a_{2}^{T} \end{bmatrix}(b-A\hat{x})=\begin{bmatrix} 0\\ 0 \end{bmatrix} [a1Ta2T](bAx^)=[00] 即, A T ( b − A x ^ ) = 0 A^{T}(b-A\hat{x})=0 AT(bAx^)=0 对比可发现平面上的投影方程和直线上的投影方程很相似,同样对其进行变形,将其改写为
A T A x ^ = A T b A^{T}A\hat{x}=A^{T}b ATAx^=ATb x ^ = ( A T A ) − 1 A T b \hat{x}=\left ( A^{T}A \right )^{-1}A^{T}b x^=(ATA)1ATb
投影和投影矩阵分别为
p = A x ^ = A ( A T A ) − 1 A T b p=A\hat{x}=A\left ( A^{T}A \right )^{-1}A^{T}b p=Ax^=A(ATA)1ATb P = A ( A T A ) − 1 A T P=A\left ( A^{T}A \right )^{-1}A^{T} P=A(ATA)1AT 这个公式看起来很复杂,根据乘积的逆等于各自逆的反顺序相乘,可得到
P = A A − 1 ( A T ) − 1 A T = I P=AA^{-1}(A^{T})^{-1}A^{T}=I P=AA1(AT)1AT=I

问题出现了,为什么会这样呢?不应该投影矩阵算出来始终为I的,一定要注意因为 A A A 不是方阵(我们讨论的是 A x = b Ax=b Ax=b 无解的情况,因此A不是方阵),所以A的逆不存在,所以 P = A ( A T A ) − 1 A T P=A\left ( A^{T}A \right )^{-1}A^{T} P=A(ATA)1AT 不能化简,我们做的这种变换是不成立的,只有 A A A 为可逆阵时才允许做后面的这一步变换。

我们可以看一下当 A A A 是可逆阵时这个式子表示的含义:如果 A A A n ∗ n n*n nn 可逆方阵,那么它的列空间是整个 R n R_n Rn ,因为其对于所有的 b b b 均有解,既然 b b b 已经在列空间中,那么投影矩阵 P P P 是单位阵也无可厚非了。

投影矩阵的性质

  1. 投影矩阵仍然是对称阵,将P进行转置即可得出结论;
  2. P 2 = P P^2=P P2=P,即进行第二次投影时还是会投影在第一次投影的地方。

应用

投影思想在最小二乘法中的应用

当我们遇到一个方程组,有太多的方程,未知数却只有几个,现在我们要求它的最优解。假设有三个点(1,1),(2,2),(3,2),这三个点拟合直线 b = C + D t b=C+Dt b=C+Dt,首先我们要建立矩阵 A A A ,只要找到 A A A ,我们就能使用上面推导的那些公式, C + D = 1 C+D=1 C+D=1 C + 2 D = 2 C+2D=2 C+2D=2 C + 3 D = 2 C+3D=2 C+3D=2,所以对于这个例子,对应的无解方程 A x = b Ax=b Ax=b
[ 1 1 1 2 1 3 ] [ C D ] = [ 1 2 2 ] \begin{bmatrix} 1 & 1\\ 1 & 2\\ 1 & 3 \end{bmatrix}\begin{bmatrix} C \\ D \end{bmatrix}=\begin{bmatrix} 1\\ 2\\ 2 \end{bmatrix} 111123[CD]=122

所谓的最优解并不是这个方程的解,而是 A x = p Ax=p Ax=p 的解,即 A T A x ^ = A T b A^{T}A\hat{x}=A^{T}b ATAx^=ATb 的解。


附推导过程:
p = A x ^ = A x ^ = A ( A T A ) − 1 A T b = A x p=A\hat{x}=A\hat{x}=A(A^TA)^{-1}A^Tb=Ax p=Ax^=Ax^=A(ATA)1ATb=Ax → ( A T A ) − 1 A T b = x \rightarrow (A^TA)^{-1}A^Tb=x (ATA)1ATb=x → A T A x = A T b \rightarrow A^TAx=A^Tb ATAx=ATb


解法1:线性代数方法来求解CD

由于
A T A = [ 1 1 1 1 2 3 ] [ 1 1 1 2 1 3 ] = [ 3 6 6 14 ] A^{T}A=\begin{bmatrix} 1 & 1 & 1\\ 1 & 2 & 3 \end{bmatrix} \begin{bmatrix} 1 & 1\\ 1 & 2\\ 1 & 3 \end{bmatrix}= \begin{bmatrix} 3 & 6\\ 6 & 14 \end{bmatrix} ATA=[111213]111123=[36614]

A T b = [ 1 1 1 1 2 3 ] [ 1 2 2 ] = [ 5 11 ] A^{T}b=\begin{bmatrix} 1 & 1 & 1\\ 1 & 2 & 3 \end{bmatrix} \begin{bmatrix} 1\\ 2\\ 2 \end{bmatrix}= \begin{bmatrix} 5\\ 11 \end{bmatrix} ATb=[111213]122=[511]

可以解出 x ^ = [ C D ] = [ 2 3 1 2 ] \hat{x}=\begin{bmatrix} C\\ D \end{bmatrix} =\begin{bmatrix} \frac{2}{3}\\ \frac{1}{2} \end{bmatrix} x^=[CD]=[3221]


解法2:微积分求解CD

其误差为 e = b − p = b − A x e=b-p=b-Ax e=bp=bAx

最小化误差函数:
e = e 1 2 + e 2 2 + e 3 2 = ( b 1 − p 1 ) + ( b 2 − p 2 ) + ( b 3 − p 3 ) = ( C + D − 1 ) 2 + ( C + 2 D − 2 ) 2 + ( C + 3 D − 2 ) 2 \begin{aligned} e &=e_{1}^{2}+e_{2}^{2}+e_3^2 \\ &=(b_1-p_1)+(b_2-p_2)+(b_3-p_3) \\ &=(C+D-1)^2+(C+2D-2)^2+(C+3D-2)^2 \end{aligned} e=e12+e22+e32=(b1p1)+(b2p2)+(b3p3)=(C+D1)2+(C+2D2)2+(C+3D2)2

对该式求偏导,最终得到
{ 3 C + 6 D = 5 6 C + 14 D = 11 → { C = 2 3 D = 1 2 \left\{\begin{matrix} 3C+6D=5\\ 6C+14D=11 \end{matrix}\right.\rightarrow \left\{\begin{matrix} C = \frac{2}{3}\\ D = \frac{1}{2} \end{matrix}\right. {3C+6D=56C+14D=11{C=32D=21


综上,最优直线是 y = 2 / 3 + 1 / 2 t y=2/3+1/2t y=2/3+1/2t,由此三个点在线上的投影为 p 1 = 7 / 6 p1=7/6 p1=7/6 p 2 = 5 / 3 p2=5/3 p2=5/3 p 3 = 13 / 6 p3=13/6 p3=13/6 (不是垂直投影),各点的误差为 e 1 = − 1 / 6 e1=-1/6 e1=1/6 e 2 = 2 / 6 e2=2/6 e2=2/6 e 3 = − 1 / 6 e3=-1/6 e3=1/6

b b b p p p e e e 之间满足 b = p + e b=p+e b=p+e e e e 不仅垂直于 p p p ,同时还垂直于其他向量, e e e 垂直于整个列空间。

  • 3
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值