概述
L0范数惩罚
机器学习中最常用的正则化措施是限制模型的能力,其中最著名的方法就是L1和L2范数惩罚。
假如我们需要拟合一批二次函数分布的数据,但我们并不知道数据的分布规律,我们可能会先使用一次函数去拟合,再使用二次函数、三次、四次、等等次数的函数去拟合,从中选择拟合效果最好的一个函数来作为我们最终的模型。
上面的方法未免显得有些太繁琐,如果有一批数据输入指数为50的函数分布,按照以上尝试的方法难道我们要尝试50次以上?这显然不太可能。
我们可以上来就先定义一个高次多项式,例如:
对于我们刚开始提出的问题,从我们定义的一个n次多项式到最佳的二次多项式:
我们发现,其实就是限制高次项的系数为0.用数学符号表示:
s.t.
这样的思路固然好,但是就是不方便实现,我们需要记录所有的函数对应的参数,对于深度学习这种拥有百万级参数规模的学习模型来说,那简直是不可想象的。
因此我们放松限制,仅仅控制参数的数目,而不是从高到低的顺序限制参数。我们将不为0的参数数量限制再c以内来达到限制模型的目的,如下式子所示:
这种方式被称为L0范数惩罚。
L1范数惩罚
虽然我们已经放松了限制,但是以上表达式并不完美,对于实际应用并不是太友好,那么我们不妨再放松一下限制,不要求非零的参数个数控制再c以内,但要求参数绝对值数值的和控制再c以内,如下式所示:
这种参数数值总和的限制被称之为L1范数惩罚,也被成为参数稀疏性惩罚。
虽然高次项系数可能不为0,但如果发生如下式子中的情况,那么高次项也可以被轻松忽略了:
加入L1范数惩罚项的代价函数如下所示:
计算加入L1范数惩罚函数的代价函数的梯度:(由于绝对值不可导,我们其实只是在原代价函数梯度的基础上再加上lambda与参数本身的符号函数乘积。
相对于权重衰减,L1范数限制的更为严格,因此也就更加稀疏,稀疏性也就是我们最终优化所得的参数中有很多0,稀疏性一大好处就是有利于特征选择。
L2范数惩罚
虽然我们已经更加放松了限制,但是这还是不完美,因为带有绝对值,我们都知道,绝对值函数再求梯度时不可导,因此我们再次放宽限制,将求绝对值和变为求平方和,如下式所示,这就是L2范数惩罚,也就是我们熟悉的权重衰减惩罚。
我们可以通过控制c值的大小来限制模型的学习能力,c越大,模型能力就越强(过拟合),c越小,模型能力就越弱(欠拟合)。该条件极值可以通过拉格朗日乘子法来进行求解。
对于L2范数求梯度:
对于以上式子,若为0,则新的代价函数与原代价函数等价。(>=0)
最后
以上就是清秀大叔为你收集整理的深度学习正则化-参数范数惩罚(L1,L2范数)的全部内容,希望文章能够帮你解决深度学习正则化-参数范数惩罚(L1,L2范数)所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复