超定方程组:最小二乘法
最小二乘法是一种求线性方程组近似解的方法,基本思想是最小化残差平方和 ∑ i = 1 n ( y i ^ − y i ) 2 \sum_{i=1}^{n}(\hat{\mathbf{y}_i}-\mathbf{y}_i)^2 ∑i=1n(yi^−yi)2,接下来从线性代数的角度来对最小二乘法进行完整的推导。
对于线性方程组 A x = y \mathbf{Ax}=\mathbf{y} Ax=y,其有解的充要条件是 y \mathbf{y} y在 A \mathbf{A} A的列空间中,在数据拟合任务中这一条件往往是不成立的,那么就需要寻求近似解,一个最优的近似解显然是将 y \mathbf{y} y垂直投影到 A \mathbf{A} A的列空间中,也就是将 y \mathbf{y} y分解为垂直于列空间与平行于列空间两部分,使用平行于列空间的分量代替 y \mathbf{y} y用来求解方程组。
先从将向量投影到向量考虑,假设存在向量
a
\mathbf{a}
a,
b
\mathbf{b}
b,现在想要将
b
\mathbf{b}
b投影到
a
\mathbf{a}
a上,
b
\mathbf{b}
b在
a
\mathbf{a}
a上的投影可以表示为
a
x
\mathbf{a}x
ax,
b
\mathbf{b}
b垂直于
a
\mathbf{a}
a的分量可以表示为
b
−
a
x
\mathbf{b}-\mathbf{a}x
b−ax(这就是施密特正交化的原理),那么显然有
a
T
(
b
−
a
x
)
=
0
\mathbf{a}^T(\mathbf{b}-\mathbf{a}x)=0
aT(b−ax)=0
解得
x
=
a
T
b
a
T
a
x=\frac{\mathbf{a}^T\mathbf{b}}{\mathbf{a}^T\mathbf{a}}
x=aTaaTb
那么投影的表达式就是
a
x
=
a
a
T
b
a
T
a
\mathbf{a}x=\mathbf{a}\frac{\mathbf{a}^T\mathbf{b}}{\mathbf{a}^T\mathbf{a}}
ax=aaTaaTb
如果将分子上的
b
\mathbf{b}
b去掉的话,这个表达式将只与
a
\mathbf{a}
a有关,并且是一个矩阵,这个矩阵就是将
b
\mathbf{b}
b投影到
a
\mathbf{a}
a的投影矩阵
P
=
a
a
T
a
T
a
\mathbf{P}=\frac{\mathbf{a}\mathbf{a}^T}{\mathbf{a}^T\mathbf{a}}
P=aTaaaT
任何一个向量
b
\mathbf{b}
b经这个矩阵变换后将被投影到
a
\mathbf{a}
a上,不难发现这是一个对称矩阵,且满足
P
2
=
P
\mathbf{P}^2=\mathbf{P}
P2=P,因为一个向量经过一次投影后已经被投影到
a
\mathbf{a}
a上,再投影一次将不发生变化。
接下来考虑将一个向量
y
\mathbf{y}
y投影到矩阵
A
\mathbf{A}
A的列空间中,仿照之前的做法,
A
\mathbf{A}
A的列空间中的向量可以表示为
A
\mathbf{A}
A的列的线性组合,即
A
x
^
\mathbf{A}\hat{\mathbf{x}}
Ax^,
y
\mathbf{y}
y垂直于的列空间的分量可以表示为
y
−
A
x
^
\mathbf{y}-\mathbf{A}\hat{\mathbf{x}}
y−Ax^,显然
A
\mathbf{A}
A的每一列均垂直于
y
−
A
x
^
\mathbf{y}-\mathbf{A}\hat{\mathbf{x}}
y−Ax^,也就是说
A
T
(
y
−
A
x
^
)
=
0
\mathbf{A}^T(\mathbf{y}-\mathbf{A}\hat{\mathbf{x}})=0
AT(y−Ax^)=0
化简得到
A
T
A
x
^
=
A
T
y
\mathbf{A}^T\mathbf{A}\hat{\mathbf{x}}=\mathbf{A}^T\mathbf{y}
ATAx^=ATy
x
^
\hat{\mathbf{x}}
x^实际上就是方程组的近似解,如果
A
T
A
\mathbf{A}^T\mathbf{A}
ATA可逆的话,那么
x
^
=
(
A
T
A
)
−
1
A
T
y
\hat{\mathbf{x}}=(\mathbf{A}^T\mathbf{A})^{-1}\mathbf{A}^T\mathbf{y}
x^=(ATA)−1ATy
投影后的
y
\mathbf{y}
y就是
A
(
A
T
A
)
−
1
A
T
y
\mathbf{A}(\mathbf{A}^T\mathbf{A})^{-1}\mathbf{A}^T\mathbf{y}
A(ATA)−1ATy,如果将
y
\mathbf{y}
y去掉的话,剩下的部分将只与
A
\mathbf{A}
A有关并且是一个矩阵,这个矩阵就是将
y
\mathbf{y}
y投影到
A
\mathbf{A}
A的列空间的投影矩阵
P
=
A
(
A
T
A
)
−
1
A
T
\mathbf{P}=\mathbf{A}(\mathbf{A}^T\mathbf{A})^{-1}\mathbf{A}^T
P=A(ATA)−1AT
这是一个对称矩阵,因为
P
T
=
(
A
(
A
T
A
)
−
1
A
T
)
T
=
(
A
T
)
T
(
(
A
T
A
)
−
1
)
T
A
T
=
A
(
A
T
A
)
−
1
A
T
=
P
\begin{aligned} \mathbf{P}^T&=(\mathbf{A}(\mathbf{A}^T\mathbf{A})^{-1}\mathbf{A}^T)^T\\ &=(\mathbf{A}^T)^T((\mathbf{A}^T\mathbf{A})^{-1})^T\mathbf{A}^T\\ &=\mathbf{A}(\mathbf{A}^T\mathbf{A})^{-1}\mathbf{A}^T\\ &=\mathbf{P} \end{aligned}
PT=(A(ATA)−1AT)T=(AT)T((ATA)−1)TAT=A(ATA)−1AT=P
并且同样满足
P
2
=
P
\mathbf{P}^2=\mathbf{P}
P2=P,因为
P
2
=
A
(
A
T
A
)
−
1
A
T
A
(
A
T
A
)
−
1
A
T
=
A
(
A
T
A
)
−
1
(
A
T
A
)
(
A
T
A
)
−
1
A
T
=
A
(
A
T
A
)
−
1
A
T
=
P
\begin{aligned} \mathbf{P}^2&=\mathbf{A}(\mathbf{A}^T\mathbf{A})^{-1}\mathbf{A}^T\mathbf{A}(\mathbf{A}^T\mathbf{A})^{-1}\mathbf{A}^T\\ &=\mathbf{A}(\mathbf{A}^T\mathbf{A})^{-1}(\mathbf{A}^T\mathbf{A})(\mathbf{A}^T\mathbf{A})^{-1}\mathbf{A}^T\\ &=\mathbf{A}(\mathbf{A}^T\mathbf{A})^{-1}\mathbf{A}^T\\ &=\mathbf{P} \end{aligned}
P2=A(ATA)−1ATA(ATA)−1AT=A(ATA)−1(ATA)(ATA)−1AT=A(ATA)−1AT=P
剩下的最后一个问题就是如果判断
A
T
A
\mathbf{A}^T\mathbf{A}
ATA是否可逆,实际上
r
(
A
T
A
)
=
r
(
A
)
r(\mathbf{A}^T\mathbf{A})=r(\mathbf{A})
r(ATA)=r(A),也就是说如果
A
\mathbf{A}
A是列满秩的话,
A
T
A
\mathbf{A}^T\mathbf{A}
ATA就可逆,现在来证明这个结论,如果
A
T
A
\mathbf{A}^T\mathbf{A}
ATA与
A
\mathbf{A}
A有相同的零空间的话,这一结论显然成立(零空间的维数是
n
−
r
n-r
n−r),要证明
A
T
A
\mathbf{A}^T\mathbf{A}
ATA与
A
\mathbf{A}
A有相同的零空间,只需证明对任意的
x
\mathbf{x}
x,
A
x
=
0
⇔
A
T
A
x
=
0
\mathbf{Ax}=\mathbf{0}\Leftrightarrow\mathbf{A}^T \mathbf{Ax}=\mathbf{0}
Ax=0⇔ATAx=0。
⇒
\Rightarrow
⇒显然成立,只需证明
⇐
\Leftarrow
⇐,假设
A
T
A
x
=
0
\mathbf{A}^T \mathbf{Ax}=\mathbf{0}
ATAx=0,等式两边同乘
x
T
\mathbf{x}^T
xT有
x
T
A
T
A
x
=
0
\mathbf{x}^T\mathbf{A}^T \mathbf{Ax}=\mathbf{0}
xTATAx=0
即
(
A
x
)
T
A
x
=
0
(\mathbf{Ax})^T\mathbf{Ax}=\mathbf{0}
(Ax)TAx=0
显然有
A
x
=
0
\mathbf{Ax}=\mathbf{0}
Ax=0,证明完毕。
只需要 A \mathbf{A} A列满秩,就可以得到线性方程组的最小二乘解,实际上这一要求不难成立,因为在数据拟合任务中往往 A \mathbf{A} A的行数远远大于列数。
最后来看一下投影矩阵
P
\mathbf{P}
P,它将一个向量投影到矩阵
A
\mathbf{A}
A的列空间,在线性代数中我们知道
A
\mathbf{A}
A的左零空间(
A
T
x
=
0
\mathbf{A}^T\mathbf{x}=\mathbf{0}
ATx=0)与
A
\mathbf{A}
A的列空间是正交的,假设
A
\mathbf{A}
A的左零空间的投影矩阵是
L
\mathbf{L}
L,那么对任意向量
y
\mathbf{y}
y有
(
P
y
)
T
(
L
y
)
=
0
(\mathbf{Py})^T(\mathbf{Ly})=\mathbf{0}
(Py)T(Ly)=0
即
y
T
P
T
L
y
=
0
\mathbf{y}^T\mathbf{P}^T\mathbf{Ly}=\mathbf{0}
yTPTLy=0
P
\mathbf{P}
P是对称矩阵,所以有
P
L
=
O
\mathbf{PL}=\mathbf{O}
PL=O
解得
L
=
I
−
P
\mathbf{L}=\mathbf{I}-\mathbf{P}
L=I−P
于是在求得列空间的投影矩阵
P
\mathbf{P}
P后,就是求得了左零空间的投影矩阵
L
\mathbf{L}
L。
欠定方程组:QR分解
对方程组
A
x
=
b
\mathbf{A}\boldsymbol{x}=\boldsymbol{b}
Ax=b
其中
A
∈
R
p
×
n
\mathbf{A}\in\R^{p\times n}
A∈Rp×n,如果
p
<
n
p<n
p<n,那么此方程组就称为欠定方程组,如果
A
\boldsymbol{A}
A满足
r
a
n
k
(
A
)
=
p
rank(\boldsymbol{A})=p
rank(A)=p,那么对任意
b
b
b方程组至少有一个解(参考线性方程组的解个数与秩的关系),此时可以通过QR分解来得到方程组的一个解。
此时
A
T
\boldsymbol{A}^T
AT列满秩,可以分解为
A
T
=
Q
R
\mathbf{A}^T=\mathbf{QR}
AT=QR
其中
Q
∈
R
n
×
p
\mathbf{Q}\in\R^{n\times p}
Q∈Rn×p,是
A
\mathbf{A}
A的列空间的一组标准正交基,
R
∈
R
p
×
p
\boldsymbol{R}\in\R^{p\times p}
R∈Rp×p,其第
i
i
i行第
j
j
j列的元素为
Q
\mathbf{Q}
Q的第
i
i
i列与
A
\mathbf{A}
A的第
j
j
j列的内积,是一个上三角矩阵。此时
x
^
=
Q
R
−
T
b
\hat{\boldsymbol{x}}=\mathbf{QR}^{-T}\boldsymbol{b}
x^=QR−Tb明显满足该方程组:
A
x
^
=
R
T
Q
T
Q
R
−
T
b
=
b
\mathbf{A}\hat{\boldsymbol{x}}=\mathbf{R}^T\mathbf{Q}^T\mathbf{QR}^{-T}\boldsymbol{b}=\boldsymbol{b}
Ax^=RTQTQR−Tb=b
再通过求解
A
\mathbf{A}
A的零空间的基就可以得到一系列解。