Chapter Content

Calculating...

哎,大家好。上一章咱们聊了难度逐渐增加的几个问题,像手套,雪人,还有魔方。虽然说它们不一样,但是解决思路其实都差不多,都是需要一个高层次的方法,再加上一些启发式的策略,这样才能更有效地探索可能性空间。问题越难,那需要搜索的范围就越大,才能解决问题内部固有的复杂性。

想想啊,解决方案其实就是用来解决问题的内部过程的物理体现。比如说手套,它就是个解决方案,因为它是一个物理对象,由因果相关的部分组成,最终产生所需的结果:暖和的手。魔方的解决方案,就是人找到的那些,通常是写在纸上的规则。

但是用深度学习来解决魔方问题,那就完全不一样了。它不是能写下来的东西。人的解决方案是可解释的,但深度学习的解决方案基本上就是一个黑盒子。不管我们怎么去尝试剥开它的外层,检查它的模型,都无法明确地解读深度学习到底在做什么。

这听起来是不是有点奇怪?人脑是我们已知最复杂的物体,但它产生的解决方案却是完全可以解读的。深度学习虽然接近真正的复杂性,但它的解决方案却是模糊不清,难以理解。按理说,人类和深度学习应该产生更相似的解决方案才对,对吧?

实际上,深度学习确实会产生更像人类的解决方案,但前提是问题本身真的非常非常难。魔方并不是一个绝对困难的问题。魔方只是一个状态和状态之间转换次数固定的谜题。魔方的可能性空间很大,但只是相对于更简单的问题而言。

既然魔方不是一个绝对困难的问题,那么它就可能有一个简单或复杂的解决方案。简单的解决方案就是那些可解释的规则,而复杂的解决方案就是深度学习产生的那种不可解读的版本。那为什么深度学习会产生复杂的解决方案,而不是简单的呢?

这是因为深度学习使用一种外部的变异、迭代和选择过程来构建它的模型。就像之前讨论过的,这正是产生复杂性的方法。这个过程会产生一个复杂度与它要解决的问题的复杂度相近的解决方案。因为魔方的可能性空间本身就具有一定的复杂性,所以深度学习的解决方案自然会利用这种复杂性。

这就是为什么深度学习的解决方案虽然模糊不清,但却是性能最好的解决方案。深度学习解决方案可以在一秒内解开魔方,甚至比世界上最快的速拧选手还要快。这并不是因为机器人更灵活,或者机器不会分心。速度的提升来自于系统拥抱试错,而不是依赖于深思熟虑的分析和计算。我们人类解魔方也一样。人类找到的更快的算法,依赖于更多的启发式方法和模式识别,而不是初学者使用的较慢的算法。高级玩家会使用更多的直觉来解魔方,利用微妙的线索和重复的模式来预测下一步的动作,同时执行当前的动作。

人类想要找到一套好的规则,就像意外地烤出了一个最好吃的苹果派,然后想要记住是怎么做到的。但人类这样做只是因为我们现在的思维模式要求我们给出解释,教别人如何确定性地完成一项任务。其实,我们没有理由相信可解释的解决方案就是性能最好的。事实上,我们应该完全期待相反的结果,尤其是当我们从游戏转向现实生活的时候。

深度学习会利用魔方问题中固有的复杂性。它会捕捉代表魔方位置的数据中的复杂模式和关系,包括那些无法用简单规则表达的非线性关系。深度学习会发现那些利用复杂性的策略,而且这些策略事后是无法解读的。这就像人脑在面对现实世界的挑战时所做的那样。我们可以在战场上用长矛完美地击中对手,但却无法解释我们是怎么做到的。如果我们要尝试把投掷长矛分解成一种技术,把孤立的动作加在一起,那么我们肯定会得到一种非常糟糕的投掷长矛的方法。

深度学习正在将一种隐含的知识编码到它的学习参数中。在复杂的环境中,隐含的知识总是更胜一筹,因为它是一种潜在的东西。潜在的东西会自然而然地呈现出来,而不是刻意地拼凑在一起。这个道理非常重要,以至于可解释性本身应该被认为是过于简单化现实世界的一个标志。

