首页 理论教育 正则化惩罚函数介绍及其应用

正则化惩罚函数介绍及其应用

时间:2023-05-19 理论教育 版权反馈
【摘要】:惩罚函数是在约束优化问题中将约束违反度乘以惩罚项加到目标函数中,构造出带参数的目标函数,是一种有效的求解出约束优化问题的方法。通过对现有矩阵目标函数值加上一个约束违反程度值,对不可行解进行惩罚,将约束优化问题进行迭代计算。惩罚函数的基本步骤如下。第一步,构建惩罚函数。正则化就是利用关于模型的已有的先验概率,是结构风险最小化策略的实现,在形式上只不过增加一个正则化或惩罚项。

正则化惩罚函数介绍及其应用

惩罚函数是在约束优化问题中将约束违反度乘以惩罚项加到目标函数中,构造出带参数的目标函数,是一种有效的求解出约束优化问题的方法。本书的主要思想是把一系列的约束优化问题转变为从数据本身出发的无约束优化问题求解。在一个矩阵中,最优解往往是确定的,实际求解过程往往很难实现最优解,只是无限趋近最优解,根本原因就是惩罚因子不断发生变化。通过对现有矩阵目标函数值加上一个约束违反程度值,对不可行解进行惩罚,将约束优化问题进行迭代计算。本书从非线性约束优化问题求解的角度来计算出所需权值谁更优。惩罚函数的基本步骤如下。

第一步,构建惩罚函数。

第二步,给定C0>0,γ>1,初始化x0∈Rn和允许误差ε≥0,k=1。

第三步,以xk-1为初始点,利用非线性无约束的方法求解ψ(x)的最优解xk

惩罚函数法的主要优点是可以直接利用无约束最优化问题的方法来求解原约束优化问题,本书选取L2来克服惩罚参数选取的问题。

本书使用正则化参数使计算的误差值最小,使用贝叶斯先验的L2监督机器学习问题,利用规则化参数检测最小化误差。所计算的最小化误差是为了让训练模型拟合训练数据,而规则化参数是防止模型过分拟合训练数据。

由于参数数目太多,可能会导致模型复杂程度迅速上升,出现数据过拟合现象,也就是使得训练误差很小,这也是正则化处理的主要目的。

选择能够较好地解释已有的数据并且简洁的模型是我们选择模型的基本规则之一。正则化就是利用关于模型的已有的先验概率,是结构风险最小化策略的实现,在形式上只不过增加一个正则化或惩罚项。

根据一般规则,最小化的目标函数就是监督学习:

在此,前面一项L(yi,f(xi,w))主要用来考察一个误差,即模型对第i个样本的检验值f(xi,w)和真实的标签值yi之前的误差。要求这一项最小,也就是要求模型尽量拟合训练数据。加上第二项是要求模型测试误差小,也即对参数w的规则化函数Ω(w)去约束模型尽量简单,本书选取L2范数

(一)L2范数正则化

规则化范数使用的是L2范数——‖W‖2,在回归里面叫“岭回归”(ridge regression),同时也叫权值衰减(weight decay)。它可以很好地改善机器学习中的过拟合问题,就是让模型训练的误差很小。

向量各元素的平方和然后求平方根就是L2范数。让L2范数的规则项‖W‖2最小,可以使得W的每个元素都很小,接近于0,但与L1范数不同,它不会等于0,而是接近于0。越小的参数说明模型越简单,越简单的模型则越不容易出现过拟合现象。通过L2范数,可以实现对模型空间的限制,从而在一定程度上避免过拟合。L2范数有以下两个特点。

1.学习理论的角度

从学习理论的角度来说,L2范数可以防止过拟合,提升模型的泛化能力。

2.优化计算的角度

从优化或者数值计算的角度来说,L2范数有助于处理条件数值。优化有两大难题,一是局部最小值,二是ill-condition病态问题。我们要找的是全局最小值,如果局部最小值太多,那么优化算法就很容易陷入局部最小而不能自拔。条件数用来衡量ill-condition系统的可信度,如果方阵A是非奇异的,那么A的条件数定义为:K(A)=‖A‖‖A-1‖。

实际上,每一个可逆方阵都存在一个条件数。方阵A如果是奇异的,那么方阵A的条件数就是一个正无穷大了。但如果要计算它,需要先知道这个方阵的范数和机器的精度。范数就相当于衡量一个矩阵的大小。我们知道本来矩阵是没有大小的,但是当要衡量一个矩阵A或者向量b的变化的时候,解x变化的大小和范数即矩阵的大小就有很大关系。

