防止过度拟合(正则化)

本文概述

  • 什么是过度适合机器学习?
  • 什么是正则化?
  • 总结
在机器学习中, 你一定遇到过” 过度拟合” 一词。过度拟合是一种现象, 机器学习模型对训练数据建模得很好, 但是对测试数据的表现却不佳。对测试数据执行足够好的性能被认为是机器学习中的一种最后通atum。
有很多技术可以防止过度拟合。正则化就是这样一种技术。这篇文章都是专门针对这一点的。在这篇文章中, 我将尝试用更少的数学但更多的直觉来解释正则化。与我的其他教程不同, 本教程将不涉及任何案例研究。在研究任何案例研究之前, 我希望你了解正则化的重要性和微妙之处。因为正则化是棘手的, 但是作为数据科学家要知道是非常重要的技术。
这篇文章概述如下:
  • 什么是过度适合机器学习?
  • 什么是正则化?它如何帮助防止过度拟合现象?
  • 总结
什么是过度适合机器学习? 在解释过度拟合之前, 让我们先讨论一下机器学习的一般化。
泛化是指机器学习模型学习到的概念对模型在学习时未看到的特定示例的适用程度(简称测试集)。
好的机器学习模型的目标是将训练数据很好地推广到问题领域的任何数据。这使你可以在将来对模型从未见过的数据进行预测。
我将从引言部分引述:” 过度拟合是一种机器学习模型对训练数据建模得很好, 但在测试数据上表现不佳的现象。”
当模型学习训练数据中的细节和噪声时, 会过度拟合, 从而对模型在看不见的数据上的性能产生负面影响。这意味着训练数据中的噪声或随机波动被模型拾取并作为概念学习。问题在于这些概念不适用于新数据, 会对模型的泛化能力产生负面影响。
非参数和非线性模型在学习目标函数时具有更大的灵活性, 因此过度拟合的可能性更大。这样, 许多非参数机器学习算法还包括参数或技术, 以限制和约束模型学习的细节量。
例如, 决策树是一种非常灵活的非参数机器学习算法, 并且会过度拟合训练数据。可以通过在学会删除一些已拾取的细节后修剪树来解决此问题。另一方面, 欠拟合指的是既不能对训练数据建模也不能将其推广到新数据的模型。
什么是正则化? 当你听到正则化一词而没有任何其他与机器学习相关的信息时, 你都知道正则化是对某项进行正则化的过程或对某项进行正则化的过程。问题是:到底是什么。关于机器学习, 你谈论的是学习算法或模型, 以及算法或模型中的实际内容是什么?这就是参数集。简而言之, 机器学习中的正则化是对参数进行正则化的过程, 这些参数会将系数估计值约束, 正则化或缩小为零。换句话说, 此技术不鼓励学习更复杂或更灵活的模型, 避免了过拟合的风险。
现在, 你正在慢慢地了解正则化实际上如何有助于防止过度拟合?让我们直接说吧。
【防止过度拟合(正则化)】在知道正则化实际上是对我们的参数进行正则化之后, 你可能会想:为什么对参数进行正则化有助于防止过度拟合?让我们考虑下图:
防止过度拟合(正则化)

文章图片
如你在图表中所见, 它具有两个功能, 分别由绿色曲线和蓝色曲线表示。两条曲线都很好地拟合了这些红色点, 因此你可以认为它们都导致了零损失。从过度拟合的直觉上, 你可能已经猜到绿色曲线是过度拟合的结果。是的, 你完全正确!但是你是否曾经想过, 为什么绿色曲线(或任何与其相似的曲线)过拟合数据?
为了以一种更数学的方式理解这一点, 让我们假设用于绘制上述图形的两个函数:
绿色曲线:
防止过度拟合(正则化)

文章图片
红色曲线:
防止过度拟合(正则化)

文章图片
查看每个函数的方程式, 你会发现绿色曲线的系数更大, 这是过度拟合的主要原因。如前所述, 过度拟合可以解释为你的模型非常适合数据集, 这似乎是在记住我们显示的数据, 而不是实际从中学习。凭直觉, 具有较大的系数可以看作是记忆数据的证据。例如, 你在我们的训练数据集中遇到了一些噪声, 其中数据的大小与其他数据相差甚远, 这些噪声将导致我们的模型将更多的权重放到更高的系数中, 而你收到的是一个过拟合我们的模型训练资料!
经常在数据科学问题中, 随着功能的增加, 机器学习模型可以很好地适合你的数据。但是一切都有其缺点。如果你添加太多功能, 我们将因过度拟合而受到惩罚。你们中的某些人可能会认为, 如果添加太多特征会导致过度拟合, 那么为什么我们在获得可接受的模型后就不停止添加特征呢?但是以这种方式思考。如果你的客户或老板希望学习的模型具有95%的准确度, 但是如果不添加更多功能就无法实现该结果, 这会导致数据过拟合。你下一步将做什么?
或者以另一种方式考虑它。你面临的一个问题是为你提供了一个大型数据集, 并且每个数据集都包含许多功能。你不知道要删除哪些功能, 更糟糕的是, 如果发现每个功能都具有丰富的信息, 则意味着删除某些功能可能会破坏算法的性能。你下一步打算做什么?
答案是正则化。
正则化术语: 因此, 删除某些功能以防止过度拟合并非总是一个好主意。正如你在上面的示例中看到的那样, 它需要进一步分析才能知道你是否可以删除一些信息较少的功能。因此, 良好的做法是一开始就使用所有功能来构建第一个模型。正则化作为解决方案出现。为了更加透明, 我们首先来看一下MSE成本函数(MSE:均方误差):
防止过度拟合(正则化)

文章图片
其中
  • hθ(X(i))是第i个输入参数Xi给出的学习预测
  • y(i)是原始预测
  • m是输入样本的总数
在类似Logistic回归的模型中, 学习的目的是最小化此MSE功能。这意味着你可以以任何方式更新参数, 只是为了降低MSE值。如上所述, 参数越大, 模型拟合数据的机会就越大。所以问题是:你不仅可以最小化成本函数, 还可以限制参数不要变得太大?答案是:你可以通过添加如下所示的正则项来实现:
防止过度拟合(正则化)

文章图片
其中
  • λ是控制正则项值的常数
  • n是特征数。
添加正则项后, 看看新的成本函数。正则化项惩罚大参数。显然, 最小化成本函数包括在右侧减少两个术语:MSE术语和正则化术语。因此, 每次将某个参数更新为显着较大的值时, 都会通过正则化项增加成本函数的值, 结果, 它将被惩罚并更新为较小的值。
总结 我将在这里结束这篇文章。我相信这个职位并不长, 但是你可以自己修改和修改。当你对这篇文章所产生的直觉充满信心时, 下一步将是:
  • 研究不同类型的正则化。正则化的L1和L2变体。
  • 在任何参数化的机器学习模型中实施正则化。
如果你想了解有关机器学习的更多信息, 请查看以下srcmini课程:
  • 机器学习导论
  • R中基于树的模型的机器学习
  • 使用Python中基于树的模型进行机器学习

    推荐阅读