从零开始机器学习(五)

文章目录

      • 前言
      • 正文
        • 过拟合
        • 修改cost function
        • 线性回归的正则化

前言

  • 我们在之前学习了数据处理的技巧:特征缩放,可以使得训练更快收敛。今天将介绍正则化(Regularization)的有关知识

正文

过拟合

  • 对于线性回归和逻辑回归,它们能够有效地解决许多问题,但是当将它们应用到某些特定的机器学习应用时,会遇到过拟合(over-fitting)的问题,可能会导致它们效果很差
  • 查看这个回归的例子:
    从零开始机器学习(五)_第1张图片
    第一个模型是一个线性模型,欠拟合,不能很好地适应我们的训练集;第三个模型是一个四次方的模型,过于强调拟合原始数据,而丢失了算法的本质:预测新数据。我们可以看出,若给出一个新的值使之预测,它将表现的很差,是过拟合,虽然能非常好地适应我们的训练集但在新输入变量进行预测时可能会效果不好;而中间的模型似乎最合适。

在深度学习中的层其实就类似模型的次方,次方数越多,对应的模型的边界也就越复杂,同时过拟合的可能性就越大,残差网络(ResNet)的应用会使得效果变好。

  • 分类问题中也存在这样的问题:
    从零开始机器学习(五)_第2张图片
    问题是,如果我们发现了过拟合问题,应该如何处理?
  1. 丢弃一些不能帮助我们正确预测的特征。可以是手工选择保留哪些特征,或者使用一些模型选择的算法来帮忙(例如PCA
  2. 正则化。 保留所有的特征,但是减少参数的大小(magnitude)。
  3. 增加训练的数据量

修改cost function

上面的回归问题中如果我们的模型是:

h θ ( x ) = θ 0 + θ 1 x 1 + θ 2 x 2 2 + θ 3 x 3 3 + θ 4 x 4 4 {h_\theta}\left( x \right)={\theta_{0}}+{\theta_{1}}{x_{1}}+{\theta_{2}}{x_{2}^2}+{\theta_{3}}{x_{3}^3}+{\theta_{4}}{x_{4}^4} hθ(x)=θ0+θ1x1+θ2x22+θ3x33+θ4x44

  • 我们可以看出,正是那些高次项导致了过拟合的产生,所以如果我们能让这些高次项的系数接近于0的话,我们就能很好的拟合了。

  • 所以我们要做的就是在一定程度上减小这些参数 θ \theta θ 的值,这就是正则化的基本方法。我们决定要减少 θ 3 {\theta_{3}} θ3 θ 4 {\theta_{4}} θ4的大小,我们要做的便是修改代价函数,在其中 θ 3 {\theta_{3}} θ3 θ 4 {\theta_{4}} θ4 设置一点惩罚。这样做的话,我们在尝试最小化代价时也需要将这个惩罚纳入考虑中,并最终导致选择较小一些的 θ 3 {\theta_{3}} θ3 θ 4 {\theta_{4}} θ4

修改后的代价函数如下: min ⁡ θ   1 2 m [ ∑ i = 1 m ( h θ ( x ( i ) ) − y ( i ) ) 2 + 1000 θ 3 2 + 10000 θ 4 2 ] \underset{\theta }{\mathop{\min }}\,\frac{1}{2m}[\sum\limits_{i=1}^{m}{ { {\left( { {h}_{\theta }}\left( { {x}^{(i)}} \right)-{ {y}^{(i)}} \right)}^{2}}+1000\theta _{3}^{2}+10000\theta _{4}^{2}]} θmin2m1[i=1m(hθ(x(i))y(i))2+1000θ32+10000θ42]

通过这样的代价函数选择出的 θ 3 {\theta_{3}} θ3 θ 4 {\theta_{4}} θ4 对预测结果的影响就比之前要小许多。假如我们有非常多的特征,我们并不知道其中哪些特征我们要惩罚,我们将对所有的特征进行惩罚,并且让代价函数最优化的软件来选择这些惩罚的程度。这样的结果是得到了一个较为简单的能防止过拟合问题的假设: J ( θ ) = 1 2 m [ ∑ i = 1 m ( h θ ( x ( i ) ) − y ( i ) ) 2 + λ ∑ j = 1 n θ j 2 ] J\left( \theta \right)=\frac{1}{2m}[\sum\limits_{i=1}^{m}{ { {({h_\theta}({ {x}^{(i)}})-{ {y}^{(i)}})}^{2}}+\lambda \sum\limits_{j=1}^{n}{\theta_{j}^{2}}]} J(θ)=2m1[i=1m(hθ(x(i))y(i))2+λj=1nθj2]
其中 λ \lambda λ又称为正则化参数(Regularization Parameter)。
注:根据惯例,我们不对 θ 0 {\theta_{0}} θ0 进行惩罚。因为 θ 0 {\theta_{0}} θ0只是个偏置而已,相当于让函数做上下平移。

  • 经过正则化处理的模型与原模型的可能对比如下图所示:
    从零开始机器学习(五)_第3张图片
    原来过拟合的函数变得平滑。
    注意:
  • 如果选择的正则化参数 λ \lambda λ 过大,则会把所有的参数都最小化了,导致模型变成 h θ ( x ) = θ 0 {h_\theta}\left( x \right)={\theta_{0}} hθ(x)=θ0,所以对于正则化,我们要取一个合理的 λ \lambda λ 的值,这样才能更好的应用正则化。

线性回归的正则化

你可能感兴趣的:(从零开始机器学习,机器学习,人工智能,正则化)