正则化及正则化项的理解

    xiaoxiao2024-11-27  9

           首先了解一下正则性(regularity),正则性衡量了函数光滑的程度,正则性越高,函数越光滑。(光滑衡量了函数的可导性,如果一个函数是光滑函数,则该函数无穷可导,即任意n阶可导)。

           正则化是为了解决过拟合问题。在Andrew Ng的机器学习视频中有提到(详见http://www.cnblogs.com/jianxinzhou/p/4083921.html)。解决过拟合的两种方法:

         方法一:尽量减少选取变量的数量。人工检查每一个变量,并以此来确定哪些变量更为重要,然后,保留那些更为重要的特征变量。显然这种做法需要对问题足够了解,需要专业经验或先验知识。因此,决定哪些变量应该留下不是一件容易的事情。此外,当你舍弃一部分特征变量时,你也舍弃了问题中的一些信息。例如,也许所有的特征变量对于预测房价都是有用的,我们实际上并不想舍弃一些信息或者说舍弃这些特征变量。

    最好的做法是采取某种约束可以自动选择重要的特征变量,自动舍弃不需要的特征变量。

        方法二:正则化。采用正则化方法会自动削弱不重要的特征变量,自动从许多的特征变量中”提取“重要的特征变量,减小特征变量的数量级。这个方法非常有效,当我们有很多特征变量时,其中每一个变量都能对预测产生一点影响。正如在房价预测的例子中看到的那样,我们可以有很多特征变量,其中每一个变量都是有用的,因此我们不希望把它们删掉,这就导致了正则化概念的发生。

    正则化的作用:

    (1)防止过拟合;

    (2)正则化项的引入其实是利用了先验知识,体现了人对问题的解的认知程度或者对解的估计;例如正则化最小二乘问题如下:

    (3)有助于处理 条件数(condition number)不好的情况下矩阵求逆很困难的问题。

    首先看一下条件数的概念:

        如果方阵A是非奇异(A的行列式不等于0,正定矩阵一定是非奇异的)的,那么A的condition number定义为:

                      

    可以看出,如果A是奇异的,那么A的条件数为无穷大。条件数越小,所获得的解越可靠,模型鲁棒性越好,抗干扰能力越强。例如对于模型AX=b,A的条件数 越小(A的行列式远不接近于0),那么A,b的稍微的变化对解X的影响越小,对X的求解对样本集(A、b)中引入的干扰的抵抗能力越强,即所求解X越可靠。

      引入正则化项之后,会降低条件数,提高抗干扰能力,提高泛化能力。如下图所示:

                         

    在样本数小于参数个数的情况下,样本矩阵很可能是不可逆的(条件数很大),而引入正则化项将会解决这个问题。

    事实上,即使使用迭代优化算法,condition number 太大也将会拖慢迭代的收敛速度。

    (4)正则化项的引入平衡了偏差(bias)与方差(variance)、拟合能力与泛化能力、经验风险(平均损失函数)与结构风险(损失函数+正则化项),下图为训练误差和测试误差与模型复杂度之间的关系

                     

    (关于偏差和方差参考误差理论http://blog.csdn.net/linkin1005/article/details/42563229)

    (5)正则化产生了稀疏性(Sparsity),减少了特征向量个数,降低了模型的复杂度。正则化符合奥卡姆剃刀原理,奥卡姆剃刀原理应用于模型选择时采用以下想法:在所有可能选择的模型中,能够很好的解释已知数据并且十分简单才是最好的模型,也就是应该选择的模型。从贝叶斯估计的角度来看,正则化项对应于模型的先验概率,可以假设复杂的模型有较大的先验概率,简单的模型有较小的先验概率。参考http://www.cnblogs.com/Rosanna/p/3946596.html)

    稀疏性(Sparsity)的作用:

    a、特征选择(FeatureSelection):

           稀疏性能实现特征的自动选择。在我们事先假定的特征(或自变量)中,有很多自变量或特征对输出的影响较小,可以看作是不重要的特征或自变量。而正则化项会自动对自变量或特征的系数参数进行惩罚,令某些特征或自变量的参数(权重系数)为0或接近于0,自动选择主要自变量或特征(类此于PCA)。

     b、可解释性(Interpretability):

          稀疏使模型更容易解释。

    例如一回归问题,假设回归模型为:y=w1*x1+w2*x2+…+w1000*x1000+b

    通过学习,如果最后学习到的w*就只有很少的非零元素,大部分W*为0或接近于0,例如只有5个非零的wi,那可以认为y之于这5个(因素)xi有关系,这更有利于人们对问题的认识和分析,抓住影响问题的主要方面(因素)更符合人们的认知习惯。

         实际上,这些参数(W*)的值越小,通常对应于越光滑的函数,也就是更加简单的函数。因此 就不易发生过拟合的问题。(联系文章开头第一段)

     c、卷积神经网络中的稀疏性(Sparsity):

          神经网络中的稀疏性可以被简单地解释如下:如果当神经元的输出接近于1的时候我们认为它被激活,而输出接近于0的时候认为它被抑制,那么使得神经元大部分的时间都是被抑制的限制则被称作稀疏性限制。

    其实,我们上面提到的回归模型:y=w1*x1+w2*x2+…+w1000*x1000+b可以看作是单神经元的神经网络,只不过没有激活函数。因此,我们可以将回归中的正则化技术用到神经网络的训练当中,而且正则化项作用与回归中的正则化项作用相同。

         自编码( Autoencoders)神经网络是一种无监督学习算法,如下图所示,它使用了反向传播算法,并让目标值等于输入值,这看起来是不可能实现的的,因为根据信息论可知,信息是逐层丢失的,对信息的处理不会增加信息,大部分处理会丢失信息。因此,我们只能让输出尽可能的去接近输入。这样做的目的是什么呢?事实上,这给了我们用神经网络提取输入数据的特征的一种思路,我们更关注的是隐含层(layerL2)的输出,因为layerL2的输出是对输入数据的特征表示,即layerL2产生了特征。卷积神经网络是深度学习(deep learning)算法,深度的含义不仅是指神经网络的层数多,而且是指卷积神经网络能自动从输入数据中学习到更为抽象的特征,并将学习到的特征用于分类器的输入进行分类。这部分涉及很多内容,在这里就不延伸了,下面介绍与本文主题相关的内容。

        下面我们以自编码神经网络为例,看一下正则化在神经网络中的应用。详细请参考下面UFLDL网站:

    (http://ufldl.stanford.edu/wiki/index.php/%E8%87%AA%E7%BC%96%E7%A0%81%E7%AE%97%E6%B3%95%E4%B8%8E%E7%A8%80%E7%96%8F%E6%80%A7)

                            

         上图为自编码神经网络,编码所得的“码”即为特征,“编码”的含义就是提取输入数据的特征,其实提取特征的过程有点类似于对输入数据进行编码,估计这就是自编码神经网络的由来。

    自编码( Autoencoders)神经网络的总体代价函数为:

                                 

       等号右边第二项为正则化项,它是基于相对熵的惩罚项,用于限制神经元的激活程度,以此实现神经元的稀疏性。

          

    对于惩罚项:

           通过将正则化项引入自动编码器神经网络的代价函数中,通过训练,便可得到输入数据的稀疏性特征表示。

           那么问题来了,为什么我们要得到稀疏性的特征表示呢?当然是为了防止过拟合,提高泛化能力,更好地解释模型....其实,从生物学的角度,人脑中的大量神经元,当受到外界刺激(图像或者声音)时,只有少量的神经元被激活,大部分神经元处于抑制状态。

          正则化在监督学习和无监督学习算法的模型训练中被广泛使用,下面总结一下常见的几种正则化项及其作用。

    许多模型的代价函数都可以用下式表示,等号右边第一项是损失函数,也有很多种:如均方误差损失函数、Hinge Loss、exp-Loss、log-Loss等;等号右边第二项是正则化项,正则化项可以是模型参数向量的范数。不同的正则化项对参数w的约束不同,取得的效果也不同,常见的正则化项:零范数、一范数、二范数、迹范数、Frobenius范数和核范数等等。

                

         范数的定义如下:

                         

        当p=1时,为L1范数(taxicab norm);p=2时为欧拉范数

    (1)L0范数

        L0范数是指向量中非零元素的个数。L0正则化的值是模型中非零参数的个数,L0正则化可以实现模型参数的的稀疏化。L0正则化是个NP难问题,很难求解,因此一般不用L0范数

                                 

    (2)L1范数

          下式等号右边第二项即为L1正则化项

             

            L1范数是指向量中各个元素绝对值之和,又叫“稀疏规则算子”(Lasso regularization)。

    (3)L2范数

         下式等号右边第二项即为L2正则化项

    在回归里面,有人把有它的回归叫“岭回归”(Ridge Regression)。

    L2范数可以防止过拟合,提升模型的泛化能力;从优化或者数值计算的角度来说,L2范数有助于处理 condition number不好的情况下矩阵求逆很困难的问题。

    L1和L2范数下降速度比较:

    对于L1和L2规则化的代价函数来说,我们可以写成以下形式:

    L1和L2范数约束空间:

    L1范数在二维平面是一个矩形,L2范数在二维空间是一个圆;

            可以看到,L1-ball 与L2-ball 的不同就在于L1在和每个坐标轴相交的地方都有“角”出现,而目标函数的等高线大部分时候第一次都会与L1-ball在角的地方相交。注意到在角的位置就会产生稀疏性,例如图中的相交点就有w1=0,而更高维的时候(想象一下三维的L1-ball 是什么样的?)除了角点以外,还有很多边的轮廓也是既有很大的概率成为第一次相交的地方,又会产生稀疏性。

           相比之下,L2-ball 就没有这样的性质,因为第一次相交的地方不太可能出现在任意坐标轴上,因此不太可能产生稀疏性。这就从直观上来解释了为什么L1-regularization 能产生稀疏性,而L2-regularization 不行的原因了。

           因此,L1会趋向于产生少量的特征,而其他的特征都是0,而L2会选择更多的特征,这些特征的权重系数都会接近于0。

            关于正则化项中参数lamuda的选取:一般采取交叉验证法或启发式方法等。

    (详细参考http://blog.csdn.net/zouxy09/article/details/24972869)

    参考资料:

    http://blog.csdn.net/zouxy09/article/details/24971995

    http://blog.csdn.net/zouxy09/article/details/24972869

    http://www.cnblogs.com/jianxinzhou/p/4083921.html

    http://blog.csdn.net/linkin1005/article/details/42563229

    http://www.cnblogs.com/Rosanna/p/3946596.html

    http://ufldl.stanford.edu/wiki/index.php/%E8%87%AA%E7%BC%96%E7%A0%81%E7%AE%97%E6%B3%95%E4%B8%8E%E7%A8%80%E7%96%8F%E6%80%A7

    《Convex Optimization》

    转载请注明原文地址: https://ju.6miu.com/read-1294028.html
    最新回复(0)