新起点
正则化 (数学)
2020-06-14 22:00:55

在数学与计算机科学中,尤其是在机器学习和逆问题领域中,正则化(英语:regularization)是指为解决适定性问题或过拟合而加入额外信息的过程。

在机器学习和逆问题的优化过程中,正则项往往被加在目标函数当中。

概括来讲,机器学习的训练过程,就是要找到一个足够好的函数 F {\displaystyle F^{*}} 用以在新的数据上进行推理。为了定义什么是“好”,人们引入了损失函数的概念。一般地,对于样本 ( x , y ) {\displaystyle ({\vec {x}},y)} 和模型 F {\displaystyle F} ,有预测值 y ^ = F ( x ) {\displaystyle {\hat {y}}=F({\vec {x}})} 。损失函数是定义在 R × R R {\displaystyle \mathbb {R} \times \mathbb {R} \to \mathbb {R} } 上的二元函数 ( y , y ^ ) {\displaystyle \ell (y,{\hat {y}})} ,用来描述基准真相和模型预测值之间的差距。一般来说,损失函数是一个有下确界的函数;当基准真相和模型预测值足够接近,损失函数的值也会接近该下确界。

因此,机器学习的训练过程可以被转化为训练集 D {\displaystyle {\mathcal {D}}} 上的最小化问题。我们的目标是在泛函空间内,找到使得全局损失 L ( F ) = i D ( y i , y ^ i ) {\displaystyle L(F)=\sum _{i\in {\mathcal {D}}}\ell (y_{i},{\hat {y}}_{i})} 最小的模型 F {\displaystyle F^{*}}

F := arg min F L ( F ) . {\displaystyle F^{*}:=\mathop {\text{arg min}} _{F}L(F).}

由于损失函数只考虑在训练集上的经验风险,这种做法可能会导致过拟合。为了对抗过拟合,我们需要向损失函数中加入描述模型复杂程度的正则项 Ω ( F ) {\displaystyle \Omega (F)} ,将经验风险最小化问题转化为结构风险最小化。

F := arg min F Obj ( F ) = arg min F ( L ( F ) + γ Ω ( F ) ) , γ > 0. {\displaystyle F^{*}:=\mathop {\text{arg min}} _{F}{\text{Obj}}(F)=\mathop {\text{arg min}} _{F}{\bigl (}L(F)+\gamma \Omega (F){\bigr )},\qquad \gamma >0.}

这里, Obj ( F ) {\displaystyle {\text{Obj}}(F)} 称为目标函数,它描述模型的结构风险; L ( F ) {\displaystyle L(F)} 是训练集上的损失函数; Ω ( F ) {\displaystyle \Omega (F)} 是正则项,描述模型的复杂程度; γ {\displaystyle \gamma } 是用于控制正则项重要程度的参数。正则项通常包括对光滑度及向量空间内范数上界的限制。 L p {\displaystyle L_{p}} -范数是一种常见的正则项。

在贝叶斯学派的观点(英语:Bayesian_interpretation_of_kernel_regularization)看来,正则项是在模型训练过程中引入了某种模型参数的先验分布。

所谓范数即是抽象之长度,通常意义上满足长度的三种性质:非负性、齐次性和三角不等式。

以函数的观点来看,范数是定义在 R n R {\displaystyle \mathbb {R} ^{n}\to \mathbb {R} } 的函数;并且它和损失函数类似,也具有下确界。后一性质是由范数的非负性和齐次性保证的。这一特性使得 L p {\displaystyle L_{p}} -范数天然适合做正则项,因为目标函数仍可用梯度下降等方式求解最优化问题。 L p {\displaystyle L_{p}} -范数作为正则项时被称为 L p {\displaystyle L_{p}} -正则项。

机器学习模型当中的参数,可形式化地组成参数向量,记为 ω {\displaystyle {\vec {\omega }}} 。不失一般性,以线性模型为例:

F ( x ; ω ) := ω x = i = 1 n ω i x i . {\displaystyle F({\vec {x}};{\vec {\omega }}):={\vec {\omega }}^{\intercal }\cdot {\vec {x}}=\sum _{i=1}^{n}\omega _{i}\cdot x_{i}.}

由于训练集当中统计噪声的存在,冗余的特征可能成为过拟合的一种来源。这是因为,对于统计噪声,模型无法从有效特征当中提取信息进行拟合,故而会转向冗余特征。为了对抗此类过拟合现象,人们会希望让尽可能多的 ω i {\displaystyle \omega _{i}} 为零。为此,最直观地,可以引入 L 0 {\displaystyle L_{0}} -正则项

Ω ( F ( x ; ω ) ) := γ 0 ω 0 n , γ 0 > 0. {\displaystyle \Omega {\bigl (}F({\vec {x}};{\vec {\omega }}){\bigr )}:=\gamma _{0}{\frac {\lVert {\vec {\omega }}\rVert _{0}}{n}},\;\gamma _{0}>0.}

