您现在的位置是:首页 >  云笔记 >  阅读笔记 >  文章详情

《算法之美》阅读笔记

admin   2018-12-23 14:56:49   218人已围观

      刚在得到上听完《算法之美》这本书,感觉很有意思,特摘录部分重点分享给大家,以下为摘录的重点:

     关于本书
     我们所有人的生活都受到有限空间和有限时间的限制,因此常常面临一系列难以抉择的问题。在一天或者一生的时光里,哪些事是我们应该做的,哪些是应该放弃的?我们对杂乱无序的容忍底线是什么?新的活动与熟悉并喜爱的活动之间如何平衡,才能取得令人愉快的结果?这些看似是人类特有的难题,其实不然,因为计算机也面临同样的问题,计算机科学家几十年来也一直在努力解决这些问题,而他们找到的解决方案可以给我们很多启发。

     核心内容

    通过丰富的跨学科研究,作者指出,计算机算法也可以用来解答人类面临的问题。这本书告诉我们如何更有效地利用直觉、什么时候应该把选择权交给命运、无所适从的时候应该如何做出选择,以及如何有效地与他人保持联系。这本书把计算机科学的智慧转化为人类生活的策略,引导我们做出明智的选择。

     前言

    这是一本用计算机科学的思考方式,来给用户赋能的书。怎么个赋能法呢?正式开始之前,咱们先说一个书里的小测试。
    假设你正在经历一件人生大事:买房。你已经看过很多房子,不是太贵,就是位置太偏,你都不满意。这天,房产中介又给你介绍了一处新房源,并且告诉你,这套很抢手,过了这个村没这个店。于是,你又开始纠结。买,意味着你要背上一大笔贷款,压力会不会太大?过几个月房价会不会降?不买,万一再涨价呢?以后可能一辈子都买不起了。
请问,你该怎么办?继续观望,还是马上出手?答案我们后面再说。
在我们的生活中,难免遇到这种茫然无措的关键时刻。结婚、买房、跳槽、生儿育女,在这些重大选择中,复杂的外部因素和情绪干扰,让人难以权衡,到底怎么才能排除干扰,做出最明智的决策呢?《算法之美》回答的就是这个问题。这本书的核心就是,我们可以模拟计算机的思考方式,把这些复杂的人生问题,转化成单纯的数学运算,从而找到解决方案。
这本书的作者布莱恩·克里斯汀是一位美国作家,很擅长分析现代人的心智模式,他的代表作《最有人性的人》曾经被《纽约客》杂志评为年度好书。
在《算法之美》这本书里,他指出,很多情况下,人类面对的问题和计算机是一样的。我们一直以为,计算机比人类严谨得多,它们可以动用无限的运算资源,穷举所有可能性,给出最优解。但事实是,计算机也在妥协,比如处理器在执行多个任务时,应该怎么分配自己的注意力?如何利用有限的存储资源,储存更多的数据?怎么在和人类的围棋对战中取胜?
计算机和人类一样,也需要在信息不全、资源有限、充满不确定的情况下,做出最佳判断。只不过,它们依赖的不是主观的经验和心法,而是客观的数据运算。用计算机的方式思考人生,将为我们打开一个解决问题的新维度,你会发现,很多复杂问题,解决方案都出奇的简单。
接下来,我从这本书里选择了三个最重要的研究和洞察,分别对应我们在生活中常见的三类难题:怎么抓住最佳的决策时机?怎么规划时间最有效?如何对抗心中的妄念?我将从这三个问题出发,为你解读这本书。

      第一部分


      首先,怎么抓住最佳决策时机?买房、结婚、跳槽,这类问题之所以难以抉择,不外乎两个原因:一是未来很难预测,你只知道现在和以前遇到过的人和事物,未来什么样,你并不知道;二是已经做出的决定不能反悔,一旦拒绝,就等于永远错过。
