前言
我的上一篇文章给大家分析了线性回归的损失函数为什么是最小二乘,那么接下来给大家一下简单的演绎一下线性回归损失函数的最优解的推导过程。
场景
假设我们有由 M M M 个 N N N 维样本组成的矩阵 X X X ,其中X的每一行对应一个样本,共 M M M 个样本,每一列对应样本的一个维度,共 N N N 维,还有额外的一维常数项,全为 1 1 1 (这个地方是为了拟合回归方程中的偏置项,不再详细解释)。
解析式推导
上一篇文章得到的线性回归的损失函数为:
J
(
θ
)
=
1
2
∑
i
=
1
m
(
h
θ
(
x
(
i
)
)
−
y
^
(
i
)
)
2
J(θ) = \frac{1}{2}\sum_{i=1}^m (h_θ(x^{(i)}) - \hat{y}^{(i)})^2
J(θ)=21i=1∑m(hθ(x(i))−y^(i))2
这里我们写成矩阵的形式:
J
(
θ
)
=
1
2
(
X
θ
−
y
)
T
(
X
θ
−
y
)
J(θ) = \frac{1}{2}(Xθ - y)^T(Xθ - y)
J(θ)=21(Xθ−y)T(Xθ−y)
求梯度:
∇
θ
J
(
θ
)
=
∇
θ
(
1
2
(
X
θ
−
y
)
T
(
X
θ
−
y
)
)
\nabla_{θ}J(θ) = \nabla_{θ}(\frac{1}{2}(Xθ - y)^T(Xθ - y))
∇θJ(θ)=∇θ(21(Xθ−y)T(Xθ−y))
=
∇
θ
(
1
2
(
θ
T
X
T
−
y
T
)
(
X
θ
−
y
)
)
= \nabla_{θ}(\frac{1}{2}(θ^TX^T - y^T)(Xθ - y))
=∇θ(21(θTXT−yT)(Xθ−y))
=
∇
θ
(
1
2
(
θ
T
X
T
X
θ
−
θ
T
X
T
y
−
y
T
X
θ
+
y
T
y
)
)
= \nabla_{θ}(\frac{1}{2}(θ^TX^TXθ - θ^TX^Ty - y^TXθ + y^Ty))
=∇θ(21(θTXTXθ−θTXTy−yTXθ+yTy))
=
1
2
(
X
T
X
θ
+
X
T
X
θ
−
X
T
y
−
X
T
y
)
= \frac{1}{2}(X^TXθ + X^TXθ - X^Ty - X^Ty)
=21(XTXθ+XTXθ−XTy−XTy)
=
X
T
X
θ
−
X
T
y
= X^TXθ - X^Ty
=XTXθ−XTy
找驻点,令
∇
θ
J
(
θ
)
=
0
\nabla_{θ}J(θ) = 0
∇θJ(θ)=0 可得:
X
T
X
θ
−
X
T
y
=
0
X^TXθ - X^Ty = 0
XTXθ−XTy=0
⇒
X
T
X
θ
=
X
T
y
\Rightarrow X^TXθ = X^Ty
⇒XTXθ=XTy
⇒
(
X
T
X
)
−
1
X
T
X
θ
=
(
X
T
X
)
−
1
X
T
y
\Rightarrow (X^TX)^{-1}X^TXθ = (X^TX)^{-1}X^Ty
⇒(XTX)−1XTXθ=(XTX)−1XTy
⇒
(
X
T
X
)
−
1
(
X
T
X
)
θ
=
(
X
T
X
)
−
1
X
T
y
\Rightarrow (X^TX)^{-1}(X^TX)θ = (X^TX)^{-1}X^Ty
⇒(XTX)−1(XTX)θ=(XTX)−1XTy
⇒
I
⋅
θ
=
(
X
T
X
)
−
1
X
T
y
\Rightarrow I \cdot θ = (X^TX)^{-1}X^Ty
⇒I⋅θ=(XTX)−1XTy
⇒
θ
=
(
X
T
X
)
−
1
X
T
y
\Rightarrow θ = (X^TX)^{-1}X^Ty
⇒θ=(XTX)−1XTy
这就是我们求得的参数
θ
θ
θ 最优解的解析式。
适用性
实际上上述求得的参数 θ θ θ 最优解的解析式又叫做正规方程(Normal Equation),适用场景有限,特别是以下两种情况:
① 样本的特征维度较大(
1
0
4
10^4
104 以上),此时的计算量巨大。
②
X
T
X
X^TX
XTX 不可逆,此时我们求得的参数
θ
θ
θ 最优解的解析式无意义。
第一种情况,我们从正规方程的解析式就可以看出来,特征矩阵的维度越大,对于矩阵的乘法和求逆这个运算量是十分庞大的。
第二种情况,事实上我们可以证明矩阵
X
T
X
X^TX
XTX 是一个半正定矩阵:
对于任意
n
n
n 维非零向量
u
⃗
\vec{u}
u 来说:
u
⃗
T
X
T
X
u
⃗
⇒
(
X
u
⃗
)
T
(
X
u
⃗
)
\vec{u}^TX^TX\vec{u} \Rightarrow (X\vec{u})^T(X\vec{u})
uTXTXu⇒(Xu)T(Xu)
令
v
⃗
=
X
u
⃗
\vec{v} = X\vec{u}
v=Xu :
(
X
u
⃗
)
T
(
X
u
⃗
)
⇒
v
⃗
T
v
⃗
≥
0
(X\vec{u})^T(X\vec{u}) \Rightarrow \vec{v}^T\vec{v} ≥ 0
(Xu)T(Xu)⇒vTv≥0
所以矩阵
X
T
X
X^TX
XTX 不可逆的情况是存在的!
那么这种情况下我们在原先的正规方程中加入了
λ
\lambda
λ 扰动,使得:
θ
=
(
X
T
X
+
λ
I
)
−
1
X
T
y
θ = (X^TX + \lambda I)^{-1}X^Ty
θ=(XTX+λI)−1XTy
而矩阵
(
X
T
X
+
λ
I
)
(X^TX + \lambda I)
(XTX+λI) 被证明是正定的,即它也是可逆的,这里不再赘述。
通过这个改良后的解析式,我们可以很容易就得到带有正则化项的损失函数:
L
2
−
N
o
r
m
⇒
J
(
θ
)
=
1
2
∑
i
=
1
m
(
θ
i
x
i
−
y
^
i
)
2
+
λ
θ
i
2
L2-Norm \Rightarrow J(θ) = \frac{1}{2}\sum_{i=1}^m (θ_ix_i - \hat{y}_i)^2 + \lambda θ_i^2
L2−Norm⇒J(θ)=21i=1∑m(θixi−y^i)2+λθi2
L
1
−
N
o
r
m
⇒
J
(
θ
)
=
1
2
∑
i
=
1
m
(
θ
i
x
i
−
y
^
i
)
2
+
λ
∣
θ
i
∣
L1-Norm \Rightarrow J(θ) = \frac{1}{2}\sum_{i=1}^m (θ_ix_i - \hat{y}_i)^2 + \lambda |θ_i|
L1−Norm⇒J(θ)=21i=1∑m(θixi−y^i)2+λ∣θi∣
对于以上两种情况我们可以都使用梯度下降法(Gradient Descent)或者牛顿法去求解最优解。