解决真正困难的问题需要真正复杂的解决方案。我们在复杂性时代创造的东西,不能是一些简化(也就是复杂化)的、经过深思熟虑的部分和相互作用的组合。无论我们的发明使用什么样的内部过程,我们都应该充分预料到它的不可解读性。那些试图定义复杂事物内部如何运作的解释都是童话故事,只会限制我们的创新。

所以,自然界的方法是不是近似方法呢?并非如此。

解决难题的方法一直被认为是近似的。当解决问题所用的过程不如直接解决问题时那么好或精确时,就会发生近似。深度学习依靠启发式方法和数学优化来找到解决方案。就像之前说过的,这些方法是传统计算中使用的更直接、基于规则的方法的弱化版本。我们被告知,更柔性的计算和推理形式是更近似的。通过近似找到的东西应该被认为是次优的。

这适用于人类和机器。在人类方面,启发式方法依赖于我们个人的判断和直觉,这会将偏见、“错误”和变异性引入决策过程。不同的人可能会以不同的方式应用启发式方法,这可能会导致在相同情况下产生不同的结果。启发式方法优先考虑速度而不是准确性。它们的目标是快速找到一个足够好的解决方案,而不是花时间和资源来寻找最佳解决方案。机器上的启发式方法本质上是一样的。启发式方法的使用看起来像是一种跳过本质的东西,这让我们更快地得到一个解决方案。

把更柔性的方法看作是近似,反映了我认为当前科学和工程范式中的一个核心谬误。只有当一个人相信解决问题的最佳方法是确定性的,才会认为使用启发式方法是一种近似。只有通过深入系统的细节,确切地看到各个部分如何协同工作以产生结果,我们才是在严谨地解决问题。

这适用于解决方案的发现和应用。使用演绎的、基于规则的推理来寻找解决方案,被认为比在可能性空间中跳跃,将决策建立在高层次的模式上,更细致和精确。部署一个整洁的、基于规则的系统,似乎比一个内部方法无法解读的模糊模型更合理和谨慎。

但复杂性不是这样运作的。复杂性不是我们看到的简单系统的超级版本。复杂性是难以解读的,不是因为有太多的细节和规则需要看清楚,而是因为复杂系统处理物质和信息的机制完全不同。在复杂系统中看到的统计涂抹不是离散的模糊版本,而是展现出来解决问题的东西。试图窥视并找到以确定性方式工作的小部分,是在寻找不存在的东西。是的,有小部分。是的,它们会相互作用。但不是作为因果关系的线性链条。复杂系统中的相互作用会显现出在较小尺度上不存在的结构。

大自然的解决方案不是难题的近似解决方案,它们正是计算所需答案的东西。自然不是我们用来定义当前知识的减少的孤立部分。仅仅因为我们可以检查一个分子并定义它的组成原子,并不意味着可以使用原子来解释分子的结构和行为。仅仅因为细胞有看起来承担特定作用的细胞器,并不意味着我们可以(正确地)使用细胞器来解释细胞功能。

自然界的计算结构以它们自己的方式出现,跨越解决方案存在的所有尺度。人类很难将处理过程设想为一系列为了将输入转化为输出而执行的机械操作。但处理过程只是意味着物质和/或信息正在被转换,而不是它必须通过机械或因果手段发生。

咱们再聊聊确定性。第一章我们看了确定性过程和非确定性过程之间的区别。确定性过程是指结果是可预测的,相同的输入总是产生相同的输出。非确定性过程是指结果不是完全可预测的,相同的输入每次可能会产生不同的结果。确定性过程不允许随机性在其正常操作中出现,而非确定性过程则利用随机性。

但当涉及到自然的解决方案时,事情并没有那么简单。大自然的解决方案同时具有确定性和非确定性。大自然的解决方案具有我称之为灵活的确定性。当事物既有可重复的行为,也有不可重复的行为时,它们就是灵活的确定性的。想想水獭。显然,这种生物有很好的可重复性,因为我们总是能在看到水獭时认出它。水獭具有明确的外观和行为。水獭不会为其输入产生完全不同的输出。

但水獭也具有高度的非确定性。它必须如此,因为它的许多挑战永远无法通过严格的确定性来解决。想象一下,尝试使用一个总是做同样事情的规则引擎来转换捕食者、食物、领地、温度波动、干旱和寄生虫的输入。捕食者可以从无数个角度接近,温度波动是高度不可预测的,寄生虫可以在任何给定的时间感染。一个确定性系统永远无法考虑到近乎无限数量的可能场景中的多种因素。

