【机器学习】过拟合与正则化
创始人
2024-05-24 23:32:07

上一章——逻辑回归

文章目录

  • 三种拟合状态
  • 解决过拟合的三种方法
  • 什么是正则化
  • 正则化的数学原理
    • 线性回归
  • 恭喜


三种拟合状态

在之前的课程中,我们说过机器学习的中极为重要的一步,就是给训练集找到一条合适的拟合曲线。
还是以房价问题这个回归问题为例,我们可以把拟合状态分为以下三种:
在这里插入图片描述

在我们刚刚接触的时候,用的就是线性回归的方式来拟合,如上图所示,显然线性回归并不是很拟合上图的数据,我们把这种状态称为欠拟合,欠拟合代表当前的假设函数对于数据的拟合状态欠佳,并不太适合,专业术语称为高偏差(high bias),偏差(bias)指的是算法的期望预测与真实结果的偏离程度
在这里插入图片描述

后来我们学习了更好的拟合方法:用多项式函数来拟合。在上面这个例子中显然多项式函数拟合更为适当,它的偏差较小,并且我们希望对于还未加入训练集的其他样本,也能和我们当前的模型相符。我们把这种能力称为:泛化,指的是当前的算法对于其他未加入的样本依然具有适用性。虽然函数并没有完美拟合所有的数据点,但是依然很够用了。
在这里插入图片描述

是不是函数能够完美拟合所有数据点就是最好的呢?让我们看看上图的例子,我们在粉色点处添加一个数据,并且拓展到了四次项,最后得到了一个完美经过所有数据点的函数。但是我们却认为这样的函数是不适合的,称为过拟合,意思就是它对数据的拟合程度已经过头了,不具有泛化性。我们可以称其为具有高方差(high variance),方差(variance)指同样大小训练集的变动而导致的学习性能的变化

在这里插入图片描述另一个例子就是分类问题,还是以肿瘤问题为例,我们可以看到过拟合和欠拟合都不适合这个模型,我们允许出现偏差和方差,但是不应该为了拟合某几个数据而导致全局误差变大,过拟合和欠拟合的问题就在于此。

最后让我们来总结一下三种拟合状态:
我们要清楚,尽管我们要尽可能拟合数据,但并不是拟合程度越高越好,走向极端往往会导致覆灭。我们既不需要拟合欠佳的欠拟合,也不需要拟合过度的过拟合,我们需要的是对数据具有泛化能力的拟合,达到刚刚好的程度。

  • 欠拟合的特点是:低拟合,高偏差
  • 过拟合的特点是:过拟合,高方差
  • 恰当的拟合拥有的特点是:高拟合,泛化性

机器学习的目的就是找到一个既不欠拟合,又不过拟合的模型,换句话说就是找到一个既没有高偏差,又没有高方差的模型。


解决过拟合的三种方法

在这里插入图片描述
假设你拟合出了上面这种模型,不难发现这样是过拟合的,不过我们当然有方法来解决它。
在这里插入图片描述
如果说我们要预测的数据的确存在着某种关系,那么其中的一个解决方法就是尽可能地收集更多训练样本。如上图所示,在上面这个例子中,当我们收集了足够多的训练样本之后,发现整体样本的确存在着类似二次函数的关系,那么随着样本的增加,拟合程度也越来越正确。
从理论上来讲,足够多的训练样本是可以解决过拟合问题的。但是这种方法的缺点在于实际上可能并没有这么多的训练样本。
在这里插入图片描述
从函数构造的角度出发,我们最终得到的过拟合函数往往是由于多项式的项数过多导致的,准确来说是由于“特征很多,但是对应的数据却很缺乏”,而项数是由特征数量决定的。因此,如果能够减少项数,也就是减少特征的数量,就能解决过拟合问题。因此减少特征数量也是一种解决方法。我们可以通过选择特征子集构建假设函数解决过拟合的问题。但是这种方法的缺点在于如果所包含的特征都是有用的特征,我们不得不舍弃掉一些特征来解决过拟合问题,同样会导致最后预测的结果可能出现问题,这是我们不愿意看到的。

