“清明断雪,谷雨断霜”,不知不觉 2020 年已经开始进入夏季。年初的时候就经常看到大家惊叹今年魔幻开局,新年伊始就在世界各地发生了各种话题性事件,不过大部分人估计都没有想到接下去的几个月会演变出一个全球性的大灾害级别的事件吧。COVID-19 在国内疫情肆虐高峰过去之后开始迅速席卷全球,现在美国检测出的感染人数马上就要超过一百万,而全球总感染人数也即将突破三百万。世界各地的居家令给各种行业和阶层的人生活带来了不同程度的影响——当然对于大自然和野生动物来说也许是个愉快的假期呢。

我自己非常幸运地在一个非常容易“在家办公”的行业,暂时没有失业的危险,也没有“家里有吵闹的小孩需要照顾”之类的情况,而且自己也是相对比较擅长宅家的类型,所以从日常生活上来讲并没有特别剧烈的变化。感觉最明显的一个是工作变累了(远程交流和合作通常更费力,而且少了通勤、楼间移动或者偶尔碰到同事闲扯之类的缓冲,一天工作下来几乎都没有什么自然的休息时间),另一个是时间的流逝似乎变快了——不知不觉一年已经过去了 1/3。突然想来列一下第一季度看过的书单,一方面可以给博客稍微增加一点烟火气,另一方面也避免每次一到年终,总结帖里就变得全是书评了。

先以几本和疫情相关的书开始好了。首先是加缪(1913-1960)的《鼠疫》,这是一本虚构小说,加缪于 1957 年因“热情而冷静地阐明了当代向人类良知提出的种种问题”而获诺贝尔文学奖。我并没有看过他的其他著作,不知道这本书是否是他最具代表性的一本,但是诺奖获奖理由无疑是能原封不动地用来描述这部小说的。小说描述了一场鼠疫席卷一个位于阿尔及利亚西北部地中海沿岸的城市的全过程。就整个事态发展的描述来讲,特别是结合当下疫情自己的所见所闻,会觉得简直是惊人的相似。不禁让人惊叹作者的想象力,如果不是亲身经历过类似这样的一场灾难,如何能够如此细致地把故事展开来。当如除此之外本书更大的特点正如前面提到的:平静的陈述,没有悲天悯人也没有歌功颂德,但却饱含真挚和勇气。

第二本《血疫 : 埃博拉的故事》如其名是关于埃博拉病毒的故事,不过与《鼠疫》不同的是这并不是小说,而是关于埃博拉病毒的几起有记录在案的事件始末的一个 documentary。埃博拉病毒通过血液传染,似乎也能通过空气传播,现在还没有对人类进行全球大清洗一个原因是它致死率太高了(有些变种达到 90% 的致死率),所以宿主成功把病毒传播出去之前就挂掉了,另一个(也许更重要的)原因则是运气吧——或者说,时候未到。书中最开始讲述了非洲——似乎是病毒的发源地——的几起有据可查的爆发事件,只是可能病毒肯定有更多次在非洲肆虐屠灭了许多村落也并无人知晓吧。后半的篇幅详细描述了在美国华盛顿特区附近的一起病毒爆发事件。不得不说整本书看得心惊胆战,不仅是病毒残酷虐杀宿主的方式让人胆寒,更多的是看到病毒如何迅速在现代交通和社会网之下传播开来时的紧迫感,可能会遗漏和出错的地方真是太多了:意外、心理、社会、法律、政治、家庭等等各种因素交织在一起,到头来有没有出现大规模灾难真是一个运气问题。

到这里让我不禁很想把另一本原本没有什么特别关系的书放在一起讲:《Gut : The Inside Story of Our Body’s Most Underrated Organ》。这是一本既不可怕也不惊心动魄,反而很可爱的书。作者是德国一位肠道学博士生小姐姐,她妹妹(姐姐?)是一位设计师,为书做插图。全书以 💩 为主题开场,写作风格、插图各方面都非常可爱,对人类整个消化系统——从口腔到胃、肝脏、小肠、大肠等各个部分做了详细的介绍。消化系统是我们能源的总提供商,因此需要不断地与外界未知的险恶世界直接接触,是免疫战争的大前线,组成了人体超过一半的免疫系统。除了系统介绍各部分的功能和 maintainance 小贴士之外,还有许多以前不太知道的冷知识,比如亚洲蹲是比坐马桶更好的便便姿势,“gut feeling”也许真的是一个科学上合适的说法,等等。第三部分则主要介绍肠道菌群,人类的肠道菌群加起来重量可达两公斤,细菌的数量是在 100 trillion 的级别,比人类自己的细胞数量还要多,是一个非常复杂的动态平衡系统,其中有很多细菌是对人的消化、健康、免疫等各方面都有非常积极作用的,当然也会有“坏”的细菌乃至于寄生虫之类的。当然,书中还反复指出,我们现在其实对我们的肠胃整个系统的了解还远远不够,许多结论都还只是得到了初步的不严格的科学研究,还有更多的问题则完全没有被涉及到过。果然科学中的“未知”永远都远远多于“已知”啊。

