线性回归,主要用于从数据中拟合出一条直线(或更高维的平面),这条直线能够很好地体现数据的特征,比如,它能够使得平面上的点都均匀地分布在这条直线上。
文章目录
1.算法思想
对于简单线性回归和多元线性回归,其算法过程是相同的,不同之处在于简单线性回归只有一个特征需要拟合,多元线性回归有n个。在线性回归中,我们的数据集拥有一定的参数和相应的输出,令
x
(
i
)
x^{(i)}
x(i)表示第i个数据的参数,
y
(
i
)
y^{(i)}
y(i)表示第i个数据的输出,令目标函数
H
θ
(
x
(
i
)
)
=
θ
0
+
θ
1
x
1
+
θ
2
x
2
+
.
.
.
+
θ
n
x
n
H_θ(x^{(i)})=θ_0+θ_1x_1+θ_2x_2+...+θ_nx_n
Hθ(x(i))=θ0+θ1x1+θ2x2+...+θnxn,这是我们最终得到的函数,其中x1,x2,…,xn为我们拥有的一个个已知参数,比如我们的线性回归最终要预测房价,那么这里的x可能是房屋大小,离市中心的距离等等条件,函数的最终输出就是预测值。其中的θ都是未知的。不同的θ对应着不同的直线,为了得到最佳的拟合直线,我们的目标就是找到最佳的θ。因此线性回归的任务如下:
min
θ
1
,
θ
2
,
.
.
.
θ
n
{
1
2
m
∑
i
=
1
m
(
h
θ
(
x
(
i
)
)
−
y
(
i
)
)
2
}
\min \limits_{θ_1,θ_2,...θ_n}\{\frac{1}{2m}\sum_{i=1}^{m}(h_θ(x^{(i)})-y^{(i)})^2\}
θ1,θ2,...θnmin{2m1i=1∑m(hθ(x(i))−y(i))2}
其中
(
h
θ
(
x
(
i
)
)
−
y
(
i
)
)
2
(h_θ(x^{(i)})-y^{(i)})^2
(hθ(x(i))−y(i))2表示函数的预测值与实际值的平方误差(square error)。由于我们有若干的数据,因此对他们的平方误差计算后累加,由于相加后误差会变大,因此我们取一个均值除以m,最后再除以2的原因是,方便后面的计算(2可以被约掉),并且多除一个2并不会影响整个式子的意义。
2.损失函数
定义 J ( θ 0 , θ 1 , . . . , θ n ) = 1 2 m ∑ i = 1 m ( h θ ( x ( i ) ) − y ( i ) ) 2 J(θ_0,θ_1,...,θ_n)=\frac{1}{2m}\sum_{i=1}^{m}(h_θ(x^{(i)})-y^{(i)})^2 J(θ0,θ1,...,θn)=2m1∑i=1m(hθ(x(i))−y(i))2,其中的 ( h θ ( x ( i ) ) − y ( i ) ) 2 (h_θ(x^{(i)})-y^{(i)})^2 (hθ(x(i))−y(i))2作为损失函数,它定义了预测值与实际值之间的一种联系,当损失函数的值越小时,说明预测值与实际值越接近,从而我们的目标变为找到合适的θ使得损失函数的值越小越好。
3.梯度下降
梯度下降(Gradient Descent)算法是机器学习中一种常用的算法,可以用来最小化我们的损失函数。损失函数并不止上面用到的这种,还包括其他各种各样的损失函数,都可以利用梯度下降来找到一个局部最优解。
梯度下降算法的思想是这样的:对于一个由若干个θ形成的直线、曲线或者平面或其他形状,我们随机地给θ赋初始值,它必定位于图像上的某个位置,在那个位置上,寻找一个最陡的方向往下走,重复这个步骤,最终肯定能够到达某个点,并且没有比他更低的点,此时我们就找到了最优解。
所谓的“最陡”怎么定义的呢?我们知道一条曲线,最陡的地方就是它的切线方向,因此我们可以通过求导的方式来得到它,对于多元函数,我们需要用到偏导来求。因此得到参数的更新公式如下:
θ
j
:
=
θ
j
−
α
∂
∂
θ
J
(
θ
0
,
θ
1
,
.
.
.
,
θ
n
)
θ_j:=θ_j-α\frac{∂}{∂θ}J(θ_0,θ_1,...,θ_n)
θj:=θj−α∂θ∂J(θ0,θ1,...,θn)
4.学习率
其中α定义为学习率,直观上看就是每次更新时的步长。当α较小时,每次更新变化的数值都比较小,因此可能需要多次迭代才能到达最优解。当α较大时,每次更新变化的数值较大,可能会跳过最低点,甚至导致无法收敛的情况。通常a从0.001,0.01,0.1,1这些值里面尝试。
5.计算公式
在简单线性回归的情况下,有
h
θ
(
x
(
i
)
)
=
θ
0
+
θ
1
x
1
h_θ(x^{(i)})=θ_0+θ_1x1
hθ(x(i))=θ0+θ1x1。
当j=0时,
∂
∂
θ
0
J
(
θ
0
,
θ
1
)
=
1
m
∑
i
=
1
m
(
h
θ
(
x
(
i
)
)
−
y
(
i
)
)
\frac{∂}{∂θ_0}J(θ_0,θ_1)=\frac{1}{m}\sum_{i=1}^{m}(h_θ(x^{(i)})-y^{(i)})
∂θ0∂J(θ0,θ1)=m1i=1∑m(hθ(x(i))−y(i))
当j=1时,
∂
∂
θ
1
J
(
θ
0
,
θ
1
)
=
1
m
∑
i
=
1
m
(
h
θ
(
x
(
i
)
)
−
y
(
i
)
)
⋅
x
(
i
)
\frac{∂}{∂θ_1}J(θ_0,θ_1)=\frac{1}{m}\sum_{i=1}^{m}(h_θ(x^{(i)})-y^{(i)})·x^{(i)}
∂θ1∂J(θ0,θ1)=m1i=1∑m(hθ(x(i))−y(i))⋅x(i)
此时
θ
0
θ_0
θ0和
θ
1
θ_1
θ1的更新公式如下:
θ
0
=
θ
0
−
α
⋅
1
m
∑
i
=
1
m
(
h
θ
(
x
(
i
)
)
−
y
(
i
)
)
θ_0=θ_0-α·\frac{1}{m}\sum_{i=1}^{m}(h_θ(x^{(i)})-y^{(i)})
θ0=θ0−α⋅m1i=1∑m(hθ(x(i))−y(i))
θ
1
=
θ
1
−
α
⋅
1
m
∑
i
=
1
m
(
h
θ
(
x
(
i
)
)
−
y
(
i
)
)
⋅
x
(
i
)
θ_1=θ_1-α·\frac{1}{m}\sum_{i=1}^{m}(h_θ(x^{(i)})-y^{(i)})·x^{(i)}
θ1=θ1−α⋅m1i=1∑m(hθ(x(i))−y(i))⋅x(i)
在多元线性回归的情况下,计算方式也是一样的。
6.局部最优与全局最优
由于上面的梯度下降算法是先累计m次的结果后再进行参数的更新,因此也称为批量梯度下降(Batch Gradient Descent)。它有一个明显的缺点,就是容易陷入局部最优解的情况,当我们的参数构成的图像并不完全是凸的时候,不同的初始值可能会陷入到不同的局部最优解中。当梯度下降算法接近一个最优解时,导数值会越来越小,最终收敛,但是这个局部最优解很可能不是一个全局最优解,虽然对于简单线性回归来说并没有这个问题,因为它的图像就是一个简单的凸平面,局部最优就是全局最优。这里涉及到凸优化理论,不做深入讨论,待之后再进行学习吧。
7.特征缩放(feature scaling)
我们的参数,通常有各种各样的范围,比如身高的范围在150到200。体重的范围在80到200,年龄到范围在0到150。当这些参数作用到损失函数上时,会导致我们的特征等高线图变得臃肿(实在不知道怎么形容)…在这样的图形上,局部下降需要迭代更多的次数,才能够到达最优解所在的位置。
为了防止这种情况,使用特征缩放将参数归一化到一个固定的范围,如-1到1之间。当所有特征都位于这个范围内时,特征等高线图会变得平滑,也更容易收敛。
8.特征归一化
通过梯度下降法求解的模型通常是需要归一化的,包括线性回归,逻辑回归,SVM,神经网络等模型,它使得特征之间的更新速度更为一致,容易更快地通过梯度下降找到最优解。
8.1 线性函数归一化
一种常见的特征缩放技巧,将特征 x i x_i xi缩放为 x n o r m = x i − x m i n x m a x − x m i n x_{norm}=\frac{x_i-x_{min}}{x_{max}-x_{min}} xnorm=xmax−xminxi−xmin,从而使 0 ≤ x n o r m ≤ 1 0 \leq x_{norm}\leq 1 0≤xnorm≤1
8.2 零均值归一化
另一种归一化的方式,它会将原始数据映射到均值为0,标准差为1的分布上。假设原始特征的均值为 μ \mu μ,标准差为 σ \sigma σ,那么归一化公式为将 z = x − μ σ z=\frac{x-\mu}{\sigma} z=σx−μ
9.标准方程法(正规方程法)
使用梯度下降来求解线性回归,需要较多次的迭代,还需要选择合适的a,才能够收敛到一个合适的值。使用标准方程法,可以一次性求解θ的最优值,下面看看标准方程法的具体过程。
10.标准方程法推导
10.1 从损失函数角度
令线性回归的解析式如下
f
(
x
)
=
W
T
x
f(x)=W^Tx
f(x)=WTx
其中W,x为列向量。
线性回归的损失函数如下
L
(
w
)
=
∑
i
=
1
n
∣
∣
w
T
x
i
−
y
i
∣
∣
2
=
(
W
T
X
T
−
Y
T
)
(
X
W
−
Y
)
=
W
T
X
T
X
W
−
W
T
X
T
Y
−
Y
T
X
W
+
Y
T
Y
=
W
T
X
T
X
W
−
2
W
T
X
T
Y
+
Y
T
Y
\begin{aligned} L(w) &=\sum_{i=1}^n||w^Tx_i-y_i||^2 \\ &=(W^TX^T-Y^T)(XW-Y) \\ &=W^TX^TXW-W^TX^TY-Y^TXW+Y^TY\\ &=W^TX^TXW-2W^TX^TY+Y^TY\\ \end{aligned}
L(w)=i=1∑n∣∣wTxi−yi∣∣2=(WTXT−YT)(XW−Y)=WTXTXW−WTXTY−YTXW+YTY=WTXTXW−2WTXTY+YTY
则W的最优解
W
^
\hat W
W^为
W
^
=
arg
min
L
(
W
)
\hat W=\arg \min L(W)
W^=argminL(W)
通过求导解其最优解
∂
L
(
W
)
∂
W
=
2
X
T
X
W
−
2
X
T
Y
\begin{aligned} \frac{\partial L(W)}{\partial W}=2X^TXW-2X^TY \end{aligned}
∂W∂L(W)=2XTXW−2XTY
令偏导为0,则
2
X
T
X
W
=
2
X
T
Y
  
