机器学习中的范数规则化-L0,L1和L2范式【很棒的一篇文章!】

监督学习的过程可以概括为:最小化误差的同时规则化参数。最小化误差是为了让模型拟合训练数据,规则化参数是为了防止过拟合。参数过多会导致模型复杂度上升,产生过拟合,即训练误差很小,但测试误差很大,这和监督学习的目标是相违背的。所以需要采取措施,保证模型尽量简单的基础上,最小化训练误差,使模型具有更好的泛化能力(即测试误差也很小)。

范数规则化有两个作用:

1)保证模型尽可能的简单,避免过拟合。

2)约束模型特性,加入一些先验知识,例如稀疏、低秩​等。

一般来说,监督学习中最小化的目标函数结构如下:

其中第一项L​用于计算模型预测值与样本真实值之间的误差,优化目标是希望该项尽可能小(即训练误差尽可能小)。第二项Ω用于对参数进行规则化,保证模型尽可能简单,避免过拟合。

规则化函数Ω有多重选择,不同的选择效果也不同,不过一般是模型复杂度的单调递增函数——模型越复杂,规则化值越大​。例如,可以是模型中参数向量的范数。常见的选择包括零范数,一范数,二范数等。下面挑选部分范数简单说明。

1 L0范数和L1范数

L0范数是指向量中非零元素的个数。如果用L0规则化一个参数矩阵W,就是希望W中大部分元素是零,实现稀疏。

L1范数是指向量中各个元素的绝对值之和,也叫”系数规则算子(Lasso regularization)“。L1范数也可以实现稀疏,通过将无用特征对应的参数W置为零实现。

L0和L1都可以实现稀疏化,不过一般选用L1而不用L0,原因包括:1)L0范数很难优化求解(NP难);2)L1是L0的最优凸近似,比L0更容易优化求解。(这一段解释过于数学化,姑且当做结论记住)

稀疏化的好处是是什么?

1)特征选择

​实现特征的自动选择,去除无用特征。稀疏化可以去掉这些无用特征,将特征对应的权重置为零。

2)可解释性(interpretability)​

例如判断某种病的患病率时,最初有1000个特征,建模后参数经过稀疏化,最终只有5个特征的参数是非零的,那么就可以说影响患病率的主要就是这5个特征。

​2 L2范数

L2范数​​是指向量各元素的平方和然后开方,用在回归模型中也称为岭回归(Ridge regression)。

L2避免过拟合的原理是:让L2范数的规则项||W||尽可能小,可以使得W每个元素都很小,接近于零,但是与L1不同的是,不会等于0;这样得到的模型抗干扰能力强,参数很小时,即使样本数据x发生很大的变化,模型预测值y的变化也会很有限。

L2范数除了避免过拟合问题,还有一个优点是有助于处理condition number不好的情况下,矩阵求解困难的问题。condition number是对系统ill-condition程度的一个衡量标准。假设有方程组Ax=b,需要求解x。如果A或者b发生轻微改变,就会使得x的解发生很大变化,那么这个方程组系统就是ill-condition的,反之就是well-condition的。下图为例说明:

​第一行是两个原始的方程序系统;第二行对系统的b做出轻微修改,左侧方程组的解发生较大变化,右侧的变化不明显;第三行对系统的A做出轻微修改,同样左侧系统的解发生较大变化,右侧的变化不明显。这说明左侧的系统是ill-condition的,右侧的是well-condition的。

具体到通过训练数据建立的模型中时,ill-condition可以说就是不稳定的,当输入的样本数据发生变化时,预测结果就会不准确。​condition number就是用来对系统的ill-condition程度进行衡量的,condition number值小的就是well-condition,反之为ill-condition。

3 L1和L2的差别

1)下降速度

建立模型的过程中,会尝试最小化损失函数,这个过程就像一个下坡的过程,L1和L2的差别在于坡的斜率,如下图所示。

​2)模型空间的限制

使用L1,L2范式建立模型时,损失函数可以写成如下形式:

可以说成是将模型空间限制在w的某个范围内,如下图所示,在(w1,w2)空间上可以画出目标函数的等高线,约束条件则是平面上半径为C的一个norm ball,等高线与norm ball首次相交的地方就是最优解。

​通过对比可以看出,L1-ball和L2-ball的不同在于L1在和每个坐标轴相交的地方都有”角“出现,与目标函数相交的地方也是在角的位置。角的位置就容易产生稀疏性,例如图中的交点处w1=0。L2就没有这样的性质,因为没有角,相交的位置有稀疏性的概率就非常低,从直观上解释了为什么L1能够产生稀疏性而L2就不行。

总结一下就是:L1范式会趋向于产生较少的特征,在特征选择时很有用;L2会选择更多特征,但对应权值接近零。​

4 规则化参数的选择

再来看模型的目标函数

这其中除了损失函数,规则项以外,还包括参数λ,称为hyper-parameters​(超参)。该参数用于平衡损失函数和规则项的,λ越大,则规则项的作用越重要,就是说相比于拟合训练数据,更希望模型能够满足约束条件Ω(w)的特性,反之亦然。举个极端的例子,如果λ=0,规则化项不起作用,就是希望模型能够最小化损失函数项,当模型拟合了所有训练数据时损失函数项最小,但这样得到的模型对于新的数据泛化能力就非常差,产生了过拟合。​由此可知,需要协调λ的值,使得模型即具有较小的训练误差,又具有很好的泛化能力。最常用的方法是交叉验证,实验不同的λ值。

猜你喜欢

转载自blog.csdn.net/weixin_36060730/article/details/78465708
今日推荐