周志华机器学习四 过拟合与正则化

上图表示了拟合数据三种情况:欠拟合(左 2 图)、较好的拟合(左 3 图)、过拟合(左 4 图)

欠拟合(Underfitting):模型没有很好地捕捉到数据特征,不能够很好地拟合数据。其产生原因通常是假设函数过于简单或者使用的特征不够。其中增加特征项是欠拟合的一种解决方案。
过拟合(Overfitting):由于假设函数过度拟合训练集数据而失去了泛化能力,导致对新的数据预测不好。其产生原因通常是复杂的假设函数包含了一些与数据无关的不必要的特征项。

如何解决「过拟合」

这里有两种主要的方法解决过拟合问题,同时这两种适用于线性回归和逻辑回归模型:

  1. 减少特征项
  • 人工删除不必要的特征项

  • 使用模型选择算法(在后续课程中学习)

  1. 正则化(Regularization):保留所有特征项,但是减小特征项的参数值(也称为权重值) θ_j

当我们有许多有用的特征时,正则化是解决过拟合问题较为有效的方法。

正则化原理

引用之前的例子,可以发现右图为过拟合。右图中我们用一个更高次的多项式去拟合,最终我们可能会得到一个曲线,它能很好地拟合训练集,但却并不是一个好的结果,因为它过度拟合了数据而失去了泛化能力。

在例子中,我们要消除 \theta_3 x^3,\theta_4 x^4 对假设函数影响来解决过拟合的问题。在不增减特征项(即不改变假设函数)前提下,我们选择修改代价函数,假设将代价函数修改如下:

J(\theta) = \frac{1}{2m} \sum_{i=1}^{m}(h_\theta(x)-y)^2 + 1000\theta_3^2 + 1000\theta_4^2

我们在代价函数增加了两项,目的是放大了 \theta_3,\theta_4 对代价函数的影响。而使代价函数值最小化并接近于 0 依旧是我们目标,故此我们不得不减小 \theta_3,\theta_4 的值并趋近于 0 。这样也就大大减小了假设函数中 \theta_3 x^3,\theta_4 x^4 的值并趋近于 0 。得到的结果是我们看到新的假设(粉红色曲线描绘)看起来像二次函数。

更一般地,我们对所有的参数 \theta 进行正则化:

J(\theta) = \frac{1}{2m} [\sum_{i=1}^{m}(h_\theta(x)-y)^2 + \lambda \sum_{j=1}^{n}\theta_j^2]

其中,\lambda 是正则化参数,它决定了我们的参数 \theta 的成本被放大了多少。需要注意的是,\theta_0 不需要放大,同时 \lambda 的选值很重要。

  1. \lambda 过大,可能导致欠拟合(如 \lambda 过大,除 \theta_0之外其他参数趋近于 0 ,导致假设函数变为 h_\theta(x) = \theta_0,出现欠拟合的情况);
  2. \lambda 过小,没有解决过拟合问题。

正则化的思路:在代价函数中增加对参数惩罚项,以此来减小参数值,使假设函数的输出就会更加平滑,减小过拟合的发生。

线性回归模型的正则化

正则化后,线性回归的代价函数、梯度下降算法以及正规方程的公式都需要修改。

线性回归模型的正则化

逻辑回归模型的正则化

正则化后,逻辑回归的代价函数以及梯度下降算法的公式都需要修改。

逻辑回归模型的正则化

下面放一张,逻辑回归模型中运用了正则化前后的效果。

逻辑回归正则化.gif

参考文献

  1. Coursera 机器学习 吴恩达
      </div>
    </div>
</div>

猜你喜欢

转载自blog.csdn.net/leichangqing/article/details/89080521