文章目录

  • 1. 正则化描述:
  • 2. 正则化作用:
  • 3. L1正则化作用的原理解释
  • 3.1 何为稀疏矩阵
  • 3.2 L1正则化是怎么做到产生稀疏模型的?
  • 3.3 L2正则化是怎么做到防止模型过拟合的?
  • 3.4 对于w越小越能防止过拟合的理解
  • 3.5 L1正则先验分布是Laplace分布,L2正则先验分布是Gaussian分布
  • 3.5.1 基于约束条件的最优化
  • 3.5.2 基于最大后验概率估计
  • 最大后验概率估计的补充知识及理解



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

同样的,在求解神经网络损失函数的最小值时,我们希望自变量权重向量神经网络的正则项怎么添加 神经网络 正则项_正则化满足一定的条件,如果不满足,就给其狠狠地惩罚一下。这时候我们就会在损失函数后面添加一个惩罚项,而这种惩罚项常为两种,我们分别称之为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正则化的损失函数:

神经网络的正则项怎么添加 神经网络 正则项_机器学习_02

神经网络的正则项怎么添加 神经网络 正则项_机器学习_03 是原始损失函数,L1是加的正则化项,神经网络的正则项怎么添加 神经网络 正则项_正则化_04 是正则化系数,其中 L1 是 模型中权重 神经网络的正则项怎么添加 神经网络 正则项_正则化

神经网络训练的目标就是通过随机梯度下降等方法找到损失函数神经网络的正则项怎么添加 神经网络 正则项_机器学习_06的最小值,加了L1之后,相当于对原始神经网络的正则项怎么添加 神经网络 正则项_机器学习_03做了一个约束,即在 L1 约束下求神经网络的正则项怎么添加 神经网络 正则项_机器学习_03

对于最简单的情况,假设模型中只有两个权值 w1 和 w2 ,对于梯度下降法,可以分别画出求解 神经网络的正则项怎么添加 神经网络 正则项_机器学习_03

神经网络的正则项怎么添加 神经网络 正则项_机器学习_10

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

图中彩色弧线是神经网络的正则项怎么添加 神经网络 正则项_机器学习_03的等值线,黑色方框是 L1的等值线。在图中,当神经网络的正则项怎么添加 神经网络 正则项_机器学习_03等值线与L1图形首次相交的地方就是一个最优解,这个相交的点刚好是L1的顶点。

注意到L1函数有很多个突出的点,二维情况下有4个,维数越多顶点越多,这些突出的点会比线段上的点有更大的几率首先接触到神经网络的正则项怎么添加 神经网络 正则项_机器学习_03的等值线,而这些顶点正好对应有很多权值为0的矩阵, 即稀疏矩阵,这也就是为什么L1正则化可以用来产生稀疏矩阵进而用来进行特征选择的原因。

对于L1正则化前的系数神经网络的正则项怎么添加 神经网络 正则项_正则化_04,是用来控制L1图形的大小,神经网络的正则项怎么添加 神经网络 正则项_正则化_04越大,L1中各个系数就相对越小(因为优化目标之一是神经网络的正则项怎么添加 神经网络 正则项_正则化_16的值趋近于0。神经网络的正则项怎么添加 神经网络 正则项_正则化_04大,L1系数取值就会小),L1的图形就越小; 神经网络的正则项怎么添加 神经网络 正则项_正则化_04越小,L1中各个系数就相对越大,L1的图形就越大。

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

仍以最简单的模型,只有两个权重神经网络的正则项怎么添加 神经网络 正则项_机器学习_19神经网络的正则项怎么添加 神经网络 正则项_神经网络_20为例,神经网络的正则项怎么添加 神经网络 正则项_机器学习_03和L2分别对应的等值线形状如下图:

神经网络的正则项怎么添加 神经网络 正则项_人工智能_22

由于L2是神经网络的正则项怎么添加 神经网络 正则项_机器学习_19神经网络的正则项怎么添加 神经网络 正则项_神经网络_20平方和再开方,所以L2的图形是一个圆。圆形相对方形来说没有顶点,神经网络的正则项怎么添加 神经网络 正则项_机器学习_03 和 L2图形相交使得 神经网络的正则项怎么添加 神经网络 正则项_机器学习_19或者神经网络的正则项怎么添加 神经网络 正则项_神经网络_20等于的概率大大减小,所以L2正则化项不适合产生稀疏矩阵,不适合用来选择特征。

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

L2正则化项的公式是所有权重系数平方之后再开方,所以在每次迭代过程中, 都会使得权重系数在满足最小化神经网络的正则项怎么添加 神经网络 正则项_机器学习_03的基础上,一步一步使得权重系数神经网络的正则项怎么添加 神经网络 正则项_机器学习_19神经网络的正则项怎么添加 神经网络 正则项_神经网络_20趋向于0,最终得到权重系数很小的矩阵模型,达到防止过拟合的作用。

