机器学习小知识——神经网络的L1和L2正则化
文章目录
有时候在求解规划问题时,我们想要让得到的解满足一定的条件,换句话说,如果得到的解不能满足一定的条件我们更加倾向于拒绝它,而且这种倾向还是比较大的。这种情况在实际应用中比较常见,比如在准备出去旅行时,我们肯定不太希望背包里面放置特别重的东西,这时候就可以加一个条件,如果物品的重量大于一个给定的临界值,那么它的价值将大大降低,而这种大大降低可以通过给其添加一个很大的系数实现。
同样的,在求解神经网络损失函数的最小值时,我们希望自变量权重向量 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
∣∣w∣∣0是指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}
∥w∥2进行平方,只需要调整
C
C
C的取值即可。
然后我们利用拉式乘子法求解:

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

上面和

等价。所以我们这里得到对L1L2正则化的第一种理解:
L 1 正 则 化 ⇌ 在 原 优 化 目 标 函 数 中 增 加 约 束 条 件 ∥ w ∥ 1 ≤ C L1正则化 \rightleftharpoons 在原优化目标函数中增加约束条件\left \| w \right \|_{1 }\leq C L1正则化⇌在原优化目标函数中增加约束条件∥w∥1≤C
L 2 正 则 化 ⇌ 在 原 优 化 目 标 函 数 中 增 加 约 束 条 件 ∥ w ∥ 2 2 ≤ C L2正则化 \rightleftharpoons 在原优化目标函数中增加约束条件\left \| w \right \|{_{2}^{2}}\leq C L2正则化⇌在原优化目标函数中增加约束条件∥w∥22≤C
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的先验分布为拉普拉斯分布,由最大后验概率估计导出。 L1正则化可通过假设权重w的先验分布为拉普拉斯分布,由最大后验概率估计导出。
L 2 正 则 化 可 通 过 假 设 权 重 w 的 先 验 分 布 为 高 斯 分 布 , 由 最 大 后 验 概 率 估 计 导 出 。 L2正则化可通过假设权重w的先验分布为高斯分布,由最大后验概率估计导出。 L2正则化可通过假设权重w的先验分布为高斯分布,由最大后验概率估计导出。
最大后验概率估计的补充知识及理解
最大后验概率的英文名为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)的最大似然估计。
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐


所有评论(0)