在这里插入图片描述
假如我们并不想舍弃特征,也没有那么多的样本,那么正则化将是一种良好的解决过拟合的方法,而在实际中也常常是使用正则化。
假设你想要舍弃特征x4x_4x4​来达到解决过拟合的效果,然而实际并不允许你舍弃它,我们可以转换思路,通过限制这个特征来减少对函数的影响,例如上图,原本x4x_4x4​的系数参数w4w_4w4​是174174174,我们将其系数参数改为0.00010.00010.0001,正则化通过减小了系数参数来减小了该特征对于假设公式整体的权重,从而达到解决过拟合的目的,我们并不是暴力消除这个特征,而是调整了其权重。

总结一下三种方法:

  • 增加样本数量
  • 减少特征选取
  • 使用正则化

接下来我们将解析正则化的数学原理。


什么是正则化

在这里插入图片描述

让我们看看上图的例子,左边是二次项拟合,右边是四次项拟合,对比两种拟合方式显然二次项是更加适合的。但是如果要求选取四个特征,我们的做法就是用正则化来处理。
假设当x取1000,让我们求出参数系数w1...wn和bw_1...w_n和bw1​...wn​和b,你应该没有忘记需要用到最小二乘法构造的代价函数来求(在前几章中参数系数被称为θiθ_iθi​)。注意我们在图中框出的公式,红色部分是二次项拟合的代价函数,而红框+蓝框是右边四次项拟合的代价函数,蓝框是对比之下多出来的部分。
我们的目的是使得四次项拟合接近二次项拟合的效果,我们也讲了方法就是使得高次项参数系数取得足够小,来减少它们对函数的影响。
以上图为例,当x=1000x=1000x=1000,取w3=0.001,w4=0.002w_3=0.001,w_4=0.002w3​=0.001,w4​=0.002,当参数足够小,就能抵消这些特征对函数的影响,最后我们得到的拟合曲线如紫色曲线所示,和二次项十分接近。

在这里插入图片描述

假设你有很多的特征,但是你不知道哪些特征是应该正则化的,哪些特征是不用处理的。我们通常的解决方法是全部正则化,通过惩罚所有的参数系数,我们将拟合出一个更为平滑,更为简单,更不容易过拟合的函数,尽管会牺牲一点准确性,但能有效解决过拟合的问题。
以上图为例,假设你有100个特征,共101个参数,但是我们并不知道哪个特征更重要。最好的解决方法就是对所有特征进行正则化。
正则化公式如下:
J(w⃗,b)=12m∑i=1m(fw⃗,b(x⃗(i))−y(i))2+λ2m∑i=1nwj2J(\vec w,b)=\cfrac{1}{2m}\displaystyle\sum_{i=1}^m \bigg(f_{\vec w,b}(\vec x^{(i)})-y^{(i)}\bigg)^{2}+\cfrac{λ}{2m}\displaystyle\sum_{i=1}^nw_j^2J(w,b)=2m1​i=1∑m​(fw,b​(x(i))−y(i))2+2mλ​i=1∑n​wj2​
在代价函数后面加上的那部分就是正则化公式,其中乘以12m\cfrac{1}{2m}2m1​是为了数据缩放一致
λλλ是正则化参数,和学习率相似,需要自主选择适合的数字。
如果考虑常数系数b的话也可以加入这项:
J(w⃗,b)=12m∑i=1m(fw⃗,b(x⃗(i))−y(i))2+λ2m∑i=1nwj2+λ2mbJ(\vec w,b)=\cfrac{1}{2m}\displaystyle\sum_{i=1}^m \bigg(f_{\vec w,b}(\vec x^{(i)})-y^{(i)}\bigg)^{2}+\cfrac{λ}{2m}\displaystyle\sum_{i=1}^nw_j^2+\cfrac{λ}{2m}bJ(w,b)=2m1​i=1∑m​(fw,b​(x(i))−y(i))2+2mλ​i=1∑n​wj2​+2mλ​b

