一:什么是正则化
L0正则化的值是模型参数中非零参数的个数。
L1正则化表示各个参数绝对值之和。
L2正则化标识各个参数的平方的和的开方值。
三种正则概述
-》L0正则化
根据上面的讨论,稀疏的参数可以防止过拟合,因此用L0范数(非零参数的个数)来做正则化项是可以防止过拟合的。
从直观上看,利用非零参数的个数,可以很好的来选择特征,实现特征稀疏的效果,具体操作时选择参数非零的特征即可。但因为L0正则化很难求解,是个NP难问题,因此一般采用L1正则化。L1正则化是L0正则化的最优凸近似,比L0容易求解,并且也可以实现稀疏的效果。
-》L1正则化
L1正则化在实际中往往替代L0正则化,来防止过拟合。在江湖中也人称Lasso。
L1正则化之所以可以防止过拟合,是因为L1范数就是各个参数的绝对值相加得到的,我们前面讨论了,参数值大小和模型复杂度是成正比的。因此复杂的模型,其L1范数就大,最终导致损失函数就大,说明这个模型就不够好。
-》L2正则化
L2正则化可以防止过拟合的原因和L1正则化一样,只是形式不太一样。
L2范数是各参数的平方和再求平方根,我们让L2范数的正则项最小,可以使W的每个元素都很小,都接近于0。但与L1范数不一样的是,它不会是每个元素为0,而只是接近于0。越小的参数说明模型越简单,越简单的模型越不容易产生过拟合现象。
L2正则化江湖人称Ridge,也称“岭回归”
4)几何解释
我们考虑两维的情况,在(w1, w2)平面上可以画出目标函数的等高线,而约束条件则成为平面上半径为C的一个 norm ball 。等高线与 norm ball 首次相交的地方就是最优解:
可以看到,L1-ball 与L2-ball 的不同就在于L1在和每个坐标轴相交的地方都有“角”出现,有很大的几率等高线会和L1-ball在四个角,也就是坐标轴上相遇,坐标轴上就可以产生稀疏,因为某一维可以表示为0。而等高线与L2-ball在坐标轴上相遇的概率就比较小了。
总结:L1会趋向于产生少量的特征,而其他的特征都是0,而L2会选择更多的特征,这些特征都会接近于0。Lasso在特征选择时候非常有用,而Ridge就只是一种规则化而已。在所有特征中只有少数特征起重要作用的情况下,选择Lasso比较合适,因为它能自动选择特征。而如果所有特征中,大部分特征都能起作用,而且起的作用很平均,那么使用Ridge也许更合适。
二:需要解决的问题
在解决实际问题的过程中,我们会倾向于用复杂的模型来拟合复杂的数据,但是使用复杂模型会产生过拟合的风险,而正则化就是常用的减少过拟合风险的工具之一。
过拟合是指模型在训练集上误差很小,但是在测试集上表现很差(即泛化能力差),过拟合的原因一般是由于数据中存在噪声或者用了过于复杂的模型拟合数据。正则化能以一种相对比较简单的模型来拟合复杂数据。
L1正则化使w变稀疏,L2使w很小限制在一定范围内,lamda越大,范围越小,越不容易过拟合,但是要同时注意欠拟合问题
吴恩达老师这么说正则化的:
特征变量过多会导致过拟合,为了防止过拟合会选择一些比较重要的特征变量,而删掉很多次要的特征变量。但是,如果我们实际上却希望利用到这些特征信息,所以可以添加正则化项来约束这些特征变量,使得这些特征变量的权重很小,接近于0,这样既能保留这些特征变量,又不至于使得这些特征变量的影响过大。