投影矩阵与最小二乘

投影矩阵与最小二乘二者有什么必然的联系么,当我开始写这篇文章的时候我也这样问自己。如果Strang教授没有教授这堂课亦或者讲的这堂课没有被放到网上被别人所下载观看,那么...

好在一切都是那么的幸运微笑

先说说投影吧,这个想必大家都知道,高中的知识了。一个向量(b)在另一个向量(a)上的投影:


实际上就是寻找在a上离b最近的点。如果我们把p看作是a的估计值,那么我们定义e = b - p,称e为误差(error)。

现在,我们的任务是找到这样的p,我们可以规定p = xa(x是某个数),那么e = b - xa,因为e与p也就是a垂直,所以有aT(b - xa) = 0,展开化简得到:


将x代入到p中,得到:


我们发现,如果改变b,那么p相对应改变,然而改变a,p无变化。

有了上面的背景知识,我们可以正式进入主题了,投影矩阵(projection matrix):

p = Pb,

显然这里有:


这里我们最需要关注的是投影矩阵的两个性质:

1)P' = P;

2)P ^ 2 = P;

对于第一个,很容易理解,因为P本身就是个对称阵。第二个,直观的理解就是投影到a上后再投影一次,显然投影并没有改变,也就是二次投影还是其本身。

这个投影到底有什么用呢,从线性代数的角度来说,Ax = b并不一定总有解,这在实际情况中会经常遇到(m > n)。所以我们就把b投影到向量p上,求解Ax = p。

接下来,我们可以考虑更高维度的投影,三维空间的投影是怎么样的呢,我们可以想象一个三维空间内的向量在该空间内的一个平面上的投影:


我们假设这个平面的基(basis)是a1, a2.那么矩阵A = [a1 a2]的列空间就是该平面。假设一个不在该平面上的向量b在该平面上的投影是p,那么我们就有下面这个表达式 p = x1a1 + x2a2 = Ax, 我们的任务就是找到这样的x。这里有一个关键的地方:e = b - Ax与该平面垂直,所以a1'(b - Ax) = 0且a2' (b- Ax) = 0.用矩阵的形式表达就是:

A'(b - Ax) = 0.

