[视频讲解]史上最全面的正则化技术总结与分析!
作者:黄海安
编辑:栾志勇
PART
01 摘要
引言
正则化是一种有效的防止过拟合、提高模型泛化能力方法,在机器学习和深度学习算法中应用非常广泛,本文从机器学习正则化着手,首先阐述了正则化技术的一般作用和概念,然后针对L1和L2范数正则从4个方面深入理解,最后对常用的典型算法应用进行了分析和总结,后续文章将分析深度学习中的正则化技术。
注意:本文有对应的视频讲解,如果对文中哪里不理解的可以观看对应的视频。
视频讲解链接
百度网盘地址:
链接:http://pan.baidu.com/s/1bplk5eZ
密码:myd3
PART
02 正则化作用及其常见术语
正则化技术广泛应用在机器学习和深度学习算法中,本质作用是防止过拟合、提高模型泛化能力。过拟合简单理解就是训练的算法模型太过复杂了,过分考虑了当前样本结构。其是防止过拟合的其中一种技术手段。
在早期的机器学习领域一般只是将范数惩罚叫做正则化技术,而在深度学习领域认为:能够显著减少方差,而不过度增加偏差的策略都可以认为是正则化技术,故推广的正则化技术还有:扩增样本集、早停止、Dropout、集成学习、多任务学习、对抗训练、参数共享等。(具体见“花书”,会在下一次文章中重点分析)。
对于机器学习领域正则化技术可以从以下几个不同角度进行理解:
(1) 正则化等价于结构风险最小化,其是通过在经验风险项后加上表示模型复杂度的正则化项或惩罚项,达到选择经验风险和模型复杂度都较小的模型目的。
经验风险:机器学习中的风险是指模型与真实解之间的误差的积累,经验风险是指使用训练出来的模型进行预测或者分类,存在多大的误差,可以简单理解为训练误差,经验风险最小化即为训练误差最小。
结构风险:结构风险定义为经验风险与置信风险(置信是指可信程度)的和,置信风险越大,模型推广能力越差。可以简单认为结构风险是经验风险后面多加了一项表示模型复杂度的函数项,从而可以同时控制模型训练误差和测试误差,结构风险最小化即为在保证模型分类精度(经验风险)的同时,降低模型复杂度,提高泛化能力。
从上图可以看出,随着训练程度加深,模型复杂度会增加,偏差减少,方差增大,而泛化误差呈现U型变化,对于一个“好的系统”通常要求误差小,正则化的作用即为适当的控制模型复杂度,从而使得泛化误差曲线取最小值。
(2) 正则化等价于带约束的目标函数中的约束项
(3) 从贝叶斯角度考虑,正则项等价于引入参数的模型先验概率,可以简单理解为对最大似然估计引入先验概率,从而转化为最大后验估计,其中的先验概率即对于正则项(这部分内容后面详细讲解)。
PART
03 基本概念
假设向量长度为2维,则有下列图形:
假设向量长度为3维,则有下列图形:
从上述各图可以看出:q(p)越小,曲线越贴近坐标轴,q(p)越大,曲线越远离坐标轴,并且棱角越明显,当q(p)取0时候,是完全和坐标轴贴合,当q(p)取无穷的时候,呈现正方体形状。同时也可以看出,采用不同的范数作为正则项,会得到完全不同的算法模型结果,故而对于不同要求的模型,应该采用不同的范数作为正则项。
PART
04 深度理解
为了更好的理解正则化技术原理,下面从4个方面进行深度分析,希望对大家理解有帮助。
此处以L2范数讲解,下面的各图形来自吴恩达的机器学习课程。
图4 不同参数下的曲线拟合结果
此处采用L1和L2范数讲解:
(1) L2范数正则
(2) L1范数正则
以L1和L2范数为例,所得结论可以推广到P范数中,首先需要知道:整个最优化问题从贝叶斯观点来看是一种贝叶斯最大后验估计,其中正则化项对应后验估计中的先验信息,损失函数对应后验估计中的似然函数,两者的乘积即对应贝叶斯最大后验估计的形式。针对L1和L2范数还有结论:L2范数相当于给模型参数设置一个协方差为1/alpha的零均值高斯先验分布,L1范数相当于给模型参数设置一个参数为1/alpha的拉普拉斯先验分布。
为了讲清楚上述结论,需要具备几点前置知识点:(1) 高斯分布和拉普拉斯分布的定义和形状;(2) 贝叶斯定理;(3) 最大似然估计;(4) 最大后验估计。下面我对这4个知识点进行解释。
(1) 高斯分布和拉普拉斯分布
(2) 最大似然估计
如果上述公式不能理解,请各位读者去复习一下大学课程《概率论与数理统计》中的参数估计章节,为了更方便理解,下面举一个例子:假设我要统计出整个大学内所有同学的身高分布情况,设全校一共20000人,数量庞大,所有人都去问一遍不太靠谱,所以我打算采用抽样方法来估计,假设我已经知道身高分布服从高斯分布,但是我不知道高斯分布中的均值和方差参数,现在我打算采用最大似然估计方法来确定这两个参数。首先需要明确,全校20000即为总体X,我随机从各个班抽取10名同学,假设一共抽了2000个同学,那么2000同学就构成了样本空间,由于每个样本的概率密度函数已知,则很容易写出似然函数,对数求导即可求解参数。
(3) 最大后验估计
PART
05 典型算法应用
二分类逻辑回归使用Sigmoid作为决策函数进行分类,该函数可以将任意的输入映射到[0,1]区间,当预测结果小于0.5,则表示负类,当预测结果大于0.5.则表示正类,其模型本质是求最大似然估计,具体求解似然函数通常使用梯度下降法,而前面说过:最大似然估计法没有考虑训练集以外的因素,很容易造成过拟合,故而逻辑回归一般采用L2范数进行正则化操作,Sigmoid函数定义和图形如下:
岭回归本质上是针对线性回归问题引入了L2范数正则,通过缩减回归系数避免过拟合问题,最先用来处理特征数多于样本数的情况(高维小样本问题),现在也用于在估计中加人偏差,从而得到更好的估计,加了正则化后的代价函数如下:
拉索回归(lasso回归)本质上是针对线性回归问题引入了L1范数正则,通过缩减回归系数避免过拟合问题,其不同于L2范数,其可以将某些系数缩减为0即所谓的具备稀疏性(稀疏性的好处是简化计算、容易理解模型、减少存储空间、不容易出现过拟合等等),加了正则化后的代价函数如下:
其中,参数函数和岭回归中相同。L1范数罚有一个问题:由于|X|函数在0处不可导,故而直接使用最小二乘法、梯度下降法等方法均失效,但是由于其为第一类间断点中的可去间断点,可以通过补充该点的定义解决,通常,对于线性回归中的lasso回归可以采用近似的前向逐步回归替代。
支持向量机SVM优化目的为寻找一个超平面,使得正负样本能够以最大间隔分离开,从而得到更好的泛化性能,其通过引入核函数来将低维线性不可分的样本映射到高维空间从而线性可分,通过引入惩罚参数C(类似于正则化参数)来对错分样本进行惩罚,从而减少模型复杂度,提高泛化能力,其优化目标如下:
大家如果不知道上面公式的推导,不用紧张,对于本次内容不是重点,只需要关注后面正则项部分,惩罚参数C作用和正则化参数作用一致,只是反相关而已。需要明白以下结论:
(1) C越大,正则化参数越小,表示对分错样本的惩罚程度越大,正则化作用越小,偏差越小,方差越大,越容易出现过拟合(通俗理解,原本将低维空间映射到5维空间正好线性可分,但是由于惩罚过于严重,任何一个样本分错了都不可原谅,结果系统只能不断提高维数来拟合样本,假设为10维,最终导致映射维数过高,出现过拟合样本现象,数学上称为VC维较大);
(2) C越小,正则化参数越大,表示对分错样本的惩罚程度越小,正则化作用越大,偏差越大,方差越小,越容易出现欠拟合(通俗理解,原本将低维空间映射到5维空间正好线性可分,但是由于惩罚过小,分错了好多样本都可以理解,比较随意,结果系统也采用简化版来拟合样本,假设为3维,最终导致映射维数过低,出现欠拟合样本现象,数学上称为VC维较小)。
本文从各个角度深入的分析了机器学习算法中使用到的正则化技术,正则化技术是机器学习和深度学习中非常重要的内容,不管是在面试、笔试还是实际应用中都至关重要,通过本文您应该知道以下重要结论:
(1) 正则化的作用是防止过拟合、提高模型泛化能力
(2) 正则化等价于结构风险最小化
(3) 正则化等价于带约束的目标函数中的约束项
(4) 正则项等价于引入参数的模型先验概率
(5) 在误差符合均值为0的高斯分布,则最大似然估计和最小二乘法等价
(6) 最大后验估计就是在最大似然估计函数上面乘上了一项先验分布而已
(7) L2范数相当于给模型参数设置一个零均值高斯先验分布,L1范数相当于给模型参数设置一个拉普拉斯先验分布
(8) L0和L1正则可以得到稀疏解,而L2不能,并且参数优化速度L1快于L2,但是L2更容易理解,计算更方便。
有一个需要注意的地方:正则化方法一般都是不对偏移项进行正则的,原因是它们也没有和数据直接有乘法等交互,其不会影响到最后结果中某个数据维度的作用,如果你执意要对其进行正则化,也是可以的,对结果没有多少影响。
前面讨论了,正则化是一种可以有效防止过拟合的方法,然而如何判断模型是否或者容易出现过拟合?常用的办法有:(1) 比较模型对验证集和训练集的识别精度,如果验证集识别精度大幅低于训练集,则可以判断模型存在过拟合;(2) 训练集的代价函数快速下降至0附近,也可以怀疑出现了过拟合;(3) 样本个数比特征个数少,也很容易出现过拟合。
由于本人水平有限,如果哪里有写错的或者理解不到位的,欢迎提出建议!
[1] 概率论与数理统计浙大版(第四版)教材
[2] 吴恩达CS229课程
[3] Deep Learning
[4] pattern recognition and machinelearning
[5] http://www.jianshu.com/p/a47c46153326
[6] http://www.jianshu.com/p/f71848c7aaf3
[7] https://www.zhihu.com/question/23536142/answer/90135994
[8] 其他优秀的博客
自我介绍:
本人,姓名:黄海安,网名:深度眸,南京航空航天大学硕士,业余工程师
各位朋友可以通过以下方式获取前面的视频和文档
(1) 关注:机器学习算法全栈工程师 微信公众号,后续我的文章和视频会首先发布在上面,其二维码为:
(2) 加我个人的QQ群,ML和DL视频分享群(678455658)。在群里大家可以对本视频提出任何意见
(3) 腾讯视频网站、其他公众号和其他一些网站等
欢迎各位提出宝贵意见!
往
期
推
荐
3.RNN入门与实践
扫描个人微信号,
拉你进机器学习大牛群。
福利满满,名额已不多…
80%的AI从业者已关注我们微信公众号