正则化「一」机器学习中的正则化

前言正则化系列文章我们将讨论正则化技术在机器学习和深度学习的应用。本文为该系列的第一篇,主要介绍机器学习正则化的概念,原理和应用实例

正则化 技术广泛应用在机器学习和深度学习算法中,本质作用是防止过拟合、提高模型泛化能力。其中过拟合的简单理解就是训练的算法模型太过复杂,模型过分考虑了当前样本的结构。

在早期的机器学习领域一般只是将范数惩罚叫做正则化技术,而在深度学习领域认为,能够显著减少方差,而不过度增加偏差的策略都可以认为是正则化技术。故推广的正则化技术还有:扩增样本集、早停止、Dropout、集成学习、多任务学习、对抗训练、参数共享等。(具体见“花书 第七章 Regularization for Deep Learning”),关于深度学习正则化会在下一篇正则化文章中重点分析。

转载自:https://blog.csdn.net/BigData_Mining/article/details/81631249

1. 多角度看机器学习正则化

机器学习领域正则化可以从以下三个角度进行理解:

(1) 正则化等价于结构风险最小化,其是通过在经验风险项后加上表示模型复杂度的正则化项或惩罚项,达到选择经验风险和模型复杂度都较小的模型目的

经验风险:机器学习中的风险是指模型与真实解之间的误差的积累,经验风险是指使用训练出来的模型进行预测或者分类,存在多大的误差,可以简单理解为训练误差,经验风险最小化即为训练误差最小。

结构风险:结构风险定义为经验风险与置信风险(置信是指可信程度)的和,置信风险越大,模型推广能力越差。可以简单认为结构风险是经验风险后面多加了一项表示模型复杂度的函数项,从而可以同时控制模型训练误差和测试误差,结构风险最小化即为在保证模型分类精度(经验风险)的同时,降低模型复杂度,提高泛化能力。

公式表达 $$ R(f)=\frac{1}{n}\sum_{i=1}^{n}L(y_i,f(x_i)) + \lambda \Omega (f) \tag{1} $$ ​ 其中,$R(f)$表示结构风险,$L(y_i,f(x_i))$表示第 $i$ 个样本的经验风险,$\Omega(f)$是表征模型复杂度的正则项,$\lambda$ 是正则化参数。根据奥姆剃刀定律,“如无必要,勿增实体”,即认为相对简单的模型泛化能力更好。而模型泛化能力强、泛化误差小,即表示模型推广能力强,通俗理解就是在训练集中训练得到的优秀模型能够很好的适用于实际测试数据,而不仅仅是减少训练误差或者测试误差。泛化误差定义如下: $$ E={Bias}^2(X) + {Var}(X) +{Noise} \tag{2} $$ ​ 其中,$E$ 表示泛化误差,${Bias}$ 代表偏差,${Var}$ 代表方差, ${Noise}$ 代表噪声。

关系图

1563350068097

Fig 1. 泛化误差与偏差和方差的关系
​ 从 Fig 1 可以看出,随着训练程度加深,模型复杂度会增加,偏差减少,方差增大,而泛化误差呈现U型变化。对于一个“好的系统”通常要求误差小,正则化的作用即为适当的控制模型复杂度,从而使得**泛化误差曲线**取最小值。

(2) 正则化等价于带约束的目标函数中的约束项

以平方误差损失和L2范数为例,优化问题的数学模型如下: $$ J(\theta)=\sum_{i=1}^{n}(y_i-\theta^Tx_i)^2 \tag{3} $$ $$ {s.t.}{|| \theta ||}_2^2 \leq C\
\tag{4} $$

针对上述约束条件的优化问题,采用拉格朗日乘积算子法可以转化为无约束化问题,即 $$ J(\theta)=\sum_{i=1}^{n}(y_i-w^Tx_i)^2 + \lambda({|| \theta ||}_2^2-C) \tag{5} $$

由于参数 $C$ 为常数,可以忽略,故上述公式和标准的正则化 公式完全一致。

(3) 从贝叶斯角度考虑

正则项等价于引入参数的模型先验概率,可以简单理解为对最大似然估计引入先验概率,从而转化为最大后验估计,其中的先验概率即对于正则项(这部分内容后面详细讲解)。

2 基本概念

正则化也可以成为规则化、权重衰减技术,不同的领域叫法不一样,数学上常用范数实现,例如L1和L2范数,统计学领域叫做惩罚项、罚因子。

下面给出范数的数学公式,方便以后分析:

​ (1) $p$ 范数: $$ Lp=(\sum_{i=1}^{n}{|| x_i ||}^p)^{\frac{1}{p}} \tag{6} $$ ​ (2) $L0$ 范数:0 范数表示向量中非零元素的个数(即为其稀疏度)

​ (3) $L1$ 范数:即向量元素绝对值之和,$p$ 范数取1,即为1范数 $$ {||x||}_1=\sum^n_1 {|| x_i || } \tag{7} $$

​ (4) $L2$ 范数:即向量元素绝对值的平方和再开发,也称欧几里得距离,$p$ 范数取2,即为2范数 $$ {||x||}_{2}=\sqrt{\sum^{n}_1|| x_i ||^2} \tag{8} $$

