L1正则化
(1)L1正则化公式
L1正则化,英文称作l1-norm,或者称为L1范数。对于线性回归模型,使用L1正则化的模型建模叫做Lasso回归。一般在正则化项之前添加一个系数,这个系数为调整因子α,它决定了我们要如何对模型的复杂的进行“惩罚”。复杂的模型由权重W增大来表现,往往过于复杂的模型也表现为过拟合。L1正则化是指权值向量W中各个元素的绝对值之和。其中我们需要最小化(3)式,来求得合适的权重系数,避免过拟合问题。从公式(3)中很明显可以看到,L1正则化只有在惩罚大系数时才区别于L2正则。因为它使用的是(模数)而L2正则使用时作为惩罚项。
(2)L1正则化有什么用?
L1正则化可以产生稀疏权值矩阵,即产生一个稀疏模型,可以用于特征选择。一定程度上,L1也是可以防止过拟合的。
(3)L1是如何产生稀疏模型与特征选择的呢?
稀疏矩阵指的是很多元素为0,只有少数元素是非零值的矩阵,即得到的线性回归模型的大部分系数都是0。通常机器学习中特征数量很多,例如文本处理时,如果将一个词组(term)作为一个特征,那么特征数量会达到上万个。在预测或分类时,那么多特征显然难以选择,但是如果这些特征得到的模型是一个稀疏模型,表示只有少数特征对这个模型有贡献,绝大部分特征是没有贡献的,或者贡献微小(因为它们前面的系数是0或者是很小的值,即使去掉对模型也没有什么影响),此时我们就可以只关注系数是非零值的特征。这就是稀疏模型与特征选择的关系。
当J0等值线与L图形首次相交的地方就是最优解。上图中J0与L在L的一个顶点处相交,这个顶点就是最优解。注意到这个顶点的值是(w1,w2)=(0,w)。可以直观想象,因为L函数有很多『突出的角』(二维情况下四个,多维情况下更多),J0与这些角接触的机率会远大于与L其它部位接触的机率,而在这些角上,会有很多权值等于0,这就是为什么L1正则化可以产生稀疏模型,进而可以用于特征选择。
L2正则化
(1)L2正则化公式
公式(4)展示的是L2的正则化。L2正则化英文为l2 –norm,或者是L2范式。对于线性回归,使用L2正则化的模型叫做Ridge回归(岭回归)。同L1正则化一样,在正则化项之前添加一个系数α。L2正则化是指权值向量W中各个元素的平方和然后再求平方根(可以看到Ridge回归的L2正则化项有平方符号)。
注意:
当α=0 时,惩罚项没有作用,岭回归所产生的参数估计将与最小二乘法相同。但是当α→∞ 时,惩罚项的收缩作用就增大了,导致岭回归下的系数估计会接近于零。可以看出,选择一个恰当的α值至关重要。为此,交叉验证派上用场了。由这种方法产生的系数估计也被称为 L2 范数(L2-norm)。
(2)L2正则化作用?
L2正则化可以防止模型过拟合(overfitting)。
(3)L2正则化为什么可以解决过拟合问题?
拟合过程中通常都倾向于让权值尽可能小,最后构造一个所有参数都比较小的模型。因为一般认为参数值小的模型比较简单,能适应不同的数据集,也在一定程度上避免了过拟合现象。可以设想一下对于一个线性回归方程,若参数很大,那么只要数据偏移一点点,就会对结果造成很大的影响;但如果参数足够小,数据偏移得多一点也不会对结果造成什么影响,专业一点的说法是『抗扰动能力强』。
为什么L2正则化可以获得很小的参数呢?
以线性回归中的梯度下降法为例。假设要求的参数为θ,hθ(x)是我们的假设函数,那么线性回归的代价函数如下:
那么在梯度下降中,最终用于迭代计算参数θ的公式为:
其中α是learning rate。上式是没有添加L2正则化项的迭代公式,如果在原始代价函数之后添加L2正则化,则迭代公式会变成下面的样子:
其中λ就是正则化参数。从上式可以看到,与未添加L2正则化的迭代公式相比,每一次迭代,都要先乘以一个小于1的因子,从而使得不断减小,因此总得来看,θ是不断减小的。
最开始也提到L1正则化一定程度上也可以防止过拟合。之前做了解释,当L1的正则化系数很小时,得到的最优解会很小,可以达到和L2正则化类似的效果。