前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >第八章 正则化

第八章 正则化

作者头像
tomas家的小拨浪鼓
发布2019-03-11 10:46:38
5620
发布2019-03-11 10:46:38
举报
文章被收录于专栏:木木玲

该系列文章为,观看“吴恩达机器学习”系列视频的学习笔记。虽然每个视频都很简单,但不得不说每一句都非常的简洁扼要,浅显易懂。非常适合我这样的小白入门。

本章含盖

  • 8.1 过拟合问题
  • 8.2 代价函数
  • 8.3 线性回归的正则化
  • 8.4 Logistic 回归的正则化

8.1 过拟合问题

在将 线性回归 和 logistic回归 应用到某些机器学习应用中时,会出现过度拟合问题,导致它们表现欠佳。 正则化能够改善或者减少过度拟合问题。

什么是过度拟合?

第一个,使用线性回归的方程,与训练集的数据拟合度不够。因此,它是一个’欠拟合’或‘高偏差’的算法。 第二个,使用二次函数来拟合数据集,拟合效果很好;? 称为’刚好拟合’ 第三个,使用四阶多项式来拟合训练集,它使用5个参数,并且拟合了所有的训练集,虽然如此,但是这是一条扭曲的曲线,它不停上下波动,实际上,我们并不认为这是一个好的模型。?这个问题,我们称之为’过度拟合’,或称这个算法具有’高方差’。即,如果我们拟合一个高阶多项式,那么这个假设函数能拟合几乎所有的数据,这就面临可能的函数太过庞大,变量太多的问题。我们没有足够的数据来约束它,来获得一个好的假设函数。

术语“generalize(泛化)”:一个假设模型应用到新样本的能力。

类似的说法同样也可以引用到 logistic 回归。

调试 和 诊断
当过拟合问题出现时,我们可以如何解决

通过绘制假设模型曲线,来选择/决定合适的多项式阶次。但这种方法并不总是有用,如,在多特征变量的情况下,绘图变得很困难。 如果我们在有很多的变量,而很少的训练集的情况下,就会出现过度拟合的问题。

解决方法: ① 尽量减少选取变量的数量 人工检查变量清单,并以此决定哪些变量更为重要。 PS :模型选择算法,可以自动选择哪些特征变量保留,哪些舍弃。 这种减少特征变量的方法,可以有效减少过拟合的发生。 缺点:舍弃一部分特征变量,你也就舍弃了关于问题的一些信息

② 正则化 这里,我们将保留所有的特征变量,但是减少量级或参数 θ_j 的大小,这个方法非常有效,当我们有非常多的特征变量,其中每个变量都能对预测的y产生一点影响。

8.2 代价函数

我们不妨对函数加入惩罚项( 1000θ_3^2 + 1000θ_4^2 ),使得参数θ_3和θ_4都非常的小。

对代价函数进行修改

1000 只是随便一个比较大的数。。。 因此我们要最小化这个函数,就要使得θ_3和θ_4要尽可能小。即,使得 θ_3 近似等于 0,θ_4 近似等于 0。 那么这样的话,最终我们拟合的函数实际上是一个二次函数,加上了一些非常小的项。 ?该例子中,我们看到了加入惩罚,增大两个参数所带来的效果,总的来说,这就是正则化背后的思想。

这个思想就是,如果我们的参数值较小,意味着一个更简单的假设模式。如果将参数都加上惩罚项,这么做就相当于尽量简化这个假设模式,因为这些参数都接近0的时候。如,本例子中他就是一个二次函数。

但是一般来说,结果表明,这些参数的值越小, 我们得到的函数就会越平滑,也越简单。因此也更不容易出现过拟合问题。

例子

这里,我们有100个特征,这不同于前面的例子,我们知道哪个参数是高阶项的(前面的例子,我们只有1个特征,因此θ_2、θ_3、θ_4都是高阶项参数),因此我们很难挑选出其中的哪个变量是相关度较低的。即,我们不知道该从101个参数中,挑选哪一些来缩小它们的值。因此在正则化中,我们要做的就是修改代价函数,来缩小所有的参数。

