美文网首页朋朋精选
《算法之美》作者:[美]布莱恩·克里斯汀

《算法之美》作者:[美]布莱恩·克里斯汀

作者: 刘书朋 | 来源:发表于2019-08-16 13:43 被阅读0次

    内容简介:

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

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

    作者简介:

    布莱恩·克里斯汀

    《华尔街日报》畅销书《最有人性的人》作者,该书入选《纽约时报》编辑推荐书目,被《纽约客》杂志评为年度好书。他的多篇作品先后刊登在《纽约客》《大西洋》《连线》《华尔街日报》《卫报》《巴黎评论》及《认知科学》等杂志上,被翻译成11种语言。

    汤姆·格里菲思

    加州大学伯克利分校心理学和认知科学教授,计算认知科学实验室主任。格里菲思发表过150多篇科学论文,内容涉及认知心理学、文化演进等,受到美国国家科学基金会、斯隆基金会、美国心理学会和心理环境学会等颁发的各类奖项。

    精彩书评:

    壹:

      在生活中,无论我们有无意识到,我们无时不刻不在利用算法,也许大部分是依靠感觉来判断。很多时候,因为我们对算法的模糊,我们不得不苦恼或者不得不浪费时间在某些事情上。

            所谓算法,是指解题方案的准确而完整的描述,是一系列解决问题的清晰指令,算法代表着用系统的方法描述解决问题的策略机制。

            如果我们在考虑问题时,清晰地了解我们所与之对应的算法,那么就可以更容易地解析问题或者更优地解决问题。

            《算法之美》涉及到了11种常见的算法。掌握并熟练使用这些算法可有效地梳理思路,获得更优答案。

            算法涉及到各种各样的问题。

    平衡性问题,选择合适的平衡点可以事半功倍。

    (1)最优停止理论中的37%法则,科学地验证了在单项线的遴选中,停止过早或过完,都会导致不理想的后果,而最佳平衡点37%可以获得更理想的答案。37%法则适用于恋爱、买房(火爆市场中)、停车、选拔等问题。

    (2)探索与利用的平衡。生活就是在新鲜事物和传统事物之间、在最新和最棒之间、在勇于冒险和安于现状之间取得平衡。探索与利用问题类似于老虎机问题。此问题可以利用上限置信区间算法,确定目前掌握信息中的最高值(将任何答案数值化),并在未来中选择最可能产生的最高值。在探索与利用中,我们需要不仅要把握当前,同时还要把未来纳入我们的视野,不断尝试新鲜事物,增加我们发现最佳选择的机会。

    排序性问题。排序是搜索的准备工作,排序的原因是避免未来花费太多时间在搜索上,因此排不排序,必须提前预估未来有无用途。

    排序包括空间与时间的排序。

    (1)在空间中,最常见的排序包括图书排序、体育比赛排序、和大数据的排序。如何减少排序的时间,其中的合并排序的分治算法和桶排序算法能够在大规模排序中取得优势。

    (2)在时间中,我们可以采用最早到期日和最短加工时间的策略排列我们的任务。在这些策略中,会用到优先级反转和中断联合(尽可能长时间停留在一个任务上,而不是将你的反应降低到最低可接受的限度以下)等,来达到更合理的安排时间。

    预测问题。

    世界上有两种类型的事物:倾向于某种“自然”价值的事物,以及与之相反的事物。倾向于某种“自然”价值的事物大体遵循正态分度/高斯分布(预测规则为平均规则),如寿命。而与之相反的事物遵循幂律分布(预测规则为相乘法则)或厄兰分布(预测规则为相加规则),如城市规划和行人交通的建设模型中。当然良好的预测最开始要有良好的直觉,要能感觉到我们何时在处理一个正态分布,何时在处理一个密云分布。而良好的直觉需要我们保护我们的先验(如逻辑或一般经验过后的知识常识)丰富我们的知识,开阔我们的视野。

    过度拟合问题。

    有时我们认为数据越多就越好,但是有时对数据的过度崇拜,会使我们将重心放在能够测量的数据上而不是真正重要的问题上。中国的应试教育就是过度拟合的例子。当一个学校的标准化考试成绩上升,而在“非标准化”(利用抽查方式检测学生对知识点的掌握程度)方面的表现却在相反方向移动,管理人员应该意识到一个明确的警告--应试教育已经出现。而避免过度拟合的交叉验证和套索算法(惩罚复杂性)可以帮我们更好地避免过度拟合带来的不良后果。

            当然还有很多其他常见的算法能帮助我们了解分析问题。如博弈论可以帮我们明确我们的判断是否符合事实,而不是是否符合共识;网络中的指数退避算法和和式增加积式减少算法(AIMD)可以帮助我们处理反复出现的同一问题和了解反馈沟通的重要性;随机性中的抽样算法、梅特罗波利斯算法和爬山算法可以帮助我们避免目光短浅招致的不优结果;约束松弛、持续松弛和拉格朗日松弛算法可以让我们在决绝问题上取得的进展……

            但是,使用算法并不代表百分之百地获得最优的结果。即是最好的策略有时也会产生不好的结果。如果你遵循了最好的流程,那么你就已经尽了最大的努力,若过节过不顺心,我们也不必责备自己。

            在苦难的情况下,最好的算法都是关于在最少的时间内做最合理的事情,这绝对是考虑每一个因素,并把每一次接受算都算到最后。

            在复杂的生活中合理地运用算法,可以使我们变得容易一些,简单一些。

    贰:

    你遇到了一个问题——橱柜里塞满了裤子、衬衫和内衣。于是,你想:该整理整理了。这下你面前就出现了两个问题:

          1. 哪些东西需要保留呢?

          2. 留下的东西应该如何摆放呢?

          如果你也像我一样选择困难,那这个存储问题一定会让你十分头疼。但幸运的是世界上有一群十分痴迷于存储问题的人,为我们提供了解决思路。他们就是用算法为存储问题提供解决方案的计算机科学家。

          用计算机算法指导人类生活听起来感觉怪怪的。因为“算法”这个词看上去是如此神秘莫测,与大数据、大政府、大企业有着密切联系,但其实算法指的就是解决问题的一系列步骤。早在计算机开始使用算法前,人类就已经把算法应用到生活中了:按照食谱学习烤面包时,食谱上的所有步骤就是一个算法;按照图样编织毛衣时,这份图样就是一个算法;使用鹿角的末端连续精确地敲打,使石器形成锋利的刃的过程,也是一个算法,可见算法与我们并不陌生,甚至从石器时代开始,就已经是人类生活的一部分了。

          橱柜整理与计算机存储器管理所面临的问题非常相似:空间有限,而目标是节省金钱和时间。我们和计算机其实都是在进行组织工作,只不过我们组织的是衣橱中的物理对象,而计算机组织的是内部的数字信息。也正是由于问题高度的相似性,使缓存作为计算机科学的解决方案,同样适用于人类的家庭生活。

    一、To 扔or not to 扔,this is a question!

          当你决定物品该扔还是该留时,缓存算法中的最近最少使用原则可能是一个有效的指导原则,最近最少使用法告诉我们,我们需要的下一个程序可能就是之前我们需要的最后一个程序,接下来我们可能还需要之前需要的倒数第二个程序。我们最不需要的可能就是我们弃用时间最长的那个程序。除非有充分的反对理由,否则我们可以认为对未来最有借鉴意义的就是历史的镜像。最接近于未卜先知的做法就是假定历史会重演,不过是按照相反的顺序重新上演。因此,如果你现在还时不时穿一下上大学时穿的T恤,那就没有必要把它扔掉。但是你好久没穿过的那条格纹裤呢,最好还是把它送到闲鱼上处理掉吧!

    二、找准物品的位置

          当你决定把物品留下来的时候,我们就应该合理利用地理位置,尽可能把物品的“缓存”建立在它们通常使用的位置附近。根据人们的亲身体会,这个策略的效果非常好。在朱莉·摩根斯特恩的《组织管理探秘》一书中就有人说过“我把跑步和锻炼用的服装放在前衣帽间里的一个柳条箱里,这里距离前门比较近。”

    三、多层级分级存储

          拥有缓存可以取得一定的效果,但是建立多个缓存级别,包括从体积最小、速度最快的到体积最大、速度最慢的各种缓存,可能会有更好的效果。从你的所属物品这个角度看,你的衣柜是一级缓存,地下室是另一级,而自助存储柜是第三个。(当然,存储速度回依次降低,因此你应该根据最近最少使用原则,决定把哪些物品清理到下一级。)但是,你也可以再添加一级缓存以加快存储速度:一个比壁橱体积更小、速度更快、距离更近的缓存。

    四、要不要物以类聚?

          迄今为止,我们见过的所有家居管理建议中,必不可少的一个“常客”就是“物以类聚”了。但实际上你并不需要因为衣橱里的杂乱无序而感到压力或自责。因为这不是杂乱无序的标志,而是最精心设计和最小的组织形式之一。在别人开来,这可能是一种没有组织的混乱局面,但是实际上,它却是一个恰如其分的自组织混乱。把穿过的衣服放回衣橱最触手可及的位置,是你在无法预测未来时可以采取的最有效的做法。所以在某些情况下我们已经不需要再考虑如何整理衣橱的问题了,因为,优秀的你其实已经把衣物组织得很好了。

          缓存技术不仅在计算机的内存架构中起着至关重要的作用,它同时也为人类生活中的各种存储系统系统和“内存条”提供了一个新的思路。不仅计算机离不开缓存,我们的橱柜、办公室、图书馆甚至我们的思想都可以从中受益。而这还只是缓存算法理论带给我们的指导意义,还有更多的算法理论可以应用人类的日常生活中,从更广泛的意义上看,借助计算机科学,我们可以了解人类思想的本质和理性的意义,学会回答如何度过一生这个最古老的问题。

    叁:

    生活充满了博弈与决策

    理性思考如何利益最大化

    推荐认知科学家的ted辅助观看

    对计算机或者说算法有了更多更深刻的认识 算法无处不在

    虽然人工智能是让机器深度学习我们

    但我们也可以回头看看机器 计算机 算法 编程思维可以如何更好地为生活服务

    前排实名佩服理工男

    (午休消遣项目之生活大爆炸

    一步步迷恋理工科及学习者

    继续观望豆瓣大数据为我发放男票

    01 最优停止理论

    如何选择停止观望的时机?

    37%法则

    掌握候选对象的完整信息 阈值准则

    时间 精力 空缺 等待 寻找成本与机遇衡量

    即将到达极限时 降低标准

    02 探索与利用

    要最新的还是要最好的?

    遗憾最少化算法 乐观主义是最有效措施

    人生的早期 强调探索的重要性 重视令人为之兴奋的东西 重视随机选择

    利用好剩余时间

    当你准备兑现探索成果时 尽情利用

    这块内容让我想到知乎问题

    谈恋爱以后 遇到更好的对象怎么办

    03 排序

    建立秩序

    冒泡排序 插入排序 合并排序 桶排序

    这章喜欢的章节是体育与排序

    所有球队在赛季最后五周都至少要在6场比赛里遭遇势均力敌的对手 这样比赛的不确定性将保持到最后  比赛本身就是意义

    让我想起了世界杯赛制与田忌赛马

    04 缓存

    忘了吧

    对日常信息或实物的再分配与管理

    节约精力 精简生活的一种方式

    05 时间调度理论

    要事先行

    最早到期日

    最短加工时间的加权版本

    避免每一次上下文切换 谨慎多线程操作

    根本就是对事件重要性和优先程度的判断

    并尽可能保持专注 不断优化

    06 贝叶斯法则 10网络

    不算明白

    07 过度拟合

    不要想太多

    本杰明 富兰克林做决策的过程

    罗列优势劣势 聚集在一个视图 评估权重

    相互抵消 经过数天思考 没有新理由出现

    做决定

    这个方法我实践过 亲测有效

    不过当你处于黑暗中 掌握大局就好

    如果有很高的不确定性和有限的数据

    那么务必提前停止

    过度拟合的案例 军官本能地将枪从攻击者手中抢走 又本能地还给他

    这也让我想到演员过度入戏

    08 松弛

    如果不能解决你面前的问题

    那就去解决一个简单点的问题

    然后看看这个解决方案是否能让你在一个成熟的问题中找到一个起点

    09 随机性

    什么时候 方式 程度是运用运气的关键

    11 博弈论

    递归 纳什均衡 囚徒困境 信息瀑布

    需要这本电子书的朋友加 微Q同号:2802031363 

    公众号:pengdiary

    相关文章

      网友评论

        本文标题:《算法之美》作者:[美]布莱恩·克里斯汀

        本文链接:https://www.haomeiwen.com/subject/esifsctx.html