在做出具体的选择之前,我们首先要找到决策的最佳时机。请注意二者的区别,具体选择指的是,这道选择题应该怎么做。比如在买房这个场景里,它对应的问题是,在同时面对几套房子时,应该买哪套?而决策时机指的是,这道选择题应该在什么时间做。在买房这个场景里,它对应的问题是,到底应该十年前就考虑买房,还是十年后再考虑买房?
这类问题被人类称之为终身大事,但在计算机的世界里,它有另一个名字,叫零信息博弈,也就是在信息极度稀缺的情况下,分析潜在可能,寻找做出最佳判断的时机。根据计算机的运算,只要是零信息博弈,最佳的决策时机,都是同一个时间点,请记住这个数字:你决策总时限的37%。注意,是任何问题,都是这个时间点。
比如开篇的买房问题,假如你必须要在一个月内做出决策,那么最佳的决策时机,就是这个月总天数的37%,也就是第11天。在前10天,你只观察,不管看到多心动的房子,都不要买。从第11天开始,只要看到一个比之前好的房子,就应该果断出手。
再比如结婚,假设你给自己限定的结婚年龄是18到40岁,过了40岁就不结婚。那么你决策的最佳时间,就是18到40岁之间37%的时间点,也就是26.1岁。在此之前,无论有多合适的恋人,你都要克制。过了26.1岁,只要看到比之前更合适的对象,就要立即求婚。
再比如跳槽,你给自己限定,一共要面试10家名气差不多的公司。根据37%原则,你在前3家公司的面试中,不管待遇多高,都要果断拒绝。从第4家公司开始,一旦发现一家比前3家都合适的公司,一定要努力争取。
在37%这个时间点上,你有最大的概率选到最好的结果。这个结论乍一听有点匪夷所思,这个数字到底是怎么算出来的呢?现在,我们一起做一次脑力体操,完成这次演习,你就知道计算机是怎么应对这场零信息博弈的。
首先我们假设,你面前有一堆宝箱,每个宝箱里都装着数额保密、高低不等的奖金,你可以从中挑一个带走。好消息是,你拥有无限次机会,而且可以先开启宝箱,看到里面的钱数之后再决定要不要拿走。但限制是,你一次只能开启一个宝箱,一旦决定不要,就不能反悔。未来的宝箱是未知的,过去的宝箱不能反悔,这是两条刚性制约。那么,应该在打开第几个宝箱的时候做决策,才最有可能获得最高的奖金?注意,不是说选择这个宝箱,就一定能拿到最高的奖金,而是有最大的概率,拿到最高的奖金。
假如宝箱的总数量是两个,就很好办了。不管你选哪个,中大奖的几率都是50%。那假如是三个呢?当你开启第一个宝箱,里面是1万块。你可以拒绝,然后再开启后两个,但后两个的奖金可能还不如第一个多。
一般来说,我们可以这样计算,开启第一个宝箱时,不管里面有多少钱,它都是你截止到目前能得到的最高金额,是100%的目前最佳。而随着陆续开启宝箱,这个目前最佳的概率会被后面的宝箱平摊。开启第二个时,每个是目前最佳的概率都是一半,开启三个,每个是目前最佳的概率都是三分之一。开启的宝箱越多,目前最佳的概率就越低。按照这个逻辑,我们应该毫不犹豫地选择第一个宝箱。但是,这种做法是不是太草率了?
其实,还有另一种更科学的算法。按照这套算法,在一共有三个宝箱的情况下,开启第二个宝箱的时刻,就是我们的最佳决策时刻。
因为在开启第一个宝箱时,我们没有任何方法能断定,这就是最大的宝箱。同样,在开启第三个宝箱时,我们也没有任何选择,因为已经拒绝了前两个宝箱。但是,在开启第二个宝箱时,我们既掌握了一些信息,又有一定的选择权。我们知道它跟第一个宝箱比谁多谁少。注意,这个信息非常关键,因为原本三个宝箱里,每个宝箱中大奖的概率都是三分之一,但一旦我们确定第二个宝箱里的钱比第一个宝箱多,那么它的比较对象,就只剩下第三个宝箱,它的大奖概率就变成了二分之一,比另外两个都要高。并不是说,我们一定要选择第二个宝箱,而是我们做出最优选择的窗口期,在打开第二个宝箱之后。
在一共有三个宝箱的情况下,开启第二个宝箱的时刻,大概是游戏总进程的33%。现在,我们把样本数放大,假设有10个宝箱,按照同样的逻辑计算,最佳的决策时机是第四个,也就是总进程的40%。当样本数继续放大,这个数字开始趋于稳定,当有100个宝箱时,最佳决策的时机,是第37个宝箱。而神奇的地方在于,从100开始往上,这个最佳决策时机基本不会再变,哪怕总共有100万个箱子,计算机算出的最佳决策时机,仍然是37%,也就是第37万个。在这个节点上,我们有最大的概率,选到最高的奖金。
现在,我们已经得到了第一个关键数字,37%。当然,这个数字我们可以不用记得那么精确,只需要知道,最佳的决策时刻,是前半场稍微靠中间的位置就行了。这个最佳决策时刻,在计算机领域里被称为最优停止。说白了,就是见好就收的最佳节点。
以上是第一部分内容,怎么抓住最佳决策时机?计算机给出的答案是,37%原则。不管我们面对的情况多么复杂,只要我们坚持在总进程的37%时做决策,既不急于出手,也不拖拖拉拉,就能抓住最佳决策时机。

      第二部分


      当然,37%原则并不是在所有情况下都适用,它有两个局限。第一,37%原则所解决的问题,都有一个共同的特点,就是事先已经划定了明确的结点,比如买房,必须在1个月内做决定;结婚,年龄严格限定在18到40岁;跳槽,已经给自己规定好了要面试10家公司。但在实际决策中,结点往往很难在一开始就决定好。我们总会期待未来会有更好的机会,未来的不确定性,往往让人在决策的时候更加举棋不定。这是第一个局限。
