有时候在求解规划问题时,我们想要让得到的解满足一定的条件,换句话说,如果得到的解不能满足一定的条件我们更加倾向于拒绝它,而且这种倾向还是比较大的。这种情况在实际应用中比较常见,比如在准备出去旅行时,我们肯定不太希望背包里面放置特别重的东西,这时候就可以加一个条件,如果物品的重量大于一个给定的临界值,那么它的价值将大大降低,而这种大大降低可以通过给其添加一个很大的系数实现。

同样的,在求解神经网络损失函数的最小值时,我们希望自变量权重向量 w w w满足一定的条件,如果不满足,就给其狠狠地惩罚一下。这时候我们就会在损失函数后面添加一个惩罚项,而这种惩罚项常为两种,我们分别称之为L1正则项和L2正则项,也称为L1范数和L2范数(原因见正则化描述部分)。正则项可以看做是损失函数的惩罚项,用来对损失函数中的系数做一些限制。

1. 正则化描述:

  • L1正则化是指权值向量w中各个元素的绝对值之和,也就是权值向量的1范数;
  • L2正则化是指权值向量w中各个元素的平方和然后再求平方根,同样也是权值向量的2范数;

一般都会在正则化项之前添加一个系数,这个系数需要用户设定,系数越大,正则化作用越明显,也即惩罚越明显。

2. 正则化作用:

  • L1正则化可以产生稀疏权值矩阵,即产生一个稀疏模型,可以用于特征选择;一定程度上,L1也可以防止过拟合;
  • L2正则化可以防止模型过拟合(overfitting);

3. L1正则化作用的原理解释

这一部分主要是摘自未雨愁眸的博客,链接为:文章链接

3.1 何为稀疏矩阵

稀疏矩阵指的是很多元素为0,只有少数元素是非零值的矩阵。

神经网络中输入的特征数量是庞大的,如何选取有效的特征进行分类是神经网络的重要任务之一,如果神经网络是一个稀疏模型,表示只有少数有效的特征(系数非0)可以通过网络,绝大多数特征会被滤除(系数为0),这些被滤除的特征就是对模型没有贡献的“无关”特征,而少数系数是非0值的特征是我们需要额外关注的有效特征。也就是说,稀疏矩阵可以用于特征选择。

3.2 L1正则化是怎么做到产生稀疏模型的?

假设有如下带L1正则化的损失函数:

L o s s = L o s s 0 + α L 1 Loss = Loss_0 + αL1 Loss=Loss0+αL1

L o s s 0 Loss_0 Loss0 是原始损失函数,L1是加的正则化项, α α α 是正则化系数,其中 L1 是 模型中权重 w w w 的绝对值之和。

神经网络训练的目标就是通过随机梯度下降等方法找到损失函数 L o s s Loss Loss的最小值,加了L1之后,相当于对原始 L o s s 0 Loss_0 Loss0做了一个约束,即在 L1 约束下求 L o s s 0 Loss_0 Loss0 最小值的解。

对于最简单的情况,假设模型中只有两个权值 w1 和 w2 ,对于梯度下降法,可以分别画出求解 L o s s 0 Loss_0 Loss0 和 L1 过程中的等值线,如下图:

在这里插入图片描述

等值线是说在等值线上任一点处(取不同的w1和w2组合),模型计算的结果都是一样的。

图中彩色弧线是 L o s s 0 Loss_0 Loss0的等值线,黑色方框是 L1的等值线。在图中,当 L o s s 0 Loss_0 Loss0等值线与L1图形首次相交的地方就是一个最优解,这个相交的点刚好是L1的顶点。

注意到L1函数有很多个突出的点,二维情况下有4个,维数越多顶点越多,这些突出的点会比线段上的点有更大的几率首先接触到 L o s s 0 Loss_0 Loss0的等值线,而这些顶点正好对应有很多权值为0的矩阵, 即稀疏矩阵,这也就是为什么L1正则化可以用来产生稀疏矩阵进而用来进行特征选择的原因。

对于L1正则化前的系数 α α α,是用来控制L1图形的大小, α α α越大,L1中各个系数就相对越小(因为优化目标之一是 α L 1 αL1 αL1的值趋近于0。 α α α大,L1系数取值就会小),L1的图形就越小; α α α越小,L1中各个系数就相对越大,L1的图形就越大。

3.3 L2正则化是怎么做到防止模型过拟合的?

仍以最简单的模型,只有两个权重 w 1 w1 w1 w 2 w2 w2为例, L o s s 0 Loss_0 Loss0和L2分别对应的等值线形状如下图:
在这里插入图片描述

