机器学习笔记---正则化为什么可以抑制过拟合?

前言

上期详细的介绍了过拟合的现象。那如何抑制过拟合呢?大家都知道应该加入正则化项,那为什么加入正则化可以达到这个效果?参考了很多资料,所以就有了这篇笔记。
本文约2.3k字,预计阅读15分钟

正则化

机器学习的直观理解

在机器学习中,我们要想找到数据背后的规律,就需要一个足够好的模型在数据上进行推理,这就是机器学习的训练过程。如何来定义模型的好坏呢?这就引入了「损失(代价)函数」的概念。

损失函数(loss function):【指一种将一个事件(在一个样本空间中的一个元素)映射到一个表达与其事件相关的经济成本或机会成本的实数上的一种函数,借此直观表示的一些"成本"与事件的关联】---引自*。通俗来说,就是衡量模型预测的内容和真实内容的差距。在统计学和机器学习中,损失函数的作用是估计参数。

我们定义样本为样本空间,模型函数,故预测值为,损失函数为。因此机器学习的训练过程可以转换为一个在泛函空间内,找到一个使得全局损失最小的模型(当然实际总是会取个平均,此时的损失函数又叫做「经验风险」(empirical risk),即损失函数的期望):

但上述损失函数只考虑了训练集上的经验风险,出现了过拟合的现象。为什么会出现过拟合?因为模型参数过多或者结构过于复杂。故我们需要一个函数来描述模型的复杂程度,即,也就是机器学习中常说到的「正则化项」(regularizer)。为了对抗过拟合,我们也需要去最小化这个函数。结合损失函数和正则化项,使他们的和最小,就可以将经验风险最小化问题转化为结构风险最小化,即机器学习中定义的「目标函数」(objective function):

其中,目标函数,用于控制正则项的参数。

以上便是以机器学习的角度,来讲述为什么需要正则化。总的来说主要是在原有的损失中加入描述模型复杂度的项,将经验风险(损失函数)转化为结构风险(目标函数),综合考虑模型预测与真实的差距和模型复杂度,以达到抑制过拟合的作用。接下来将具体的讲述范数与正则化的关系。

范数与正则化

前提

一般来说,损失函数是一个具有下确界的函数,当预测值与真实值足够接近时,则损失值也会越接近下确界,这保证我们可以求出模型的最优解。当我们加入正则化项,变成目标函数,则也需要能够进行最优化求解。这也就要求正则化项也应该是一个具有下确界的函数,而范数则很好的满足了这个条件。

范数

范数(norm):是具有“长度”概念的函数。在线性代数、泛函分析及相关的数学领域,是一个函数,其为向量空间内的所有向量赋予非零的正长度或大小。

我们假设某向量为,范数满足长度的三条基本性质:

  • 非负性:

  • 齐次性:

  • 三角不等式:

因此,范数也是一个具有下确界的函数,这是由非负性和齐次性所保证的。这一特性使得-范数天然适合做正则项,因为目标函数仍可用梯度下降等方式求解最优化问题。-范数作为正则项时被称为-正则项。

范数的非负性保证了范数有下界。当齐次性等式中的取零时可知,零向量的范数是零,这保证了范数有下确界。

在机器学习中范数需要的向量指的就是参数向量。

正则项

我们简单定义一个线性模型:

其中为样本的个数,为特征的个数,

当训练集中存在统计噪声时(这里我们假设一种可能会发生过拟合的条件),冗余的特征可能会成为过拟合的来源。

统计噪声:指的是某些特征为统计特征,如均值、求和、标准差等。它们加入在特征中,会在一定程度上加快模型的收敛,但它们也同样可以在一个线性模型中得到,对于统计噪声,模型无法从有效特征当中提取信息进行拟合,故而会转向冗余特征。

为了对抗过拟合,如上述所说,我们可以通过降低模型的复杂度。最简单的方法就是令某些学习到的特征参数为0,即。因此,可以引入-范数。

-范数:指的是向量中不为0的个数。

-正则项为:

通过引入-正则项,则对原优化过程加入了一种我们常说的惩罚机制:当优化算法希望增加模型复杂度(此处特指将原来为零的参数更新为非零的情形)以降低模型的经验风险(即降低损失函数的)时,在结构风险上进行大小为(因为增加了1个非零参数)。由于结构风险(目标函数)是综合考虑损失函数和正则化项,若当增加模型复杂度在经验风险的收益不足时,则结构化风险依旧会上升,而此时优化算法也会拒绝此更新

引入-正则化项会使模型参数稀疏化,使得模型易于解释。但是正常机器学习中并不使用-正则化项,因为它有无法避免的问题:非连续、非凸、不可微。所以,我们引入了-范数。

-范数:

-正则项(亦称LASSO-正则项)为:

目标函数为:

我们对目标函数进行对求偏导,计算其梯度:

sgn:符号函数,

故参数更新为:

可以观察最后项,我们发现它始终让,为负,,为正),所以可以实现参数稀疏化

-正则项

机器学习笔记---正则化为什么可以抑制过拟合?

如上图所示,我们发现,当模型发生过拟合时,模型相对于其他模型,曲线函数更加的弯曲,这说明在局部弯曲的部分,切线斜率特别大,(即模型导数的绝对值特别大),对于整个模型来说,我们可以理解为所有的参数的绝对值之和特别大。因此,如果我们有办法使得这些参数的值,比较稠密均匀地集中在零附近,就能有效地抑制过拟合。于是,便引入了范数。

范数:

-正则项为:

目标函数为:

求偏导:

故参数更新为:

我们可以通过调整学习率和正则化参数,使得为0~1之间的数,从而衰减的权重,所有的参数接近于0,从而抑制过拟合。

总结

关于正则化,可以从机器学习比较直观的角度进行描述,也可以从贝叶斯的角度进行推导,还可以从偏差-方差的角度进行理解。

关于正则化项,经常遇到的问题便是为何能够实现参数的稀疏化。除了上述从参数的梯度更新上可以判断,还可以从对应的解空间进行理解。

机器学习笔记---正则化为什么可以抑制过拟合?

参考文献

[1]. *
[2]. 知乎
[3]. https://liam.page/2017/03/30/L1-and-L2-regularizer/

机器学习笔记---正则化为什么可以抑制过拟合?

往期精彩回顾

机器学习笔记---给“过拟合”下一个准确且规范的定义

机器学习笔记---你真的懂决策树么?

机器学习笔记---信息熵

Pandas笔记---通过比赛整理出的10条Pandas实用技巧

Pandas笔记---深入Groupby,它的功能没有你想的这么简单

扫码关注更多精彩

机器学习笔记---正则化为什么可以抑制过拟合?

机器学习笔记---正则化为什么可以抑制过拟合?

机器学习笔记---正则化为什么可以抑制过拟合?

我就知道你“在看”

机器学习笔记---正则化为什么可以抑制过拟合?