正则化通常只处理特征的参数系数w1...wnw_1...w_nw1​...wn​,对于常数系数bbb不用处理,当然处理也可。

在这里插入图片描述
再来看这个式子,红色框代表代价函数部分,紫色代表正则化项。
当我们取λ=0λ=0λ=0时,相当于不进行正则化处理,则函数会回到过拟合状态。
在这里插入图片描述
当我们取λ=1010λ=10^{10}λ=1010时,由于取值λ实在太大了,因此所有的参数系数wjw_jwj​的取值会接近0,因此导致未知数项都接近于0,最后得到的假设函数就接近于y=b这条直线,最后的结果是函数变成欠拟合状态。
因此正则化的取值会影响假设函数的拟合状态,当正则化参数λ过小会导致过拟合,当正则化参数λ过大会导致欠拟合,因此取值适当的λ是必要的。


正则化的数学原理

在这里插入图片描述依旧是梯度回归公式,我们只需求出代价函数的偏导即可,如上图所示。

线性回归

让我们试图带入线性回归的假设方程fff看看

在这里插入图片描述
梯度下降带入线性回归的假设方程后展开就变成了这个式子
wj=1wj−αλmwj−α1m∑i=1m(fw⃗,b(x⃗(i))−y(i))xj(i)w_j=1w_j-α\cfrac{λ}{m}w_j-α\cfrac{1}{m}\displaystyle\sum_{i=1}^m \bigg(f_{\vec w,b}(\vec x^{(i)})-y^{(i)}\bigg)x_j^{(i)}wj​=1wj​−αmλ​wj​−αm1​i=1∑m​(fw,b​(x(i))−y(i))xj(i)​
我们将其整理一下可以分成两个部分
①wj(1−αλm)w_j(1-α\cfrac{λ}{m})wj​(1−αmλ​)
②−α1m∑i=1m(fw⃗,b(x⃗(i))−y(i))xj(i)-α\cfrac{1}{m}\displaystyle\sum_{i=1}^m \bigg(f_{\vec w,b}(\vec x^{(i)})-y^{(i)}\bigg)x_j^{(i)}−αm1​i=1∑m​(fw,b​(x(i))−y(i))xj(i)​
在学习率α确定的情况下,②部分的值是一个常量,那么只需看①部分的变化
①部分值随着λ变化,而由于1−αλm<11-α\cfrac{λ}{m}<11−αmλ​<1,因此wj(1−αλm) 我们也知道导数其实代表了函数的变化趋势,在梯度下降算法中证明了当a!=0,λ!=0a!=0,λ!=0a!=0,λ!=0时,wjw_jwj​一定会随着迭代次数的增加而逐渐变小,而这正是正则化的原理所在。

在这里插入图片描述
逻辑回归中也同理,只需替换为对应的假设函数fff和代价函数JJJ即可


恭喜

恭喜你,到此你已经完成了机器学习相关的理论内容,不要忘记复习巩固。在下一章节中我们将学习深度学习的知识内容。

相关内容

热门资讯

苗族的传统节日 贵州苗族节日有... 【岜沙苗族芦笙节】岜沙,苗语叫“分送”,距从江县城7.5公里,是世界上最崇拜树木并以树为神的枪手部落...
北京的名胜古迹 北京最著名的景... 北京从元代开始,逐渐走上帝国首都的道路,先是成为大辽朝五大首都之一的南京城,随着金灭辽,金代从海陵王...
长白山自助游攻略 吉林长白山游... 昨天介绍了西坡的景点详细请看链接:一个人的旅行,据说能看到长白山天池全凭运气,您的运气如何?今日介绍...
世界上最漂亮的人 世界上最漂亮... 此前在某网上,选出了全球265万颜值姣好的女性。从这些数量庞大的女性群体中,人们投票选出了心目中最美...