咱们先来设想一个场景。一个会议室里坐满了人,正在做报告的年轻人西装笔挺,头发梳得一丝不苟,PPT上列满了数据和图表,他正在论证一个什么东西。
年轻人讲了很多很多,可是台下听报告的一个穿着随意的大佬,有点不耐烦了:“你不用说那么多,我就问你几个问题。”
大佬问了几个问题,年轻人马上被难住,于是大佬否决了年轻人的整个提案。
我们对这个场景并不陌生。可能这是一次公司例会,也可能这是一次论文答辩。在一线做事儿的人用了很多很多精力专注于各种细节,可是大佬们想问题却往往是写意的 —— 他们三言两语就能发现问题的关键,并以此作出决策。然后事实证明大佬说得对。
这就引出了一个问题。有些人做过大量功课,掌握了丰富数据和资料,为什么他们的决策水平,反而不如大佬短短时间内的快速判断?难道说,对一个问题思考得多,反而可能没好处吗?
这个问题,数学家也早就想明白了。如果你的模型涉及到决策判断和预测未来,那么精确写实往往不如粗略写意。事实上,你的模型越写实,你的最终效果反而可能越差!数学家,管这个叫做“过度拟合”。
今天我们继续说Algorithms to Live By: The Computer Science of Human Decisions(指导生活的算法:人类决策中的计算机科学)这本书,作者是Brian Christian 和Tom Griffiths。
“过度拟合”这个词听起来可能有点陌生,非常技术化,可是我觉得这个概念实在是太重要了,每一个决策者和思考者都应该了解。什么叫过度拟合呢?
1.过度拟合
我们先来看看下面这组数据。这张图是对已婚德国人调查统计的结果,说的是人们在结婚以后,生活满意度随着时间的变化。曲线上有10个点,对应结婚第1年到第10年的数据。
我们看刚结婚第一年人们的生活满意度很高,而第二、第三年则持续下降,到第四年又有所回升……后面是一个波动的局面。
好,如果我们想要根据这10个点来预测人们结婚15年甚至20年之后的幸福度,应该怎么办呢?你就需要根据现有的10个点画出一条曲线,然后再把这条曲线按照原来的趋势延伸出去。画曲线发现趋势的这个动作,就叫“拟合”。
在数学上最简单的拟合就是多项式拟合。如果曲线只是时间的函数,那么一阶多项式,f(t)=a+bt,就是假设生活满意度只和时间的一次方有关。你也可以进行二阶多项式拟合,f(t)=a+bt+ct^2,也就是生活满意度不仅和时间有关,还和时间的平方有关。以此类推,你还可以考虑更高阶的多项式拟合。
拟合出来的结果,就是下面这张图。
图中的直线代表的就是一阶多项式的拟合结果,还有一条断续折线表现的是二阶多项式的拟合结果。
如果按照一阶多项式的拟合结果往外推算,人们生活满意度就是按照相同的速度逐年下降的,这看起来似乎不太符合事实。二阶拟合的结果就好多了,下降一段,到了后期就比较平稳。但不管是一阶还是二阶,拟合出来的曲线和原始数据都存在偏差 —— 原始数据的点并没有落在拟合曲线上,这两个模型只能大致说明一个趋势,但是并不精确。
想要精确的结果,我们得用到九阶多项式拟合,也就是图中的实线部分。这条拟合曲线经过了原始数据上的每一个点!可是九阶多项式的预测结果非常糟糕!它说在结婚10年之后,你的满意度会突然下降!这几乎是不可能发生的现象。
这就是过度拟合。你的模型想要一丝不苟地反映已知的所有数据,它对未知数据的预测能力就会非常差。这是因为所谓的“已知”数据,都是有误差的!精准的拟合会把数据的误差给放大 ——拟合得越精确,并不代表预测结果就越准确,拟合得过度精确后反而结果更加糟糕。
所有搞数据分析的人都明白这个道理。在大数据和人工智能领域,过度拟合是个非常让人头疼的问题。数学家想了各种办法来判断什么时候出现过度拟合,以及怎么避免过度拟合。
2.不要想太多
如果把原始数据随便改动一点点,而你这个模型的预测结果就会有很大的变化,那么你基本上就肯定是过度拟合了。一个好的模型不应该对数据如此敏感!
比如说,某公司选取一套数据,作为考核指标,来评估公司运行情况和激励员工。那么如果有人认为完成这些指标非常非常重要,以至于稍有不足就万分焦虑,那我们就可以说这个人已经是在过度拟合了。一个大公司,怎么可能因为一件小事而改变了整个未来的走向呢?
数据很重要,但今天的人似乎有点“数据崇拜”。过分重视各种考核指标,为了数据和指标而工作,纠结于各种细节,就可能顾不上真正重要的事情。
书中举了一个例子。有个大学老师,从事教学工作的第一年,备课非常细心,1个小时的课程他会用10个小时准备,教案和PPT无比详尽。到了第二年,他新开了一门课,可是因为工作太忙了,他并没有那么多的时间来备课,不得不简化仓促应对。他自己很焦虑,结果学生反而更喜欢新开的这门课。
他准备的时间短,效果反而更好。
这是为什么呢?其实第一年的课程看似准备得非常完美,但这只是老师自己眼中的完美,他有充分的考虑时间,就拼命往教案中加入各种细节 —— 其实从学生角度看,根本不得要领。第二年他没有那么多时间准备,就只能确保把最重点的内容放进去,结果学生一看反而简单明了。
其实每个人都可能会有类似的经历。一篇文章让你几个小时写完,内容就已经很不错了。非得让一个写作班子用上好几周的时间写,这文章里面必然加入各种不该有的细节。一个决策能抓住重点就很好了,非得考虑各种不重要的因素,最后往往做出错误的选择……这就是“长考出臭棋”。
数学家为了避免过度拟合,经常要人为地减少模型的复杂度。其实我们在生活中也有这样的机制!人脑看着不大,但是其能耗却占到整个身体的20%,这就是为什么我们想问题时间太长会感到很累 —— 而这其实是个好事儿,因为想多了反而不好。
我们在生活中思考问题,并不会随时参考大量的数据和图表,我们头脑中有很多快捷方式!比如说类比、成语典故和谚语,其实都是好办法。面临重大决策 ,有时候没必要考虑太多细节,还不如当场念两句诗。
1990年的诺贝尔经济学奖得主哈利·马可维兹(Harry Markowitz),他的主要贡献是提出了现代投资组合理论 —— 也就是说,给定了每种金融产品的预期回报和风险,你应该怎么把它们组合在一起,来让自己的投资利益最大化。这显然是个特别有用的理论。
有人就问马可维兹,你自己的退休金,使用了什么样的投资组合呢?马可维兹说“非常简单,一半买股票,一半买债券。”
这就是简单的力量。
3.三个建议
我们小时候做数学应用题,通常都是题目给你多少个数据,你解题的时候就能用到多少个数据。而真实生活并不是这样的。我们在真实生活中往往会遇到很多很多的信息,而且还都是有误差的信息,你不可能像小学生做应用题那样把这些信息都用上。
诸葛一生唯谨慎,吕端大事不糊涂。想要避免过度拟合,你必须学会抓住重点,学会忽略掉一部分信息。
书中给了三个建议。
第一,限定思考时间。比如一天之内必须完成报告,或者一小时之内必须结束会议。其实开会也好,写报告也罢,考虑的时间越长越无法保证效果,反而是在有时间限制的情况下, 你才会逼着自己去考虑最重要的因素。
第二,限定内容长度。比如你可以要求属下写报告不能超过一页纸。如果一个方案无法用一页纸阐释清楚,你就应该干脆放弃这个方案。另一个办法是所谓“电梯谈话” —— 你想跟我谈一个商业计划,你最好能在电梯里面这点时间内说清楚你的方案。
第三,在白板上讨论商业计划,要使用粗的马克笔。最初的计划必须抓住重点!笔画越粗,对你的思维越有利,越能逼着你去考虑大局。如果你用圆珠笔,无形之中就会陷入关注细节的思维模式。
每当预测未来和做计划的时候,我们都应该想想本文开头那张图 —— 最好的预测,就是在上面随手画一条很粗很粗的线。
最后咱们讲个达尔文的真实故事。达尔文曾经无法决定到底是不是应该结婚。他使用了当时流行的一个决策办法 —— 把日记本上的一面分成两半,在左边写下结婚的理由,右边列举不结婚的理由,看看哪边的理由充分。
达尔文列举得非常详细,比如其中一个不结婚的理由是结婚之后开销加大,可能就没钱买书了。
可是反复思量之后,最终还是一条理由促使达尔文决定结婚。这个理由是人不能光顾着工作 —— 有了妻子、孩子,才能享受到家庭生活的乐趣,哪怕为此做出一定的牺牲也是值得的。就为这条理由 —— 而不是所有理由加在一起权衡的结果 —— 达尔文决定向表姐求婚。至于什么买书,那都是不重要的细节问题。
他求婚成功了,而且收获了幸福的婚姻。
达尔文日记本中做出结婚决策的一页
如果一件事情真的值得去做,哪有那么多理由?
下次再有人不顾重点,在细节问题上纠缠不清,请你跟他说一句成语!
—— “你过度拟合了。”
网友评论