通过引入 L 0 {\displaystyle L_{0}} -正则项,人们实际上是向优化过程引入了一种惩罚机制:当优化算法希望增加模型复杂度(此处特指将原来为零的参数 ω i {\displaystyle \omega _{i}} 更新为非零的情形)以降低模型的经验风险(即降低全局损失)时,在结构风险上进行大小为 γ 0 n {\displaystyle {\tfrac {\gamma _{0}}{n}}} 的惩罚。于是,当增加模型复杂度在经验风险上的收益不足 γ 0 n {\displaystyle {\tfrac {\gamma _{0}}{n}}} 时,整个结构风险实际上会增大而非减小。因此优化算法会拒绝此类更新。

引入 L 0 {\displaystyle L_{0}} -正则项可使模型参数稀疏化,以及使得模型易于解释。但 L 0 {\displaystyle L_{0}} -正则项也有无法避免的问题:非连续、非凸、不可微。因此,在引入 L 0 {\displaystyle L_{0}} -正则项的目标函数上做最优化求解,是一个无法在多项式时间内完成的问题。于是,人们转而考虑 L 0 {\displaystyle L_{0}} -范数的最紧凸放松—— L 1 {\displaystyle L_{1}} -范数,令

Ω ( F ( x ; ω ) ) := γ 1 ω 1 n , γ 1 > 0. {\displaystyle \Omega {\bigl (}F({\vec {x}};{\vec {\omega }}){\bigr )}:=\gamma _{1}{\frac {\lVert {\vec {\omega }}\rVert _{1}}{n}},\;\gamma _{1}>0.}

和引入 L 0 {\displaystyle L_{0}} -正则项的情况类似,引入 L 1 {\displaystyle L_{1}} -正则项是在结构风险上进行大小为 γ 1 | ω i | n {\displaystyle {\tfrac {\gamma _{1}|\omega _{i}|}{n}}} 的惩罚,以达到稀疏化的目的。

L 1 {\displaystyle L_{1}} -正则项亦称LASSO-正则项。

在发生过拟合时,模型的函数曲线往往会发生剧烈的弯折,这意味着模型函数在局部的切线之斜率非常高。一般地,函数的曲率是函数参数的线性组合或非线性组合。为了对抗此类过拟合,人们会希望使得这些参数的值相对稠密且均匀地集中在零附近。于是,人们引入了 L 2 {\displaystyle L_{2}} -范数,作为 L 2 {\displaystyle L_{2}} -正则项。令

Ω ( F ( x ; w ) ) := γ 2 ω 2 2 2 n , γ 2 > 0 , {\displaystyle \Omega {\bigl (}F({\vec {x}};{\vec {w}}){\bigr )}:=\gamma _{2}{\frac {\lVert {\vec {\omega }}\rVert _{2}^{2}}{2n}},\;\gamma _{2}>0,}

于是有目标函数

Obj ( F ) = L ( F ) + γ 2 ω 2 2 2 n , {\displaystyle {\text{Obj}}(F)=L(F)+\gamma _{2}{\frac {\lVert {\vec {\omega }}\rVert _{2}^{2}}{2n}},}

于是对于参数 ω i {\displaystyle \omega _{i}} 取偏微分

Obj ω i = L ω i + γ 2 n ω i . {\displaystyle {\frac {\partial {\text{Obj}}}{\partial \omega _{i}}}={\frac {\partial L}{\partial \omega _{i}}}+{\frac {\gamma _{2}}{n}}\omega _{i}.}

因此,在梯度下降时,参数 ω i {\displaystyle \omega _{i}} 的更新

ω i ω i η L ω i η γ 2 n ω i = ( 1 η γ 2 n ) ω i η L ω i . {\displaystyle \omega '_{i}\gets \omega _{i}-\eta {\frac {\partial L}{\partial \omega _{i}}}-\eta {\frac {\gamma _{2}}{n}}\omega _{i}={\Bigl (}1-\eta {\frac {\gamma _{2}}{n}}{\Bigr )}\omega _{i}-\eta {\frac {\partial L}{\partial \omega _{i}}}.}

注意到 η γ 2 n {\displaystyle \eta {\tfrac {\gamma _{2}}{n}}} 通常是介于 ( 0 , 1 ) {\displaystyle (0,\,1)} 之间的数, L 2 {\displaystyle L_{2}} -正则项会使得参数接近零,从而对抗过拟合。

L 2 {\displaystyle L_{2}} -正则项又称Tikhonov-正则项或Ringe-正则项。

提前停止可看做是时间维度上的正则化。直觉上,随着迭代次数的增加,如梯度下降这样的训练算法倾向于学习愈加复杂的模型。在实践维度上进行正则化有助于控制模型复杂度,提升泛化能力。在实践中,提前停止一般是在训练集上进行训练,而后在统计上独立的验证集上进行评估;当模型在验证集上的性能不在提升时,就提前停止训练。最后,可在测试集上对模型性能做最后测试。

网站公告: