1 正则化
正则化(regularization)是结构风险最小化策略的实现,是在经验风险上加一个正则化项(regularizer)或罚项(penalty term)。正则化项一般是模型复杂度的单调递增函数,模型越复杂,正则化值就越大。比如,正则化项可以是模型参数向量的范数。
正则化一般具有如下形式:
其中,第一项是经验风险,第二项是正则化项,λ是调整经验风险和正则化间的系数,称为正则化系数。
正则化项可以取不同的形式。例如,回归问题中,损失函数是平方损失,正则化项可以是参数向量的L2范数:
这里,||w||2表示参数向量w的L2范数,L2范数为向量w中各个元素的平方和。
正则化项也可以是参数向量的L1范数:
这里, ||w||1表示参数向量w的L1范数,L1范数为数向量w中各个元素的绝对值之和。
第1项的经验风险较小的模型可能较复杂(有多个非零参数),这时第2项的模型复杂度会较大。正则化的作用是选择经验风险与模型复杂度同时较小的模型。
正则化符合奥卡姆剃刀(Occam's razor)原理。奥卡姆剃刀原理应用于模型选择时变为以下想法:在所有可能选择的模型中,能够很好地解释已知数据并且十分简单才是最好的模型,也就是应该选择的模型。从贝叶斯估计的角度来看,正则化项对应于模型的先验概率。可以假设复杂的模型有较小的先验概率,简单的模型有较大的先验概率。
在机器学习回归问题中如果我们的模型是:
可以从之前的事例中看出,正是那些高次项导致了过拟合的产生,所以如果我们能让这些高次项的系数接近于0的话,我们就能很好的拟合了。
1.1 正则化项参数λ的选择
在训练模型的过程中,一般会使用一些正则化方法来防止过拟合。但是我们可能会正则化的程度太高或太小了,即我们在选择λ的值时也需要思考与选择多项式模型次数类似的问题。
选择一系列的想要测试的λ值,通常是0-10之间的呈现2倍关系的值(如:0,0.01、0.02、0.04、0.08、0.15、0.32、0.64、1.28、2.56、5.12、0共12个)。把数据分为训练集、交叉验证集和测试集。
选择λ的方法为:
1、 使用训练集训练出12个不同程度正则化的模型;
2、 用12个模型分别对交叉验证集计算得到交叉验证误差;
3、 选择交叉验证误差最小的模型;
4、运用步骤3中选出模型对测试集计算得出推广误差,我们也可以同时将训练集和交叉验证集模型的代价函数误差与λ的值绘制在一张图表上。
当λ较小时,训练集误差较小(过拟合)而交叉验证集误差较大。
随着λ的增加,训练集误差不断增加(欠拟合),而交叉验证集误差则是先减小后增加。
1.2 正则化分类
正则化分为L1正则化和L2正则化,具体表达式如下图所示。
在逻辑回归模型中,L1正则化模型亦称为LASSO回归;L2正则化模型亦称为岭回归。
1.3 正则化的演化
优化函数:
1.4 L1与L2正则化的选择
L1/L2范数让模型变得稀疏,加了模型的可解析性。但L1范数的稀疏性强,因此,L1正则化可用于特征选择。
L2范数让模型变得更简单,经常用于防止过拟合问题。
L1正则化比L2正则化更容易得到稀疏解,因此,L1与L2正则化的选择有:
1.5 正则化的直观理解
1、上面正则化演化中提到L1正则化有助于生成一个稀疏权值矩阵,进而可以用于特征选择。为什么要生成一个稀疏矩阵?
稀疏矩阵指的是很多元素为0,只有少数元素是非零值的矩阵,即得到的线性回归模型的大部分系数都是0。通常机器学习中特征数量很多,例如文本处理时,如果将一个词组(term)作为一个特征,那么特征数量会达到上万个(bigram)。在预测或分类时,那么多特征显然难以选择,但是如果代入这些特征得到的模型是一个稀疏模型,表示只有少数特征对这个模型有贡献,绝大部分特征是没有贡献的,或者贡献微小(因为它们前面的系数是0或者是很小的值,即使去掉对模型也没有什么影响),此时我们就可以只关注系数是非零值的特征。这就是稀疏模型与特征选择的关系。
2、 为什么L1正则化可以产生稀疏模型
(L1是怎么让系数等于零的)假设有如下带L1正则化的损失函数:
L1正则化
类似,假设有如下带L2正则化的损失函数:
通用可以画出它在二维平面的图形,如下图所示;
L2正则化
3、为什么L2正则化可以防止过拟合?
拟合过程中通常都倾向于让权值尽可能小,最后构造一个所有参数都比较小的模型。因为一般认为参数值小的模型比较简单,能适应不同的数据集,也在一定程度上避免了过拟合现象。可以设想一下对于一个线性回归方程,若参数很大,那么只要数据偏移一点点,就会对结果造成很大的影响;但如果参数足够小,数据偏移得多一点也不会对结果造成什么影响,专业一点的说法是『抗扰动能力强』。
那为什么L2正则化可以获得值很小的参数?
最开始也提到L1正则化一定程度上也可以防止过拟合。之前做了解释,当L1的正则化系数很小时,得到的最优解会很小,可以达到和L2正则化类似的效果。
1.6 优缺点
提高了模型的泛化能力,但损失了模型的精度。
1.7 应用
在监督性机器学习中,每个模型基本用到正则化项,就以线性模型为例,则有:
1、 线性回归中的正则化
线性回归的代价函数J(θ)表达式如下:
正则化后,代价函数J(θ)表达式如下,注意j从1开始:
我们的目标依然是求J(θ)最小值,我们还是用梯度下降算法和正规方程求解最小化J(θ)。
1) 梯度下降算法(注意需要区分θ0和其它参数的更新等式)
2) 正规方程
2、逻辑回归中的正则化
和线性回归模型类型相似,逻辑回归也可以通过正则化来解决过拟合问题。逻辑回归的代价函数J(θ)表达式如下:
2 改进算法性能的方法
之前讲过,当你运行一个学习算法时,如果这个算法的表现不理想,那么多半是出现两种情况:要么是偏差比较大,要么是方差比较大。
若交叉验证集或测试集误差远大于训练集误差时,模型的方差较大,处于过拟合状态。模型过拟合时,可使用L2正则化来减少过拟合。当增大正则化系数λ时,则对模型参数以大的惩罚,减少模型的复杂度,减缓模型的过拟合。当正则化系数λ增加过大时,模型处于欠拟合状态。此时,可以适当的调整正则化系数λ,即减少λ以避免欠拟合。因此,我们可以通过以下方法来解决偏差与方差及过拟合问题,从而提高算法的性能。
3 参考资料
[1].《机器学习》 ---周志华
[2].《统计学习方法》---李航
[3]. DeepLearning.ai笔记
[4]. https://blog.csdn.net/jinping_shi/article/details/52433975
[5].https://blog.csdn.net/zouxy09/article/details/24971995