⟺
  
W
=
(
X
T
X
)
−
1
X
T
Y
2X^TXW=2X^TY \iff W=(X^TX)^{-1}X^TY
2XTXW=2XTY⟺W=(XTX)−1XTY
得到最终的解析式。
10.2 从线性代数角度
对上面的解析式稍作变形,使其变为以下形式
y
=
x
T
W
y=x^TW
y=xTW
变形后,矩阵X中,每一列代表原始样本中的一条数据,转置之后就变成了每一行代表原先的一条数据。假如原先每个数据为p*1的向量,总共有n个数据,则此时每一列为所有样本的特征x1,x2,x3…,xp,如果将每一列看做是样本点,那么我们就有了p个n维向量,矩阵Y也是已知的,我们需要求解
X
T
W
=
Y
X^TW=Y
XTW=Y,找到合适的W使得
X
T
W
=
Y
X^TW=Y
XTW=Y成立。根据线性代数的知识我们知道
X
T
W
=
Y
X^TW=Y
XTW=Y只有当
Y
Y
Y中每个值是对应
X
i
X_i
Xi每个值的线性组合,此方程才有解。因为W矩阵反映了他们之间是怎样的一种线性组合。换句话说,Y向量必须存在于X矩阵列向量形成的列空间中,方程才能有解。但是这个不一定成立,所以我们想办法,将向量Y映射到X的列空间中。
从几何的角度上来看,实际上就是我们要在列空间中寻找一个向量,使Y向量离这条线是最近的,或者说向量Y离这个空间最近,那我们要找的也就是向量Y在这个空间内的投影P了。这个投影P实际上就是由列向量的线性组合得到,即
P
=
X
T
W
P=X^TW
P=XTW,由于Y-P可以得到法向量,并且法向量与平面内的向量垂直,则有
X
T
(
Y
−
P
)
=
X
T
(
Y
−
X
T
W
)
=
0
X^T(Y-P)=X^T(Y-X^TW)=0
XT(Y−P)=XT(Y−XTW)=0
解得
W
=
(
X
T
X
)
−
1
X
T
Y
W=(X^TX)^{-1}X^TY
W=(XTX)−1XTY
当
X
T
X
X^TX
XTX可逆时,便可以得到
W
=
(
X
T
X
)
−
1
X
T
Y
W=(X^TX)^{-1}X^TY
W=(XTX)−1XTY。这就是标准方程法最终的形式。当
X
T
X
X^TX
XTX不可逆时,可以使用伪逆来计算,虽然这种情况很少出现。如果出现了这种情况,说明维度高,样本少,会出现过拟合的现象。
11.L2正则
正则项的出现,是为了抑制过拟合的现象。L2正则表示为
∣
∣
w
∣
∣
2
2
=
w
1
2
+
w
2
2
+
.
.
.
+
w
n
2
=
w
T
w
||w||^2_2=w_1^2+w_2^2+...+w_n^2=w^Tw
∣∣w∣∣22=w12+w22+...+wn2=wTw
在模型后面加上L2正则作为惩罚项,可以使得总体的w偏小,不至于过拟合。加入正则项后的损失函数如下
J
(
W
)
=
∑
i
=
1
n
∣
∣
w
T
x
i
−
y
i
∣
∣
2
+
λ
W
T
W
=
W
T
X
T
X
W
−
2
W
T
X
T
Y
+
Y
T
Y
+
λ
W
T
W
=
W
T
(
X
T
X
−
λ
I
)
W
−
2
W
T
X
T
Y
+
Y
T
Y
\begin{aligned} J(W) &=\sum_{i=1}^n||w^Tx_i-y_i||^2+\lambda W^TW \\ &=W^TX^TXW-2W^TX^TY+Y^TY+\lambda W^TW \\ &=W^T(X^TX-\lambda I)W-2W^TX^TY+Y^TY \\ \end{aligned}
J(W)=i=1∑n∣∣wTxi−yi∣∣2+λWTW=WTXTXW−2WTXTY+YTY+λWTW=WT(XTX−λI)W−2WTXTY+YTY
则有
w
^
=
arg
min
W
J
(
W
)
\hat w=\arg \min_W J(W)
w^=argWminJ(W)
求导并令导数为0,可得
∂
J
(
W
)
∂
W
=
2
(
X
T
X
+
λ
I
)
W
−
2
X
T
Y
=
0
W
^
=
(
X
T
X
+
λ
I
)
−
1
X
T
Y
\frac{\partial J(W)}{\partial W}=2(X^TX+\lambda I)W-2X^TY=0 \\ \hat W=(X^TX+\lambda I)^{-1}X^TY
∂W∂J(W)=2(XTX+λI)W−2XTY=0W^=(XTX+λI)−1XTY
由于
X
T
X
X^TX
XTX为半正定矩阵(由定义可证),加上
λ
\lambda
λ倍对角矩阵之后,一定是正定矩阵,而正定矩阵一定有逆矩阵,所以它起到了抑制过拟合的效果。
12.概率视角看线性回归
我们将样本x看做是独立同分布的随机变量的不同取值,y是输出,定义一个高斯噪声
ϵ
∼
N
(
0
,
σ
2
)
\epsilon \sim N(0,\sigma^2)
ϵ∼N(0,σ2),则
y
=
f
(
x
)
+
ϵ
=
w
T
x
+
ϵ
y=f(x)+\epsilon =w^Tx+\epsilon
y=f(x)+ϵ=wTx+ϵ
则有
y
∣
x
,
w
∼
N
(
w
T
x
,
σ
2
)
y|x,w \sim N(w^Tx,\sigma^2)
y∣x,w∼N(wTx,σ2)
则其似然函数为
L
(
w
)
=
log
P
(
Y
∣
X
,
w
)
=
log
∏
i
=
1
n
P
(
y
i
∣
x
i
;
w
)
=
∑
i
=
1
n
log
P
(
y
i
∣
x
i
;
w
)
=
∑
i
=
1
n
(
log
1
2
π
σ
+
log
exp
(
−
(
y
i
−
w
T
x
i
)
2
2
σ
2
)
)
=
∑
i
=
1
n
(
log
1
2
π
σ
−
(
y
i
−
w
T
x
i
)
2
2
σ
2
)
\mathcal L(w)=\log P(Y|X,w)=\log \prod_{i=1}^n P(y_i|x_i;w)=\sum_{i=1}^n \log P(y_i|x_i;w)\\ =\sum_{i=1}^n\left(\log \frac{1}{\sqrt{2\pi}\sigma}+\log \exp(-\frac{(y_i-w^Tx_i)^2}{2\sigma^2})\right)\\ =\sum_{i=1}^n\left(\log \frac{1}{\sqrt{2\pi}\sigma}-\frac{(y_i-w^Tx_i)^2}{2\sigma^2}\right)\\
L(w)=logP(Y∣X,w)=logi=1∏nP(yi∣xi;w)=i=1∑nlogP(yi∣xi;w)=i=1∑n(log2πσ1+logexp(−2σ2(yi−wTxi)2))=i=1∑n(log2πσ1−2σ2(yi−wTxi)2)
则
w
^
=
arg
max
w
L
=
arg
max
w
(
−
(
y
i
−
w
T
x
i
)
2
2
σ
2
)
=
arg
min
w
(
y
i
−
w
T
x
i
)
2
\begin{aligned} \hat w &=\arg \max _w \mathcal L \\ &=\arg \max_w \left( -\frac{(y_i-w^Tx_i)^2}{2\sigma^2}\right) \\ &=\arg \min_w \left(y_i-w^Tx_i\right)^2 \\ \end{aligned}
w^=argwmaxL=argwmax(−2σ2(yi−wTxi)2)=argwmin(yi−wTxi)2
可以发现上式实际上等价于最小二乘估计的定义一模一样。所以最小二乘估计实际上隐含了一个它的噪声服从正态分布这样的一个假设!所以在线性回归中,有
L
S
E
=
M
L
E
+
高
斯
噪
声
LSE=MLE+高斯噪声
LSE=MLE+高斯噪声
在添加正则化项之后,我们给W也来一个先验分布
W
∼
N
(
0
,
σ
0
2
)
W \sim N(0,\sigma_0^2)
W∼N(0,σ02),由贝叶斯公式
p
(
w
∣
y
)
=
p
(
y
∣
w
)
p
(
w
)
p
(
y
)
p(w|y)=\frac{p(y|w)p(w)}{p(y)}
p(w∣y)=p(y)p(y∣w)p(w)
有
W
^
=
arg
max
W
log
P
(
y
∣
w
)
P
(
w
)
=
arg
max
W
log
(
1
2
π
σ
1
2
π
σ
0
)
+
(
−
(
y
−
w
T
x
)
2
2
σ
2
−
∣
∣
w
∣
∣
2
2
σ
0
2
)
=
arg
min
W
(
(
y
−
w
T
x
)
2
2
σ
2
+
∣
∣
w
∣
∣
2
2
σ
0
2
)
=
arg
min
W
(
(
y
−
w
T
x
)
2
+
σ
2
σ
0
2
∣
∣
w
∣
∣
2
)
\begin{aligned} \hat W &=\arg \max_W\log P(y|w)P(w) \\ &=\arg \max_W\log(\frac{1}{\sqrt{2\pi}\sigma}\frac{1}{\sqrt{2\pi}\sigma_0})+(-\frac{(y-w^Tx)^2}{2\sigma^2}-\frac{||w||^2}{2\sigma_0^2}) \\ &=\arg \min_W (\frac{(y-w^Tx)^2}{2\sigma^2}+\frac{||w||^2}{2\sigma_0^2})\\ &=\arg \min_W\left((y-w^Tx)^2 +\frac{\sigma^2}{\sigma_0^2}||w||^2\right) \end{aligned}
W^=argWmaxlogP(y∣w)P(w)=argWmaxlog(2πσ12πσ01)+(−2σ2(y−wTx)2−2σ02∣∣w∣∣2)=argWmin(2σ2(y−wTx)2+2σ02∣∣w∣∣2)=argWmin((y−wTx)2+σ02σ2∣∣w∣∣2)
把
σ
2
σ
0
2
\frac{\sigma^2}{\sigma_0^2}
σ02σ2看做是
λ
\lambda
λ的话,我们发现这个式子跟加了L2正则的最小二乘估计的模型是一样的。所以我们又得到一个结论
L
S
E
(
r
e
g
u
l
a
r
i
z
e
d
)
  