由于L2是 w 1 w1 w1 w 2 w2 w2平方和再开方,所以L2的图形是一个圆。圆形相对方形来说没有顶点, L o s s 0 Loss_0 Loss0 和 L2图形相交使得 w 1 w1 w1或者 w 2 w2 w2等于的概率大大减小,所以L2正则化项不适合产生稀疏矩阵,不适合用来选择特征。

相对来说,模型中所有矩阵系数都比较小的模型具有更强的抗干扰能力,也就是说可以避免过拟合。对于这种小系数的模型,特征会乘以很小的系数,使得特征的波动被压缩,所以泛化能力更好。

L2正则化项的公式是所有权重系数平方之后再开方,所以在每次迭代过程中, 都会使得权重系数在满足最小化 L o s s 0 Loss_0 Loss0的基础上,一步一步使得权重系数 w 1 w1 w1 w 2 w2 w2趋向于0,最终得到权重系数很小的矩阵模型,达到防止过拟合的作用。

对于L1正则化项,如果 α α α系数取很大,也会得到系数极小的最优解,这时的L1也具有防止过拟合的作用。

L1和L2中的 α α α系数的作用是类似的, α α α系数越大,正则化作用越明显(但同时也可能意味着模型越难以收敛),从等值图上直观看就是L图形越小,对应矩阵系数越小。

3.4 对于 w w w越小越能防止过拟合的理解

说明:以下内容摘自gadwgdsk的博客,链接为:文章链接

之前的BP神经网络,训练时候,算法会调整每层的参数 w w w使得损失尽可能小,由于数据存在很多干扰或者噪声,容易产生过拟合现象,导致网络对训练数据预测的效果较好,而对测试和验证数据的预测效果较差。过拟合的决策面可能如下所示:
在这里插入图片描述
事实表明,在相同网络结构下,决策面越复杂,参数w的值往往更大,而w较小时候,得到的决策面相对平缓。L1和L2正则化是在原有损失函数中增加了L2正则化项,在优化网络输出与真值的误差时还要让w尽量小。

我的理解是, w w w越小,训练出来的模型就不会明显地倾向于某一方面,而是相对公平地进行加权。我们常说的过拟合就是明显的偏向于某一方面,因此从这个角度来理解的话 w w w越小越能防止过拟合了。

3.5 L1正则先验分布是Laplace分布,L2正则先验分布是Gaussian分布

要理解这一个首先需要说明一下L1和L2的推导过程,它们的推导过程可以从两个角度:

  • 带约束条件的优化求解(拉格朗日乘子法)
  • 贝叶斯学派的:最大后验概率

3.5.1 基于约束条件的最优化

对于模型权重系数 w w w的求解释通过最小化目标函数实现的,也就是求解:

在这里插入图片描述
首先,模型的复杂度可以用VC来衡量。通常情况下,模型VC维与系数 w w w的个数成线性关系:即:

w w w数量越多,VC越大,模型越复杂

为了限制模型的复杂度,我们要降低VC,自然的思路就是降低 w w w的数量,即:

w w w向量中的一些元素为0或者说限制 w w w中非零元素的个数。我们可以在原优化问题上加入一些优化条件:

在这里插入图片描述
其中约束条件中的 ∣ ∣ w ∣ ∣ 0 ||w||_0 w0是指L0范数,表示的是向量 w w w非零元素的个数,让非零元素的个数小于某一个 C C C,就能有效地控制模型中的非零元素的个数,但是这是一个NP问题,不好解,于是我们需要做一定的“松弛”。为了达到我们想要的效果(权重向量 w w w中尽可能少的非零项),我们不再严格要求某些权重 w w w为0,而是要求权重 w w w向量中某些维度的非零参数尽可能接近于0,尽可能的小,这里我们可以使用L1L2范数来代替L0范数,即:

在这里插入图片描述
注意哈:这里使用L2范数的时候,为了后续处理(其实就是为了优化),可以对 ∥ w ∥ 2 \left \| w \right \|_{2} w2进行平方,只需要调整 C C C的取值即可。

然后我们利用拉式乘子法求解:

在这里插入图片描述
其中这里的 α \alpha α是拉格朗日系数, α \alpha α>0,我们假设 α \alpha α的最优解为 α ∗ \alpha ^{*} α,对拉格朗日函数求最小化等价于:

在这里插入图片描述
上面和

在这里插入图片描述
等价。所以我们这里得到对L1L2正则化的第一种理解:

L 1 正 则 化 ⇌ 在 原 优 化 目 标 函 数 中 增 加 约 束 条 件 ∥ w ∥ 1 ≤ C L1正则化 \rightleftharpoons 在原优化目标函数中增加约束条件\left \| w \right \|_{1 }\leq C L1w1C

L 2 正 则 化 ⇌ 在 原 优 化 目 标 函 数 中 增 加 约 束 条 件 ∥ w ∥ 2 2 ≤ C L2正则化 \rightleftharpoons 在原优化目标函数中增加约束条件\left \| w \right \|{_{2}^{2}}\leq C L2w22C

3.5.2 基于最大后验概率估计

在最大似然估计中,是假设权重 w w w是未知的参数,从而求得对数似然函数(取了log):

在这里插入图片描述
从上式子可以看出:假设 y i y^{i} yi的概率分布不同,就可以得到不同的模型。
若我们假设:

在这里插入图片描述

的高斯分布,我们就可以带入高斯分布的概率密度函数:
在这里插入图片描述
上面的C为常数项,常数项和系数不影响我们求解 m a x    l ( w ) max \ \ l(w) max  l(w)的解,所以我们可以令

在这里插入图片描述
我们就得到了Linear Regursion的代价函数。

在最大化后验概率估计中,我们将权重 w w w看做随机变量,也具有某种分布,从而有:(下面求的是 w w w的后验概率)

在这里插入图片描述
同样取对数:

在这里插入图片描述
可以看出来后验概率函数为在似然函数的基础上增加了 l o g P ( w ) logP(w) logP(w) P ( w ) P(w) P(w)的意义是对权重系数 w w w的概率分布的先验假设,在收集到训练样本 { X , y } \{X,y\} {X,y}后,则可根据 w w w { X , y } \{X,y\} {X,y}下的后验概率对 w w w进行修正,从而做出对 w w w的更好地估计。

若假设 w j w_{j} wj的先验分布为0均值的高斯分布,即

在这里插入图片描述
则有:

在这里插入图片描述
可以看到,在高斯分布下 log ⁡ P ( w ) \log P(w) logP(w)的效果等价于在代价函数中增加L2正则项。

若假设 w j w_{j} wj服从均值为0,参数为a的拉普拉斯分布,即:(这个拉普拉斯分布的概率密度有点问题)
在这里插入图片描述
则有:
在这里插入图片描述
可以看到,在拉普拉斯分布下logP(w)的效果等价在代价函数中增加L1正项。

故此,我们得到对于L1,L2正则化的第二种理解:

L 1 正 则 化 可 通 过 假 设 权 重 w 的 先 验 分 布 为 拉 普 拉 斯 分 布 , 由 最 大 后 验 概 率 估 计 导 出 。 L1正则化可通过假设权重w的先验分布为拉普拉斯分布,由最大后验概率估计导出。 L1w

L 2 正 则 化 可 通 过 假 设 权 重 w 的 先 验 分 布 为 高 斯 分 布 , 由 最 大 后 验 概 率 估 计 导 出 。 L2正则化可通过假设权重w的先验分布为高斯分布,由最大后验概率估计导出。 L2w

最大后验概率估计的补充知识及理解

最大后验概率的英文名为maximum a posterior prabability,简称为MAP

假设我们需要根据观察数据 x x x 估计没有观察到的总体参数 θ \theta θ ,让 f f f 作为 x x x 的采样分布,这样 f ( x ∣ θ ) f(x|\theta) f(xθ)就是总体参数为 θ \theta θ时的概率,同时也是似然函数,因此参数 θ \theta θ的最大似然估计为
在这里插入图片描述
假设 θ \theta θ存在一个先验分布 g g g,这就允许我们将 θ \theta θ作为贝叶斯统计(en:Bayesian statistics)中的随机变量,这样的后验分布就是:

在这里插入图片描述
其中 θ \theta θ g g g的定义域(domain),这是贝叶斯定理的直接应用。

于是最大后验估计方法把 θ \theta θ估计为这个随机变量的后验分布的众数(因为是将 θ \theta θ估计为使其后验概率达到最大时的值,而最大值体现出来就是众数):
在这里插入图片描述

后验分布的分母与 θ \theta θ无关,所以在优化过程中不起作用。注意当前验 g g g是常数函数时最大后验估计与最大似然估计重合

补充说明:最大后验概率与最大似然估计中的经典方法有密切关系,但是它使用了一个增广的优化目标,进一步考虑了被估计量的先验概率分布。所以最大后验概率估计可以看作是规则化(regularization)的最大似然估计。

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