<物种起源>的作者查尔斯.达尔文曾经为要不要向表妹艾玛求婚而苦恼不已。结婚几乎是人生最重要的决定,很多人的人生正是因为婚姻失败而遭受承重打击,因此在做出如此重大决策前必须慎之又慎。就连达尔文这种一等一的聪明人在这个问题面前都纠结万分,他根本无法像推演物种进化那样推演与艾玛结婚是否会给自己的人生带来幸福。
很多人在左右为难时,常使用一种好坏列表法来辅助决策。也就是拿一张纸分成两部分,左边写下好处,右边写下坏处,然后一一比对勾销,如果好处比坏处多,那么就干,反之则放弃。这种方法的首创者是美国国父富兰克林,他在做决策时总是绞尽脑汁,事无巨细的把所有可能想到的好处和坏处都罗列出来,并两相比较,最后看好处胜出还是坏处胜出。
我们都以为掌握越多的信息就越有利于做出正确决策。例如孙子兵法中就有知己知彼,百战不殆一说。我们收集各种信息进行分析后做决策,本质上是通过观察过往数据后,在头脑里形成一套理论或计算方式,显然这套理论或计算方法必须能对观察到的数据做出合理的解释,然后用这套理论或计算方法与预测未来,你的理论或方法对过去以及现在看到的情况观察得越准确,你对使用这套方法去预测未来就越有信心。
过度拟合.jpg事实是你掌握的信息越多,你的理论对当下情况解释得越好,你的决策就有可能越糟糕。这个洞见来自于计算机科学中的机器学习算法,机器学习的本质是,我们收集到大量的关于某件事情的数据,然后根据数据的特性提出一个数学模型,计算机利用大数据去调试该模型,让模型对数据的解读越准确,然后我们就可以使用该模型去预测未来的数据。理论上用于调试模型的数据越多,模型对未来数据的预测应该越准确,但实际上却出现截然相反的情况,这就叫过度拟合。
例如我收集了某只股票过去一年中每一天的涨跌情况,然后我提出一个数学公式,你输入某个日期,我的公式就能得出该日期股票是涨是跌,于是我的公式其实把时间分成两类,一类是股票涨的时候,另一类是股票跌的时候,如果我的模型正确的话,那么我就可以算出未来哪一天股票会涨,于是我们就能提前买入挣大钱。结果你发现你用分析过去两年数据去预测股票涨跌时,所得结果比用过去一年的数据去预测时的效果要差很多。
出现过度拟合的原因在于,数据中含有很多噪音。如果我们拥有的数据真的反应了事情的本质,那么理论越能够解释现有数据,它就越能够预测未来的相应数据。但由于我们采集数据过程中可能出错,或者是某些性质很难用数据描述,例如”幸福感“,这种我们很难准确量化的内心感觉。因此理论对当前数据解读得越好,理论就越会被数据中蕴含的错误所蒙蔽。
铜蛇.jpg三大宗教都一致性的禁止以文字,图像,雕塑等方式宣扬教义,本质就是为了防止信徒过度拟合。在<出埃及记>中,摩西带领以色列人离开埃及,不再做法老的奴隶。由于路途艰辛,很多人受伤患病,由此出走的意志大为动摇。为了让以色列人坚定信念,上帝创造一条铜蛇,任何受伤患病的以色列人看一眼铜蛇就可以痊愈。这个故事和相应的图片雕塑原本是为了增强信徒对上帝的信仰,但由于铜蛇视觉性太强,结果导致信徒信仰的不是上帝,而是这条铜蛇!这就是一种过渡拟合的表现。
’过度拟合‘时常在生活中以矫枉过正的面貌出现。例如甜食含有糖分,后者能提供高热量,因此我们的身体对甜食拥有本能的欲望。然而糖的摄入必须适量,吃太多糖会导致肥胖,糖尿病等损害身体健康的疾病。在工业革命之前,人无法大规模生产含糖食品,因此遇到甜食时尽可能的吃是合理的。然后工业革命之后,糖几乎可以无限制供应,如果我们对糖的欲望没有节制,那就会对健康产生严重破坏。一个对吃糖产生过度拟合的例子是伊丽莎白女王,她酷爱吃糖,吃什么都要加一勺糖,结果牙齿都吃黑了。有意思的是黑牙齿从此成为贵族风尚,因为当时只有贵族才有能力吃那么多的糖,因此吃糖吃成黑牙就能显示一个人的身份地位,就像现代人买豪车一样。
在商业上,过度拟合也经常出现。最典型的是过分追求KPI,对员工产出效益的衡量当然是重要的,但过分的重视KPI就会导致公司追逐短期利益而放弃长远规划,公司和员工过分的将资源投入到当下产出中,而长远性的战略规划或技术研究无法在当下产生收益因此被忽视,于是这种“过度拟合”行为使得公司为当下蝇头小利而放弃整个未来。最近互联网公司出现大规模加班加点情况,这也是一种过度拟合,员工的精力被过分压榨,使得他们的创造力被耗光,因此公司就无法在未来打造具有影响力的新产品。
加班狗.jpeg在军事领域产生的过度拟合现象也更加危险。对于军事从业人员而言,由于事关生死,平时的训练异常严格,很多军事技巧必须大量训练以至于形成肌肉记忆,如此在千钧一发的生死关头,你才能快速准确的做出合适反应。然而过分严格的训练产生过度拟合的效果,导致军事人员在实战中出现很多匪夷所思的行为。
FBI特工有一项射击训练,每打完两枪之后流程要求要把枪装入枪套,以防止差枪走火。由于训练量很大,这个流程产生了意想不到的溢出效应。特工在跟歹徒进行激烈的枪战交火时,特工会向对方射击两枪后,无意识的把枪收起来装在枪套里,他不管这两枪是否击中对方或是对方正在向其射击。业内把这种行为叫做“训练伤疤”,一个更极致的例子是,一位歹徒拿枪指着一位警官,警官应用自己的高超武艺一把将枪夺过来,接下来出人意料的是,他居然主动把枪还给对方,因为训练时他把枪夺下后会把枪还给队友,于是形成了肌肉记忆。
我们如何防范在决策过程中产生过度拟合效应呢?在机器学习领域经常使用的一种方法叫交叉检验。简单的说,交叉检验就是看经过大数据训练后的程序除了能准确预测看到过的数据外,对它没见过的数据是否也能准确预测。这种方法也可以应用在现实中以防止过度拟合,例如学校经常使用考试的方法检测学生对知识的掌握程度,但问题是考试成绩好是否意味着学生完全掌握了知识点,还是因为学生只是掌握了应试技巧?由此学校可以引入新的考核方式,例如随机抽查几个学生,让他们以写论文或答辩的方式接受考核,看其表现如何,因此防止考试产生的过度拟合效应。
cross validation.jpg另一种防止过度拟合的方法是惩罚复杂性。在机器学习中,为了让模型能更好的解读大数据,研究员喜欢给模型添加很多不必要的参数,于是容易导致过度拟合。为了防止这种情况,人们引入一种对复杂性的惩罚措施,如果你往模型中增加一个参数,那么你就得对模型的准确性打折扣,你加的参数越多,模型越复杂,最终折扣就越大,因此随意增加复杂性会得不偿失,这种措施在计算机算法中被称为“正规化”。
人生智慧之一就是避免将事情过度复杂化。经济学家哈里.马科维兹于1990年获得诺贝儿经济学奖,他得奖是因为提出了一种名为“均值方差资产配置优化模型”。该模型指导投资者在确定不同基金的风险概率后如何组合多种投资基金从而能确保收益最大化。当他退休后,他面临着如何投资自己的退休金问题,显然他最应该按照自己提出的模型去管理退休金。
结果马科维兹背叛了自己。他在投资时完全抛弃自己提出的那套头头是道的复杂理论,而是采取投资小白的做法,将钱分成两部分,一部分买收益低但有保障的债券,一部分买收益高但风险也高的股指或基金。原因在于他的理论过于复杂,很难在现实中操作,第二是模型所需要的各种参数很难估计,例如你怎么精确估计某个基金的风险系数呢?一旦有几个参数估计不对,整个模型会给出完全错误的结果,这也是为何马科维茨抛弃自己理论的原因,他实践上在对自己的理论进行“正规化”。
复杂性.jpeg第三种防止过度拟合的方法叫及早停止。在机器学习算法中,工程师在设计好算法模型后,会将收集到的大数据输入模型进行计算,模型在计算过程中调节内部参数,使得模型对数据的识别越来越精准。这个将数据输入模型,调节模型精确度的过程会反复进行,模型每过一遍数据,它对数据的识别就越准确,这个过程叫模型训练。然而过犹不及,如果识别的次数过多,模型的准确度反而会下降,因此工程师一旦发现模型准确性有下降趋势时,他要及早停止训练流程,这种操作在算法中叫Early Stopping。
Early Stopping可以用于治疗完美主义而造成的拖延症。有些人热衷于做各种准备工作或者是等待“条件成熟”后才真正采取行动,但世事变化如此之快以至于你根本无法准备充分或等待所有条件一一满足。因此当你决定作出某个重大决策时,你需要预先做充足思考和规划,但只要你确保基本条件满足即可采取行动。例如你想创业,你自然要思考商业模式,技术支持,市场规模等问题,但你不能在这些问题上想个不停而迟迟不动手,想到一定程度,觉得大体可行时就应该里面行动,要不然重重顾虑会杀死你的行动欲望。
在机器学习的数学模型设计阶段,研究员往往采取步步为营的方法。他们不是在脑子里把一个相当复杂的软件所需要的各种细节都考虑到后才动手设计,而是先抓住一个最主要因素,然后把模型设计出来,确保模型能比较准确的分析数据;然后依次添加第二重要,第三重要因素,由此不断完善模型。
机器学习中数学模型的设计方法应用在决策中就是:有枣没枣搂一杆子再说。你不用想太多,知道个大概后先动手实践,然后等待市场反馈,如果反馈好,说明你想对了,你继续往现有方向加持;如果反馈不好,说明你想错了,然后你根据反馈信息调整方案,按毛主席的话说,你要在战争中学会战争!
复杂性.png回到前面说到的正因求婚焦虑的达尔文。他在使用列表法评估婚姻好坏时,并没有无止境的罗列很多条件,而是把条件罗列限制在一张A4纸中,这是他防止自己“过度拟合”的有效措施,纸张的大小限制他思考得过于复杂:任何不能写在这张纸里的理由都是不足以考虑的理由,也能让他的评估及时停止,最后他当机立断的决定向表妹结婚,于是他有了一个非常完美而幸福的婚姻生活。
请关注公众号,让我们共同学习进步
qrcode_for_gh_00f6e6bb0b6c_258.jpg 新书上架,请诸位朋友多多支持: WechatIMG1.jpeg
网友评论