L1、L2正则化和过拟合(转载)

本文转载的是知乎上这篇文章,详细内容可以去看看原文。这里只是为了简单理解L1和L2正则化在克服过拟合中的逻辑。

L1、L2正则化和过拟合

过拟合问题是机器学习中经常需要考虑的问题,有两个办法可以解决过拟合问题,一个是增加更多的数据,另一个是使用正则化来简化模型,使得模型在新的数据上有更好的泛化性能。

常用的正则化方法是L1正则化和L2正则化。在介绍L1和L2正则化之前先了解一下什么是范数。


1. 范数 norm

范数可以将一个向量转换为一个标量,可以理解为衡量一个向量的长度。在遇到机器学习中的低秩,稀疏模型时,会用到各种范数。范数的公式如下:

∣ ∣ x ∣ ∣ p = ( ∣ x 1 ∣ p + . . . + ∣ x n ∣ p ) 1 p ||x||_p = (|x_1|^p + ... + |x_n|^p)^{\frac{1}{p}} ∣∣xp=(x1p+...+xnp)p1


p=1时,就是向量的1范数(L1范数),即向量的各个元素的绝对值之和,又称为曼哈顿距离。使用L1范数可以度量两个向量间的差异(绝对误差和)。

∣ ∣ x ∣ ∣ 1 = ∣ x 1 ∣ + . . . + ∣ x n ∣ ||x||_1 = |x_1| + ... + |x_n| ∣∣x1=x1+...+xn


p=2时,就是向量的2范数(L2范数),即向量的每个元素的平方之和的平方根,也可以表示向量的长度(模)或两点之间的距离,又称为欧氏距离。L2也可以度量两个向量间的差异(平方误差和)。

∣ ∣ x ∣ ∣ 2 = ∣ x 1 ∣ 2 + . . . + ∣ x n ∣ 2 ||x||_2 = \sqrt{ |x_1|^2 + ... + |x_n|^2 } ∣∣x2=x12+...+xn2


2. L1和L2正则化

L1范数和L2范数,用在机器学习中就是L1正则化、L2正则化。正则化就是在原损失函数(目标函数)中引入正则项(惩罚项),下面是多样本的添加了正则项的损失公式,其中 λ 是正则化参数,决定了正则项作用的强弱:

L = 1 N ∑ i L i + λ R ( W ) λ > 0 L = \frac{1}{N}\sum_{i}L_i + \lambda R(W) \qquad \lambda > 0 L=N1iLi+λR(W)λ>0

第一项为data loss,第二项为regularization loss。

数据损失部分表示由权重参数构成的模型对训练数据的拟合程度,但是我们更关心的是该模型对测试数据的拟合程度,添加一个正则项可以简化模型并提高模型在测试数据上的泛化性能,即在模型中添加正则项是为了简化模型,而不是拟合数据。

下面分别是添加L1正则项和L2正则项的损失函数:

L = 1 N ∑ i L i + λ ∑ k ∑ l ∣ W k , l ∣ L = \frac{1}{N}\sum_{i}L_i + \lambda \sum_{k}\sum_{l}|W_{k,l}| L=N1iLi+λklWk,l

L = 1 N ∑ i L i + λ ∑ k ∑ l ∣ W k , l 2 ∣ L = \frac{1}{N}\sum_{i}L_i + \lambda \sum_{k}\sum_{l}|W_{k,l}^2| L=N1iLi+λklWk,l2

L1正则化是指权重矩阵中各个元素的绝对值之和,为了优化正则项,会减少参数的绝对值总和,所以L1正则化倾向于选择稀疏(sparse)权重矩阵(稀疏矩阵指的是很多元素都为0,只有少数元素为非零值的矩阵)。L1正则化主要用于挑选出重要的特征,并舍弃不重要的特征。

L2正则化是指权重矩阵中各个元素的平方和,为了优化正则项,会减少参数平方的总和,所以L2正则化倾向于选择值很小的权重参数(即权重衰减),主要用于防止模型过拟合。是最常用的正则化方法。一定程度上,L1也可以防止过拟合。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值
>