一、线性最小二乘法
假设平面中存在一组数据点,需要找到一个数学模型(在这里是一条直线)去拟合这组数据点,这就是线性拟合。
而实际上,样本点的维数不会仅仅是2维的,而可以是任意的 p p p维。
为了不失一般性,假设有一组样本:
D
=
{
(
x
1
,
y
1
)
,
(
x
2
,
y
2
)
,
(
x
3
,
y
3
)
,
.
.
.
,
(
x
n
,
y
n
)
}
D=\{(x_1,y_1),(x_2,y_2),(x_3,y_3),...,(x_n,y_n)\}
D={(x1,y1),(x2,y2),(x3,y3),...,(xn,yn)}
x
i
x_i
xi 是一个
p
p
p 维的向量,用于表达第
i
i
i 个样本被观察的
p
p
p 个特征,而
y
i
y_i
yi 表示第
i
i
i 个样本的取值,是一个1维的数值。线性最小二乘法拟合出来的直线也就是样本的所有
p
p
p 维特征值到最终样本取值
y
i
y_i
yi的一个近似的线性映射关系。
这里需要明确一下适用范围,只有当 y i y_i yi 与 x i x_i xi 是线性函数的关系,才能适用线性最小二乘法。
线性函数:
从数学角度来说,对于一个函数 y = f ( x ) y=f(x) y=f(x) 如果它是线性函数,需要满足两个法则:
(1)比例性:对于任意常数 a a a,都有 a y = f ( a x ) ay=f(ax) ay=f(ax) 成立,即将 x x x 扩大 a a a 倍, y y y 也将随之扩大 a a a 倍。
(2)叠加性:若 y 1 = f ( x 1 ) , y 2 = f ( x 2 ) y_1=f(x_1),y_2=f(x_2) y1=f(x1),y2=f(x2)则 y 1 + y 2 = f ( x 1 + x 2 ) y_1+y_2=f(x_1+x_2) y1+y2=f(x1+x2)
但这么看来,只有 y = w x y=wx y=wx属于线性函数,而 y = w x + b y=wx+b y=wx+b 不属于数学角度上的线性函数,但这里暂且把深度学习领域与数学领域分开,在深度学习领域 y = w x + b y=wx+b y=wx+b也属于线性函数。
回到最小二乘法,对于每个样本
x
i
x_i
xi 都可以写成一个
p
p
p 维的向量:
x
i
=
[
x
i
1
x
i
2
x
i
3
.
.
.
x
i
p
]
x_i=\begin{bmatrix} x_{i1}\\ x_{i2}\\ x_{i3}\\ ...\\ x_{ip} \end{bmatrix}
xi=⎣⎢⎢⎢⎢⎡xi1xi2xi3...xip⎦⎥⎥⎥⎥⎤
因此最小二乘法的目标就是估计出一个系数向量:
w
=
[
w
1
w
2
w
3
.
.
.
w
p
]
w=\begin{bmatrix} w_1\\ w_2\\ w_3\\ ...\\ w_p \end{bmatrix}
w=⎣⎢⎢⎢⎢⎡w1w2w3...wp⎦⎥⎥⎥⎥⎤
和一个偏置常数
b
b
b
来建立如下线性关系:
w
T
x
+
b
⇒
y
w^Tx+b\Rightarrow y
wTx+b⇒y
为简化描述,另
b
=
w
0
x
i
0
b=w_0x_{i0}
b=w0xi0,其中
x
i
0
x_{i0}
xi0恒为1,则上述两个向量更新为:
x
i
=
[
1
x
i
1
x
i
2
x
i
3
.
.
.
x
i
p
]
x_i=\begin{bmatrix} 1\\ x_{i1}\\ x_{i2}\\ x_{i3}\\ ...\\ x_{ip} \end{bmatrix}
xi=⎣⎢⎢⎢⎢⎢⎢⎡1xi1xi2xi3...xip⎦⎥⎥⎥⎥⎥⎥⎤
w
=
[
w
0
w
1
w
2
w
3
.
.
.
w
p
]
w=\begin{bmatrix} w_0\\ w_1\\ w_2\\ w_3\\ ...\\ w_p \end{bmatrix}
w=⎣⎢⎢⎢⎢⎢⎢⎡w0w1w2w3...wp⎦⎥⎥⎥⎥⎥⎥⎤
映射关系简化成:
w
T
x
⇒
y
w^Tx\Rightarrow y
wTx⇒y
最小二乘法就是估计参数向量
w
w
w 的一种方法,在最小二乘法中,定义了如下的一个目标函数:
L
(
w
)
=
∑
i
=
1
N
∣
w
T
x
i
−
y
i
∣
2
L(w)=\sum_{i=1}^{N}|w^Tx_i-y_i|^2
L(w)=i=1∑N∣wTxi−yi∣2
其中,
w
T
x
i
w^Tx_i
wTxi意味着拟合得到的数学模型针对输入值
x
i
x_i
xi得到的输出值,而
y
i
y_i
yi意味着真实情况下,
x
i
x_i
xi对应的真实值,也就是实际的观测值。找到一个系数向量
w
w
w,也就是找到一个数学模型,使得
L
(
w
)
L(w)
L(w)的取值最小,也就是模型的输出值和真实值之间的误差的平方和最小。
具体计算步骤:
L
(
w
)
=
∑
i
=
1
N
∣
w
T
x
i
−
y
i
∣
2
L(w)=\sum_{i=1}^{N}|w^Tx_i-y_i|^2
L(w)=i=1∑N∣wTxi−yi∣2
=
[
w
T
x
1
−
y
1
w
T
x
2
−
y
2
.
.
.
w
T
x
N
−
y
N
]
[
w
T
x
1
−
y
1
w
T
x
2
−
y
2
.
.
.
w
T
x
N
−
y
N
]
=\begin{bmatrix} w^Tx_1-y_1&w^Tx_2-y_2&...&w^Tx_N-y_N \end{bmatrix}\begin{bmatrix} w^Tx_1-y_1\\ w^Tx_2-y_2\\ ...\\ w^Tx_N-y_N \end{bmatrix}
=[wTx1−y1wTx2−y2...wTxN−yN]⎣⎢⎢⎡wTx1−y1wTx2−y2...wTxN−yN⎦⎥⎥⎤
对于第一块向量:
[
w
T
x
1
−
y
1
w
T
x
2
−
y
2
.
.
.
w
T
x
N
−
y
N
]
\begin{bmatrix} w^Tx_1-y_1&w^Tx_2-y_2&...&w^Tx_N-y_N \end{bmatrix}
[wTx1−y1wTx2−y2...wTxN−yN]
=
w
T
[
x
1
x
2
.
.
.
x
N
]
−
[
y
1
y
2
.
.
.
y
N
]
=w^T\begin{bmatrix} x_1&x_2&...&x_N \end{bmatrix}-\begin{bmatrix} y_1&y_2&...&y_N \end{bmatrix}
=wT[x1x2...xN]−[y1y2...yN]
=
w
T
X
T
−
Y
T
=w^TX^T-Y^T
=wTXT−YT
=
[
w
0
w
1
w
2
w
3
.
.
.
w
p
]
[
1
1
1
.
.
.
1
x
11
x
21
x
31
.
.
.
x
N
1
x
12
x
22
x
32
.
.
.
x
N
2
.
.
.
x
1
p
x
2
p
x
3
p
.
.
.
x
N
p
]
=
[
y
1
y
2
y
3
.
.
.
y
N
]
=\begin{bmatrix} w_0& w_1& w_2& w_3& ...& w_p \end{bmatrix}\begin{bmatrix} 1&1&1&...&1\\ x_{11}&x_{21}&x_{31}&...&x_{N1}\\ x_{12}&x_{22}&x_{32}&...&x_{N2}\\ ...\\ x_{1p}&x_{2p}&x_{3p}&...&x_{Np} \end{bmatrix}=\begin{bmatrix} y_1& y_2& y_3& ...& y_N \end{bmatrix}
=[w0w1w2w3...wp]⎣⎢⎢⎢⎢⎡1x11x12...x1p1x21x22x2p1x31x32x3p............1xN1xN2xNp⎦⎥⎥⎥⎥⎤=[y1y2y3...yN]
其中,
X
X
X为N个样本集合:
X
=
[
x
1
T
x
2
T
x
3
T
.
.
.
x
N
T
]
=
[
1
x
11
x
12
x
13
.
.
.
x
1
p
1
x
21
x
22
x
23
.
.
.
x
2
p
1
x
31
x
32
x
33
.
.
.
x
3
p
.
.
.
1
x
N
1
x
N
2
x
N
3
.
.
.
x
N
p
]
X=\begin{bmatrix} x_1^T\\ x_2^T\\ x_3^T\\ ...\\ x_N^T \end{bmatrix}=\begin{bmatrix} 1&x_{11}&x_{12}&x_{13}&...&x_{1p}\\ 1&x_{21}&x_{22}&x_{23}&...&x_{2p}\\ 1&x_{31}&x_{32}&x_{33}&...&x_{3p}\\ ...\\ 1&x_{N1}&x_{N2}&x_{N3}&...&x_{Np} \end{bmatrix}
X=⎣⎢⎢⎢⎢⎡x1Tx2Tx3T...xNT⎦⎥⎥⎥⎥⎤=⎣⎢⎢⎢⎢⎡111...1x11x21x31xN1x12x22x32xN2x13x23x33xN3............x1px2px3pxNp⎦⎥⎥⎥⎥⎤
Y
Y
Y为这N个样本对应的观测值的集合:
Y
=
[
y
1
y
2
y
3
.
.
.
y
N
]
Y=\begin{bmatrix} y_1\\ y_2\\ y_3\\ ...\\ y_N \end{bmatrix}
Y=⎣⎢⎢⎢⎢⎡y1y2y3...yN⎦⎥⎥⎥⎥⎤
而后面一块向量是前面一块的转置,因此:
[
w
T
x
1
−
y
1
w
T
x
2
−
y
2
.
.
.
w
T
x
N
−
y
N
]
=
[
w
T
x
1
−
y
1
w
T
x
2
−
y
2
.
.
.
w
T
x
N
−
y
N
]
T
=
(
w
T
X
T
−
Y
T
)
T
=
X
w
−
Y
\begin{bmatrix} w^Tx_1-y_1\\ w^Tx_2-y_2\\ ...\\ w^Tx_N-y_N \end{bmatrix}= \begin{bmatrix} w^Tx_1-y_1&w^Tx_2-y_2&...&w^Tx_N-y_N \end{bmatrix}^T=(w^TX^T-Y^T)^T=Xw-Y
⎣⎢⎢⎡wTx1−y1wTx2−y2...wTxN−yN⎦⎥⎥⎤=[wTx1−y1wTx2−y2...wTxN−yN]T=(wTXT−YT)T=Xw−Y
最终得到:
L
(
w
)
=
(
w
T
X
T
−
Y
T
)
(
X
w
−
Y
)
L(w)=(w^TX^T-Y^T)(Xw-Y)
L(w)=(wTXT−YT)(Xw−Y)
化简得:
L
(
w
)
=
w
T
X
T
X
w
−
w
T
X
T
Y
−
Y
T
X
w
+
Y
T
Y
L(w)=w^TX^TXw-w^TX^TY-Y^TXw+Y^TY
L(w)=wTXTXw−wTXTY−YTXw+YTY
由于L(w)的最终结果是一个标量(实数),所以式子中的每一项必然也是一个实数,式子内
w
T
X
T
Y
w^TX^TY
wTXTY和
Y
T
X
w
Y^TXw
YTXw是互为转置的关系,又由于两者都是实数,所以可知两者相等,于是式子进一步化简:
L
(
w
)
=
w
T
X
T
X
w
−
2
w
T
X
T
Y
+
Y
T
Y
L(w)=w^TX^TXw-2w^TX^TY+Y^TY
L(w)=wTXTXw−2wTXTY+YTY
L(w)对w求偏导
∂
∂
w
L
(
w
)
\frac{\partial}{\partial{w}}L(w)
∂w∂L(w),当
∂
∂
w
L
(
w
)
=
0
\frac{\partial}{\partial{w}}L(w)=0
∂w∂L(w)=0时,L(w)取得极值,而由于目标函数L(w)是凸函数,所以它的极值也就是最小值:
∂
∂
w
L
(
w
)
=
∂
∂
w
(
w
T
X
T
X
w
−
2
w
T
X
T
Y
+
Y
T
Y
)
=
2
X
T
X
w
−
2
X
T
Y
=
0
\frac{\partial}{\partial{w}}L(w)=\frac{\partial}{\partial{w}}(w^TX^TXw-2w^TX^TY+Y^TY)=2X^TXw-2X^TY=0
∂w∂L(w)=∂w∂(wTXTXw−2wTXTY+YTY)=2XTXw−2XTY=0
得:
2
X
T
X
w
−
2
X
T
Y
=
0
2X^TXw-2X^TY=0
2XTXw−2XTY=0
X
T
X
w
=
X
T
Y
X^TXw=X^TY
XTXw=XTY
最终得到用于估计参数向量w的表达式:
w
=
(
X
T
X
)
−
1
X
T
Y
w=(X^TX)^{-1}X^TY
w=(XTX)−1XTY
注意到,最后一步中,对
X
T
X
X^TX
XTX有一个取逆的步骤,因此,存在潜在假设:
X T X X^TX XTX是非奇异矩阵,即 X T X X^TX XTX可逆,即 X T X X^TX XTX的行列式不为零
但
X
T
X
X^TX
XTX在以下情况会是不可逆的:
(1)当样本数量
N
N
N 小于参数向量
w
w
w 的维度的时候
(2)在所有特征中,存在一个特征与另一个特征线性相关或一个特征与若干个特征线性相关的时候
具体来说,矩阵
X
X
X 是
N
×
p
N\times p
N×p 维的矩阵,若存在线性相关的特征,即
p
p
p 个特征之间不是线性无关,即列不满秩:
R
(
X
)
<
p
,
R
(
X
T
)
<
p
,
R
(
X
T
X
)
<
p
R(X)<p,R(X^T)<p,R(X^TX)<p
R(X)<p,R(XT)<p,R(XTX)<p,所以
X
T
X
X^TX
XTX不可逆
X
=
[
x
1
T
x
2
T
x
3
T
.
.
.
x
N
T
]
=
[
1
x
11
x
12
x
13
.
.
.
x
1
p
1
x
21
x
22
x
23
.
.
.
x
2
p
1
x
31
x
32
x
33
.
.
.
x
3
p
.
.
.
1
x
N
1
x
N
2
x
N
3
.
.
.
x
N
p
]
X=\begin{bmatrix} x_1^T\\ x_2^T\\ x_3^T\\ ...\\ x_N^T \end{bmatrix}=\begin{bmatrix} 1&x_{11}&x_{12}&x_{13}&...&x_{1p}\\ 1&x_{21}&x_{22}&x_{23}&...&x_{2p}\\ 1&x_{31}&x_{32}&x_{33}&...&x_{3p}\\ ...\\ 1&x_{N1}&x_{N2}&x_{N3}&...&x_{Np} \end{bmatrix}
X=⎣⎢⎢⎢⎢⎡x1Tx2Tx3T...xNT⎦⎥⎥⎥⎥⎤=⎣⎢⎢⎢⎢⎡111...1x11x21x31xN1x12x22x32xN2x13x23x33xN3............x1px2px3pxNp⎦⎥⎥⎥⎥⎤
因此,当出现不可逆的情况时,有如下解决方法:
(1)筛选出线性无关的特征,保证特征之间是线性无关的
(2)增加样本数量,保证样本数量大于特征维度(参数向量w的维度)(样本数据的维度)
(3)采用正则化的方法