“算来算去”
——《算法之美》读书笔记
最初听到《算法之美》时,作为一个纯度百分之百的文科生是拒绝的,单算法两字就可以让脑子宕机。但一开篇作者提出的问题就吸引了我,每一篇章作者都会用日常生活中常见但又不好解决的问题戳中读者的痛点,吸引读者继续往下读。
《算法之美》这本书探讨的是人类事物算法设计的概念,将计算机科学的研究方法应用于我们的日常生活之中,帮助我们更好的解决日常生活中经常纠结、不知该如何是好的难题。有以下几个方面的影响:
1.它可以提供切实有效的建议,帮助我们解决具体的问题;
2.为我们理解这些领域深远层次运行规则提供了一套语汇;
3.从更广泛的意义上来说,借助计算结科学,我们可以了解人类思维的本质和理性的意义,为人们理解人类认知提供了一个更好的比较标准,学会回答如何度过一生这个最古老的问题。
该书作者首先带我们讨论计算机与人类大脑都需要面对的巨大挑战:
1.如何应对有限空间、有限时间、有限注意力、未知的未知事物、不完整的信息与不可预见的未来给我们造成的麻烦;
2.如何镇定自若、充满自信地面对这些麻烦;
3.如何与其他人一起共同面对这些麻烦。
之后作者向读者介绍了上述难题的基本数学结构,了解计算机解决大多数难题的设计原理;人脑的工作原理,人脑在解决相同类型问题、应对相同限制条件时有哪些独特且密切的处理方式。
通过阅读此书,我们可以得到一系列有助于解决身边问题的具体建议,学会在面临复杂情况时看清问题的新方法,同时清醒的认识到人与计算机融合过程中的痛苦与艰辛,最重要的是,我们可以尝试从一个全新的视角来看问题。
在第一章中,作者从最初的秘书问题出发带读者逐步讨论最优停止问题,但最后发现,合理的决策需要穷举所有的选择,逐一权衡,然后从中找出最好的那个,但实际上,在钟表滴滴答答的声音中,决策活动的其他方面都淡化了,进一步凸显出停止时机选择的重要性。不禁想到前两天看的《萨利机长》的影片,其中就是因为机长对时机的选择、把握至关重要,拯救了整机全部人员的生命。但时机非常的微妙,需要依靠决策人的经验累积等,且是难以描述的范畴。虽然理性、科学的公式数据能够准确、有力的解决很多问题,但同时我们也不要将感性完全丢弃在一边。
第二章开篇的问题简直太真实了,“你是不是在偷窥我的生活”差点脱口而出,我们每天都在纠结是进行新的尝试,还是继续选择我们喜欢的那个。曾今我一直都觉得自己是个不断尝试新事物的人,但后来却渐渐发现,似乎越来越没有去尝试新事物的力量。“想吃什么呀?”“恩,就之前那个吧!”“去哪家店呀?”“恩,就上次那家吧!”······开始懒得去尝试,蜷缩在熟悉的小角落里,按照作者的说法,算是处于利用所拥有信息的阶段。探索和利用的取舍之间的权衡,始终是一个我需要好好思考的问题。作者通过克里斯·斯图吉奥的例子,向读者揭示随着时间的推移,即使探索有所发现,我们可以认真品味这些新发现的机会也已经所剩无几,因此探索的价值随之降低。所以作者关于探索和利用之间取舍权衡问题,它取决于我们还有多少剩余时间,作者建议,当我们有时间探索知识是,就大胆探索,当准备兑现探索的成果时,就尽情利用。
作者对音乐记者这个行业意味着把探索进行到极致的举例,不禁让我再次思考起——将喜爱的事情变成工作是否是一件好事?曾今总听人说能将自己喜欢的事情变成工作,很让人羡慕。自己也曾这样努力过,将很多自己感兴趣的事情都尝试过,比如编辑、夏令营等,前期的确是很开心的,但后期的感觉渐渐开始改变,最终支撑我坚持下来的由喜爱的热情变成了责任感。反思过以为是喜爱程度不够,但好像也不全是,“音乐记者本着殉道者的精神,默默探索,为其他人的利用创造条件”。或许,喜欢的事情仅仅当成一种爱好也是一件不错的事情呢。
作者认为计算机领域的西罗克为奥巴马做的A/B测试法与医学领域的临床试验法没有任何不同,临床试验小组的关注焦点是明确回答哪种治疗方案效果更好,而不是为接受实验的每一名病人提供最有效的治疗。在实验进行的同时,医生就已将在收集有关各方案治疗效果的信息,科技公司同样是如此,A/B测试最经典的做法是将流量均分给两个选择方案,测试一段时间之后,再将所有流量都分配给获胜的那一方,但是这会导致一半用户在测试过程中,只能接受较差的那个方案。这与某些心理学实验将人作为实验对象带给我的矛盾情绪一样。
第三章的排序打破了以往很多的刻板印象,甚至在房间混乱的时候可以理直气壮的和妈妈说混乱无序也无伤大雅,甚至还是一种很明智很有效的方式呢!排序问题是我们日常生活中不可避免的问题,生活中处处充满排序,书架上的书怎么排?衣服如何放置?先看书还是先写作业······作者给读者介绍了很多的排序方法,甚至还介绍了金县图书馆系统的桶排序方法,其中“桶”的选择是关键。但是在计算机科学家看来,这些都不是最重要的,最重要的是为什么要进行排序,目的、原因是什么。同时,随着搜索成本的下降,排序的价值也会随之下降。例如我从来都不会费尽心力去为文件夹里的文件排序,因为打开文件夹就能够看到,即使看不到只要在文件搜索框输入文件名称甚至是关键词即可。
杂乱无序可能会被认为是一种拖延行为——吧责任推给未来的自己,而且连本带息偿还我们不愿意提前支付的债务。但是,详细情况还要更加微妙,有时候混乱不仅仅是轻松的选择,还是一个最优选择。搜索和排序的取舍问题表明混乱状况有时反而更加有效。早已记不清有多少次家人帮忙收拾完房间后或者家里大扫除整理后,找东西反而变得困难甚至找不到了的情况发生了。
书中作者也对体育领域的排序问题进行了大量的介绍,作为体育白痴的我之前确实是没有考虑过这方面的问题。关于赛程的安排及设置等,从这个角度看,也挺有趣的。作者进一步说到群体排序的问题,个体与个体为各自的地位而斗争的情况非常少,总的来说,两个人走到一起,无须商量就知道应该像对方表示何种程度的尊重,每个人都清楚应该如何相处。虽然是计算机科学领域但不禁想到了《日常生活中的自我呈现》,剧班与剧班之间的相互配合,大家心照不宣,默契的遵循着共同认可的社会契约。在本章节的最后部分,作者提到,在工业规模的经营活动中,有成千上万的个人共享同样的空间,因此,必须通过实现从序数到基数的飞跃,才能有效的建立秩序。仔细想来,我们为什么会默契的遵循某种东西,因为我们共同默认的某种秩序,而根据作者的思路,秩序是由排序而来,细思极恐,我们对事物的排序对我们社会秩序的建立有着巨大程度的影响。
“缓存”章节虽有有些计算机领域的专业术语会让我们反应慢半拍,但是结合手机内存和电脑内存的实际使用情况理解就比较容易了。作者在本章节再次提到了归档整理的问题,同样采用图书馆的藏书整理问题进行举例分析,突出缓存的作用。同时作者介绍了野口由纪夫文件归档系统,他的一个基本原则就是不能把文件根据内容分类。市面上关于各种指南类的书其实不少,但仔细观察可以发现其实各家说法都不一,甚至有的截然相反。我觉得,方法有很多种,但到底哪种是最好、最合适的还是看个人,大家都是不一样的个体,有不一样的经历、规划,哪里会有普世的方式适合于完全适合于每一个人呢?过于完全套用或许又该考虑后文提到的过度拟合的问题啦。主要还是看个人是目的及需求。
作者每一段为混乱无序进行的说明都像是为我做的辩解,虽然是这么认为的,而且有时候混乱的桌面确实反而提高了我的工作效率,但潜意识里还是会觉得这样不好,这样的自组织混乱是不对的,但作者一半正经的推理真是太给力了。
时间调度的章节对于每天都在赶deadline的人实在是太真实了,以及真的很有用。因为经常多线处理问题,合理的安排时间是一直没有处理好的问题,deadline永远都是第一生产力,但其实是非常希望能够在deadline之前早早完成各项事务,多线处理模式经常在做事情A的时候,脑子里会冒出B的内容,思维开始各地游走,然而并没有取得真正的进展,一次只做一件事情的方式非常好,可以集中注意力,提高效率,按照作者的建议根据自己的需求合理的安排待办事项清单,合理的调度时间。
对于数学结构和设计原理方面的内容,作为文科生的自觉,没有进行死磕,只是大致翻阅了一下,不明觉厉。
最开始的确觉得计算机以及算法程之类的都是机械刻板的,没想到这么有趣,而且可以运用的这么广泛。计算机算法可以帮我们解决很多日常生活中的问题,通过算法来了解我们周围的世界,从一个新的角度去思考我们所面临的问题,甚至帮助我们更真实的了解我们自己,更好的理解我们的行为。目前计算机科学家面临的最难解决的问题是规则不明确的、所需信息不全面的问题计算机暂时难以处理好。但这不恰恰是我们人类所擅长的吗?算法虽然能够带给我们很多好处,帮助我们解决很多问题,但同时也要时刻铭记作者所提到的“训练创伤”“过度拟合”等问题,有时候,算来算去与随意点之间,随意点也挺好,都尝试一下,就当是探索,搜集信息嘛。