​ (5) $\infty $ 范数:即所有向量元素的绝对值中的最大值,$p$ 范数取 $\infty $,即为 $\infty $ 范数 $$ {||x ||}_{\infty }=\underset{i}{\max}{\left | x_i \right |} \tag{9} $$

​ (6) $-\infty $ 范数:即所有向量元素绝对值中的最小值,$p$ 范数取$-\infty $,即为 $-\infty $ 范数 $$ {||x ||}_{-\infty }=\underset{i}{\min}{\left | x_i \right |} \tag{10} $$ 图形描述

​ 从 Fig 2、Fig 3 图可以看出:q(p)越小,曲线越贴近坐标轴,q(p)越大,曲线越远离坐标轴,并且棱角越明显,当q(p)取0时候,是完全和坐标轴贴合,当q(p)取无穷的时候,呈现正方体形状。同时也可以看出,采用不同的范数作为正则项,会得到完全不同的算法模型结果,故而对于不同要求的模型,应该采用不同的范数作为正则项。

1563354053269

Fig 2. 向量长度为2维的范数约束
![1563354456894](regulation_baysian/1563354456894.png)
Fig 3. 向量长度为3维的范数约束
## 3 深度理解

​ 为了更好的理解正则化技术原理,下面从4个方面进行深度分析,希望对大家理解有帮助。

3.1 简单数值假设分析法

​ 此处以L2范数讲解,下面的各图形来自吴恩达的机器学习课程。

image-20190619002115576

Fig 4. 不同参数下的曲线拟合结果
​ 左边的曲线拟合是欠拟合,中间的曲线拟合是刚好合适,右边的曲线拟合是过拟合。对于右边的拟合曲线,有 $$ h_{\theta}(x)={\theta}_0+{\theta}_0 x_1 +{\theta}_2 x_2^2 +{\theta}_3 x_3^3 +{\theta}_4 x_4^4 \tag{11} $$ ​ 从上式可以看出,由于$\theta_3$和$\theta_4$对应了高阶,导致拟合曲线是4阶曲线,出现了过拟合。正则化的目的为适当缩减$\theta_3$和$\theta_4$的值,例如都为0.0001,则上述曲线本质上等价与 $$ h_{\theta}(x)={\theta}_0 + {\theta}_1 x_1 +{\theta}_2 x_2^2 \tag{12} $$ ​ 也就是变成了中间的刚好合适的拟合曲线。对于$\theta_3$ 和$\theta_4$增加 L2 正则项后的代价函数表达式为: $$ J(\theta)= \underset{\theta}{\min}\frac{1}{n}\sum_{i=1}^{n}((h_{\theta}(x_i)-y_i)+1000{\theta}_3^2 + 1000 {\theta}_4^2) \tag{13} $$ ​ 从上式可以看出,$\theta_3^2$ 和 $\theta_4^2$ 均大于 0,其乘上了1000,要 $J(\theta)$ 是最小,则会迫使模型学习到的$\theta_3$ 和 $\theta_4$ 会非常小,因为只有在$\theta_3$ 和 $\theta_4$ 会非常小的情况下整个代价函数值才会取的较小值。在实际开发中,是对所有参数进行正则化,为了使代价函数尽可能的小,所有的参数 $\theta$ 的值(不包括 $\theta_0$)都会在一定程度上减小,但是减小程度会不一样,从而实现了权重衰减、简化模型复杂度的作用。

3.2 图形分析法

​ 此处采用L1和L2范数讲解: (1) L2 范数正则 $$ J(\beta)=\sum_{i=1}^{n}(y_i-{\beta}^T x_i)^2 + \lambda {|| {\beta} ||}_2^2 \tag{14} $$ 1563366078400

Fig 5. L2 范数与代价函数的寻优图示
​ 在 Fig 5 中,蓝色的圆形空间表示 L2 范数空间,设为 $\beta_1^2 + \beta_2^2 = r^2$,可以看出,当 $r$ 从 0 逐渐增大时候,该圆形也逐渐增大,红色的线表示原始代价函数解空间即 $\sum_{i=1}^{n}(y_i-\beta^T x_i)^2$,此处为了方便绘图,设参数只有2维。红色圆环上的任何一点都表示一个可行解即代表一组$\beta_1$、$\beta_2$,其中任何一个红色圆环上面的$\beta_1$,$\beta_2$对应的代价函数值一样(可以简单理解为等值线),$\hat{\beta}$ 代表最佳解空间。

4. 贝叶斯角度分析

​ 以L1和L2范数为例,所得结论可以推广到P范数中,首先需要知道:整个最优化问题从贝叶斯观点来看是一种贝叶斯最大后验估计,其中正则化项对应后验估计中的先验信息,损失函数对应后验估计中的似然函数,两者的乘积即对应贝叶斯最大后验估计的形式。针对L1和L2范数还有结论:L2 范数相当于给模型参数设置一个协方差为1/alpha的零均值高斯先验分布,L1 范数相当于给模型参数 设置一个参数为1/alpha 拉普拉斯先验分布