然而,水獭却能生存下来。尽管存在任意的、偶然的、不规则的和计划外的输入,水獭每次都能可靠地转换相同的几个输出。这种多对少的转换只有通过抽象才有可能实现。山中的结构、河床和水獭之所以能工作,是因为它们是物理抽象,将物质、能量和信息缩写为几个可靠的输出;就像抽象所做的那样。物理抽象是大自然计算的核心结构,因为这是实现其特有的灵活确定性的唯一途径。

人脸识别之所以能够实现,不是通过某种详细的分析和死记硬背的程序,而是通过检测高层次的不变模式,这些模式对变化的角度和光照具有鲁棒性。如果我们正在看的人移动他们的头,他们的脸上投射出阴影,或者他们被雨淋湿,我们仍然可以认出他们。这就是抽象在起作用。人脸的本质不能用分析或冗长的描述来表达,因为没有可以识别脸部的精确的确定性机制。只有通过头脑锚定在更抽象的东西上,才能解决人脸识别的问题。

为了能够注意到高层次的模式,例如一张脸,必须存在一个强大的信息压缩水平。眼睛之间的距离、鼻子的宽度等等细节都必须被压缩成头脑可以用来分配某人身份的非常少的几个高层次的信号。这正是抽象。将信息压缩成可以采取行动的几个锚点。

自然界中的所有问题都很困难。它们不是通过缓慢的分析来解决的情况。困难的问题之所以能快速解决,是因为它们依赖于以启发式方法和模式识别形式存在的高层次的抽象。一个需要很长时间才能解决的问题实际上是一个简单的问题。这听起来与我们日常用语中使用“困难”一词的方式相反,但在计算术语中,这是真的。只有简单的问题才能被分解和以还原论的意义来分析。真正困难的问题无法通过这种方式解决。困难的问题需要高层次的结构来解决。只有通过将内部细节抽象成更高阶的东西,才能管理困难的问题。要明确的是,我们不是在谈论第一次找到解决方案。在这里,我们正在谈论已经找到的解决方案的实施(例如,部署的模型或识别人脸的人脑)。找到一个困难问题的解决方案需要很长时间,但实施找到的解决方案则不需要。

我们确实有人造的灵活确定性的例子。深度学习模型产生的解决方案足够可靠,可以被认为是有效确定性的,但又足够灵活,可以在实施时解决困难的问题。这与深度学习的训练阶段和部署阶段之间的区别无关,这只是关于部署的解决方案。在可操作的深度学习模型中看到的确定性与传统工程的确定性没有任何共同之处。传统工程产生输出完全可预测的解决方案。虽然错误和无法控制的环境因素会减轻纯粹的可预测性,但简单系统的内部功能被设计成完全确定性的机器。

但深度学习以其静态形式具有灵活性。将输入转换为输出的参数配置已经设置到位,但它们通过将大量信息映射到更少的信息来带来极大的灵活性。这就是在自然界中发现的那种确定性;不是通过规则的行为来实现的那种。

规则仍然可以在较低层次上发挥作用。蚂蚁和白蚁有局部互动规则,规定了它们如何互动。但至关重要的是,从这些互动到出现的行为之间没有直接的联系。局部互动规则只是设定了复杂系统利用的相互依赖性。它们不是导致解决更高层次问题的输出的原因。将输入转换为输出的不是规则;这种转换发生在物理抽象的更高层次上。

这就是为什么任何明确解释深度学习模型内部运作的尝试都是完全不合理的。深度学习的计算机制无法在内部的因果意义上解释。然而,这个道理对许多科学家和工程师来说都迷失了。有很多研究人员试图对深度学习模型正在做的事情给出一个更“科学”的解释。他们对具体性的错位源于我们的还原论科学和工程范式。如果有人提供了关于深度学习内部如何运作的描述,那只能是因为1) 它是错误的,或者 2) 深度学习实际上并不复杂。所有迹象都表明 #1 是这种情况。

深度学习系统永远不会以确定性的方式设计,因为它们所拥有的任何程度的确定性都不是明确放置在那里的。在深度学习中没有从输入到输出的路径,因为深度学习模型所体现的是一种涌现机制,它以规则无法实现的方式转换信息。

