1、 什么是模型正则化
模型正则化(Regularization),对学习算法的修改,限制参数的大小,减少泛化误差而不是训练误差。我们在构造机器学习模型时,最终目的是让模型在面对新数据的时候,可以有很好的表现。当你用比较复杂的模型比如神经网络,去拟合数据时,很容易出现过拟合现象(训练集表现很好,测试集表现较差),这会导致模型的泛化能力下降,这时候,我们就需要使用正则化,降低模型的复杂度。
正则化的策略包括:约束和惩罚被设计为编码特定类型的先验知识 偏好简单模型 其他形式的正则化,如:集成的方法,即结合多个假说解释训练数据
在实践中,过于复杂的模型不一定包含数据的真实的生成过程,甚至也不包括近似过程,这意味着控制模型的复杂程度不是一个很好的方法,或者说不能很好的找到合适的模型的方法。实践中发现的最好的拟合模型通常是一个适当正则化的大型模型。
模型产生过拟合
的现象表现为:在训练集上误差较小,而在测试集上误差较大。
并且之所以产生过拟合现象是由于训练数据中存在一定的噪音,而我们为了尽可能的做到拟合每一个样本点(包括噪音),往往就会使用复杂的模型。最终使得训练出来的模型很大程度上受到了噪音数据的影响,例如真实的样本数据可能更符合一条直线,但是由于个别噪音的影响使得训练出来的是一条弯曲的曲线,从而使得模型在测试集上表现糟糕。因此,我们可以将这一过程看作是糟糕的训练集导致了糟糕的泛化误差。但仅仅从过拟合的表现形式来看糟糕的测试集(噪音多)也能导致糟糕的泛化误差。接下来,本篇文章就分别从这两个角度来介绍一下正则化(regularization) 方法中最常用的[公式]正则化是如何解决这个问题的。
如图所示,左右两边红色曲线为原始目标函数,蓝色曲线为加了[公式]正则化后的目标函数。可以看出红色曲线的极值均发生了改变,也就是产生极值的极值点均发生了改变,且不约而同的都更靠近原点了。
再来看一张等高线的投影图:
数据分布图
模型过拟合
在拟合完之后,就是非常明显的过拟合的效果,即目标函数为了尽可能地去拟合数据,减小模型和样本的误差,使得曲线变得很陡峭,在数学上就表示为线性方程前面的系数很大。
2、L1正则(L1范数)
L1正则化,就是在目标函数中加了L1范数这一项。使用L1正则化的模型叫做LASSO回归。
2.1 L1正则化与稀疏性
我们说,LASSO回归的全称是:Least Absolute Shrinkage and Selection Operator Regression.
这里面有一个特征选择的部分,或者说L1正则化可以使得参数稀疏化,即得到的参数是一个稀疏矩阵。
所谓稀疏性
,说白了就是模型的很多参数是0。通常机器学习中特征数量很多
,例如文本处理时,如果将一个词组(term)作为一个特征,那么特征数量会达到上万个(bigram)。在预测或分类时,那么多特征显然难以选择,但是如果代入这些特征得到的模型是一个稀疏模型
,很多参数是0,表示只有少数特征对这个模型有贡献,绝大部分特征是没有贡献的,即使去掉对模型也没有什么影响,此时我们就可以只关注系数是非零值的特征。
这相当于对模型进行了一次特征选择,只留下一些比较重要的特征,提高模型的泛化能力,降低过拟合的可能。
因此L1正则化会产生系数模型,好处是应用的
- 特征比较小,
- 模型更简单&#