史上最简单易懂、全面详细的“正则化”教程 您所在的位置:网站首页 算命教程简单易懂 史上最简单易懂、全面详细的“正则化”教程

史上最简单易懂、全面详细的“正则化”教程

2024-07-14 05:10| 来源: 网络整理| 查看: 265

1537250305768859.png

 

1537520241840992.png

进入正文

全文摘要

在机器学习和深度学习中,最艰难的问题就是如何面对模型的过拟合问题,处理过拟合的方式手段多样,我们常常听见的方法是“正则化”,但是,很多的资料对于正则化的介绍要么是单调片面、要么是晦涩难懂,本文汲取众家之长,由浅入深,彻底搞明白正则化的原理和应用。

本文偏长,阅读全文约20分钟。

一、模型过拟合

1.1 什么是模型的过拟合

1.  1训练的模型过拟合,根据方差+偏差的分解,则说明“方差”很大,直观的含义就是,模型的稳定性不强,表现在某一个特征输入数据“稍有波动”,模型的效果会变差。因为在测试集上面的很多数据都是没有见过的,相比于训练数据,难免会有差别,故而如果用一个过拟合的模型,在测试集上面的表现自然不好。

      我们称这样的模型“太过复杂”了(注意是引号),复杂的体现在于,模型中求出的参数在训练的时候为了“迎合”误差的减少,很多参数很大(过分强调一些特征),很多参数有很小(一些微小的特征),这样就会导致模型会有一种“偏爱”。自然,因为模型的这点偏爱,导致的结果就是,测试集的数据稍有波动,表现就不好了,即所谓的过拟合。与其说是“复杂”,倒不如说是“畸形”更恰当。

 我们希望模型“简单”

     可以用下面这个例子去类比模型所谓的“简单”和“复杂”。比如我们可以将某一个人类比成一个模型,我们经常说这个人心思很“复杂”,稍微点点事情不满意,就会发脾气(类比过拟合),在别人看来,他的心思是真的复杂,这件事情只不过有一点点不满意(理解为测试样本一点点的波动性),真的搞不懂他心里怎么想的(这难道不是“复杂”么)。复杂的原因莫过于他过分重视一些东西,即所谓的想不开,重视的东西不能有任何偏差。而另外一些人,我们常说她们心思很“简单”,因为他们遇见一些不满意的事情,依然很淡定的对待,和平时没什么两样,心里没想那么多(这不是很简单么),直白的说,就是这个人对一切事物都

1.2 过拟合的解决办法

   自然,我们希望遇到更“简单”的模型,简单的方式有以下几种:

1、获取更多的样本

2、丢弃一部分特征,增强模型的容错能力(比如PCA降维,神经网络的dropout机制)

3、不丢其特征,保留所有的特征,但是减少参数的大小(magnitude)。确保所有的特征对于预测都有所贡献,而不是“偏爱”某几种特征。

 

当每一个特征Xi对y都有贡献的时候,这样的模型是比较健康稳定的,可以良好地工作,

这就是正则化的目的,可以用来解决过拟合。

正则化策略:以增大训练误差为代价,来减少测试误差(如果在训练误差上很小,可能出现过拟合的情况);

 

注意:这里有一个理解层面的不同。

1、有的将L1,L2称之为正则化,因为这是最普遍的用法,此正则化减少模型的“复杂度”是通过让模型的参数不那么“畸形”实现的,并没有减少参数的个数。

2、有的将dropout技术也称之为正则化,因为它通过丢弃参数,也达到了减轻模型“复杂度”的目的。

3、有的甚至更加笼统,只要是能够较轻模型“过拟合”的技术,全部称之为“正则化”毕竟正则化是以增大偏差为代价,减少模型的方差。所以只要是能够防止过拟合的手段,都可以称之为正则化,包括L1,L2(范数约束),dropout、 drop connect、早停法、数据增强与扩充等等都统称正则法。

二、L1、L2正则化

L1、L2正则化的本质是范数约束,目的是为了“惩罚”,惩罚什么呢?后面会回答。

2.1 L2正则化

   L2 正则化公式非常简单,直接在原来的损失函数基础上加上权重参数的平方和:

1.png