在疫情相关的话题里提到这本书,除了因为消化系统是人类免疫系统的大前线之外,更大的原因是让人忍不住感叹的大自然的“因果轮回”。之前 BBC 拍过一个很不错的小纪录片,叫做 Our Secret Universe: The Hidden Life of the Cell,详细介绍了(某一种)病毒入侵人类细胞的机制,和人类免疫系统的层层防线,非常推荐。看完之后对于我们自己免疫系统的复杂性和鲁棒性的惊叹之余,又不禁会感叹这个系统是不是有太多的漏洞和后门了?特别是作为码农背景的人来说,似乎会觉得设计一个稍微复杂一点的(比如进入细胞膜时的)验证机制就可以有效地抵御病毒侵入了。对比一下,一方面是生物的世界,自然界中随机变异进化出来的一串 DNA / RNA、十几个基因就能编码出完美入侵层层免疫系统的病毒机制;但是在计算机软件的世界里,似乎充满了各种不兼容,不同的芯片体系结构,不同的操作系统,或者甚至只是不同版本的同一个库,都有可能会让程序无法正常运行起来,各种不兼容性正是软件维护中最费事费力的部分,也是软件在没有积极维护情况下会逐渐走向“死亡”的重要原因。为什么生物界会自然进化,而计算机软件则是自然灭亡?也许生物的进化和繁荣和“病毒能够轻易入侵我们的免疫系统”是来自于同一个根本原因。

虽然号称是地球的主宰,但是我们其实并没有办法直接利用太阳赏赐的能量,因为我们无法进行光合作用,我们生命中所必须的能量必须通过吃别的植物或者动物制作好的能量包来获取,这里回到《Guts》这本书,我们可以通过“吃掉对方”的方式来获取能量的根本原因是我们和我们所吃掉的动物、植物的基本 building block 都是差不多的:碳水化合物、氨基酸、脂肪。这种高度同源和一致性带来了更多的“后果”:某些动物或者植物里的某些成分可能刚好和我们生理机能里的某种激素、维生素或者其他东西差不多,但是由于摄入量过多,或者虽然“差不多”但是又有细微差别导致功能不一样之类的各种原因会导致我们身体机能异常,所以会“中毒”;但反过来这也同时使得我们可以通过许多动植物的提取物来治疗各种身体异常和病症。不止是动植物,实际上整个地球上的所有生物(包括定义模糊的病毒)都具有高度同源性,比如《Guts》里有提到我们的消化系统里其实有很多有益的细菌在帮我们消化各种我们自己无法消化的东西,并且产生荷尔蒙平衡,影响我们的心情甚至决策之类的。

高度的同源性和兼容性似乎使得整个地球生态圈构成了一个完整的循环,不断发展和进化。到这里不禁想到了其实计算机领域里也经常能够见到这样的情况:比如 PC 打败各种厂商各自开发的互相不兼容的计算机逐渐崛起并成为主流平台的一大原因就是开放的标准和接口、平台。当然高度的同源性同时也有其缺点,就是过度的单一化会降低整个系统的健壮性,如果某个基本组件突然丧失功能性了,那么整个系统有可能会全线崩溃。想起之前在哪里看过的一本科幻,里面的一个外星生物吐槽地球上的生物怎么都“长得差不多”,刚开始有点不理解,现在想起来,虽然我们觉得地球上的生物大千世界,从蟋蟀到老虎,怎么能说差不多呢?但是也许只是我们自己身处其中,才能分辨出区别吧,也许对于其他智慧生物而言,我们都只是难以分辨的大分子碳链聚合生命体。就好像你看 BBC 纪录片,成千上万只企鹅挤在一起,肯定也觉得它们都差不多,但是如果你是群中的一只企鹅,肯定会觉得每个“人”都不一样呢。

