机器学习中经常遇到所谓的过拟合(overfitting)问题。所谓的过拟合问题, 是指某个模型在训练数据上能够获得比其他模型更好的拟合,但是在训练数据外的数据集上却不能很好的拟合。其本质是,模型对于随机错误或者噪声的刻画超过其对于真实信息的刻画。而出现这种现象的主要原因是训练数据中存在噪音或者训练数据太少。
所谓的正则化,是一种数学方法。它通过在模型中添加针对模型复杂度或者极端参数值的惩罚项来减少模型的过拟合程度。正则化方法可以应用于不同的模型中,包括线性回归、逻辑回归、支持向量机等等。
以线性回归为例,正则化的形式可表示为中的第二项。它其实是模型中各系数的平方和乘以参数 λ 。
L(θ)=12m[∑i=1m(hθ(x(i)−y(i))2)+λ∑j=1nθ2j](1-1)
参数lamdda的选择对于模型的性能至关重要:lamda的值过小,将导致正则化的作用微乎其微;lamda的值过大,将导致模型丢失有用的信息,出现所谓的欠拟合。交叉验证通常是确定lamda的值的最直接方法之一。
L1与L2正则化
式所示的即为L2正则。而L2正则化又被成为Ridge regularizer。它将视为惩罚对象。
将模型各系数绝对值的加和视为惩罚对象,被成为L1正则化。
L2正则化认为特征的权重的先验分布是一个0附近的高斯分布
L1正则化认为特征的权重的先验分布是一个0附近的拉普拉斯分布
下图反映了无正则化、L2正则化和L1正则化对于模型系数的影响。