机器学习中使用正则化 L1范数和L2范数的原因

在机器学习中,损失函数后面通常都会添加一个额外项,用于防止过拟合提高算法的泛化能力,称为正则化惩罚(regularization penalty)

为什么要添加这一项呢?大家可以想一下,原来没有这一项时,损失函数 L L L的公式可以表示如下:

L = 1 n ∑ i = 1 n L i L = \frac{1}{n} \sum_{i=1}^n L_i L=n1i=1nLi

上面这个公式有一个问题,假设有一个数据集和一个权重集 W W W能够正确地分类每个数据(即所有的边界都满足,对于所有的 i i i都有 L i = 0 L_i = 0 Li=0),那么这个W是不唯一的,可能有很多相似的 W W W都能正确地分类所有的数据。一个简单的例子:如果 W W W能够正确分类所有数据,即对于每个数据,损失值都是0。那么当 λ > 1 \lambda>1 λ>1时,任何数乘 λ W \lambda W λW都能使得损失值为0,因为这个变化将所有分值的大小都均等地扩大了,所以它们之间的绝对差值也扩大了。

换句话说,我们希望能向某些特定的权重 W W W添加一些偏好,对其他权重则不添加,以此来消除模糊性。这一点是能够实现的,方法是向损失函数增加一个正则化惩罚(regularization penalty),最常用的正则化惩罚就是L1范数和L2范数。

L1范数是对所有权重 W W W的绝对值求和:

R ( W ) = λ n ∑ i , j ∣ W i , j ∣ R(W) = \frac{\lambda}{n} \sum_{i,j}|W_{i,j}| R(W)=nλi,jWi,j

L2范数是对所有权重 W W W进行逐元素的平方求和:

R ( W ) = λ 2 n ∑ i , j W i , j 2 R(W) = \frac{\lambda}{2n}\sum_{i,j}W_{i,j}^2 R(W)=2nλi,jWi,j2

故损失函数的完整表达公式为:

L = 1 n ∑ i = 1 n L i + R ( W ) L = \frac{1}{n} \sum_{i=1}^n L_i + R(W) L=n1i=1nLi+R(W)

关于L1范数和L2范数的具体细节可以参考以下几篇文章:

正则化方法:L1和L2 regularization、数据集扩增、dropout
机器学习中正则化项L1和L2的直观理解
理解:L1正则先验分布是Laplace分布,L2正则先验分布是Gaussian分布

  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值