另一本跟刚才讨论的话题有一点点相关的书是《Code : The Hidden Language of Computer Hardware and Software》。前面讲到生物系统的同源性,所有生命体都通过核糖核酸控制蛋白质的表达的方式来运作,虽然对比起来计算机平台和体系总是会有这样那样的不兼容性,但是实际上和最初的“计算机器”比起来已经是有各种质的飞跃的。最早期的计算机器通常针对某个具体的问题来设计,比如计算器就是一个典型的例子,机器的输入输出组件、内部电路结构等等全都针对这个问题来设计,如果要解决一个不同的问题,就需要完全重新设计另一个机器。到冯诺依曼开始造计算机的时候,存储程序计算机的概念慢慢成熟起来,这里一个质的突破是计算机不再是一个解决某个具体问题的机器,而是一个通用的指令执行器,换句话说,“程序”和“数据”得到同等对待,程序可以(像数据一样)通过 IO 传输给计算机,也可以(像数据一样)被存储在内存中进行读取甚至修改。几十年过去了,现在我们所使用的计算机仍然是基于这样的基本冯诺依曼架构。不过其实图灵在设计他的图灵机理论模型的时候原本就是以 universal machine 的形式来设计的,一个 Universal Turing Machine 可以通过输入指令来模拟其他任何图灵机。在计算机编程普及的今天我们大概会觉得“存储程序”是一件非常自然的事情,并不值得称作“突破性进展”,也许这本书可以让你对它的重要性有一些更多的认识。

当然这是我作为 CS 专业的视角解读的结果,EE 相关专业的朋友纷纷表示这其实是一本《数字电路》主题的科普读物。总的来说本书从最底层的串联并联电路开始讲,构造继电器,逻辑门,再构建加法器、译码器、bit 内存,再到存储程序的概念,一直讲到最后的操作系统的概念,从硬件到软件在不需要任何预备知识的情况下讲解了计算机的概念以及如何从头到尾构造一个计算机。个人觉得虽然前面几章和后面几章有点零散,但是整体来说是非常有趣的一本书,特别是用电路构造逻辑门,一步一步地构造起一个完整的内存和 ALU、计数器之类的元件的内容,感觉刚好是属于自己所不知道的(本科 CS 的体系结构学到的最底层的元件就是 ALU,然而 ALU 内部是如何构造的并没有想象过)同时又是相关到比较容易理解的内容范畴,于是非常有吸引力。

不得不说看到中间都有种热血沸腾的感觉,突然都有点想自己去从头 build 一个计算机(哪怕是做软件模拟器)的冲动。而且看到摩尔定律,也真有点振奋人心, 以往不觉得特别厉害,但是意识到最早期的计算原件是用(机械)继电器、真空管之类元件构造起来,要做一个处理八位二进制加法的单元都需要无数这样的元件,而且每个元件都很大又很容易坏,在那样的情况下真的很难想象今天这种计算机在生活中无处不在的样子。事实上计算机的构造基本原理一直都没有本质的变化,只是从继电器变成了晶体管让我们现在能制造尺寸和能耗更小、速度更快、可靠性更高的集成电路,但是似乎量变在某个时候引起了质变。

到这里好像突然有点理解为什么现在有许多人对于神经网络能做到越来越大越来越快这件事情也会激动异常了。我原本一直认为目前 AI 里的内容,如果不在算法和模型方面做根本上的改变,那么在一些特定领域做出突破性进展和改变肯定是可以期待的,但是离真正的人工智能还是差了几个跃迁,比如人类在进化过程中发展出(用于交流和组织自己的思考的)语言算是一个跃迁,目前的算法如果不能做到类似的跃迁,那么在面对训练时的 sample complexity 之类的问题不久就会碰到瓶颈。但是回看计算机的发展史,不禁又让人觉得,光“量”的变化能够引发的可能性也是无穷无尽啊,也许真的可以好好期待一下神经网络在大和快到某个现在难以想象的数量级之后又会是怎样的光景呢!

另外这本书超级骗稿费嫌疑,有很多图示,明明一页以前刚 show 过,在下一页提到就又复制一遍,虽然看的时候确实方便了很多(不用来回翻),但是真是很浪费纸张呢!不过还是非常推荐买啦!

接下去介绍一些其他最近看过的书,总体还不错,大概都在四星左右。

最后是和艺术相关的书。