当然,这不仅仅是深度学习。深度学习是我们在自然界中看到的现象的人造版本。这并不是说深度学习与自然界一样强大,只是说它向我们展示了实现自然解决方案中看到的灵活确定性所需的复杂性的一些迹象。人脑当然是最好的例子。人脑是我们已知的最复杂的物体,考虑到它的神经元数量、连接和涌现特性。人脑是一个具有极度灵活确定性的物体,使我们能够以极大的通用性在我们的环境复杂性中行动。

许多科学家和工程师谈论复杂系统中出现的不确定性,就好像这是由于外部干扰、噪声或系统动力学中的固有随机性等原因造成的。这对于确定性系统来说是正确的,但对于复杂系统来说则不然。同样,复杂性不是确定性的混乱版本,而是一种以根本不同的方式运作的东西。当一个系统从简单到复杂时,会发生一个突然的转变。我们将在第二部分中看到在此转变期间发生的事情。

所以咱们得工程化涌现。我们不能再像过去那样设计解决方案了。需要的输出必须通过涌现来实现,只有复杂的对象才能实现涌现。我们不能对产生已知结果的部分和连接做出具体的选择,而是必须像自然界那样,走出我们创造的系统的内部。

在复杂性时代建造东西需要我们的过程与自然选择具有深刻的相似性,其中变异、迭代和选择是主要关注点,而我们解决方案的内部配置则自行涌现。

制造技术就是用有形的东西解决问题。这总是取决于设计,以便制造下一级别的物理抽象。但是现在必须在我们建造的东西内部的部件和相互作用的数量,完全消除了设计的概念。我们创造的内部的参数不能被明确地设置。无法获得设置这些细节所需的内部信息,即使有,自然界也不是这样运作的。基于设计的方法植根于还原论思维,而且不可能存在任何还原论哲学能够产生在复杂性下工作的可行的创造物。

但建造东西仍然需要了解建造中涉及的原理、材料和工艺。不同的东西在各种条件下表现不同,这种知识是做出关于如何进行的合理决策所必需的。与传统工程一样,建造能够工作的复杂的东西仍然需要了解结构完整性、安全性、功能性和效率如何在我们将创造物放置的环境中发挥作用。

现在的区别在于,这种知识不能基于我们创造的内部细节。这与当今科学和工程的运作方式背道而驰。建造具有结构完整性的办公大楼意味着使用关于载荷如何在建筑物内分布的知识。特定结构构件(如梁、柱和地基)之间的因果相互作用被用来设计和制造可行的结构。

创造符合安全标准的对象意味着了解结构内各种元素的相互作用,以及它们在不同情况下可能如何失效。为了预见潜在的危险并减轻风险,必须有意识地决定使用哪些部件以及如何连接它们。考虑当今建筑物内的防火墙、喷水灭火系统和疏散路线。通过优化我们塑造的结构的内部运作,我们的创造物变得高效。为了确定需要改进的领域,我们必须推理部件之间的因果联系,并利用这些知识来简化流程、最大限度地减少浪费和降低成本。当涉及到我们的创造物按预期执行时,这种功能一直可以通过理解产生输出的内部机制和过程来实现。

所有这些例子都基于对事物如何运作的内部知识。当我们进入复杂性时代时,我们不能仅仅抛弃关于原理、材料和过程的知识。区别在于,我们现在必须根据使事物起作用的材料和过程的外部属性来重新构建这种知识。正如自然选择在不依赖内部知识的情况下达到真正的复杂性一样,我们也必须走出我们创造的系统,并将我们的标准放在那里。

为了做到这一点,我们必须确保我们理解什么是涌现。不是使用一些试图通过因果联系连接小尺度和大尺度的还原论的零敲碎打的故事,而是通过使用关于信息、计算和进化的普遍属性的知识。

只有通过退一步看看自然界为了实现其涌现结构和行为所做的事情,我们才能理解自然界如何计算。这并不是在科学的编年史中发现的东西。不是因为其他人没有尝试过,而是因为他们的尝试仍然带有旧的还原论的味道,这阻碍了在智力上诚实的理解复杂性的尝试。我们需要的是客观地看待自然界如何利用信息、计算和进化来创造她的解决方案。只有通过走出当前的范式,看到自然的本来面目,我们才能摆脱我们过时的还原论的视角,并带来关于自然如何运作的无可辩驳的真理。

Go Back Print Chapter