一. 简介
我们知道在机器学习的过程就是求最优的模型参数的过程,在训练集上我们一味的要求均方误差越小越好,这样反而会导致过拟合问题,而所谓的过拟合问题就是指模型在训练集上表现的很好但是在测试集上表现的很差的一种情况,拿分类问题来看如下:
减少过拟合的一个好办法就是对模型正则化(即约束它),正则化以增大训练误差为代价,来减少测试误差(如果在训练误差上很小,可能出现过拟合的情况)。如下是MSE损失函数的定义:
M
S
E
(
X
,
h
θ
)
=
1
m
∑
i
=
1
m
(
θ
T
⋅
X
(
i
)
−
y
(
i
)
)
2
MSE(X,h_{\theta})=\frac 1 m \sum_{i=1}^m( \theta^T\cdot X^{(i)}-y^{(i)})^2
MSE(X,hθ)=m1i=1∑m(θT⋅X(i)−y(i))2
二. L1正则化和L2正则化
2.1 L2正则化
L2正则化的公式是直接在原来损失函数的基础上加上权重参数的平方和,添加的这一项为正则化项也叫做平滑项。
L
o
s
s
L
1
=
M
S
E
+
α
∑
i
=
1
n
θ
i
2
Loss_{L1}=MSE+\alpha \sum_{i=1}^n \theta_i^2
LossL1=MSE+αi=1∑nθi2
- MES是未包含正则化项的训练样本误差
- α \alpha α是正则化参数(可以调节的)
前面我们已经知道正则化的目的是限制参数过多或者过大,避免模型更加复杂。拿多项式模型举例子,多项式项数越多,模型越复杂,这时候也越容易发生过拟合现象,如何让复杂的多项式模型变的简单这就是正则化要解决的问题,我们可以想到的是可以让多项式高阶部分的权重( θ \theta θ)为0,这样就可以让高阶多项式转换为低阶的多项式,为了达到这个目的,我们通过限制前面正则项的数值上界;例如让 ∑ i = 1 n θ i 2 < C \sum_{i=1}^n \theta_i^2<C ∑i=1nθi2<C,这样我们的损失函数的定义从原来的“让训练误差最小”变成了“在所有的参数的平方和不超过C的前提条件下,还使得样本的训练误差最小”。
到这里可以解释一下为什么正则化项也叫做平滑项了,在这之前我们需要知道模型多项式系数越少,相应地多项式项数就越少,意味着模型函数图像的曲线形状越简单,而正则化项的存在就是为了让高阶多项式变成低阶多项式,相应的多项式图像会变得更简单平滑,这就是正则化项也叫做平滑项目的原因。
下面假设只有两个参数,
θ
1
\theta_1
θ1和
θ
2
\theta_2
θ2,在不加入正则项时,使用梯度下降求最小代价时,可能会是下图这种情况,会一直沿着梯度的反方向前进,直到找到全局最优值即可。
现在我们加入正则化项后现在就变成了如下这种情况(因为正则化项为模型参数的平方和,所以正则化项在多维空间中的俯瞰图会是一个圆)在图中淡蓝色区域内的权重
θ
\theta
θ才是合法的,这就正则化l1的限制方法。
在这里插入图片描述
在没有限制的条件下,使用梯度下降算法在黑色的椭圆区域内一直沿着红色箭头方向前进,直到达到全局最优值为止,但是由于限定条件的存在,
θ
\theta
θ会是不能超过淡蓝色区域的,最多也只能达到圆的边缘位置,沿着圆的切线方向。如下图取了空间中的一点,红色箭头为在无限制下梯度下降的方向,将该向量分解成一个蓝色的向量和一个绿色的向量,其中蓝色的向量会在一次一次迭代中逐渐向正则化范围边界移动,最后落在边境上成为边界上面的一个点,蓝色箭头就相当于给绿色箭头加上的限制。
在一次次迭代中会变成下图的样子,最后一次迭代会落在正则项的等值线上面。正则化加上后,我们相当于在原来梯度下降的箭头上面加上了限制,一方面我们不能逃离蓝色箭头的限制,另一方面又要保证箭头要向着梯度减少的方向运动,所以运动方向是上面的绿色箭头方向,最后红色箭头会和绿色箭头在同一方向(与圆相切的方向),就代表着运动已经结束了。
通过上面的图片我们可以发现最后的落点并不是全局最小值,这就要讲到正则化“惩罚”了,它惩罚的总是代价函数(损失函数),即增加正则化项后,代价适当变大了,即模型收到了“惩罚”,根据方差-偏差分解原则,偏差增大,方差会减小,防止过拟合的能力增强。
拓展:
在统计学和机器学习领域,一个重要的结论就是,模型的泛化误差可以被表示为三个截然不同的误差之和
- 偏差:
这部分泛化误差的原因在于错误的假设,比如假设数据色线性的,而实际上是二次的。高偏差模型最有可能对训练数据拟合不足- 方差:
这部分误差是由于模型对训练数据的微小变化过度敏感导致的,具有高自由度的模型(例如高阶多项式模型)很可能也有高方差,所以很容易对训练数据过度拟合- 不可避免的误差
这部分误差是由于数据本身的噪音所致。减少这部分误差的唯一方法就是清理数据。
2.2 L1正则化
L1正则化和L2正则化原理是类似的她的定义如下:
L
o
s
s
L
1
=
M
S
E
+
α
∑
i
=
1
n
∣
θ
i
∣
Loss_{L1}=MSE+\alpha \sum_{i=1}^n |\theta_{i}|
LossL1=MSE+αi=1∑n∣θi∣
同样采用两个参数
θ
1
\theta_1
θ1
θ
2
\theta_2
θ2
L1正则化限定了参数的有效区域为一个正方形,空间的点会同意满足不超过有效区域,且沿着梯度方向前进,最后只能位于正方形的边缘为孩子。过程与L1类似。