书评:《算法之美:指导工作与生活的算法》
从工作以后我很少读专业领域的书,侧重基础的书内容大多重复枯燥,在学校已经读过不少,侧重专题和最新技术的书很容易过时,读时已经索然无味。但这本书切入的角度非常有趣,你很难把它定义为一本专业领域的书,更多的是用计算机理论给生活中常见的问题提供解释和方案,所以我把它归类到 “生活指导” 这个分类中。
能把理论和现实结合、用理论解释乃至指导现实是非常厉害的能力,《思考,快与慢》,《合作的进化》以及本书都是这种类型的书。这样的书读起来既无理论的枯燥,也无现实的繁冗,读完有拨云见日的畅快,也有空怀宝剑而不能像大师一样应运自如的落寞,还有对于理论与现实结合的强大力量的震撼。
第一章讲了最优停止理论,这个 $\frac{1}{e}$ 的停止时机很早之前就在知乎上看到过,本书给出了一个 “从最后一个往前倒推” 的推导思路,但没有给具体的推导过程。这个停止时机在强主观判断(或者说是考察你与目标的匹配度时)的场景下非常有用,先用 37% 的时间观望、积累标准,剩下的时间只要发现目标达到或超出标准就直接做出选择。在选择对象具备客观标准时就不能单纯观望了,需要考虑候选整体可能的分布,然后从选择对象在整个分布中所处的位置来做选择。停车问题其实就是一种变体完全信息博弈,对象的客观标准就是零或一,选择阈值是一,此时零一出现的概率(停车位占用率)就是核心变量。
第二章讲了 Explore-Exploit 理论,即选择 “好的” 还是 “新的”,这个选择的核心问题是你还能在当前的场景下停留多久,如果马上要离开,那么选择 “好的”,如果还有很久,那么就选 “新的”。剩余时间的多少直接影响了人在做决策时的选择,即 “探索” 和 “利用” 的差别,这完美地解释了老人倾向于保守主义的原因,也与《合作的进化》中对于 “未来相遇概率” 的阐述有谐振之妙(如果未来不太可能相遇,就选 “好的”,即背叛策略)。这两本书的气质也很像 都是从一些简单的问题和浅显的模型入手,推导出极其复杂的定理和模型,进而反向指导原初的问题。
第三章讲了排序。这本书好的地方在于从简单的问题入手,在计算机领域转了一圈之后转头回到了社会科学领域,并能针对很多问题给出本质的解答(虽然很多道理很简单,也很容易想明白,但给这些道理添加定量的理论支撑就很难了)。比如基于 “基数” 的排序效率远高于 “序数”,因为标准统一,大家只需比一次就能知道整体顺序,而无需再两两比较,这点就能说明 “唯分数论” 出现的根本原因,不是僵化,不是古板,而是 “素质教育” 缺乏统一标准,比较成本高得难以想象。但话又说回来,“素质教育” 导向的是否是一个无需比较的社会呢?我不知道。
第六章讲了贝叶斯定理。贝叶斯需要先验知识,我们在人生中构筑出的常识正是这种先验知识,因此我们对于事物的预测也反映出了我们的世界和经历。多么精彩的证明,“你对别人的评价就是对你自己的评价”。
第七章讲了过拟合。迷信当前数据并对齐过拟合并不会得到更优的模型,这会让你对未来新的场景完全失去泛化性。但过拟合也不全是坏处,对传统的过拟合可以保证文化不迷失在快速变化的 meme 中;对风险预期的过拟合可以让人类尽量远离风险。但这一章有一点我并不认同,作者说生物进化的性状是对过去环境的过拟合,因而能在新环境下开辟新的演化思路。其实这是错误的,生物进化的性状是随机的,只要没被 “地球 online 服务器版本” ban 掉就可以保留,预期说是过拟合,倒不如说这种随机形状是绝佳的反过拟合,很多看似完全无用的形状反而给这支类群在未来的崛起奠定了基础。
第十章讲了网络通信。拥塞控制的思维迁移到语言学上是精彩的跨学科实践,回馈语等同于收方的确认包,以使得发送方可以一直正常发送数据而不被 “积式减少” 地拥塞控制,因此在倾听时不要干巴巴地不吭声,给一些 “嗯”、“哦”、“没错” 之类的反馈更有助于提升沟通效率。
这本书太精彩了,值得反复读,无论你有没有计算机背景都非常推荐。