线性代数 - 矩阵形式下的最小二乘法

20201001 -

0. 引言

最近在看《异常点检测》的时候,其中在PCA部分(准确来说是前面一小节)在进行推导的时候,使用了最小二乘法。其实这个东西本质上并不难,但是让我比较尴尬的是,很多线性代数的东西有些遗忘了,好在最近直截了当的复习让大部分知识都回顾了。
前一篇文章中《异常检测:从异常检测到PCA再到特征向量》已经记录了马哈拉诺比斯距离的具体内容,本文将阐述最小二乘法的相关内容。

1. 问题

关于具体的推导过程就不说了,各种公式都有,直接的结论也都有。但是这里之前的时候,产生了一个问题。本来最小二乘法是利用垂直距离来定义的(也就是预测变量与相应的平面与坐标中平行的距离),但是有些书上都提到了投影距离。然后他们也用了最下二乘法来分析。这让我很疑惑,特别是直接在百度上搜索中的一些结果,最后都出现了一个投影距离的概念。

我的疑惑就是,本来这是一个垂直的直线距离,为什么后来变成了投影距离呢?如果他们两个仅仅是在结果上一样,也无可厚非,但是怕就怕在他们在讲解的时候就直接将这部分内容融合在了一起。

2. 异常检测中的线性模型

在《异常点检测》这本书中,第三小节针对线性进行展开讲解。最开始的模型就是通过选择一个变量作为因变量,然后其余维度的变量都是自变量来建立一个线性模型,当然这是建立在他们之间存在这种线性关系的基础上。
y j = ∑ i = 1 d w i x j i + w d + 1 + ϵ j ∀ j ∈ { 1 , 2 , . . . , N } y_j = \sum_{i=1}^dw_ix_{ji}+w_{d+_1}+\epsilon_j \quad \forall j \in \{1,2,...,N\} yj=i=1dwixji+wd+1+ϵjj{1,2,...,N}
上述公式的具体含义,不用具体展开,不管是什么书,如果他们写成这种方式的话,基本上都是这个样子。而最小二乘法在求解这个线性方程组的系数的时候,目标函数就是最小化 Σ j = 1 N ϵ j 2 \Sigma_{j=1}^N\epsilon_j^2 Σj=1Nϵj2误差 ϵ \epsilon ϵ在二维平面上,就是预测值与实际值平行于 y y y轴的直线距离,不是垂直距离,也不是水平距离。这里强调这个问题,暂时没有什么意义,这本来就是我们直观的感觉嘛,再往后看才能明白具体的对比。
将上述方程组写为具体的矩阵形式,这里就按照书上的习惯来写。
y ‾ ≈ D W ‾ T \overline{y}\approx D\overline{W}^T yDWT
这个公式好像看起来跟前面的方程不太一样,所以需要进行进行一些解释。 D D D N × ( d + 1 ) N \times(d+1) N×(d+1)大小的矩阵, W W W ( d + 1 ) (d+1) (d+1)维的横向量。而根据前面的说法,本质上要最小化的目标函数应该是 ∥ D W ‾ T − y ‾ ∥ 2 \|D\overline{W}^T-\overline{y}\|^2 DWTy2。采用平方的形式,是为了解决绝对值形式在原点不可导的问题。那么对上述目标函数进行求导,也就是对向量进行求导(具体原理这里不再赘述)得到:
2 D T D W ‾ T − 2 D T y ‾ = 0 2D^TD\overline{W}^T-2D^T\overline{y}=0 2DTDWT2DTy=0
求解可得,最优的 W W W的解应该是,
W ‾ T = ( D T D ) − 1 D T y ‾ \overline{W}^T=(D^TD)^{-1}D^T\overline{y} WT=(DTD)1DTy
公式中涉及矩阵求逆的过程,所以必然是要保证其是可逆的。从这个角度来看,利用矩阵形式对参数进行求解,到此也就结束了。这里是通过矩阵微分的方式,直接求解得到了相应的参数矩阵,文章[1]的推导过程更为详细,可以具体查看。

3. 问题的产生

前面的内容非常顺其自然:一系列的过程并求导,得到了相应的结果,结果也理所当然。问题在于,在通过搜索了很多内容之后,都提到了投影矩阵的概念,然后就将投影矩阵和最小二乘法结合在了一起。最大的问题,他们通过着这种投影矩阵的概念,传达出来一个意思,这个距离实际上并不是与坐标轴平行的竖直距离,而是点到这个线的垂直距离。那么这跟实际我的理解,最小二乘法的概念就不对了。所以这里要解决的问题:正交矩阵和最小二乘法到底什么关系呢?
不过,我看了很多博客、看了很多知乎的内容之后,就感觉应该是我有什么地方理解错了,其实前面说的肯定是直线距离没错,但是投影的概念也没错,就差这么一个桥梁,怎么把这部分内容给衔接上。

