概述
在机器学习中,损失函数后面通常都会添加一个额外项,用于防止过拟合提高算法的泛化能力,称为正则化惩罚(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=1∑nLi
上面这个公式有一个问题,假设有一个数据集和一个权重集 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,j∑∣Wi,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,j∑Wi,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=1∑nLi+R(W)
关于L1范数和L2范数的具体细节可以参考以下几篇文章:
正则化方法:L1和L2 regularization、数据集扩增、dropout
机器学习中正则化项L1和L2的直观理解
理解:L1正则先验分布是Laplace分布,L2正则先验分布是Gaussian分布
最后
以上就是个性奇迹为你收集整理的机器学习中使用正则化 L1范数和L2范数的原因的全部内容,希望文章能够帮你解决机器学习中使用正则化 L1范数和L2范数的原因所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复