机器学习35:理解正则化

机器学习35:理解正则化

1)奥卡姆剃刀原则:

        “如无必要,勿增实体”,即简单有效原理,切勿浪费较多东西去做,用较少的东西同样可以做好的事情。

2)稀疏参数的好处:

          1)可以简化模型,避免过拟合。

                因为一个模型中真正重要的参数可能并不多,如果考虑所有的参数起作用对训练数据可以预测的很好,但是可能对测试数据表现性能极差;

          2)参数变少可以使整个模型获得更好的可解释性。

3)参数值小的好处:

          参数值越小代表模型越简单。

          这是因为越复杂的模型,越是会尝试对所有的样本进行拟合,甚至包括一些异常样本点,这就容易造成在较小的区间里预测值会产生较大的波动。

          这种较大的波动也反映了在这个区间里的导数很大,而只有较大的参数值才能产生较大的导数。因此复杂的模型,其参数值会比较大。

4)参数正则化的作用:

          正则化,它的目标就是要同时让经验风险和模型复杂度较小。

          一个机器学习系统学习的是从输入到输出的关系,只要一个模型足够复杂,它可以记住所有的训练集合样本之间的映射,代价就是模型复杂,副作用就是没见过的只是略有不同的样本可能表现地就很差,只是更改了输入的一个像素可能预测结果就出现改变。

          造成这种情况的问题就是学的太过,参数拟合的太好以致于超过了前面那个训练曲线的最低泛化误差临界点,究其根本原因是模型的表达能力足够强大到过拟合数据集。

          下式是模型优化目标,V就是损失函数,它表示的是当输入xi预测输出为f(xi),而真实标签为yi时的损失。

          上式中的R(f),正是为了约束模型的表达能力,f是模型,R是一个跟模型复杂度相关的函数,单调递增。

          模型的表达能力跟模型大小(参数量)有关,限制模型的表达能力不是应该去调整模型大小(参数量)吗?如果我们限制一层神经网络的参数只能为0或者1,它的表达能力肯定不如不做限制,所以同样的参数量,模型的表达能力与参数本身也有关系,正则项就是在参数上做文章。

          所以说正则化就用于提高模型的泛化能力,正则化的最终目标用一句土话来说,就是让网络学的不要太死从而变成僵硬的书呆子。

5)正则化的有效性分析:

          在用正则化技术估计参数w时,引入了我们对参数的先验认知,即我们认为参数的绝对值应该很小。

          以L1正则化为例:

          正则化技术就是使得上式的值尽可能小,与此同时,要保证||w||的值也尽可能小,即:     

          在上式中,优化函数的目标变成了两个,w的取值不仅要使得L(w)的值最小,也要使得||w||的值最小。

           一方面要使得L(w)的取值最小必然w的绝对值会取到很大,这样模型才能完美拟合训练样本点;另一方面,当w的绝对值很大时,||w||的值又会变得很大。

          因此为了权衡,只有使得w取值适当,才能保证上式的值取到最优,这样得到的曲线比上上式得到的曲线平滑很多,因此具有泛化能力。

          值得注意的是,式中的t是L(w)与||w||之间的一个trade-off(权衡),如果t过大,那么表明对模型参数w的惩罚越狠,这样得到的模型处于欠拟合状态,如果t过小,那么表明对模型参数w的惩罚越小,这样得到的模型处于过拟合状态,只有选择合适的t,才能使得到的模型具有很好地泛化能力。

          关于如何选择t的值,工程上一般采取交叉验证的方式来确定一个较合理的t。

6L1正则化有效性分析:

           随着海量数据处理的兴起工程上对于模型稀疏化的要求也随之出现。这时候L2正则化已经不能满足需求,因为它只是使得模型的参数值趋近于0,而不是等于0,这样就无法丢掉模型里的任何一个特征,因此无法做到稀疏化。

           L1正则化的作用是使得大部分模型参数的值等于0,这样一来,当模型训练好后,这些权值等于0的特征可以省去,从而达到稀疏化的目的,也节省了存储的空间,因为在计算时,值为0的特征都可以不用存储了。

           上式中||w||1为w的1范式,即 :

            L1正则化的性质为:

            1)L1正则化对于所有权重予以同样的惩罚,不管模型参数的大小都施加同等力度的惩罚,因此,较小的权重在被惩罚后,就会变成0。

                 因此,在经过L1正则化后,大量模型参数的值变为0或趋近于0,当然也有一部分参数的值飙得很高。由于大量模型参数变为0,这些参数就不会出现在最终的模型中,因此达到了稀疏化的作用,这也说明了L1正则化自带特征选择的功能。

            2)从贝叶斯推导的角度看,我们可以认为上上式中的第二项为参数w的一个均值为0的拉普拉斯先验分布。

                  从高斯概率密度函数和拉普拉斯概率密度函数的图形中可以看出,拉普拉斯概率密度函数的截尾比高斯概率密度函数的截尾更长,也就是说L1正则化更能够接受绝对值较大的参数值。

            3)从性质2可知,既然拉普拉斯分布比高斯分布有更长的截尾,那么可以推知L1正则化的鲁棒性要好于L2正则化,也就是说,L1正则化对于绝对值较大的参数没有L2正则化那么敏感,从而能够容忍一些这样的参数留下。

            4)由1范式的定义可知,L1正则化在任意权值为0的时候不可导,因此上上式不能求出w的解析解,同时,基于梯度的优化算法也无法高效地计算出w的值,因此对于L1正则化,一般可以采取坐标下降法求解。