⟺
  
M
A
P
(
高
斯
噪
声
+
参
数
w
服
从
高
斯
分
布
)
LSE(regularized) \iff MAP(高斯噪声+参数w服从高斯分布)
LSE(regularized)⟺MAP(高斯噪声+参数w服从高斯分布)
13.L2正则分析
进一步分析,令
w
∗
w^*
w∗为未正则化的目标函数取得最小训练误差时的权重向量,即
w
∗
=
arg
min
w
J
(
w
)
w^*=\arg \min_w J(w)
w∗=argminwJ(w),在
w
∗
w^*
w∗领域附近对目标函数做泰勒展开,有
J
^
(
θ
)
=
J
(
w
∗
)
+
1
2
(
w
−
w
∗
)
T
H
(
w
−
w
∗
)
\hat J(\theta)=J(w^*)+\frac{1}{2}(w-w^*)^TH(w-w^*)
J^(θ)=J(w∗)+21(w−w∗)TH(w−w∗)
因为
w
∗
w^*
w∗为最优,因此一阶项为0。对上式求导,有
∇
w
J
^
(
w
)
=
H
(
w
−
w
∗
)
=
0
\nabla_w\hat J(w)=H(w-w^*)=0
∇wJ^(w)=H(w−w∗)=0
用
w
~
\tilde w
w~表示添加正则项后的最优解,则上式变为
a
w
~
+
H
(
w
~
−
w
∗
)
=
0
  
