L1 L2正则化
在机器学习算法中,如果我们要寻找一个模型去尽量拟合所以训练数据,使误差最小,那么对于新的数据很可能就会出现预测准确率不高,也就是说模型的泛化能力较差,尤其在回归分类算法,比如线性回归,逻辑回归,神经网络等,由于模型尽量去拟合训练数据,对训练数据得拟合程度很高,但模型是用来做预测的,对新数据的预测能力才是评估一个模型的标准。比如两个模型 M1: 0.1x1+0.2w2+0.3w3=y M2: 10000x1+20000x2+30000x3=y ,假如新的数据中x1存在误差10,M1模型产生的累加误差为1,M2模型产生的误差为100000,显然模型M1的泛化能力更强。
机器学习中在损失函数中添加额外的一项,以达到制约各个参数的目的,这就是我们通常说的L1,L2正则化,多元线性回归中的损失函数添加各个系数平方和称为Ridge Regression:
添加绝对值和称为Lasso Regression:
两项都添加称为elastic net:
其中系数的大小决定对正则化项的看重程度,越大模型的泛化能力越强,但是准确率会有所下降。
L1正则化和特征选择
L1正则化可以产生稀疏权值矩阵,可以用于特征选择:
椭圆部分为误差损失等高线,矩形为L1正则化图形,图中越往外等值线的损失值越大,w参数值越小,交点处w1或w2为0达到了特征选择的目的。
稀疏矩阵指的是很多元素为0,只有少数元素是非零值的矩阵,即得到的线性回归模型的大部分系数都是0. 通常机器学习中特征数量很多,例如文本处理时,如果将一个词组(term)作为一个特征,那么特征数量会达到上万个(bigram)。在预测或分类时,那么多特征显然难以选择,但是如果代入这些特征得到的模型是一个稀疏模型,表示只有少数特征对这个模型有贡献,绝大部分特征是没有贡献的,或者贡献微小(因为它们前面的系数是0或者是很小的值,即使去掉对模型也没有什么影响),此时我们就可以只关注系数是非零值的特征。这就是稀疏模型与特征选择的关系。
L2正则化和过拟合
L2可以防止过拟合,L1在一定程度上也可以达到防止过拟合的作用。
拟合过程中通常都倾向于让权值尽可能小,最后构造一个所有参数都比较小的模型。因为一般认为参数值小的模型比较简单,能适应不同的数据集,也在一定程度上避免了过拟合现象。可以设想一下对于一个线性回归方程,若参数很大,那么只要数据偏移一点点,就会对结果造成很大的影响;但如果参数足够小,数据偏移得多一点也不会对结果造成什么影响,专业一点的说法是『抗扰动能力强』。
越往外误差损失越大,w值越小。但是不像L1正则化中w值为0的情况。
L1和L2的异同点
相同点:都用于避免过拟合
不同点:L1可以让一部分特征的系数缩小到0,从而间接实现特征选择。所以L1适用于特征之间有关联的情况。
L2让所有特征的系数都缩小,但是不会减为0,它会使优化求解稳定快速。所以L2适用于特征之间没有关联的情况