关于用矩阵投影来理解最小二乘
最小二乘法在高中的时候都已经接触过了,但是那时候可能更多是通过求导方式来确定使得离差平方和最小的回归直线.
但对于学习了线性代数的同学,也可以通过矩阵投影的方式来理解.我个人发现投影对于理解很多概念都很有帮助,比如数学期望实际上是将随机变量投影至常数空间,而Hajek投影是为了将随机变量投影至
L
2
L^2
L2空间(即绝对平方可积空间)。
另外,在进行施密特正交化的时候,实际上也是利用了投影来使得两个向量正交(垂直).接下来只讨论一下如何用矩阵投影的概念来理解最小二乘.
本文实际上参考了:麻省理工Gilbert教授的线性代数课程
投影与投影矩阵
首先我们明确一下什么是投影以及什么是投影矩阵.
投影(二维平面)
对于二维平面中两个不共线的向量而言,投影的概念十分简单,即将一个向量 a ⃗ \vec a a做垂线投影至另一向量 b ⃗ \vec b b上, “影子”即为 a ⃗ \vec a a在 b ⃗ \vec b b上的投影.
大家可以看到,进行投影操作之后,除了投影
a
⃗
′
\vec a'
a′,还会得到一个误差向量
e
⃗
\vec e
e.这个误差向量是求得投影的关键,原因在于其与投影是正交的(这也是施密特正交化的来源).既然有正交这一性质,那么就可以得到如下公式:
e
⃗
⋅
a
⃗
′
=
0
(
a
⃗
−
a
⃗
′
)
⋅
a
⃗
′
=
0
\vec e \cdot \vec a'=0\\ (\vec a-\vec a')\cdot \vec a'=0
e⋅a′=0(a−a′)⋅a′=0
上述是用向量点乘的形式表示的,如果用向量转置的形式进行表示,即得到如下公式(向量一般默认为列向量,转置后即为行向量):
e
T
a
=
0
(
a
−
a
′
)
T
a
=
0
a
T
a
−
a
′
a
=
0
\pmb{e}^T\pmb{a}=0\\ \pmb{(a-a')}^T\pmb{a}=0\\ \pmb{a}^T\pmb{a}-\pmb{a'}\pmb{a}=0
eeeTaaa=0(a−a′)(a−a′)(a−a′)Taaa=0aaaTaaa−a′a′a′aaa=0
最后得到: a ′ = a T a a \pmb{a'}=\frac{\pmb{a}^T\pmb{a}}{\pmb{a}} a′a′a′=aaaaaaTaaa
矩阵投影
而对于矩阵投影,实际上也是类似的,一个矩阵实际上每一列都代表着一个向量,我们称之为列向量. 这些列向量构成一个列空间,而如果一个向量与这个列空间正交,也即代表着其与这个矩阵的每一个列向量都正交.
另外,对于一个矩阵A而言,属于该矩阵的列空间的任意一个向量
c
⃗
\vec c
c,也必然可以表示为
c
=
A
X
\pmb{c}=AX
ccc=AX的形式(因为
A
X
AX
AX实际上就是A的列向量的一个线性组合).
既然如此,那么仿照二维平面的向量投影情况,我们可以推广至将向量投影至矩阵的列空间中(此处直接拿方程举例子):
我们有这样一个方程:
A
X
=
b
AX=\pmb{b}
AX=bbb
但是该方程是无解的,原因在于
b
\pmb{b}
bbb无法用矩阵A中的列向量线性表示.那么想要求得最优的一个解的办法即是找到
b
\pmb{b}
bbb在A的列空间的投影作为该方程的近似解.
由于是投影,且投影在列空间中,那么投影一定可以表示为
A
X
′
AX'
AX′
于是有公式如下:
A
X
′
=
b
′
A
T
(
b
−
A
X
′
)
=
0
A
T
b
−
A
T
X
′
=
0
X
′
=
(
A
T
A
)
−
1
A
T
b
AX'=b'\\A^T(\pmb{b}-AX')=0\\A^T\pmb{b}-A^TX'=0\\X'=(A^TA)^{-1}A^T\pmb{b}
AX′=b′AT(bbb−AX′)=0ATbbb−ATX′=0X′=(ATA)−1ATbbb
所以,原来的向量
b
\pmb{b}
bbb的投影
b
′
\pmb{b}'
bbb′可以被表示为
b
′
=
A
(
A
T
A
)
−
1
A
T
b
\pmb{b}'=A(A^TA)^{-1}A^T\pmb{b}
bbb′=A(ATA)−1ATbbb
而
=
A
(
A
T
A
)
−
1
A
T
=A(A^TA)^{-1}A^T
=A(ATA)−1AT即是我们所说的投影矩阵,其可以将任意一个向量投影至A的列空间当中。
通过这个例子,相信大家已经明白了如何利用矩阵投影来进行最小二乘,因为最小二乘本质上就是解一个无解的方程组。