其中,cost(f-y) 是未包含正则化项的训练样本误差,λ 是正则化参数,是可以调节的。但是正则化项是如何推导的?接下来,我将详细介绍其中的物理意义。

   我们知道,正则化的目的是限制参数过多或者过大,避免模型更加复杂。例如,使用多项式模型,如果使用 10 阶多项式,模型可能过于复杂,容易发生过拟合。所以,为了防止过拟合,我们可以将其高阶部分的权重 w 限制为 0,这样,就相当于从高阶的形式转换为低阶。

   为了达到这一目的,最直观的方法就是限制 w 的个数,但是这类条件属于 NP-hard 问题,求解非常困难。所以,只能选择另一个方法,限制参数w的大小,一般的做法是寻找更宽松的限定条件:

2.png

   上式是对 w 的平方和做数值上界限定,即所有w 的平方和不超过参数 C。这时候,我们的目标就转换为:最小化训练样本误差 cost(f-y),但是要遵循 w 平方和小于 C 的条件。也可以理解为,在所有参数的平方和不超过C的前提条件下,还使得样本的训练误差最小。

 

 下面,我用一张图来说明如何在限定条件下,对 cost(f-y) 进行最小化的优化。

3.png

注意:因为图片是来自于一位网友的博客,所以图中的字母和文中使用的稍有区别,这个地方仅有两个参数w1,w2,所以正则化约束为,

4.png

在图像上展示就是一个圆而cost(f-y)=f(x1,x2,w1,w2)-y

 

当然,这里的x1、x2、w1、w2之间的关系的可能是一个较为复杂的函数关系,注意,这里的蓝色范围本质上是一个三维图的俯视图范围,因为X轴为w1,Y轴为w2,Z轴为f(x1,x2,w1,w2)。本质上,

cost(f-y)=f(x1,x2,w1,w2)-y和regularity=w12+w22

都是参数w1、w2的函数

    如上图所示,蓝色椭圆区域是最小化 cost(f-y) 区域,红色圆圈是 参数w 的限定条件区域。在没有限定条件的情况下,一般使用梯度下降算法,在蓝色椭圆区域内会一直沿着 w 梯度的反方向前进,直到找到全局最优值即可。例如空间中有一点 w(图中紫色点),此时 w 会沿着 -∇Ein 的方向移动,如图中蓝色箭头(梯度方向)所示。但是,由于存在限定条件,w 不能离开红色圆形区域,最多只能位于圆上边缘位置,沿着切线方向。w 的方向如图中红色箭头所示。

 那么问题来了,存在限定条件,w 最终会在什么位置取得最优解呢?也就是说在满足限定条件的基础上,尽量让 cost(f-y) 最小。

5.png

 

从上面可以得知,如果不考虑正则化范围,运动的方向为“蓝色箭头”,但根据向量的分解,分解为红色箭头(逐渐朝正则化范围边界移动)和绿色剪头,那什么时候停止呢?因为有红色箭头分量的存在,迟早会到达边界,当在正则化项的边界相切的时候,就停止更新参数,我们经常看见这样一句话:代价函数在“模型代价”和“正则化约束”两项规则的综合作用下,正则化后的模型参数应该收敛在“误差等值线”与“正则项等值线”的相切的位置。下面会解释它的含义。

  6.png

如上图所示:

  红色表示的是“正则项等值线”,蓝色的表示的是cost(f-y)的等值线,不一定是圆,这里用圆表示。在没有正则化项时,黑色箭头是梯度的下降方向,在有了正则化项以后,相当于给运动的箭头施加了约束,一方面,我不能逃离红色箭头的约束范围,另一方面,又要保证箭头要向着梯度减小的方向运动,故而运动的曲线是图中的绿色剪头。当红色箭头和绿色剪头相切的时候,不能够再继续向下运动了,因为它就逃离了红色范围的约束。

  现在可以解释正则化“惩罚”二字的含义了。它惩罚的是总的“成本函数”,因为从图中可以看出,黑色箭头到达终点后的“代价函数”很明显是低于绿色剪头所到达的终点处的代价函数,即增加正则化项之后,代价适当增大了,即模型收到了“惩罚”。根据方差-偏差分解原则,偏差增大,方差会减小,方差减小,防止过拟合的能力增强。

(注意:因为L2正则化会让参数趋于“平滑”,所以,有时候也说,惩罚大的参数,即让大的参数变小)

2.2 L1正则化

   L1正则化的原理与L2正则化类似,它的定义如下:

7.png

根据L2的定义方式,则有,此处依然以两个参数w1,w2为例,则有

8.png

 |w1|+|w2|



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有