过拟合:更好地拟合现有数据并不一定意味着会得出更好的预测结果

过拟合:更好地拟合现有数据并不一定意味着会得出更好的预测结果

下文节选自《算法之美:指导工作与生活的算法》, 已获出版社授权许可, [遇见数学] 特此表示感谢!

过度拟合:不要想太多

当查尔斯·达尔文试图决定是否应该向他的表妹艾玛·韦奇伍德求婚时,他拿出一支铅笔和一纸张,并衡量了每一个可能的后果。关于结婚的好处,他列举了孩子、陪伴和“音乐与女性聊天的魅力”等因素。相反,关于婚姻中的不利因素,他列举了“可怕的时间损失”、没有自由去他想要去的地方、亲戚的负担、孩子带来的花费和焦虑、担心“也许我的妻子不喜欢伦敦”,以及花在买书上的钱变得更少等。衡量这一系列因素使取得胜利的渠道变得十分狭窄,最后,达尔文潦草地用拉丁文写道:“结婚——结婚——结婚,这被证明了。”达尔文自己用英文重述了这一数学结论:“这证明结婚是必要的。”

过拟合:更好地拟合现有数据并不一定意味着会得出更好的预测结果

达尔文

在达尔文所处的时代,优劣对比已经被推崇,而这在一个世纪前已被本杰明·富兰克林认可。为了克服“令我们困惑的不确定性”,富兰克林写道:

我的方式是在一张纸的中间画一条线,将其一分为二,一半写上优势,另一半写劣势。然后在几天的考虑之中,我用不同的方式考虑不同动机的短期提示,考虑在不同的时间该措施可能带来的利弊。当我把它们聚集在一个视图时,我努力评估它们各自的权重。我会找到两项看起来能抵消的因素,然后把它们都划掉:如果我找到一个优势因素的权重相当于两个劣势因素,我就划掉三个。如果我判断两个正面理由相当于三个负面理由,我会划掉五个。这样,我就找到了平衡所在,如果经过一两天的考虑,任何一方都不会有任何重要的新理由出现,我便可以相应地做出决定。

富兰克林甚至认为这是一个计算公式,并说:“我从这种方程式(所谓的道德或保守的代数)中发现了很大的优势。

过拟合:更好地拟合现有数据并不一定意味着会得出更好的预测结果

富兰克林

当我们在考虑思考过程时,很容易认为想到更多自然会更好:你列出的利弊越多,越能做出更好的决定。关于股票的价格走向,你能辨别的相关因素越多,能做出的预测更准确;你花在工作上的时间越多,能写出的报告越好。这肯定是富兰克林法则存在的前提。在这个意义上,达尔文对结婚与否的“代数”分析,尽管有些古怪,但似乎也是一种非常合理甚至是值得称赞的方法。

然而,如果富兰克林或达尔文已经进入机器学习研究的时代,也就是教会计算机如何根据经验做出良好判断的科学,他们会看到道德代数的基础被不断动摇。想一想思考的力度和考虑的因素这些问题,就是统计人员和机器学习研究人员所称的“过度拟合”这个棘手的问题的核心。处理这个问题可以揭示出,刻意地较少思考也是一种智慧。意识到过度拟合的问题可以改变我们投资、就餐、健身,甚至祭祀的方法。

反对复杂性案例

任何你能做的,我都可以做得更好。我做任何事都可以比你做得好。——《飞燕金枪》

每一个决定都是一种预测:你还没有尝试过的东西你会有多喜欢;某个方向,以及不常走的路(或者更多)是否能走得通。每一个预测,都涉及两方面不同的重要内容:你知道的和你不知道的。也就是说,它试图制定一种理论,来解释你以往的经验,并提供一些对未来的猜想。一个好的理论,当然两方面都会照顾周全。但事实上,如果每一次预测都要顾全双方,那么就会产生一些难以避免的矛盾关系。

过拟合:更好地拟合现有数据并不一定意味着会得出更好的预测结果

作为这种矛盾关系的一个例证,让我们来看一个可能与达尔文有关的数据集,上图是最近在德国进行的一项研究:前10年的婚姻生活中,人们对生活的满意度。图表上的每一个点都取自研究本身,我们的工作是找出符合这些点并延伸到未来的一条线的公式,使我们能够跨越这十年的标记预测未来。

这个可能的公式将只使用一个单一因素来预测生活满意度——自结婚以来的时间。这将在图表上创建一条直线。另一种可能性是使用两个因素,时间和时间的平方,产生的线将是一个U 形抛物线,这可以分析出一个潜在的更复杂的时间和幸福之间的关系。如果我们扩大公式,让其包含更多的因素(时间的立方等),这条线将会有更多的拐点,越来越多的“弯曲”和波动。当我们进入九因素公式时,我们就可以分析出非常复杂的关系。

从数学上讲,我们的双因素模型包含了所有进入单因子模型的信息,并且还有另一个因素可以使用。同样,九因素模型可以利用双因素模型中的所有信息,还包括潜在内容。根据这种逻辑,九因素模型似乎总是能给我们带来最好的预测结果。

过拟合:更好地拟合现有数据并不一定意味着会得出更好的预测结果

但事实证明,并非如此简单。

这些模型应用到前期数据上的结果如上图所示。不出所料,单因素模型错过了很多更精确的数据点,虽然它也能分析出蜜月后开始衰落的基本趋势。然而,它的直线预测法预测这种下降将永远持续下去,最终导致无限的痛苦。这个轨迹听起来好像不太正确。双因素模型更接近拟合的调查数据,其弯曲的形状就是不同的长期预测,表明在初始下降之后,随着时间的推移,生活满意度会慢慢达到一种稳定水平。最后,九因子模型通过了图表上的每一个点,它本质上就是一个完美并适合所有研究数据的模型。

从这个意义上说,九因素公式似乎是我们最好的模型。但如果你看看对没有被研究到的年限的预测,你会知道它是多么有用:它预测到了婚前的恐惧,结婚后几个月的欢欣愉悦,之后仿佛坐过山车一样的颠簸,以及十年后的急转直下。相比而言,由双因素模型预测的结果与心理学家和经济学家关于婚姻和幸福所预测的最一致。(顺便说一下,他们认为,这只反映出他们对生活的满意度回归了正常的基线水平,而不是对婚姻本身有任何不悦。)

其中的启示是这样的:的确,若模型中包含更多的因素,从定义上来说,会更拟合我们已经现有的数据。但更好地拟合现有数据并不一定意味着会得出更好的预测结果。

诚然,像单因素公式的直线这样过于简单的模型,可能无法分析出数据中的基本模式。如果真相看起来像一条曲线,就没有任何一条直线能正确表达。另一方面,像这里的九因素模型这样过于复杂的模型,就会对我们碰巧观察到的数据点过于敏感。正是因为它是如此精细地调整以适应特定的数据集,所以它所产生的解决方案高度可变。如果研究的对象发生变化,同一基本模式也会发生细微变化,那么单、双因素模式会或多或少地保持稳定状态,但九因素模型将从研究中的一个例子剧烈回旋到另一个。这就是统计学家所称的过度拟合。

过拟合:更好地拟合现有数据并不一定意味着会得出更好的预测结果

因此,机器学习的最深刻的真理之一就是,事实上,并非使用一个更复杂的模型就会更好,它需要考虑更多的因素。这个问题不仅仅是额外的因素可能会提供递减的回报,比一个简单的模型效果更好,还不足以证明增加的复杂性。相反,他们可能会使我们的预测效果急剧恶化。


分享到:


相關文章: