机器学习(一)~模型评估与选择 之 *正则化

目的: 正则化是为了防止过拟合,选择经验风险和模型复杂度同时较小的模型,进而增强泛化能力(能够很好的解释数据并且十分简单的模型就是最好的模型<奥卡姆剃刀原理>)

在分析正则化之前,需要先了解下面两个问题:
1)参数变稀疏有何优点?

  1. 实现参数稀疏帮助模型进行特征选择,避免不重要特征对数据的干扰,增强泛化能力
  2. 参数变少可以使整个模型获得更好的可解释性

2)参数值变小变均匀有利于缓解过拟合吗?
参数值较大,结果随特征变化敏感,会使得预测值在较小的空间产生较大的波动,因此参数值变小有利于缓解过拟合

1.加入正则化的代价函数公式

在这里插入图片描述
其中,J(w,b) 代表原始代价函数,后面一项为正则化项,m 为训练集样本大小,1/2 便于之后求导无实义,λ 是正则项系数,用于权衡正则项与原始代价函数(经验误差)项的比重,λ 值一般通过交叉验证来选定

2. L1 正则化与L2 正则化

L1正则化表示各个特征参数绝对值之和:
在这里插入图片描述
L2正则化表示各个特征参数的平方的和的开方值:
在这里插入图片描述

  • 在回归模型中加入L1正则称Lasso回归;在回归模型中加入L2正则称Ridge回归
    在这里插入图片描述
    蓝色圆心表示经验风险最小的点(此时过拟合),红色区域为正则化,计算损失函数最小同时,正则化项也小,即求两者相交点为两者之和最小处w*为最佳参数,相当于正则化将损失函数拉大(防止过拟合,提升泛化能力);从图中可以看出,L2正则化时蓝红相交处更大概率为靠近w1=0,使特征参数趋向于0而非0,达到权重衰减的效果;L1正则化时更可能相较于w1=0,使特征参数为0,达到筛选特征的效果
  • 两者均是将所有特征参数考虑进去,L1适用于特征选择(参数变稀疏),L2适用于权重衰减(参数变小)

L1L2 权重更新过程

这两者具体如何实现特征选择或权重衰减呢?
L1正则化权重更新过程:
在这里插入图片描述
sign(x) 为符号函数根据正负性取值1,0,-1;若w为正数,则每次更新会减去一个常数;若w为负数,则每次更新会加上一个常数,所以很容易产生特征的系数为 0 的情况,特征系数为 0 表示该特征不会对结果有任何影响,因此L1正则化会让特征变得稀疏,起到特征选择的作用

L2正则化权重更新过程:
在这里插入图片描述
w前面系数为1-ηλ/m,因为η、λ、m 都是正的,所以 1-ηλ/m 小于1,它的效果是比例化缩放w ,这会让系数绝对值变小趋向于0而不会变为 0,因此正则化会让模型变得更简单,达到权重衰减的结果,而不会起到特征选择的作用

L1L2 对比分析:

优化角度:

由于L1范数用的是绝对值,导致LASSO的优化目标不是连续可导的,也就是说,最小二乘法,梯度下降法,牛顿法,拟牛顿法都不能用
L1正则化问题求解可采用近端梯度下降法(Proximal Gradient Descent,PGD)
L2正则化处处可微,易于优化

实用角度:

  • L1正则化在确实需要稀疏化模型的场景下(如提前已知相关特征很少需要筛选),才能发挥很好的作用并且效果远胜于L2
  • L2正则化在面对大量无关特征并且特征不是由高斯分布产生时,误差很大,需要提前进行特征筛选
  • 当相关特征数远大于训练样本数时,无论是L1还是L2,都无法取得很好的效果
  • 在不用特征筛选时,L2更有优势:训练数据里的特征很多是共线性的,有的多个共线性特征对于分类很重要,这时L1的做法是随机选择其中一个特征,而扔掉其它的特征。这将使模型失去很多有用的特征,进而导致模型误差较大。L2正则化的特点是,在面对几个存在共线性的特征时,它会将权值平分给这些特征,从而使得这些有用的特征都得以留下,改进了模型的准确率

解决方法: 特征工程+L2或者L1+L2:
在这里插入图片描述

3. 其他正则化方法:

增大数据集: 如在目标识别领域将图片进行旋转、缩放等(图片变换的前提是通过变换不能改变图片所属类别,例如手写数字识别,类别6和9进行旋转后容易改变类目)、语音识别中对输入数据添加随机噪声、NLP中进行近义词替换、噪声注入等

dropout: 适用于神经网络中每次通过屏蔽部分神经元,就可以构建出不同的神经网络模型,通过这样的方式降低节点之间的关联性以及模型的复杂度,从而达到正则化的效果。这要求数据集够大,在增大数据集的情况下,使用 dropout 需要使用的计算代价可能会比他带来正则化效果更高

Earlystopping: 提前终止可能是最简单的正则化方式,他适用于模型的表达能力很强的时候。在验证误差不在提升后,提前结束训练;而不是一直等待验证误差到最小值

  • 对于二次优化目标和线性模型,提前停止策略相当于L2正则化;可以用L2正则化代替earlystopping,因为只要训练的时间足够长,多试几个lambda,总可以得到比较好的结果
  • 优点:只运行一次梯度下降,我们就可以找出w的较小值,中间值和较大值,而无需尝试L2正则化超级参数lambda的很多值。
  • 缺点:不能独立地处理训练误差最小和训练误差最小这两个问题,使得要考虑的东西变得复杂
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值