7L2正则化有效性分析:

          L2正则化的表达式为:

         上式中,||w||2为w的2范式,平方是为了求解的方便。

          L2正则化的性质为:

            1)从上式中可以看出,L2正则化对于绝对值较大的权重予以很重的惩罚,对于绝对值很小的权重予以非常非常小的惩罚,当权重绝对值趋近于0时,基本不惩罚。

                 这个性质与L2的平方项有关系,即越大的数,其平方越大,越小的数,比如小于1的数,其平方反而越小。

            2)从贝叶斯推导的角度可以认为上式中的第二项为参数w的一个均值为0的高斯先验分布,即,w~N(0, b2)。这也符合我们对于参数w的先验认知:w的绝对值不是很大。

            3)从性质2可知,既然w的先验分布服从高斯分布,那么L2正则化的作用实际上就是使得参数向量w的大部分分量的值趋近于0,而不是等于0。这一点在处理具有共线性特征的特征集时非常重要,也是L2在这种情况下胜过L1的原因。

            4)由于上式是个凸函数,并且函数可微,因此w的值具有解析解:

                  从解的解析表达式可以看出,w的求解不需要对X-1是否存在作任何假设,因为I为单位矩阵,因此解析式中的逆始终存在。

8L1/L2正则化的对比:

          当相关特征数远大于训练样本数时,无论是L1还是L2,都无法取得很好的效果。

           L1在需要稀疏化模型的场景下,才能发挥很好的作用并且效果远胜于L2。在模型特征个数远大于训练样本数的情况下,如果我们事先知道模型的特征中只有少量相关特征(即参数值不为0),并且相关特征的个数少于训练样本数,那么L1的效果远好于L2。

          比如在文本分类中,如果我们将一篇文章的所有词语作为它的特征,那么很显然,其中绝大部分特征是无关特征,只有很少量的特征是相关特征。这时,如果我们将每篇文章作为训练样本,直接扔进L1正则化的模型,那么可以通过L1的稀疏化性质去掉无关特征,只留下相关特征。从而L1在这里起到了特征选择的作用,也就省去了特征工程这一步,因为特征工程往往还是需要人工干预的,L1的做法则直接进行特征选择避免了人工干预。

           然而,如果模型的特征服从高斯分布,那么从贝叶斯的观点来看,即便特征数远超训练样本数,L2也要优于L1。

           在实际工程中,L1不总是可用。当训练数据里的特征很多是共线性的,比方说,有几个特征的共线性很高,并且它们对于分类都很重要,这时L1的做法是随机选择其中一个特征,而扔掉其它的特征。试想,如果训练数据中有很多这样类似的特征,那么经过L1正则化后的模型将会失去很多有用的特征,进而导致模型误差较大。

           这个时候,我们不得不选择L2正则化了,但由于L2正则化在面对大量无关特征并且特征不是由高斯分布产生时,误差依然很大,因此我们需要在训练模型之前,先进行特征选择,然后再用L2正则化,L2正则化的特点是,在面对几个存在共线性的特征时,它会将权值平分给这些特征,从而使得这些有用的特征都得以留下,从而改进了模型准确率。

           加入了特征工程的L2正则化稍显麻烦,实践中也可以采取L1+L2结合的方式,即elastic net。这种方式同时兼顾特征选择(L1)和权重衰减(L2)。其公式如下:

(9)总结之我对正则化的理解:

          1)首先引入对网络模型的两个先验:

                对贝叶斯先验的理解参见上一篇博客。

                1.稀疏参数的好处:

                   a.可以简化模型,避免过拟合。

                   b. 因为一个模型中真正重要的参数可能并不多,如果考虑所有的参数起作用对训练数据可以预测的很好,但是可能对测试数据表现性能极差;

                   c.参数变少可以使整个模型获得更好的可解释性。

                2.参数值小的好处:

                   a. 参数值越小代表模型越简单。

                   b.这是因为越复杂的模型,越是会尝试对所有的样本进行拟合,甚至包括一些异常样本点,这就容易造成在较小的区间里预测值会产生较大的波动。

                   c.这种较大的波动也反映了在这个区间里的导数很大,而只有较大的参数值才能产生较大的导数。因此复杂的模型,其参数值会比较大。

          2)加入正则项:

                正则项是一个关于模型的权重参数的函数,L1正则项为各个参数绝对值之和,L2正则项为各个参数的平方和的开方值。

                原来的训练目标为最小化损失函数,加入正则项后的训练目标为最小化损失函数和正则项的和。因为训练损失在模型越复杂的情况下应该越低,所以损失函数加入正则项这相当于做了一个权衡,在更小的损失函数和更简洁的网络模型/更小的模型参数之间找到平衡,这也满足了奥卡姆剃刀的简单有效原则。

                其中正则化系数越大,对权值系数的惩罚越大;正则化系数越小,对权值系数的惩罚越小。

          3L1正则化和L2正则化的区别:

                L1正则项对所有权重给予相同的惩罚,因此L1正则化的作用是使大部分模型参数值较小的参数置0,权值得0的特征值省去后使得模型稀疏化从而改善过拟合。

                L2正则化使大权重获得较大惩罚,使小权重获得较小的惩罚,从而使大部分权重系数的分量值更接近于0,从而使参数值小而改善过拟合。

          

(10)参考资料:

            https://www.zhihu.com/question/20924039          

发布了92 篇原创文章 · 获赞 17 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/weixin_39504171/article/details/105723069