机器学习中的正则化技术L0,L1与L2范数

使用机器学习算法过程中,如果太过于追求准确率,就可能会造成过拟合。使用正则化技术可以在一定程度上防止过拟合。首先来回顾一下过拟合的概念。过拟合简单来说就是对于当前的训练数据拟合程度过高以至于模型失去了泛化能力。下面是一个房屋预测的例子:左侧的图是欠拟合,即对于当前数据集的拟合程度不够,欠拟合的特征是在训练集和测试集上的准确率都不好。右边的为过拟合状态,过拟合对于当前数据拟合得太好了
摘要由CSDN通过智能技术生成

使用机器学习算法过程中,如果太过于追求准确率,就可能会造成过拟合。使用正则化技术可以在一定程度上防止过拟合。首先来回顾一下过拟合的概念。

过拟合简单来说就是对于当前的训练数据拟合程度过高以至于模型失去了泛化能力。下面是一个房屋预测的例子:

左侧的图是欠拟合,即对于当前数据集的拟合程度不够,欠拟合的特征是在训练集和测试集上的准确率都不好。右边的为过拟合状态,过拟合对于当前数据拟合得太好了,以至于模型只在当前的数据集上表现良好而在其他数据集上表现就不是那么好了,所以过拟合的特征是在训练集上准确率很高而在训练集上表现一般。

解决过拟合主要有两种方法:

1.减少特征数量

2.正则化

这里我们主要说一说L1与L2范数正则化。


L2范数(L2-normal)  


L2范数也被称为权重衰减(weight decay),为什么称为权重衰减,这个我们一会就会知道。线性回归中应用L2范数也被称为岭回归,在其他文献中也有将L2范数称为Tikhonov正则。首先我们通过线性回归来看一下L2范数。

线性回归的代价函数为:

加入正则化后,代价函数变为:

如何理解上式?可以把上式分为两部分,左边部分即为原始的代价函数,右边部分为L2正则化项(注意:正则化项中不包含theta0)。lambda为超参数,通常会取一个较大的数。为了最小化整个代价函数,因为lambda是固定的,那么就要减小theta1-n的值。对于上图中的那种过拟合状态,加入正则项后,theta1-theta4减小,也就是使得权重衰减,这样就会降低高阶项对于整个函数的影响,使得估计函数变得比较平滑。可以想象一种极端的情况,如果lambda为无穷大,那么theta1-thetan趋近于0,那么整个式子就只剩一个theta,为一条和y轴垂直的直线,这种状态为严重的欠拟合状态。可以看到,当lambda为0时,即为原来的状态,此时过拟合,而当lambda过大时又会导致欠拟合,所以会有一个恰当的lambda使得模型处于既不过拟合又不欠拟合的状态。

加入正则项后,梯度下降算法变为:

Repeat{

}

可以看到,由于学习速率a>0, >0(而且这两个值一般都是很小的正数),所以1-a <1,即每次theta在更新的时候都会缩小一下。

上面我们对线性回归应用的正则化就是L2正则化,通常被称为权重衰减(weight decay)的L2参数范数惩罚。在其他文献或论文中,L2有时也被称为岭回归和Tikhonov正则。

正如在线性回归中的应用,L2参数正则化就是在损失函数中加入一个L2范数和一个超参数lambda,L2范数用||w||^2这种符号表示,它的意思是对于向量w中的各个数先求平方再加和。线性回归中加入的对于theta j求平方和就是一个L2范数。而超参数lambda则用于控制参数惩罚的程度。


L1范数(L1-normal)与L0范数


L0范数是指向量中非0的元素的个数。如果我们用L0范数来规则化一个参数矩阵W的话,就是希望W的大部分元素都是0,换句话说,就是让参数W是稀疏的。通常使参数稀疏都是用L1范数实现,L1范数是指向量中各个元素绝对值之和,也有个美称叫“稀疏规则算子”(Lasso regularization)。既然L0可以实现稀疏,为什么不用L0,而要用L1呢?个人理解一是因为L0范数很难优化求解(NP难问题),二是L1范数是L0范数的最优凸近似,而且它比L0范数要容易优化求解。

L1范数为什么可以实现稀疏呢?

L1范数的表达式如下:


J0为原始的损失函数,加号后面的一项是L1正则化项, α 是正则化系数。注意到L1正则化是权值的绝对值之和, J 是带有绝对值符号的函数,因此 J 是不完全可微的。机器学习的任务就是要通过一些方法(比如梯度下降)求出损失函数的最小值。当我们在原始损失函数 J0 后添加L1正则化项时,相当于对 J

  • 14
    点赞
  • 47
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值