⟺
  
w
~
=
(
H
+
a
I
)
−
1
H
w
∗
a\tilde w+H(\tilde w-w^*)=0 \iff \tilde w=(H+aI)^{-1}Hw^*
aw~+H(w~−w∗)=0⟺w~=(H+aI)−1Hw∗
由于H为实对称矩阵,对其进行分解有
H
=
Q
Λ
Q
T
H=Q\Lambda Q^T
H=QΛQT
则有
w
~
=
(
Q
Λ
Q
T
+
a
I
)
−
1
Q
Λ
Q
T
w
∗
=
(
Q
(
Λ
+
a
I
)
Q
T
)
−
1
Q
Λ
Q
T
w
∗
=
Q
(
Λ
+
a
I
)
−
1
Λ
Q
T
w
∗
\begin{aligned} \tilde w &=(Q\Lambda Q^T+aI)^{-1}Q\Lambda Q^Tw^* \\ &=(Q(\Lambda+aI)Q^T)^{-1}Q\Lambda Q^Tw^* \\ &=Q(\Lambda+aI)^{-1}\Lambda Q^Tw^* \end{aligned}
w~=(QΛQT+aI)−1QΛQTw∗=(Q(Λ+aI)QT)−1QΛQTw∗=Q(Λ+aI)−1ΛQTw∗
可以发现权重衰减的效果其实是沿着由H的特征向量所定义的轴缩放
w
∗
w^*
w∗,缩放因子为
λ
i
λ
i
+
a
\frac{\lambda_i}{\lambda_i+a}
λi+aλi。对于远大于a的特征值,对其应用缩放因子之后,影响并不会很大,而对于远小于a的特征值,将会收缩到几乎为零。只有在显著减小目标函数方向上的参数会保留得相对完好。在无助于目标函数减小的方向(对应 Hessian 矩阵较小的特征值)上改变参数不会显著增加梯度。这种不重要方向对应的分量会在训练过程中因正则化而衰减掉。
14.L1正则分析
对模型的L1正则定义如下
∣
∣
w
∣
∣
1
=
∑
i
∣
w
i
∣
||w||_1=\sum_i|w_i|
∣∣w∣∣1=i∑∣wi∣
正则化的目标函数如下
J
~
(
w
)
=
J
(
w
)
+
a
∣
∣
w
∣
∣
1
\tilde J(w)=J(w)+a||w||_1
J~(w)=J(w)+a∣∣w∣∣1
对应的梯度为
∇
w
J
~
(
w
)
=
a
s
i
g
n
(
w
)
+
∇
m
J
(
w
)
\nabla_w \tilde J(w)=asign(w)+\nabla_mJ(w)
∇wJ~(w)=asign(w)+∇mJ(w)
在完全一般化的海塞矩阵的情况下,无法直接得到清晰的代数表达式,因此我们进一步简化Hessian矩阵为对角矩阵(去除输入特征之间的相关性,那么这一假设成立)。那么我们可以将L1正则化目标函数的二次泰勒展开近似分解成关于参数的求和:
J
~
(
w
)
=
J
(
w
∗
)
+
∑
i
[
1
2
H
i
i
(
w
i
−
w
i
∗
)
2
+
a
∣
w
i
∣
]
\tilde J(w)=J(w^*)+\sum_i\left[\frac{1}{2}H_{ii}(w_i-w_i^*)^2+a|w_i|\right]
J~(w)=J(w∗)+i∑[21Hii(wi−wi∗)2+a∣wi∣]
下面的解析解可以最小化这个近似代价函数
w
i
=
s
i
g
n
(
w
i
∗
)
max
{
∣
w
i
∗
∣
−
a
H
i
i
}
w_i=sign(w_i^*)\max\{|w_i^*|-\frac{a}{H_{ii}}\}
wi=sign(wi∗)max{∣wi∗∣−Hiia}
当
w
i
∗
w_i^*
wi∗大于0时,将最优值移动
a
H
i
i
\frac{a}{H_{ii}}
Hiia往0逼近,若是移动后变号了就直接赋值为0,小于0时也同样。
相比L2正则化,L1正则化会产生更稀疏的解。由L1正则化导出的稀疏性质已经被广泛地用于特征选择。
15.标准方程法vs梯度下降法
标准方程法虽然可以一次性求出最优解,也不需要选择合适的学习率,但是在求
(
X
T
X
)
−
1
(X^TX)^{-1}
(XTX)−1时需要耗费大量时间,当我们的特征数较多时,往往不推荐使用。通常当特征数小于10000时较为合适。
梯度下降法虽然需要迭代,需要选取合适的学习率,但是它的适用范围较广,在其他众多机器学习算法中,梯度下降算法往往是适用的,虽然迭代次数上可能有些差异,但是总体上表现良好。而标准方程法只适用于求线性回归的情况。