对于L1正则化项,如果神经网络的正则项怎么添加 神经网络 正则项_正则化_04系数取很大,也会得到系数极小的最优解,这时的L1也具有防止过拟合的作用。

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

3.4 对于神经网络的正则项怎么添加 神经网络 正则项_正则化越小越能防止过拟合的理解

之前的BP神经网络,训练时候,算法会调整每层的参数神经网络的正则项怎么添加 神经网络 正则项_正则化使得损失尽可能小,由于数据存在很多干扰或者噪声,容易产生过拟合现象,导致网络对训练数据预测的效果较好,而对测试和验证数据的预测效果较差。过拟合的决策面可能如下所示:

神经网络的正则项怎么添加 神经网络 正则项_正则化_36


事实表明,在相同网络结构下,决策面越复杂,参数w的值往往更大,而w较小时候,得到的决策面相对平缓。L1和L2正则化是在原有损失函数中增加了L2正则化项,在优化网络输出与真值的误差时还要让w尽量小。

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

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

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

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

3.5.1 基于约束条件的最优化

对于模型权重系数神经网络的正则项怎么添加 神经网络 正则项_正则化的求解释通过最小化目标函数实现的,也就是求解:

神经网络的正则项怎么添加 神经网络 正则项_神经网络的正则项怎么添加_40


首先,模型的复杂度可以用VC来衡量。通常情况下,模型VC维与系数神经网络的正则项怎么添加 神经网络 正则项_正则化的个数成线性关系:即:

神经网络的正则项怎么添加 神经网络 正则项_正则化数量越多,VC越大,模型越复杂

为了限制模型的复杂度,我们要降低VC,自然的思路就是降低神经网络的正则项怎么添加 神经网络 正则项_正则化的数量,即:

神经网络的正则项怎么添加 神经网络 正则项_正则化向量中的一些元素为0或者说限制神经网络的正则项怎么添加 神经网络 正则项_正则化中非零元素的个数。我们可以在原优化问题上加入一些优化条件:

神经网络的正则项怎么添加 神经网络 正则项_正则化_46


其中约束条件中的神经网络的正则项怎么添加 神经网络 正则项_人工智能_47是指L0范数,表示的是向量神经网络的正则项怎么添加 神经网络 正则项_正则化非零元素的个数,让非零元素的个数小于某一个神经网络的正则项怎么添加 神经网络 正则项_神经网络的正则项怎么添加_49,就能有效地控制模型中的非零元素的个数,但是这是一个NP问题,不好解,于是我们需要做一定的“松弛”。为了达到我们想要的效果(权重向量神经网络的正则项怎么添加 神经网络 正则项_正则化中尽可能少的非零项),我们不再严格要求某些权重神经网络的正则项怎么添加 神经网络 正则项_正则化为0,而是要求权重神经网络的正则项怎么添加 神经网络 正则项_正则化向量中某些维度的非零参数尽可能接近于0,尽可能的小,这里我们可以使用L1L2范数来代替L0范数,即:

神经网络的正则项怎么添加 神经网络 正则项_人工智能_53


注意哈:这里使用L2范数的时候,为了后续处理(其实就是为了优化),可以对神经网络的正则项怎么添加 神经网络 正则项_正则化_54进行平方,只需要调整神经网络的正则项怎么添加 神经网络 正则项_神经网络的正则项怎么添加_49的取值即可。

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

神经网络的正则项怎么添加 神经网络 正则项_神经网络_56


其中这里的神经网络的正则项怎么添加 神经网络 正则项_神经网络的正则项怎么添加_57是拉格朗日系数,神经网络的正则项怎么添加 神经网络 正则项_神经网络的正则项怎么添加_57>0,我们假设神经网络的正则项怎么添加 神经网络 正则项_神经网络的正则项怎么添加_57的最优解为神经网络的正则项怎么添加 神经网络 正则项_正则化_60,对拉格朗日函数求最小化等价于:

神经网络的正则项怎么添加 神经网络 正则项_正则化_61


上面和

神经网络的正则项怎么添加 神经网络 正则项_正则化_62


等价。所以我们这里得到对L1L2正则化的第一种理解:

神经网络的正则项怎么添加 神经网络 正则项_正则化_63

神经网络的正则项怎么添加 神经网络 正则项_机器学习_64

3.5.2 基于最大后验概率估计

在最大似然估计中,是假设权重神经网络的正则项怎么添加 神经网络 正则项_正则化是未知的参数,从而求得对数似然函数(取了log):

神经网络的正则项怎么添加 神经网络 正则项_神经网络的正则项怎么添加_66


从上式子可以看出:假设神经网络的正则项怎么添加 神经网络 正则项_机器学习_67的概率分布不同,就可以得到不同的模型。

若我们假设:

神经网络的正则项怎么添加 神经网络 正则项_正则化_68

的高斯分布,我们就可以带入高斯分布的概率密度函数:

