ITPub博客

首页 > 人工智能 > 机器学习 > 「机器学习速成」正则化:降低模型的复杂度以减少过拟合

「机器学习速成」正则化:降低模型的复杂度以减少过拟合

机器学习 作者:dicksonjyl560101 时间:2019-06-21 08:51:54 0 删除 编辑


https://www.toutiao.com/a6704509481306292749/



大家好,今天我们学习【机器学习速成】之 正则化:降低模型的复杂度以减少过拟合。

我们  马上学三点  ,

  1. 泛化曲线,
  2. 降低模型的复杂度
  3. L2 正则化的损失函数

大家可以点击下面的“  了解更多  ”,或搜索“  马上学123  ”,在线观看PPT讲义。

泛化曲线

我们之前已经讨论过 如何让训练损失降至最低, 也就是 获取正确的样本 。

今天,我们要讨论的是正则化, 也就是 不要过于信赖样本 , 这是确保机器学习效果的一个关键因素。

如图泛化曲线, 该曲线显示的是训练集和验证集 相对于训练迭代次数的损失。


「机器学习速成」正则化:降低模型的复杂度以减少过拟合

泛化曲线

从图中可以看出, 随着迭代次数的增加,  蓝色 的训练集损失逐渐减少, 最终会在某种程度上 收敛于低端 。 但红线的测试集损失开始上升。

事实上, 红线 才是我们真正要关注的, 尽管我们在对训练样本进行训练, 但我们想要 泛化到新的样本 , 也就是我们希望在 测试集上的损失控制在较低 的范围。

如何抑制测试集损失上升

那么如何抑制红线的测试集损失上升呢?

该图说明模型与训练集中的数据 过拟合 了。 我们可以通过 正则化来避免过拟合 ,

正则化有很多不同的策略:

  • 其中一种策略是 早停法(Early Stopping) , 也就是训练中计算模型在测试集上的表现, 当模型在测试集上的表现开始下降的时候, 停止训练,这样就能避免继续训练导致过拟合的问题。
  • 这是一种常用策略, 尽量抵达红色测试集曲线的底端, 但实际操作起来可能有些困难。

其他正则化策略 包括尝试 添加模型复杂度惩罚项 , 这就是我们接下来要讲的。

降低模型的复杂度

目前,我们训练仅专注于一个重要方面, 也就是输入正确的训练样本, 最大程度地最小化损失, 也就是 经验风险最小化 为目标

「机器学习速成」正则化:降低模型的复杂度以减少过拟合

经验风险最小化

现在我们要引入第二项以对模型复杂度进行惩罚。

我们以最小化损失和复杂度为目标,这称为 结构风险最小化 。

「机器学习速成」正则化:降低模型的复杂度以减少过拟合

结构风险最小化

现在,我们的训练优化算法是一个由两项内容组成的函数:

  • 一个是 损失项 ,用于衡量模型与数据的拟合度,
  • 另一个是 正则化项 ,用于衡量模型复杂度。

如何衡量模型复杂度呢?

那么我们如何衡量模型复杂度呢?

我们可以采用多种方法, 一种常见的策略是 尽量选择较小的权重 , 也就是使参数小到几乎可以让我们忽略, 同时我们 仍能获取正确的训练样本 。

这里将重点探讨 L2正则化 , 模型复杂度= 权重的平方和, 在这种正则化策略中, 我们会对 权重的平方和 进行惩罚。

我们用 L2 正则化公式 来量化复杂度, 该公式将正则化项定义为 所有特征权重的平方和 。

「机器学习速成」正则化:降低模型的复杂度以减少过拟合

L2 正则化公式

在使用L2正则化时, 模型的确会关注训练数据, 但会尽量确保最后的权重 不会超过所需的大小 。

L2 正则化的损失函数

我们再以数学方式总结一下:

「机器学习速成」正则化:降低模型的复杂度以减少过拟合

L2 正则化的损失函数

目前,我们在 训练优化 方面添加了两项:

  • 第一项是 训练损失 。 我们希望获取正确的样本。 可以看出,L损失项取决于训练数据。
  • 现在, 我们在模型复杂度方面引入了第二项。 您会注意到,第二项与数据无关, 它只是要 简化模型 。

您会发现这两项通过lambda实现了平衡。 这是一个系数, 代表我们对 获取正确样本  与对 简化模型 的关注程度之比。

lambda的选择和平衡

lambda的选择其实取决于具体情况:

  • 如果您有 大量的训练数据 , 训练数据和测试数据看起来一致, 并且统计情况呈现 独立同分布 , 那么您可能 不需要进行多少正则化 。
  • 如果您的训 练数据不多 , 或者训练数据与测试数据有所不同, 那么您可能需要进行 大量正则化 。 您可能需要利用 交叉验证 , 或使用单独的测试集进行调整。

选择 lambda 值时, 目标是在 简单化 和 训练数据拟合 之间达到 适当的平衡 :

  • 如果您的 lambda 值过高, 则模型会非常 简单 ,但是您将面临数据 欠拟合 的风险。
  • 如果您的 lambda 值过低, 则模型会比较 复杂 ,并且您将面临数据 过拟合 的风险。
  • 理想的 lambda 值生成的模型可以很好地 泛化到以前未见过的新数据 。

总结:

  • 我们要获取正确的样本,让损失降至最低;也要进行正则化,不要过于信赖样本
  • 经验风险最小化:旨在减少训练误差
  • 结构风险最小化:旨在减少训练误差,同时平衡复杂度。
  • L2 正则化的损失函数: 第一项用来训练损失 第二项用来简化模型

这里讲了三点,关键词有哪几个?

提问!除了L2可以衡量模型复杂度,还有其它方法吗?


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/29829936/viewspace-2648294/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
行万里路,读万卷书,阅无数人。 吃货一枚,爱吃湘菜,粤菜与杭帮菜,尝遍天下美食。 摄影爱好者,游遍名川大山,江河胡海,赏遍人间春色。 爱看电影,尤其是国产大片,好莱坞大片。英文名:Dickson Jin, 网名:风一样的BOY。精通SAP供应链咨询。2017年开始研习人工智能。

注册时间:2014-08-27

  • 博文量
    2598
  • 访问量
    4676026