从上面这个式子我们可以得到e(e = b - Ax)等于N(A')。回忆之前的四个空间的关系:假设矩阵(m * n)的秩为r,行空间(维度r)与零空间(维度n - r)互相垂直,列空间(维度r)与左零空间(维度为m - r)互相垂直。所以,我们可以得到e垂直于C(A)。

我们把上边式子展开,得到A'Ax = A'b => x = (A'A)-1A'b, p = Ax = A(A'A)-1A'。类似在二维情况下,在三维情况下我们依然有:

1)p' = p;

2)p ^ 2 = p。

好了,在此我们先暂别“投影”。下面,开始说一下最小二乘的故事吧:

在实际应用中,线性回归是经常用到的,我们可以在一张散列点图中作一条直线(暂时用直线)来近似表述这些散列点的关系。比如:

给定二维平面的三个点:(1, 1), (2, 2), (3, 2)。我们想寻求一条直线(y = C + Dt)来逼近这些点。假设这些点都在该直线上,我们有:

C + D = 1

C + 2D = 2

C + 3D = 2.写成矩阵的形式如下:


实际上,这条直线是不存在的。从线性代数的角度来看,就是A的列向量的线性组合无法充满整个列空间,而b恰恰就是一个例外。所以,我们就借助了投影矩阵,我们这么干得意

A'Ax = A'b。

在上回,我们得到了一个十分重要的东西,投影矩阵:

p = A(A'A)-1A'

我们依然以在(一)中的那张投影图为例,b在平面上的投影是p,如果b垂直于C(A),那么b就在A的左零空间里,即Pb = 0。如果b本身就在A的列空间里,那么有Ax = b和Pb = b。我们简要推导下上面的过程:

1)对于b垂直于C(A):

因为N(A')垂直于C(A),所以b在N(A'),Pb = A(A'A)-1A'b = 0(红色的部分为0)

2)对于b在C(A)里:

b = Ax, Pb = A(A'A)-1A'Ax = Ax = b

然而,我们要解决的是更一般的情况:b 不属于上述任何两种情况之一,也就是b在C(A)(记为p)里和N(A')(记为e)的投影不是它本身,我们有:

p + e = b。而通过之前介绍的关于投影的知识,我们可以得到p = Pb,所以有:

Pb + e = bI,e = (I - P)b。

我们再次回到(一)的结尾的那个例子:


写成矩阵形式Ax = b: *


我们可以从两方面来看待*式的意义

1)我们寻求这样一条直线,这三个点这条直线的垂直距离分别为e1, e2, e3.我们要寻求的直线使得e1, e2, e3的平方和最小,这就是线性回归问题;

2)我们把b看成是R3空间里的一个向量,它在A的列空间的投影是p,在N(A')的投影是e,我们现在的任务就是寻求一个x hat和p,使得满足:

这就是我们在(一)中所说的投影矩阵的问题,它擅长于处理Ax = b无解的情况

将A展开代入,得到正则方程:


解这个方程是很简单的,最后我们得到直线的方程:


我们把给定值,拟合值,误差统计一下,列出下面这个表:


我们注意到这里p与e垂直,实际上e垂直于C(A)。

这是很显然的,因为在这一部分的开头我们就作了解释:e在N(A')里,由于N(A')垂直于C(A),所以e垂直于C(A)。

最小二乘讲到这里似乎已经说完了,但是有一个问题,那就是我们所利用的投影矩阵p = A(A'A)-1A'这里我们假定A'A是可逆的,这种假定合理吗?Strang在最后给我们作了解答:

If A has independent columns, then A'A is invertible .

他是这样证明这个问题的:并没有直接证明,而是通过证明若A'Ax = 0, 则x = 0来间接证明A'A可逆。

好了,我们现有假设有A'Ax = 0,并且我们使用了一个小技巧(TRICK):

x'A'Ax = x'0

(Ax)'Ax = 0

Ax = 0,由于A的列向量相互独立,因为由Ax = 0我们得到x只能是0,这样就把这个问题解决了。

当然,这里还要提到一个关系:标准正交(orthonormal)。如果一个矩阵的列向量是标准正交向量组,那么A的列向量一定线性无关。

写到这里,我想有必要总结一下,为什么最小二乘和投影矩阵要扯到一起,它们有什么联系:

最小二乘是用于数据拟合的一个很霸气的方法,这个拟合的过程我们称之为线性回归。如果数据点不存在离群点(outliers),那么该方法总是会显示其简单粗暴的一面。我们可以把最小二乘的过程用矩阵的形式描述出来,然而,精妙之处就在于,这与我们的投影矩阵的故事不谋而合,所以,我们又可以借助于投影矩阵的公式,也就是

A'Ax = A'b来加以解决。

先说一下标准正交矩阵的概念:

对于一个矩阵A,如果A的列向量是标准正交的,那么A'A = I(很容易证明)。

如果A的列向量既是标准正交的,又是一个方阵(A is a square orthonormal matrix),那么A就称作正交矩阵。由之前A'A = I我们就得到了A' = A-1

如果矩阵Q的列向量是标准正交的,那么投影到矩阵Q的投影矩阵:

P = Q(Q'Q)-1Q'。

如果Q的列向量标准正交,那么有Q'Q = I, P = QQ',如果Q又是个方阵,那么P = I。

这里我们要用到(二)的末尾我说的那句话来解释上面这些变形的直观的意义:

如果一个矩阵的列向量是标准正交向量组,那么A的列向量一定线性无关。

如果矩阵A是方阵,且列向量是标准正交的,那么A的列向量一定线性无关,那么列空间就是整个空间了。那么我如果把向量b投影到A的列空间里,由于b就在A的列空间里,那么投影还是b本身,根据b = Pb,所以投影矩阵P就是单位阵I了。

由标准正交的概念我们可以得到很多有用的东西,就拿我们的投影矩阵来说吧:

A'Ax = A'b,如果A的列向量是标准正交的,那么A'A = I => x = A'b。

既然标准正交有这么大的好处,所以我们的前辈们就不约而同地一起在标准正交上做文章。但是,并不是所有的矩阵都是标准正交的。咱们有句老话:牛不吃草不能强按头。但是,两位牛逼哄哄的人物--Gram和Schmidt,针对非标准正交的矩阵像治疗具有偏食挑食症的儿童一样,找到了解决的办法。过程描述如下:

给定两个独立的向量a,b,我们将其转换成两个正交的向量A, B,并且a和b生成的空间与A和B生成的空间是同一个空间,然后我们再把A和B单位化即可,也就是

给定独立向量组a, b => 正交向量A, B => 标准正交向量q1, a2。

step1: A = a;

step2: B = b - p = b - A'bA / (A'A)(这是很显然的,因为这里的B就相当于前两部分说的e,e是与a相交的)

step3: q1 = A / (|| A ||), q2 = B / (|| B ||)。

如果给定的不是两个独立的向量,而是三个或者更多呢,这里,仅以三个为例,更多的依此类推:

A和B的计算过程依然如上,C = c - A'c A/ (A'A) - B'cB / (B'B)。A与C,B与C真的正交了吗,YES! 不管是用公式计算,还是直观画图理解,都是可以证明的。

最后一个问题了:

QR分解,我们可以把A写成列向量的形式A = [a1 a2]。根据前面的Gram-Schmidt正交化,我们可以得到对应的Q = [q1 q2],并且有q1'q1 = 1, q1'q2 = 0.所以我们可以把A写成如下的形式:


显然这是成立的,因为q1'q1 = 1,q1'q2 = 0, a1'q2 = 0,同时根据前三个关系式,我们也很容易得到R是一个上三角矩阵(upper triangular matrix)。

好了,就说这么多吧,欢迎批评指针,您的建议是我进步的阶梯微笑


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值