神经网络的正则项怎么添加 神经网络 正则项_人工智能_69


上面的C为常数项,常数项和系数不影响我们求解神经网络的正则项怎么添加 神经网络 正则项_机器学习_70的解,所以我们可以令

神经网络的正则项怎么添加 神经网络 正则项_神经网络_71


我们就得到了Linear Regursion的代价函数。

在最大化后验概率估计中,我们将权重神经网络的正则项怎么添加 神经网络 正则项_正则化看做随机变量,也具有某种分布,从而有:(下面求的是神经网络的正则项怎么添加 神经网络 正则项_正则化的后验概率)

神经网络的正则项怎么添加 神经网络 正则项_神经网络_74


同样取对数:

神经网络的正则项怎么添加 神经网络 正则项_神经网络_75


可以看出来后验概率函数为在似然函数的基础上增加了神经网络的正则项怎么添加 神经网络 正则项_机器学习_76神经网络的正则项怎么添加 神经网络 正则项_机器学习_77的意义是对权重系数神经网络的正则项怎么添加 神经网络 正则项_正则化的概率分布的先验假设,在收集到训练样本神经网络的正则项怎么添加 神经网络 正则项_神经网络_79后,则可根据神经网络的正则项怎么添加 神经网络 正则项_正则化神经网络的正则项怎么添加 神经网络 正则项_神经网络_79下的后验概率对神经网络的正则项怎么添加 神经网络 正则项_正则化进行修正,从而做出对神经网络的正则项怎么添加 神经网络 正则项_正则化的更好地估计。

若假设神经网络的正则项怎么添加 神经网络 正则项_机器学习_84的先验分布为0均值的高斯分布,即

神经网络的正则项怎么添加 神经网络 正则项_神经网络_85


则有:

神经网络的正则项怎么添加 神经网络 正则项_神经网络的正则项怎么添加_86


可以看到,在高斯分布下神经网络的正则项怎么添加 神经网络 正则项_正则化_87的效果等价于在代价函数中增加L2正则项。若假设神经网络的正则项怎么添加 神经网络 正则项_机器学习_84服从均值为0,参数为a的拉普拉斯分布,即:(这个拉普拉斯分布的概率密度有点问题)

神经网络的正则项怎么添加 神经网络 正则项_正则化_89


则有:

神经网络的正则项怎么添加 神经网络 正则项_人工智能_90


可以看到,在拉普拉斯分布下logP(w)的效果等价在代价函数中增加L1正项。

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

神经网络的正则项怎么添加 神经网络 正则项_正则化_91

神经网络的正则项怎么添加 神经网络 正则项_机器学习_92

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

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

假设我们需要根据观察数据神经网络的正则项怎么添加 神经网络 正则项_神经网络的正则项怎么添加_93 估计没有观察到的总体参数神经网络的正则项怎么添加 神经网络 正则项_人工智能_94 ,让神经网络的正则项怎么添加 神经网络 正则项_神经网络的正则项怎么添加_95 作为神经网络的正则项怎么添加 神经网络 正则项_神经网络的正则项怎么添加_93 的采样分布,这样 神经网络的正则项怎么添加 神经网络 正则项_神经网络的正则项怎么添加_97就是总体参数为 神经网络的正则项怎么添加 神经网络 正则项_人工智能_94时的概率,同时也是似然函数,因此参数神经网络的正则项怎么添加 神经网络 正则项_人工智能_94的最大似然估计为

神经网络的正则项怎么添加 神经网络 正则项_神经网络_100


假设神经网络的正则项怎么添加 神经网络 正则项_人工智能_94存在一个先验分布 神经网络的正则项怎么添加 神经网络 正则项_神经网络的正则项怎么添加_102,这就允许我们将神经网络的正则项怎么添加 神经网络 正则项_人工智能_94作为贝叶斯统计(en:Bayesian statistics)中的随机变量,这样的后验分布就是:

神经网络的正则项怎么添加 神经网络 正则项_神经网络_104


其中神经网络的正则项怎么添加 神经网络 正则项_人工智能_94神经网络的正则项怎么添加 神经网络 正则项_神经网络的正则项怎么添加_102的定义域(domain),这是贝叶斯定理的直接应用。于是最大后验估计方法把神经网络的正则项怎么添加 神经网络 正则项_人工智能_94估计为这个随机变量的后验分布的众数(因为是将神经网络的正则项怎么添加 神经网络 正则项_人工智能_94估计为使其后验概率达到最大时的值,而最大值体现出来就是众数):

神经网络的正则项怎么添加 神经网络 正则项_机器学习_109

后验分布的分母与神经网络的正则项怎么添加 神经网络 正则项_人工智能_94无关,所以在优化过程中不起作用。注意当前验神经网络的正则项怎么添加 神经网络 正则项_神经网络的正则项怎么添加_111是常数函数时最大后验估计与最大似然估计重合

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