0%

机器学习——正则化

正则化相关问题


1.实现参数的稀疏有什么好处吗?

1
2
1.可以简化模型,避免过拟合。因为一个模型中真正重要的参数可能并不多,如果考虑所有的参数起作用,那么可以对训练数据可以预测的很好,但是对测试数据就只能呵呵了。
2.参数变少可以使整个模型获得更好的可解释性。

2.参数值越小代表模型越简单吗?

1
是的。这是因为越复杂的模型,越是会尝试对所有的样本进行拟合,甚至包括一些异常样本点,这就容易造成在较小的区间里预测值产生较大的波动,这种较大的波动也反映了在这个区间里的导数很大,而只有较大的参数值才能产生较大的导数。因此复杂的模型,其参数值会比较大。

3.模型简单包括什么?

1
2
1.参数少
2.参数值小

4.从贝叶斯角度看L1和L2正则化分贝数与什么分布?

对于频率学派,认为要将参数θ作为未知的定值,而样本X是随机的,其着眼点在样本空间,参数θ虽然我们不知道是什么,但是他是固定的,我们需要通过随机产生的样本去估计这个参数,所以才有了最大似然估计这些方法。

对于贝叶斯学派,把参数θ也视为满足某一个分布的随机变量,而X是固定的,其着眼点在参数空间,固定的操作模式是通过参数的先验分布结合样本信息得到参数的后验分布,核心是

L1正则化相当于先验分布是拉普拉斯分布,L2正则化相当于先验概率是正态分布。拉普拉斯分布的计算公式:

正态分布概率密度分布公式:

正则化


机器学习中几乎都可以看到损失函数后面会添加一个额外项,常用的额外项一般有两种,一般英文称作L1-norm和L2-norm,中文称作L1正则化和L2正则化,或者L1范数和L2范数。

对于线性回归模型,使用L1正则化的模型建叫做Lasso回归,使用L2正则化的模型叫做Ridge回归(岭回归)

概念

L1正则化是指权值向量绝对值之和,通常表示为||w||1

L2正则化是指全职向量w中各个元素的平方和让后再求平方根,通常表示为||w||2

下图是Python中Lasso回归的损失函数,式中加号后面一项α||w||1即为L1正则化项。

img

下图是Python中Ridge回归的损失函数,式中加号后面一项α||w||22 即为L2正则化项

注:
1.上面的两个函数前半部分可以为任意的线性函数的损失函数,组合成的函数都可以成为Lasso回归会Ridge回归
2.上面两个式子中的α为正则化系数,后续通过交叉验证确定

注:上面两个式子中的α为正则化系数,后续通过交叉验证确定)

L1正则化与L2正则化的作用:

L1正则化可产生稀疏权值矩阵,即产生一个稀疏模型,可用用于特征选择

L2正则化主要用于防止过拟合



L1正则化


L1正则化的标准形式:

​ 其中J0是原始的损失函数,加好后面是L1正则化项。机器学习的最终目就是找出损失函数的最小值,当我们在原本的损失函数后面加上L1正则化后,相当于对J0做了一个约束,另L1正则化项等于L,则 J=J0+L,任务转化为在L1的约束下求J0最小值的解
​ 考虑二维情况,即只有两个权值w1和w2,此时L=|w1|+|w2|,对于梯度下降算法,求解j0的过程中画出等值线,同时将L1正则化的函数L也在w1、w2空间化出来,二者图像首次相交处即为最优解,获得下图:

​ 从图中可看出j0与L相交于L的一个顶点处,这个顶点即为最优解。注意这个顶点的值为(w1,w2)=(0,w),可以想象,在更多维的情况下,L将会有很多突出的角,而J与这些叫接触的几率将远大于与L其他部位接触的概率,而这些角上将会有许多权值为0,从而产生系数矩阵,进而用于特征选择

1
2
3
4
5
6
7
8
9
10
11
from sklearn.linear_model import Lasso
from sklearn.preprocessing import StandardScaler
from sklearn.datasets import load_bostonboston=load_boston()

scaler=StandardScaler()
X=scaler.fit_transform(boston["data"])
Y=boston["target"]
names=boston["feature_names"]
lasso=Lasso(alpha=.3)
lasso.fit(X,Y)
print"Lasso model: ",pretty_print_linear(lasso.coef_,names,sort=True)

L2正则化


L2正则化的标准形式

​ 和L1正则化相同,任务转化为在L2的约束下求J0最小值的解。考虑二维情况,即只有两个权值w1和w2,此时L=|w1|+|w2|,对于梯度下降算法,求解j0的过程中画出等值线,同时将L1正则化的函数L也在w1、w2空间化出来,二者图像首次相交处即为最优解,获得下图:

机器学习过程中权值尽可能小的原因:

试想对于一个模型,当参数很大时,只要数据偏移一点点,就会对结果造成很大的影响,如果参数较小,则数据偏移的多一点,也不会对结果产生多大的影响,抗扰动能力强

为什么L2正则化可以使权值尽可能的小?

对于损失函数不带L2正则化项的梯度下降时参数更新公式为:

加入L2正则化项,参数更新公式为:

根据两个公式之间的差别,我们可以明显的看到,加入正则化以后的梯度下降在进行参数更新时,要先将原有的参数值乘以一个小于1的值,因此权值也会变得比不带的参数小