“过于抠细节”,到底是好还是坏?| 过度拟合
这是我的第 207 天分享
全文共约 1500 字,阅读完共需约 4 分钟
在平时的工作生活中,你会把每一块内容都弄到完美,然后再去弄下一块,还是先弄好整体的框架,然后逐渐填充?
这两种选择,其实就对应了两种人。
第一种人属于“完美主义”,他必须要把这一块内容都弄完才能弄下一个,不弄完不往下进行。
另一种人则更偏向于“大局”,先把大框架用较短的时间弄好,这样可以保证大方向不会错,然后再逐渐填充、丰富里面的内容。
到底我们应该如何看待“过于抠细节”呢?这还得从“拟合”说起。今天,我们就来聊聊,“拟合”这个话题。
01 拟合与过度拟合
拟合最初是数学用语。科学家们为了把得到的数据能用一个近似的函数表示,就创造出了“拟合”这个概念。
“拟合”,简单来说,就是用一条曲线,把平面上的点连接起来,形成一个近似的通用函数。
在拟合的过程中,科学家们发现这样一个有趣的现象。随着引入的参数点越来越多,曲线准确度越来越高;但是,随着引入的参数点继续增加,他们发现,计算量就骤然变大,而且得出的这个函数,没有普适性。
这段话怎么理解呢?
假设我们一共得到了九个数据,在计算的过程中,我们发现,有7个数据相对集中,可以得出一个近似的函数,这样做准确率相对较高,而且省时省力。
结果在这个时候,有个人说,不行,我的函数必须要完美连接到每一个点才行,于是就开始大量的计算,费时费力。
这种行为,就叫做“过度拟合”。说白了,就是“仔细”过头了,结果让自己没能得到足够的投入产出比。
拟合是一件好事情,它可以帮助我们提炼出样本的共同点,而这些共同点,又能帮助我们继续攻克其他的问题。
过度拟合就不一样了。假设对于一类问题,我们可能只需要20分的时间,就可以解决80分的问题;结果有个人偏要完美主义,用200分的功力,让结果达到99.9。
等他找到结果(结果可能偏差更大)之后,别人已经在相同的时间内,完成十倍的任务量了。
过度拟合,就是对某一块过于“精雕细琢”,导致如果把这个模型拿到其他情况中验证,正确率反而会降低很多。
关于生活中的“过度拟合”,我举两个例子。
第一个例子是关于学习的。
为什么有的人看上去特别努力,但就是没有别人成绩好呢?大概率是方法出现了问题。
你有没有遇到过这样的人,学习时,只刷题,不思考总结,不提炼模型。对于这样的人来说,刷一万道题,也不如那些善于总结的人成绩提升得快。这种人,其实就是在用战术上的勤奋,来掩盖战略上的懒惰。
这样可能导致的后果就是,你刷了一万道题,结果考试的时候,别人出了一个你从来没做过的题,你瞬间就蒙了。
只刷题,其实就是一种“过度拟合”。刷了上万道题以后,可能对于这些做过的题,已经能做到完美拟合了。但是弊端也很明显,这种“拟合”之后的结果,很难通用到其他的题上面。
第二个例子,叫“训练伤疤”。
美国科学家研究发现,很多军人在面对敌人的时候,总是要花费大量时间,把弹壳放在口袋里——这是因为他们在训练军人的时候,就是这样要求的。
在训练时,这样没什么大碍。但是在真实场景中,这几秒钟的整理,可能就是生和死的差别。
这种由训练带来的“后遗症”,就叫做“训练伤疤”。
就像过度拟合一样,他们把自己完全沉浸在了训练场景中,想完美“拟合”每一次训练场景,这就导致了在现实情况里,他们可能还沉浸在训练中。
据说,他们发现过一个戏剧性的案件。一名军官本能地把枪从攻击者手中抢走,结果又把枪还给对方了。这就是在训练中“过度拟合”的后遗症。
希望今天的分享能对你有帮助。我是润东,我们一起,向上生长。
参考资料:
- 布莱恩·克里斯汀,汤姆·格里菲斯.算法之美[M],北京:中信出版社