L2范数可以有助于处理条件数不好的情况下矩阵求逆困难的问题。因为目标函数如果是二次函数,对于线性回归来说,实际上是有解析解的,求导并令导数等于零即可得到最优解为:

当样本X的数目比每个样本的维度还要小的时候,矩阵XTX将会不是满秩的,也就是XTX会变得不可逆,所以ω*没办法直接计算。或者更确切地说,将会有无穷多个解,会出现过拟合。

但如果加上L2规则项,就变成了下面这种情况,可以直接求逆:

考虑没有规则项的时候,也就是λ=0的情况,如果矩阵XTX的条件数很大的话,解线性方程组就会在数值上相当不稳定,而这个规则项的引入可以改善条件数。

另外,如果使用迭代优化的算法,条件数太大仍然会导致问题,即它会拖慢迭代的收敛速度,而规则项从优化的角度来看,实际上是将目标函数变成λ-strongly convex(λ强凸)。当f满足:(www.xing528.com)

称f为λ-强凸函数,其中参数λ>0。当λ=0时,退回到普通凸函数的定义。

在直观地说明强凸之前,先看看普通的凸是怎样的。假设让f在x的地方做一阶泰勒近似

直观来讲,凸性质是指函数曲线位于该点处的切线,也就是线性近似之上,而强凸则进一步要求位于该处的一个二次函数上方,也就是说函数不要太平滑,而是保证有一定的向上增长的趋势。使凸可以保证函数在任意一点都处于它的一阶泰勒函数之上,而强凸可以保证函数在任意一点都存在一个二次下界。这是一个非常重要的假设,具体如图7-2所示。

函数f(w)取最优解w*的地方,实数对应的函数都会位于虚线对应的二次函数之上,即使wt和w*离得比较近的时候,f(wt)和f(w*)的值的差别也较大,也就是保证在最优解w*附近的时候,还存在较大的梯度值,这样才可以在比较少的迭代次数内达到w*。如图7-2所示,实数对应的函数f(w)只约束在一个线性的虚线对应的函数之上,如果在曲线非常平坦的情况下,wt还离最优点w*很远的时候,近似梯度就已经非常小,在wt处的近似梯度就更小,这样通过梯度下降,得到的结果w的变化是非常缓慢地向最优点w*爬动,在有限的迭代时间内,它离最优点还是很远。

图7-2 惩罚函数梯度下降图

所以仅仅靠凸性质并不能保证在梯度下降和有限的迭代次数的情况下得到的点w会是一个比较好的全局最小点w*的近似点,让迭代在接近最优的地方停止,也是一种规则化或者提高泛化性能的方法。如果f(w)在全局最小点w*周围是非常平坦的情况,有可能会找到一个很远的点。但如果遇到强凸的话,就能对情况做一些控制,因此可以得到一个更好的近似解。最优解的界的好坏也要取决于强凸性质中的常数α的大小。在梯度下降中,目标函数收敛速率的上界实际上是和矩阵XTX的条件数有关,XTX的条件数越小,上界就越小,收敛速度会越快。

(二)L2模型建模与惩罚函数值计算

L2范数不仅可以防止过拟合,还可以让优化求解变得稳定和快速。

1.下降速度

L2是规则化的方式,将权值参数以L2的方式放到代价函数里面,模型就会尝试去最小化这些权值参数。而这个最小化就像一个下坡的过程,L1和L2的差别就在于速度不同,L2是按二次函数的倍数下降的。所以实际上在0附近,L2的下降速度较慢。

2.模型空间的限制

L2规则化的代价函数,可以写成以下形式:

也就是说,将模型空间限制在w的一个L2中,建模过程主要如图7-3所示。

图7-3 惩罚函数算法流程图

在给定的包括权值的数据集中,D={(x1,y1),(x2,y2),…,(xm,ym)},其中x∈Rd,y∈R,考虑最简单的线性模型,以平方误差为损失函数,则优化函数有:

当样本特征很多,样本数相对较少时,为了缓解过拟合问题,对上式引入正则化项,则有:

其中,正则化参数λ>0,通过引入L2范数正则化,可以降低过拟合的风险,进一步算出惩罚函数值。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