我要找的东西,就是为什么说这个东西是投影距离,如果找到了这个,可能就把所有的问题解决,我本身没有建立好这个具体的映射关系,从线性代数到实际的几何形状的映射

4. 问题的解决

看了不少资料之后,感觉大致上找到了相应的答案。而且,我有一种强烈的感觉,我好像本科的时候就遇到过这个问题,但是肯定是解决了。但是这么多年过去了,自然也都忘了。

答案:垂直或者说正交到底是谁跟谁之间的垂直,这个很关键。从一开始的时候,我都觉得是 y y y点直接向直线作垂线。但实际上, ∣ A x − b ∣ 2 |Ax-b|^2 Axb2的最小化,在原始的坐标坐标系下,的确是平行于 y y y轴的竖直距离。既然已经确定了公式的确是没有错误的,那也就是说,前面不理解的垂直距离,是没有找到这个直线到底对应的是谁和谁的垂线。

那么也就是说,我知道搞清楚,到底这个东西是谁和谁的垂线。本来要求解的方程是: A x = b Ax=b Ax=b,假设 A A A n × s n\times s n×s的矩阵,而 x x x s × 1 s\times 1 s×1的向量, b b b n × 1 n\times 1 n×1的向量。本身这个方程肯定是无解的,求解的方法就是要找一个最近的点 b ‾ \overline{b} b,尽可能让这个部分误差最小,此时方程变为 A x ‾ = b ‾ A\overline{x}=\overline{b} Ax=b,其中 A A A b b b都是已知的,那么要求解的东西就是 x ‾ \overline{x} x,而这个最近的点 b ‾ \overline{b} b,就是 b b b A A A投影之后获得的最近的点。而通过投影矩阵的运算的话,投影矩阵就是
P = A ( A T A ) − 1 A T , x = ( A T A ) − 1 A T b P=A(A^TA)^{-1}A^T,x=(A^TA)^{-1}A^Tb P=A(ATA)1ATx=(ATA)1ATb
那么从这里来看,答应已经很明确了。也就是说,实际上求解的最小距离,应该是向量 b b b向矩阵 A A A进行投影,假设本身求解的是二维平面的线性方程,也就是要求二维情况的拟合曲线。方程可以化为如下形式:
A x = b , ( a 1 , a 2 ) ( x 1 , x 2 ) T = b Ax=b,(a_1,a_2)(x_1,x_2)^T=b Ax=b,(a1,a2)(x1,x2)T=b
x 1 a 1 + x 2 a 2 = b x_1a_1+x_2a_2=b x1a1+x2a2=b
其中 a 1 , a 2 a_1,a_2 a1,a2分别是 A A A的列向量,那么也就是说,实际上求的是向量 b b b a 1 , a 2 a_1,a_2 a1,a2展开的向量子空间的最小点,结合看了这么多的投影矩阵的概念,就是要找这个 x x x的具体系数。


虽然前面的内容上来看,似乎已经找到了答案,但是还是没办法把这个直线距离映射到其中所说的投影距离。我感觉应该很多人都应该有这种疑惑,但是网上却找不到相关的资料。
本质上,我的问题就是说:

为什么在二维平面上看到的与坐标轴平行的数值距离,会被解释为一个向量的投影距离。

我觉得,这部分内容如果还想深入了理解,还是需要把线性代数中的东西再具体复习一遍,这里还是留下了一个问题供后续研究。

4.1 参考内容记录

在学习这部分内容的时候,阅读了大量的文章,这里记录几篇比较有意义的。
文章[2-3]是一篇读书报告和一个PPT,读书报告中所解释的,从向量上的意义,求解他们相减之后的和,这个很容易理解;PPT中从定义上说明了,本质上是一个向量到子空间的距离。
文章[4-6]也是比较不错的文章,其中我觉得文章[5]中的说法很好,最小二乘法的几何意义是高维空间的一个向量(由y数据决定)在低维子空间(由x数据以及多项式的次数决定)的投影。他这里的耍哦发本身就是我前面进行推导的时候所采用的思想。但是我还是理解不了为什么在实际图上就不对呢?!

(本人非专业人士,文中所采用的公式有些没有具体进行考究,可能不正确,谨慎使用)

参考

[1]矩阵形式下的最小二乘法推导
[2]矩阵投影与最小二乘方法
[3]最小二乘法向量到子空间的距离
[4]线性代数笔记18——投影矩阵和最小二乘
[5](数学)最小二乘的几何意义及投影矩阵
[6]投影矩阵与最小二乘法

你可能感兴趣的:(数学,线性代数)