五、过拟合问题与正则化

一、过拟合问题

(一)问题的提出

过拟合问题的定义,以线性回归为例,在房价预测的数据集中,假设函数产生的曲线有三种情况,如下图:

h_\theta(x)=\theta_0+\theta_1xh_\theta(x)=\theta_0+\theta_1x+\theta_2x^2h_\theta(x)=\theta_0+\theta_1x+\theta_2x^2+\theta_3x^3+\theta_4x^4
(1)欠拟合(2)正常拟合(3)过拟合

第一种情况,回归曲线不能很好的拟合数据集,假设函数具有高偏差,被称为欠拟合;

第二种情况,在第一种的基础上增加了一个二次项,可以较好的拟合样本点;

第三种情况,在第二种情况下又增加了三次项和四次项,似乎很好的拟合了数据集,因为它通过了所有的数据点。这种情况我们称为过度拟合,假设函数有高方差。这是由于只要函数足够复杂,那么肯定有一个多项式能够拟合所有的点,但是由于样本点的不足,无法对这个多项式产生很好的约束,这就产生了过度拟合。过度拟合会降低模型的泛化能力,对新样本的预测能力大大下降

以逻辑回归分类为例,在同一个数据集中,由于假设函数的复杂程度不同会产生下面三种情况:

h_\theta(x)=g(\theta_0+\theta_1x_1+\theta_2x_2)h_\theta(x)=g(\theta_0+\theta_1x_1+\theta_2x_2+\theta_3x^2_1+\theta_4x_2^2+\theta_5x_1x_2)h_\theta(x)=g(\theta_0+\theta_1x_1+\theta_2x_2^2+\theta_3x_1x^2_2+\theta_4x_2^2+\theta_5x_1x_2....)
(1)欠拟合(2)正常拟合(3)过拟合

(二)解决过拟合问题的方法

在样本特征过多,但是数量过少时,往往容易产生过拟合现象。

1、减少选择变量的数量

(1)人工选择变量清单,减少变量

(2)模型选择算法(以后的课程会讲),自动选择特征

舍弃变量的同时,也舍弃了一些关于问题的信息。

2、正则化

(1)保存所有的特征变量,但是减小量级或参数\theta_j的大小

当有很多特征时,效果很好,因为每个特征都有助于预测y

二、代价函数

在上述问题中,三次项四次项的参数(\theta_3\theta_4)过大,会导致过拟合问题,降低模型的泛化能力,所以我们要尽可能小的降低\theta_3\theta_4

均方误差代价函数的形式为\underset{\theta}{min}\frac{1}{2m}\sum_{i=1}^{m}(h_\theta(x^{(i)})-y^{(i)})^2,我们的目的就是最小化这个函数,那么现在我们可以对这个函数进行一些修改,如添加两个项,使其变成\underset{\theta}{min}\frac{1}{2m}\sum_{i=1}^{m}(h_\theta(x^{(i)})-y^{(i)})^2+1000\theta^2_3+1000\theta_4^2,其中\theta_3\theta_4的参数我们设置为了1000是个很大的数,公式为了最小化代价函数,就会尽可能的减少\theta_3\theta_4的值,也就是接近于0,好像去掉了这两项一样。

举例说明:

有一个数据集,有100个特征x,假设函数存在101个参数

特征:x_1,x_2,...,x_{100}

参数:\theta_0,\theta_1,\theta_2,..,\theta_{100}

但是此时,我们不知道选择那些参数来缩小它们的值,所以在实际操作中,我们会对所有的参数进行最小化

如线性回归的代价函数为J(\theta)=\frac{1}{2m}\sum_{i=1}^{m}(h_\theta(x^{(i)})-y^{(i)})^2,我们在其中加入正则化项\lambda\sum_{i=1}^{n}\theta_j^2,使之变为J(\theta)=\frac{1}{2m}[\sum_{i=1}^{m}(h_\theta(x^{(i)})-y^{(i)})^2+\lambda\sum_{i=1}^{n}\theta_j^2],即从\theta_1\theta_{100}都最小化,一般会忽略\theta_0,这是约定俗成的,也可以不忽略,对结果没有影响

其中,\lambda被称为正则化参数。

在上述例子中正则化的代价函数J(\theta)中存在两项,其中,第一项是为了使函数更好的拟合样本点,第二项是为了使得各个参数尽可能的小,\lambda就是控制两者平衡的参数。

在线性回归中,如果\lambda被设置的过大的话,就会对参数的惩罚程度过大,使得它们都接近于0,最后假设模型就只剩下一个参数\theta_0,这时假设函数会接近于一条直线,如下图所示,会导致模型的欠拟合。

所以我们要合理的选择正则化参数\lambda

三、线性回归的正则化

在学习线性回归时,我们推导了两种方法,一种是梯度下降,一种是正规方程,本部分只介绍梯度下降的正则化方法(正规方程的听不懂,所以没写 )。

在没有加入正则化方法时,线性回归的梯度下降方法为不断的迭代下面这个函数:

由于在新的代价函数方程中加入了正则化项,J(\theta)=\frac{1}{2m}[\sum_{i=1}^{m}(h_\theta(x^{(i)})-y^{(i)})^2+\lambda\sum_{i=1}^{n}\theta_j^2],对于此式,同样对其求偏导\frac{\partial }{\partial \theta_j}J( \theta),可以得出此时的\theta_j:=\theta_j-\alpha[\frac{1}{m}\sum_{i=1}^{m}(h_\theta(x^{(i)})-y^{(i)})x_j^{(i)}+\frac{\lambda}{m}\theta_j],对于\theta_0我们一般是单独计算的,所以正则化的线性回归算法为重复下列公式:

\theta_j式子合并同类项,得到下式:

\theta_j的系数1-\alpha \frac{ \lambda }{m}中,\lambda是正则化系数一般远远小于样本总数m,并且学习率\alpha也是一个很小的数,所以这个系数是一个接近于1但小于1的数,这样\theta_j每次都会变小一些,\theta_j的第二项参数就是和没正则化前一样。

四、逻辑回归的正则化

同线性回归的正则化相同,逻辑回归的正则化如下:

但注意,逻辑回归中的h_\theta (x)=\frac{1}{1+e^{-\theta^Tx}}

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

并不傻的狍子

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值