求解
A
x
=
b
Ax=b
Ax=b,
A
x
Ax
Ax是预测值,
b
b
b是观测值
最小二乘法本质上是最小化观测值和预测值的差异的平方和
第一种方法:
最小二乘法就是最小化这个东西
∣
∣
A
x
−
b
∣
∣
2
2
||Ax-b||_2^2
∣∣Ax−b∣∣22
∣
∣
A
x
−
b
∣
∣
2
2
=
(
A
x
−
b
)
T
(
A
x
−
b
)
=
x
T
A
T
A
x
−
2
b
T
A
x
+
b
T
b
||Ax-b||_2^2=(Ax-b)^T(Ax-b)=x^TA^TAx-2b^TAx+b^Tb
∣∣Ax−b∣∣22=(Ax−b)T(Ax−b)=xTATAx−2bTAx+bTb
通过求导可以得到使得上面公式取得最小值的
x
^
\hat{x}
x^会有
A
T
A
x
^
=
A
T
b
→
x
^
=
(
A
T
A
)
−
1
A
T
b
A^TA\hat{x}=A^Tb \rightarrow \hat{x}=(A^TA)^{-1}A^Tb
ATAx^=ATb→x^=(ATA)−1ATb
这个算是最小二乘法的通解,构建损失函数,然后求导
二三方法前置知识在章节伪逆中有提及.
第二种通过求A的伪逆
A
+
A^+
A+:
x
^
=
A
+
A
x
^
=
A
+
b
\hat{x}=A^+A\hat{x}=A^+b
x^=A+Ax^=A+b
在伪逆的几何意义中已经说明,它本身是对向量的有损压缩,因此这个解法是一种近似解,投影丢掉的几个维度表示着误差的存在
第三种方法有一个前提,A的列是独立:
这时候
A
T
A
A^TA
ATA是可逆的
那么就有
A
+
b
=
(
A
T
A
)
−
1
A
T
b
A^+b=(A^TA)^{-1}A^Tb
A+b=(ATA)−1ATb
因为
(
A
T
A
)
−
1
A
T
b
=
(
A
T
A
)
−
1
A
T
A
x
^
=
x
^
=
A
+
b
(A^TA)^{-1}A^Tb=(A^TA)^{-1}A^TA\hat{x}=\hat{x}=A^+b
(ATA)−1ATb=(ATA)−1ATAx^=x^=A+b
这时伪逆也可以这么算:
A
+
=
(
A
T
A
)
−
1
A
T
A^+=(A^TA)^{-1}A^T
A+=(ATA)−1AT
这种方法在伪逆章节中提到是逆的特化左逆
虽然左逆有
A
+
A
=
E
A^+A=E
A+A=E,看起来是严格等于,好像求的不是近似解,实际上它也是近似解,因为左逆对
x
x
x的变化是无损的,但是不代表它对b的变换也是无损的,从SVD的角度看,左逆其实是先把
x
x
x转到高维
A
x
Ax
Ax再变回低维
x
x
x,自然可以保证无损,但是b可是直接从高维
b
b
b变成低维
A
+
b
A^+b
A+b
实际上它从投影的角度来看还有另一种几何解释,这里的
A
x
Ax
Ax是b在A列空间中的投影p,虽然b不在A的列空间中无法求解,但是把b投影到A列空间上那么就可以有解
虽然说它的前提是列独立,但是实际应用中可能会用于列比行多得多的情况,更具体地说是数据的数量比维数大得多的情况
第四种:
给A扩充几行
[
A
δ
I
]
x
=
[
b
0
]
\begin{bmatrix}A\\\delta I \end{bmatrix}x=\begin{bmatrix}b\\0 \end{bmatrix}
[AδI]x=[b0]
m
i
n
∣
∣
A
x
−
b
∣
∣
2
2
+
δ
2
∣
∣
x
∣
∣
2
2
min ||Ax-b||^2_2+\delta^2||x||^2_2
min∣∣Ax−b∣∣22+δ2∣∣x∣∣22
通过求导在导数等于0处可获得,
(
A
T
A
+
δ
2
I
)
x
=
A
T
b
(A^TA+\delta^2I)x=A^Tb
(ATA+δ2I)x=ATb
(
A
T
A
+
δ
2
I
)
x
=
A
T
b
,
在
δ
→
0
得到
x
=
A
+
b
(A^TA+\delta^2I)x=A^Tb, 在\delta\rightarrow0得到x=A^+b
(ATA+δ2I)x=ATb,在δ→0得到x=A+b