第二,人生毕竟不是数学题,就像 TVB 的台词里说的,做人,最重要就是开心。在婚姻大事里,很多一见钟情的故事都被传为佳话,在事业选择中,梦想和热爱往往超过了利弊权衡。37%原则是一个选项,有效,但绝不唯一。
但是,接下来要说的这个技巧,通用范围则要广得多,几乎每个人都适用。接下来,我们来说说,应该怎么管理时间?同时面对很多任务,应该怎么安排优先级?
这不是一个新鲜的问题,市面上已经有很多关于时间管理的图书。但可惜的是,它们的主张完全不一样。比如有的书建议从最困难的任务开始,还有的书主张要战胜拖延症,先后顺序不重要,重要的是马上行动。还有的书里提倡要适度拖延,说这样反而可以提高效率。
我们到底应该听谁的?《算法之美》中给出的结论是,当一个时间段内,同时有几项任务时,我们应该从耗时最短的任务做起。比如你同时有两件事要做,一件很简单,一天就能干完,另一件很难,需要五天,你就应该先做那件一天就能交差的工作。
按照我们通常的设想,不管先后顺序怎么安排,这两件事的总时长都是六天,好像没什么区别。但是从计算机的角度看,可是大不一样。
要想理解其中的不同,我们得先从人脑和计算机的存储原理说起。根据作者的观察,人脑和计算机的存储方式,有个重要的共同点:都依赖于缓存。缓存,指的就是一个高速的存储读取空间。我们假设,电脑硬盘是一座巨大的图书馆,存储能力很强,但是每回你想去图书馆找书,都要从海量的书籍里查找,很不方便。所以你把那些常用的书借回家,放到你的书桌上。你的书桌,就相当于电脑缓存,它虽然存储能力有限,但读取速度很快。
在电脑里,缓存是分级的,根据使用频率不同,分为很多级。今天,大多数笔记本、平板电脑和智能手机,都已经达到了6级缓存。有时手机运行速度变慢,就要清理一下缓存,这是因为你最近调用过的程序,还在缓存区待命,你得先把它弄走,才能开启新的程序。
同样,人脑也有类似的缓存机制,只不过,不像电脑那样,分成明确的一二三级,而是根据信息最近的调用频率不同,在大脑里形成排列。最近调用越频繁的信息,就储存在越接近记忆表层的位置,越容易提取。很多时候,我们觉得一件事过了太久,要费很大劲才能想起来,就是因为这个信息使用频率太低,沉到了记忆底部。就相当于电脑的硬盘区,你得先把它提取到缓存里,才能快速调用。
你发现了吗?我们能够迅速提取的记忆,其实只是记忆总量的一部分。换句话说,硬盘的空间很充沛,但缓存资源很珍贵。我们当前能够运行多么复杂的想法,取决于大脑的缓存区还有多少剩余空间,原理就跟电脑调用程序一样。所以,及时清理缓存非常重要。
现在回到最初的问题,为什么要从耗时最短的任务做起?目的就是为了及时清理大脑的缓存。
假设,我们同时面临 A 和 B 两个任务。A 任务要耗时5天,B 任务耗时1天。假如先做 A 再做 B,那么你在执行 A 的这5天里,心里多少也会惦记着 B,它也在不知不觉占用你大脑的后台缓存。也就是说,B 实际占用大脑的时间不是1天,而是6天。这样A和B加在一起,就相当于5天加6天,一共占用了你的大脑11天。假如反过来,第一天就完成 B,后5天再完成 A,那么就相当于 B 占用了大脑1天,A占用了大脑6天,加起来一共7天。
所以说,总量固定的任务,前后顺序不同,对资源的占用时长也不同。这就是计算机的思考逻辑,它会始终确保自己处在潜能最优状态,随时有能力运行更复杂的程序。我把这套策略称之为最优缓存策略,它可以永远让自己处在最佳待机状态。
但是,这种优先级排序有一个前提,就是每件任务的重要程度是一样的。考虑到真实情况下,任务有轻重之分,我们在应用最优缓存策略时,还需要加入一个参考因素,叫做任务密度。
任务密度,就是一项任务的单位时间价值。比如一件任务需要10个小时完成,可以创造10万元的经济价值,那么这项任务的密度就是10万元除以10个小时,也就每小时1万元。说白了,任务密度,就相当于工作的性价比。
当同时面对很多耗时不同,重要程度不等的任务时,我们应该从性价比最高的任务做起。这样一来,我们不仅可以及时清理大脑缓存,释放更多的可用空间,还能确保当前正在做的事情,一定是最值钱的。
以上就是第二部分内容,应该怎么合理规划时间?计算机给出的方案是,最优缓存策略。在重要程度相同的情况下,从耗时最短的任务开始做起,在重要程度不同的情况下,从任务密度最大的事情开始做起。你不知道新的任务什么时间会来,及时清空缓存,才能让自己随时处于最佳待机状态。

       第三部分

       说到这,我们发现,计算机和人的相似之处,比我们想象得要多。但是接下来要说的问题,是人类独有的一种情感,妄念。妄念的定义是,你很想做一些超出自己能力范围之外的事情,这种强烈的冲动,就叫做妄念。你可以把它当成野心或者幻想,但是大多数时候,妄念的体现是,完美主义。
