【问题标题】:why overfitting gives a bad hypothesis function为什么过度拟合给出了一个糟糕的假设函数
【发布时间】:2012-05-26 02:24:54
【问题描述】:

在线性或逻辑回归中,如果我们找到一个完美拟合训练集的假设函数,那么这应该是一件好事,因为在这种情况下,我们已经使用了 100% 的信息来预测新信息。
虽然它被称为过度拟合并被称为坏事。
通过使假设函数更简单,我们实际上可能会增加而不是减少噪声。
为什么会这样?

【问题讨论】:

    标签: algorithm machine-learning linear-regression


    【解决方案1】:

    当您尝试“太努力”以使训练集中的示例符合分类规则时,就会发生过度拟合。

    这被认为是坏事主要有两个原因:

    1. 数据可能有噪音。过于努力地对 100% 的示例进行正确分类,会使噪声计数,并在忽略这种噪声的同时给您一个坏规则 - 通常会好得多。
    2. 请记住,分类训练集只是真实数据的一个样本。如果您容忍一些错误分类的样本,此解决方案通常比您得到的解决方案更复杂。根据Occam's Razor,您应该更喜欢更简单的解决方案,因此忽略一些示例会更好,

    示例

    根据奥卡姆剃刀,您应该容忍错误分类的样本,并假设它是噪声或不显着,并采用此数据集中的简单解决方案(绿线):

    【讨论】:

    • 我确实接受噪音的概念,但如果我们考虑噪音,我们不知道通过让它变得有点糟糕我们是在减少或增加噪音
    • @ShubhamSharma:这正是奥卡姆剃刀的用武之地。如果解决方案更简单,而您假设一些示例是噪音 - 可能就是这种情况。 通常拥有一些嘈杂示例的概率远高于正确分类所有示例的概率。
    • 是的,我们假设的事情是“有一些嘈杂的例子的概率比正确分类所有例子的概率要高得多”我知道这有点麻烦,但你能告诉我为什么我们假设这个
    • @ShubhamSharma:我们不假设这一点。这是一般情况(统计上),“无噪音” - 是一个假设。为什么?这是概率的一些基础知识,但假设有机会p>0 训练集中的一个分类或特征是错误的(这通常是统计上的情况),那么正确分类所有n 样本的机会是(1-p)^n。很容易看出,对于 5% 的错误 (p=0.05),after only 14 examples, the probability of having all samples classified correctly is less then 50%
    【解决方案2】:

    过度拟合被称为坏的,因为它对真正的解决方案有一定的影响。过度拟合的解决方案是 100% 拟合所使用的训练数据,但添加任何小数据点后,模型将发生巨大变化。这称为模型的方差。因此,我们尝试在这两个因素之间取得平衡,从而进行 bais-variance 权衡,以便模型不会因数据的小幅变化而发生剧烈变化,而且还能合理地正确预测输出。

    【讨论】:

      【解决方案3】:

      实际上,该陈述并不完全正确。如果您的假设函数是线性的,那么匹配 100% 的数据是完全可以的。每个连续非线性函数都可以通过一个线性函数在局部近似,该线性函数给出了关于它的局部行为的重要信息。

      如果数据匹配 100%,也可以将 100 个数据点与二次曲线匹配。您可以确信自己没有过度拟合数据,因为数据始终显示二次行为。

      但是,使用足够高次数的多项式函数总是可以得到 100% 的拟合。但是,即使没有其他人指出的噪音,您也不应该假设您的数据具有某种高度多项式行为,而没有对该假设进行某种理论或实验确认。表明多项式行为的两个良好指标是:

      • 您有一些理论上的理由认为数据会在某一方向限制中增长为 x^n。
      • 随着收集的数据越来越多,您的数据一直支持固定次数多项式拟合。

      但请注意,尽管 指数和倒数 关系可能具有符合足够高次数多项式的数据,但它们并不倾向于遵守上述两个条件中的任何一个。

      关键是您的数据拟合需要对预测有用。您总是知道线性拟合会在本地提供信息,但是拟合的点越多,该信息就越有用。即使只有两个点和噪声,线性拟合仍然可以给出迄今为止收集的数据的最佳理论外观,并建立数据的第一个期望值。但是,除此之外,对三点使用二次拟合或对四点使用三次拟合并不能有效地提供更多信息,因为它假设局部和渐近行为信息都加上一个点。你需要为你的假设函数提供理由。这种理由可以来自更多观点或理论。

      (有时会出现的第三个原因是

      • 您有理论和实验理由相信误差和噪声的贡献不会超过某些界限,您可以采用多项式假设来查看局部导数以及匹配数据所需的行为。

      这通常用于在没有良好理论起点的情况下理解数据以构建理论模型。您仍然应该努力使用尽可能小的多项式次数,并用它们在无限级数中可能表示的(倒数、指数、高斯等)替换系数中的模式。)

      【讨论】:

        【解决方案4】:

        尝试以这种方式想象它。您有一个函数,您可以从中选择 n 不同的值来表示样本/训练集:

        y(n) = x(n), n is element of [0, 1]
        

        但是,由于您想建立一个稳健的模型,因此您想在训练集中添加一点噪音,因此您实际上在生成数据时添加了一点噪音:

        data(n) = y(n) + noise(n) = x(n) + u(n)
        

        u(n) 我用平均 0 和标准差 1 标记了一个均匀随机噪声:U(0,1)。很简单,这是一个噪声信号,它最有可能取值0,不太可能取值远离0

        然后你抽取 10 个点作为你的训练集。如果没有噪音,他们都会躺在一条线上y = x。由于存在噪声,可以表示它们的多项式函数的最低阶可能是 10 阶的,函数类似于:y = a_10 * x^10 + a_9 * x^9 + ... + a_1 * x + a_0

        如果您考虑,仅使用来自训练集的信息的估计,您可能会得到一个比 10 阶多项式函数更简单的函数,并且它会更接近真正的功能。

        进一步考虑,您的真实函数的值可能在[0, 1] 区间之外,但由于某种原因,只能从该区间收集训练集的样本。现在,在训练集的区间之外,一个简单的估计可能会明显更好,而如果我们要完美地拟合训练集,我们会得到一个 overfitted 函数蜿蜒曲折,一路跌宕起伏:)

        【讨论】:

        • 很好的解释,谢谢,现在考虑一个没有噪声的情况,这种情况并不罕见,那么我们的算法呢。
        • @ShubhamSharma 算法与训练样本几乎没有关系......并且噪声总是存在。如果没有别的,那么,如果您正在测量实时数据(以某种方式正确),由于浮点数据表示仍然会有一点错误
        【解决方案5】:

        假设您的回归解释了数据中所有的偏差来源,那么您可能会争辩说您的回归完全适合数据。但是,如果您知道系统中的所有(我的意思是所有)影响,那么您可能不需要回归。您可能有一个可以完美预测新信息的分析解决方案。

        实际上,你所掌握的信息将达不到这个完美的水平。噪声(测量误差、部分可观测性等)会导致数据出现偏差。作为回应,回归(或其他拟合机制)应寻求数据的总体趋势,同时尽量减少噪声的影响。

        【讨论】:

        • 我确实接受噪音的概念,但如果我们考虑噪音,我们不知道通过让它变得有点糟糕,我们是在减少或增加噪音
        • 我认为在概念上将残差(即拟合误差)与“噪声”区分开来是个好主意。在您拟合之前,系统中可能存在噪声,并且噪声不是您的近似值应该注入系统的东西。 (这意味着反馈,完全是另一回事)。直到拟合努力之后,残差才会发挥作用。
        【解决方案6】:

        因为您实际上并没有从您的训练集中“学习”任何东西,所以您只是适应了您的数据。

        想象一下,你有一个一维回归

        x_1 -> y_1 
        ...  
        x_n -> y_1
        

        这样定义的函数

                 y_n, if x = x_n
          f(x)=     
                 0, otherwise
        

        会给你完美契合,但实际上没用。

        希望,这有点帮助:)

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2021-03-22
          • 1970-01-01
          • 1970-01-01
          • 2022-07-13
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2022-12-22
          相关资源
          最近更新 更多