斯坦福大学机器学习笔记——过拟合问题以及正则化的解决方法

当我们使用前面博客所讲述的线性回归和逻辑回归时,经常会出现一种过拟合(over-fitting)问题。下面对过拟合下一个定义:

过拟合(over-fitting):
所谓的过拟合就是:如果我们有非常多的特征时,通过使用这些特征学习得到的假设可能非常好地适应训练集(代价函数很小,几乎为零),但是可能这种假设不能推广到新的数据(对于新的数据预测的结果不好,也就是我们所说的泛化能力不强)。
下面我们从例子中理解什么是过拟合、欠拟合等概念:
这里写图片描述
上面三组都是对于房价的预测,对于第一组来说采用的是线性模型,明显可以看出拟合的效果不是很好,误差还是很大,这种现象叫做欠拟合(有时候也称为高偏差);第三组模型采用的是四次方模型,对于训练样本来说,拟合的效果很好,损失几乎为零,但是这种拟合过于注重拟合训练数据,而忘记了训练模型的意义,即对新的数据的预测,这种模型对于新的数据预测的效果不好,这种现象称为过拟合(高方差)。显然,中间的二次方模型可以很好的拟合训练数据(虽然损失相对第三个模型较大,但是它能够很好的表征数据的特性,同时对于数据有很好的鲁棒性,但数据受到某种因素影响导致其中的少数数据偏离原始数据,该模型仍然能够很好的拟合)。
上述从回归问题中讨论了过拟合和欠拟合的现象,对于分类问题同样适用。
解决过拟合的方法:

  1. 去除一些不能帮助我们正确预测的特征。一般当特征数目比较多,训练样本比较少时,容易出现过拟合。所以可以手动选择一些相关的特征,去除一些不相关的特征,同时我们也可以使用一些算法来进行选择,如PCA等(后续讲解)。
  2. 正则化。该方法保留所有的特征,只是减少参数的大小。正则化的方法对于特征比较多时,性能也会很好,每个特征都能够对预测结果产生一点影响。

下面我们从一个例子中来理解什么是正则化的思想:
还是从上面的例子出发,我们看第三幅图像,该拟合明显出存在过拟合现象,它的假设为:

hθ(x)=θ0+θ1(x1)+θ2x22+θ3x33+θ4x44

正则化在代价函数中实现的过程:
我们通过比较这三幅图不难发现,过拟合现象产生的原因是由于高次的特征引起的,所以我们应该减小高次特征的权值 θ3θ4 ,我们可以从代价函数入手,对于参数 θ3θ4 加入惩罚,使得参数 θ3θ4 减小,修改后的代价函数可以为:
这里写图片描述
我们来分析一下实现的过程,对于上述表达式,我们的目的是最小化损失函数,但是对于 θ3θ4 来说,前面的系数很大,要想最小化损失函数,必须使 θ3θ4 的值很小,达到减小 θ3θ4 的目的。

上述只是从具体的例子出发,实现正则化的过程,但是在一般情况下,特征的数目比较多,我们并不知道应该对哪些参数进行惩罚,所以我们将对所有参数进行惩罚,并且让代价函数最下来选择惩罚的程度,所以存在正则化的损失函数的定义如下:
这里写图片描述
前面一部分代表数据拟合的损失最小,后面一项代表参数叠加后最下。 λ 称为正则化参数,它控制着二者之间的平衡。
值得注意的是:我们一般不对 θ0 进行惩罚。

对于上述实例,经过正则化和未经过正则化的比较如下:
这里写图片描述
下面我们来说明一下 λ 对于性能的影响:
当参数 λ 选择的太大时,由于要最小化上面的损失函数,所以会使得参数的取值会变得非常小,几乎为零,所以最后得到的假设几乎为: hθ(x)=θ0 ,也就是上面图像中的那条红线,会出现欠拟合。

那么为什么增加的 λ=nj=1θ2j 会使得参数 θ 减小呢?
对于损失函数来说,咱们的目的是使得损失函数最小化,由于新增加了 λ=nj=1θ2j 这一项,当选择合理的 λ 值时,为了使损失函数最小,就会使得 λ=nj=1θ2j 尽可能的小,由于 λ 固定,所以只能减小参数 θ 值来实现。

加入正则化后的线性回归:
加入正则化后的梯度下降仍然可以采用两种方法实现:

  1. 基于梯度下降,得到最优的参数
  2. 基于正规方程得到最优的参数

基于梯度下降得到最优参数的线性回归:
加入正则化的损失函数为:
这里写图片描述
由于我们在进行正则化时,并没有对参数 θ0 进行惩罚,所以在进行正则化后的梯度下降可以分为两类:
这里写图片描述
将上面的 j=1,2,...,n 式子变型可以得到:
这里写图片描述
咱们对上面的式子进行分析:由于 1αλm 一般是小于1的实数,所以正则化后的梯度下降可以理解为,首先对参数 θ 进行一个压缩,然后在压缩的 θ 的基础上进行原来的梯度下降。

基于正规方程的线性回归:
加入正则化的正规方程参数的解为:
这里写图片描述
同时注意加入正则化之后的几个性质:

  1. 当加入正则化时,只要保证 λ 大于0,就能够保证这里写图片描述可逆
  2. 加入正则化后,一般可以是损失函数得到全局最小值。
已标记关键词 清除标记
相关推荐
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页