比如我们常说的拖延症,在心理学上,从来没有一种叫拖延症的病。大多数人只是总想着把事情做到100分,思前想后又找不到完美的方案,迟迟无法行动。再比如你在写一份报告的时候,生怕错过一丁点细节,明明可以几千字就写完的报告,生生写了几万字,看的人完全抓不住重点。
也许已经有很多人劝过你,要抓重点,不要揪细节,但你总是不甘心,觉得这些都是大话空话。但现在,计算机将用科学运算告诉你,你输入的细节越多,计算的结果,反而偏差越大,数学上把这种现象称为过度拟合。搞清了过度拟合的定义和危害,你也就能够对抗完美主义的妄念。
首先,什么叫拟合?这是一个复杂的数学问题,通俗地说,拟合是一门预测趋势的学问。比如你做了一个婚姻幸福指数调查,一共访问了10万个家庭,这10万个家庭里,大多数都很和睦,只有两家存在家暴行为。当然,这两个特例不足以说明问题,被你排除在外。通过分析剩下的9万多个家庭,你发现,结婚后的前10年,幸福指数是逐年递减的,但递减的速度很微弱,于是你预测,未来的十年,幸福指数还会再出现微弱的下跌,当然,总体还是幸福的。这个通过过去经验来推测未来的过程,就叫做拟合。
但是,你不甘心只预测一个大概的趋势,你想要精准知道每个家庭未来十年的幸福指数。于是,你开始深究这10万个家庭的具体情况,每个样本对你来说都非常珍贵,之前被排除在外的那两个存在家暴的家庭,也被你计算在内。你针对这10万个家庭,绘制出了过去10年精确的幸福指数波动曲线,但当你把这条曲线输入电脑,想预测未来的幸福指数曲线时,你会发现,完全不准。问题就出在那两个之前被排除的样本。因为家暴原因,这两个家庭的幸福指数,在整体曲线上会呈现剧烈的波动,当曲线延长时,波动也被放大。这种对细节过分考量,导致整体趋势出现偏差的情况,就叫做过度拟合。就像一辆汽车,在出发的时候,只要方向偏了一点点,后面就会越跑越偏。
我们想追求一个极度精确的结果,自然要放大每一个已知的细节。理论上说这并没有错,但事实是,已知不代表正确,有的细节只是特例,有的可能是调查中出现的失误。你越是把细节放大,这些特例和失误,就越会影响计算结果。除非你确保即使有10万个细节,每一个细节,也都是完美无缺的,但这基本不可能。
所以,那些又臭又长的报告,还有所谓的完美主义拖延症,本质上都是太过在意细节,都属于过度拟合。这是一种习惯,也是一种心态,怎么摆脱呢?书中给出的方法是,主动放弃。
第一是主动放弃一些无效时间。即使给你十年的时间写一篇文章,你也要主动精简,因为很可能文章的重点在第一个月就被你写出来了,后面的9年11个月,你都在补充细节,最后细节反而喧宾夺主,湮没了重点,所以必须主动设限。书里有个真实的故事,一个大学教授,第一学期每天花10个小时做教案,结果效果很不理想,学生们根本抓不住重点。第二学期他被琐事缠身,每天只能拿出一点时间做教案,结果内容反而简单明了,教学效果更好。
第二是放弃无效存量,这里的存量指的是知识存量。放弃无效存量,指的是在面对问题时,排除一些无关的知识或信息。你也许是个全才,样样精通,但越是这样,你在面对特定问题的时候,越需要做减法。一个问题,可能只需要你调动某一两个门类的知识,想多了反而不好。就像数学家为了避免过度拟合,会故意删除一些不太重要,甚至完全没关系的变量。
曾经有个调查显示,美国历年来纵火凶杀犯的数量,和美国小姐选美中,裙子的长度成正相关。虽然这个数据来之不易,但是显然犯罪率和美国小姐裙子的长短没什么关系,当你想建立一个犯罪率的方程,就要果断去除裙子长度这个变量。就像你掌握的知识,它们虽然很宝贵,但在具体问题的分析中,也要适度地屏蔽一点。
以上就是第三部分内容,怎么对抗妄念?计算机科学告诉我们,妄念是一种过度拟合,对细节的过分在意,反而会影响全局。我们要学会主动放弃,一是放弃外部的宽松条件,主动给自己一些限制,二是放弃内部多样化的优势,集中精力解决当前的问题。

      总结

      今天我们借助计算机的思考方式,解决了三个我们经常遇到的问题:怎么抓住最佳的决策时机?我们得到的工具是37%原则,也就是在总进程37%的时间点做决策;怎么有效规划时间?我们得到的工具是最优缓存策略,优先清理大脑缓存,使自己处于最佳待机状态;怎么对抗妄念?要认清妄念的本质是过度拟合,主动排除一些干扰因素反而能取得更好的结果。
读完这本书,你会发现一个有趣的趋势。在过去很长一段时间里,计算机领域最重要的议题都是,怎么让计算机更像人?似乎人和机器一直是对立面,而人的行为方式显然更高级,所以要让机器模仿人。
但是,在一些具体问题上,我们发现,计算机的思考方式,反而更能解决人类自身的问题。也许是因为计算机归根结底也是人造物,我们在创造它们之初,就已经把人类的思考方式,设计进了计算机的底层逻辑。这些思考习惯,随着计算机性能的增强而不断外化,最终被我们察觉。人类设计了计算机的思考方式,而计算机的思考方式,又反过头来给人类赋能。
最后,我建议你可以尝试一下,按照今天介绍的方法,去规划一些短期事务。在总时限确定的决策场景里,可以试试37%原则;在同时面对多任务时,可以列出一张清单,从耗时最短或者任务密度最高的事情做起;在出现完美主义的心理倾向时,可以把目光聚焦到问题本身,然后排除一些干扰因素,集中精力解决核心问题。希望书中提出的方法,能够对你有所帮助。

撰稿:李南南
脑图:摩西
转述:孙潇

转自:得到APP《算法之美》|李南南解读


分享到:

编辑发布时间:2018-12-23 14:56:49