?额外添加的正则项,来缩小每个参数的值。这个项的作用就是缩小每个参数(θ_1、θ_2 … θ_n,注意,不包括 θ_0)。

λ 被称为正则化参数。λ 的作用是,控制两个不同目标之间的取舍。即,控制两个目标(见?)之间的平衡关系。即,更好地去拟合训练集的目标和将参数控制得更小的目标,从而保持假设模型的相对简单,避免出现过拟合的情况。 第一个目标,与目标函数的第一项有关。就是我们想更好的训练数据、拟合数据。 第二个目标,我们要保持参数尽量地小,与目标函数的第二项有关(即,与正则化项有关)。

在正则化的线性回归中,如果正则化参数 λ 被设得太大的话,其结果就是我们对这些参数(θ_1、θ_2 … θ_n)的惩罚程度太大。这会导致 θ_1、θ_2 … θ_n 这些参数都接近于0,这相当于把假设函数的全部项都忽略掉了,这样最后假设模型只剩下一个θ_0。。。

这是一个‘欠拟合’的例子。换句话来说,这个假设模型的偏见性太强,或者偏差过高。

8.3 线性回归的正则化

正则化线性回归的优化目标:

?将 x0 的情况单独独立出来。

对于正则化代价函数使用梯度下降法:

注意,?的J(θ)是我们修改后的,包含正则化项的函数,即,

注意 “1 - α * λ / m”这一项,它起到一个很有趣的效果。它的值是只比 1 略小一点的数。因为,通常学习率 α 很小,但 m 却很大,那么 α * λ / m 就会很小。所以,它通常略小于 1,你可以把它想成是0.99这样的数。所以,θ_j更新的结果就是,第一项 “θ_j * (1 - α * λ / m)”,θ_j变成了 θ_j * 0.99,即,将θ_j 往 0 的方向缩小了一点点。 第二项,这实际上完全与我们在添加正则项之前的梯度下降更新一样。 由此可见,当我们使用正则化线性回归时,我们要做的就是每次迭代时,都将 θ_j 乘以一个比 1 略小的数。我们每次都把参数(θ_j)缩小一点,即,每次迭代,第一项 θ_j 都会缩小为上一次的0.99这样。然后进行和之前(线性回归时梯度下降)一样的更新操作(即,减去的第二项同线性回归时的梯度下降是一样的)。

对于正则化代价函数使用正规法:

不可逆问题:

样本 m 的数量 <= 特征的数量 n 如果,你的样本数量比特征数量少,那么这个 'X 转置’ 乘 X 的矩阵是不可逆的。

只要,正则化参数 λ > 0 ,是严格大于0的,我们就可以确信

一定可逆。

因此,进行正则化还可以解决一些X的转置乘X出现不可逆的问题。

8.4 Logistic 回归的正则化

通常情况下,如果你的逻辑回归有很多特征,有无关紧要的多项式,这些大量的特征,最终会导致过拟合的现象。

为了使用’正则化’,我们对 J(θ) 做一些修改。?

这一项的作用是,惩罚 θ_1、θ_2 … θ_n ,防止它们过大。这样的话产生的效果就是,即使你拟合阶数很高,且参数很多,只要添加了这个正则项,保持参数较小,你仍然可以得到这样一条合理的决策边界。

对正则化使用梯度下降法:

再次说明,虽然?同前面线性回归时写的表达式很像,但是他们不是同一个算法。因为假设函数 h(θ) 的定义不同。 这里的 J(θ) 是正则化的代价函数

如何在更高级的优化算法中只用正则化

非线性分类器。不管是线性回归还是logistic回归,我们都能通过构造多项式来解决,但事实上还有更为强大的非线性分类器,可以用之解决多项式回归的问题。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019.02.26 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 本章含盖
  • 8.1 过拟合问题
    • 什么是过度拟合?
      • 调试 和 诊断
      • 8.2 代价函数
        • 例子
        • 8.3 线性回归的正则化
          • 对于正则化代价函数使用梯度下降法:
            • 对于正则化代价函数使用正规法:
            • 8.4 Logistic 回归的正则化
              • 对正则化使用梯度下降法:
                • 如何在更高级的优化算法中只用正则化
                领券
                问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档