​ 为了讲清楚上述结论,需要具备几点前置知识点:(1) 高斯分布和拉普拉斯分布的定义和形状;(2) 贝叶斯定理;(3) 最大似然估计;(4) 最大后验估计。下面我对这4个知识点进行解释。

(1) 高斯分布和拉普拉斯分布

0?wx_fmt=png

0?wx_fmt=png

(2) 最大似然估计

0?wx_fmt=png

​ 如果上述公式不能理解,请各位读者去复习一下大学课程《概率论与数理统计》中的参数估计章节,为了更方便理解,下面举一个例子:假设我要统计出整个大学内所有同学的身高分布情况,设全校一共20000人,数量庞大,所有人都去问一遍不太靠谱,所以我打算采用抽样方法来估计,假设我已经知道身高分布服从高斯分布,但是我不知道高斯分布中的均值和方差参数,现在我打算采用最大似然估计方法来确定这两个参数。首先需要明确,全校20000即为总体X,我随机从各个班抽取10名同学,假设一共抽了2000个同学,那么2000同学就构成了样本空间,由于每个样本的概率密度函数已知,则很容易写出似然函数,对数求导即可求解参数。

(3) 最大后验估计

0?wx_fmt=png

0?wx_fmt=png

0?wx_fmt=png

5. 例子

5.1 逻辑回归

​ 二分类逻辑回归使用Sigmoid作为决策函数进行分类,该函数可以将任意的输入映射到[0,1]区间,当预测结果小于0.5,则表示负类,当预测结果大于0.5.则表示正类,其模型本质是求最大似然估计,具体求解似然函数通常使用梯度下降法,而前面说过:最大似然估计法没有考虑训练集以外的因素,很容易造成过拟合,故而逻辑回归一般采用L2范数进行正则化操作,Sigmoid函数定义和图形如下:

0?wx_fmt=png

5.2 岭回归(Ridge Regression)

​ 岭回归本质上是针对线性回归问题引入了L2范数正则,通过缩减回归系数避免过拟合问题,最先用来处理特征数多于样本数的情况(高维小样本问题),现在也用于在估计中加人偏差,从而得到更好的估计,加了正则化后的代价函数如下:

0?wx_fmt=png

5.3 Lasso 回归

​ 拉索回归(lasso回归)本质上是针对线性回归问题引入了L1范数正则,通过缩减回归系数避免过拟合问题,其不同于L2范数,其可以将某些系数缩减为0即所谓的具备稀疏性(稀疏性的好处是简化计算、容易理解模型、减少存储空间、不容易出现过拟合等等),加了正则化后的代价函数如下:

0?wx_fmt=png

​ 其中,参数函数和岭回归中相同。L1范数罚有一个问题:由于|X|函数在0处不可导,故而直接使用最小二乘法、梯度下降法等方法均失效,但是由于其为第一类间断点中的可去间断点,可以通过补充该点的定义解决,通常,对于线性回归中的lasso回归可以采用近似的前向逐步回归替代。

5.4 SVM

​ 支持向量机SVM优化目的为寻找一个超平面,使得正负样本能够以最大间隔分离开,从而得到更好的泛化性能,其通过引入核函数来将低维线性不可分的样本映射到高维空间从而线性可分,通过引入惩罚参数C(类似于正则化参数)来对错分样本进行惩罚,从而减少模型复杂度,提高泛化能力,其优化目标如下:

0?wx_fmt=png

​ 大家如果不知道上面公式的推导,不用紧张,对于本次内容不是重点,只需要关注后面正则项部分,惩罚参数C作用和正则化参数作用一致,只是反相关而已。需要明白以下结论:

(1) C越大,正则化参数越小,表示对分错样本的惩罚程度越大,正则化作用越小,偏差越小,方差越大,越容易出现过拟合(通俗理解,原本将低维空间映射到5维空间正好线性可分,但是由于惩罚过于严重,任何一个样本分错了都不可原谅,结果系统只能不断提高维数来拟合样本,假设为10维,最终导致映射维数过高,出现过拟合样本现象,数学上称为VC维较大);

(2) C越小,正则化参数越大,表示对分错样本的惩罚程度越小,正则化作用越大,偏差越大,方差越小,越容易出现欠拟合(通俗理解,原本将低维空间映射到5维空间正好线性可分,但是由于惩罚过小,分错了好多样本都可以理解,比较随意,结果系统也采用简化版来拟合样本,假设为3维,最终导致映射维数过低,出现欠拟合样本现象,数学上称为VC维较小)。

6. 总结

根本目的本质:防止过拟合,提高模型泛化能力。

正则化技术分类: 狭义上(不同地方叫法不同)

  • 在早期的机器学习领域一般只是将范数惩罚叫做正则化技术
  • 规则化、权重衰减
  • 从贝叶斯角度考虑,正则项等价于引入参数的模型先验概率

广义上: 能够显著减少方差,而不过度增加偏差的策略都可以认为是正则化技术,推广的正则化技术还有:扩增样本集、早停止、Dropout、集成学习、多任务学习、对抗训练、参数共享等。

Reference

正则化总结的比较好比较全面的文章

0%