Chapter Content

Calculating...

哎,大家好啊,最近我在思考一个挺有意思的问题。就是咱们人类到底是怎么进步的。不是说变聪明了,或者更努力工作了,也,也不是什么天才的功劳,哎,其实是通过不断地设计,把抽象层次越搞越高。

你想啊,一代人解决的问题,下一代人也能解决,而且更快,因为他们的起点更高了嘛。但是,这个设计,它依赖于确定性。而确定性,它解决不了真正难的问题,就是现在我们需要解决的那些。因为啊,这些问题里,要考虑的因素太多了,而且相互作用也太复杂,光靠那种基于规则的方法,根本搞不定。

所以就出现一个很严重的问题:如果咱们没法设计解决方案了,那人类怎么继续进步啊?我们要造的东西,如果没法用因果关系来解释,也没有具体的步骤可以实现,而且我们对这些系统也啥都不了解,那还怎么搞?要是我们没法设计出更好的接口,让下一代人能利用更多的信息,那他们的起点又怎么提高呢?

哎,感觉咱们已经撞到墙了,就是这种通过抽象来进步的方式,好像到头了。而且,抽象是所有系统进步的必要条件,这个是真理。那唯一的办法,就是找到一种新的抽象方式,一种不依赖于设计的。这种方法肯定存在于自然系统里,因为大自然也需要进步嘛。

说到大自然啊,它最大的特点就是复杂。而且,复杂性也是我们接下来要追求的。不是说简单地把东西搞复杂,不是增加零件的数量,而是要实现真正的复杂性。

撞到设计的墙,意味着我们在现有模式下,已经达到了创造力的极限。靠简单的机器和简单的思维,是没法前进的。可能很多人觉得不可思议,但我们需要的“新”,其实是存在最久的“老”东西,就是大自然那种不经大脑的机制。它才是打开复杂世界大门的钥匙。

但是,接受这种方法,代价也是很大的。放弃我们过去那种自以为是的还原论思维,好像是唯一的出路。哎,只有大自然那种不经大脑的机制,才能把不同的部分组合在一起,实现共同的功能,也就是那些能解决难题的抽象。这是我们必须学会的。

当然啦,这种“自然”的建造方式,不是说随便把东西乱七八糟地拼在一起,然后听天由命。我们得在解决问题的可行范围内,在那些可能包含解决方案的空间里努力。但是,这种对复杂性的需求,好像和人类解决问题的方式直接冲突。

不过,人类造的东西,也不是全部都符合还原论和确定性的框架。有些东西的产出,不是完全靠设计产生的。比如社会、市场,还有一些技术,它们之所以能运作,是因为一些并非刻意设计的东西。这说明啊,人类是有能力像大自然一样创造东西的,这也给了我们一些提示,让我们知道如何在没有设计的情况下,继续通过抽象来进步。

嗯,我们人类也创造了一些能和大自然媲美的复杂事物。当然,“创造”这个词要谨慎使用。我说的不是那些被设计出来的系统,而是那些无意中形成的系统,不是精心设计的,而是通过一些超出原始设定的东西达成的。这些事物接近真正的复杂性,不仅因为它们有很多零件和互动,更因为它们的关键产出,是由我们从未创造的机制产生的。

我们最接近创造真正的复杂性的东西,就像大自然那样,包括城市、金融系统、电网、互联网,还有人工智能系统。这些东西之所以能进入真正复杂性的领域,是因为它们的产出,不仅仅是靠刻意设计产生的。它们都显示出早期“涌现”的迹象,也就是说,出现了那些在构成它们的零件中不存在的结构和行为。

比如说电网,它会出现电压波动、功率振荡和频率偏差,这些都不是设计出来的。这些行为不是机器里的故障,也不是复杂性的副作用,而电网之所以能运作,很大程度上要归功于它的涌现特性。电网的稳定性,是因为它的自组织特性。电网已经展示出对设备故障、自然灾害和网络攻击的内置弹性,它可以通过动态地适应中断,并重新规划电力流动来应对。网络可以自然地隔离受影响的区域,并通过冗余系统恢复功能。虽然创建多个冗余的电力传输路径,确实是刻意的设计,但是自我修复和自然隔离受影响区域,是从这些工程组件的互动中产生的,而不是靠人为控制。

城市的存在,也不仅仅靠规划和刻意决策。任何大城市的形式和功能,都要归功于自组织行为。想想看,商家会根据无数可能的变量来选址,比如交通便利性、顾客人口结构,还有动态竞争。商业区的形成,可能会以非常不可预测的方式出现。街道的格局和建筑密度,是从地理限制和个人决策的累积效应中涌现出来的,而不是靠中央规划。城市是经济活动的中心,商品、服务、劳动力和房地产相互依存,产生了赋予城市外观和感觉的结构和行为。随着市民有机地互动,我们会看到社区凝聚力的出现,公共交通系统也是在计划外的交通模式和不可预见的出行需求中诞生的。

我们的金融系统,是实体、工具和市场参与者混合的结果。投资者、交易员和机构的集体行动,带来了很大程度上不可预知的市场价格、交易量和波动性。供需模式、投资者情绪和信息传播,混合在一起,产生了我们称之为“市场”的东西。价格的决定,其实并不是那么确定的,而是各种不同的观点、信念和交易策略的集合。不断演变的监管框架,是从需求和优先事项的融合中产生的,为系统带来了内置的稳定性和完整性。我们的金融系统(通常)可以承受冲击、中断和压力,这种弹性,从未被设计到系统中。

互联网,它促进了观点的形成和集体决策,这要归功于电子化的聚合和传播各种不同的观点、信念和知识。作为一个去中心化的互联设备网络,互联网展示了复杂性的明显迹象,比如网络的可扩展性、弹性和适应性。在线社区和社交网络自发地涌现出来,用户可以参与讨论、协作和集体行动。内容创作和分发的民主化,导致了病毒式内容、表情包、潮流,甚至文化运动的出现。

当然啦,这种涌现行为也可能会对我们不利。电网可能会把一个小的电压波动或频率偏差,变成级联的停电。市场上可能会出现泡沫、崩盘和反馈放大,这些都会破坏市场的稳定。这就是复杂性的代价。能让复杂事物运作的东西,也可能会产生不利于我们精细用例的产出。重点是,这些行为都不是刻意设计到系统中的,而且如果没有这些涌现特性,这些系统也不会以现在的方式运作。

哎,目前来说,人类创造的最复杂的东西,可能是我们现在的人工智能系统,更具体地说,是驱动它们的模型。这些是基于机器学习技术的,特别是深度学习。深度学习把原始数据转换成智能输出,比如自然语言对话和面部识别。但是,这种转换是怎么发生的,我们并不知道,至少不是科学家和工程师通常解释事物的方式。没有研究人员或工程师,能够理解输入到人工智能系统的信息,是如何转换成那些使它的“智能”成为可能的输出。这是因为,人工智能的编程方式,和传统的软件不一样。虽然人工智能系统的框架确实是基于规则的,但是那些产生智能输出的内部细节,更像是电网、城市和金融市场产生它们最重要的产出的方式。

要理解深度学习是如何运作的,我们首先要重新定义“事物如何运作”的含义。我们解释中的“如何”,不能是一组确定的步骤,能展示信息以特定方式转换。相反,工程师只能编写外部框架,来设置一个最终收敛到所需结果的过程。

解释人工智能在做什么,最直接(但也是最粗略)的类比,就是把一条线拟合到数据上。这是一种在科学中常用的方法,用来找到比数据本身更深层次的东西。当我们把一条线拟合到数据上时,我们试图找到一个总体趋势,这个趋势可能会让我们对感兴趣的系统有一些预测能力。比如说,我们绘制温度和冰淇淋销量之间的关系。把这些值绘制出来,然后寻找趋势,可能会得到一条线,显示温度越高,冰淇淋销量就越多。

有了这条线,我们就拥有了一些可以预测冰淇淋销量的东西。我们可以看看明天的温度,然后在线上读出我们可能卖出的冰淇淋数量。实际上,我们根本不需要这个图。因为我们把一条线拟合到数据上,而一条线可以用数学表达式来表示,所以我们有了一个函数。函数是一种把输入映射到输出的东西,可以让我们从给定的输入中产生一个值。在我们的冰淇淋例子中,我们可以输入某天的温度,然后就会弹出一个我们预计能卖出的冰淇淋数量。

这种把一条线拟合到数据上,从而得到一个函数的概念,应该和我们的大脑学习世界的方式差不多。当然,大脑不是用简单的直线,通过一些低维度的值图来拟合,但高级概念是一样的。我们通过感官来感知世界,这就像收集数据。这些数据是原始输入,我们用它来构建关于事物如何运作,以及它们的含义的心智模型。当孩子们第一次学习说话时,他们正在开发与语法、词汇和句子结构相关的内部潜在模型。他们学习的“函数”,将输入(我们听到的声音)转换为输出(词语的含义)。

所有的生活都类似于学习函数,即使这些函数是纯粹抽象的。当我们与他人互动时,我们会了解社会动态,并利用我们对行为、规范和社会线索的期望,来应对复杂的情况。我们对这些情况的心智模型,使我们能够预测他人对我们所说所做的事情的反应。当我们开车时,我们正在执行我们对道路布局、交通模式和其他驾驶员行为的模型。我们预测潜在的危险,并对速度、方向和时间做出决定。如果没有一组将输入映射到输出的内部函数,这一切都不可能实现。学习任何东西,都像是在感觉数据上“拟合线”,以创建周围世界的模型。

构建模型,就像拟合一条线一样,需要找到参数,因为参数决定了模型的形式。参数就像旋钮,可以调整旋钮来使线条与数据相匹配。一种常见的方法是使用线性回归,将线性方程拟合到观察到的数据。每当你看到一条线穿过图表上的一堆数据点时,很有可能就是在使用线性回归。在这种情况下,转动一个旋钮可以调整线的斜率,使线更陡峭或更平缓,而转动另一个旋钮可以垂直重新定位线。获得正确的斜率和截距意味着获得与数据最佳的拟合。换句话说,找到旋钮的最佳位置,就是试图使用数据来建模输入(自变量)和输出(因变量)之间关系的方式。

线性回归本质上是一种“即插即用”的方法,实验中收集的数据被插入到闭合形式(清晰且易于理解)的表达式中,以产生拟合直线所需的斜率和截距。这意味着参数不是被发现的,而是直接计算出来的。

线性回归并不是真正意义上的学习。线性回归根据预定义的数学结构计算其参数值。如果我们真的想学习定义函数如何将输入转换为输出的旋钮,那么我们就不会对函数应该是什么样子做出如此极端的假设。相反,我们应该开始所有真正的学习都需要的东西:反复试验。这将包括首先随机猜测参数值,看看我们错得有多离谱(根据一些标准),调整值,然后重试。我们将不断猜测、评估和调整,直到我们的方法收敛到对良好拟合的某种定义。

这就是机器学习(支持当今人工智能系统的计算方法)想要做的事情。它不是强迫数据进入某种定义明确的结构并直接计算参数,而是使用大量数据和迭代来不断猜测,直到实现收敛。在深度学习中,一个模型正在拟合到数据,只不过不是一条直线,而是一些高维的东西,我们三维的大脑无法可视化它。人工智能学习的函数,不是输入到输出之间的一些简单的确定性映射,而是一些庞大的、复杂的、极其复杂的表达式,包含数十亿个参数。

在人工智能中,没有漂亮的、可解释的闭合形式表达式。我们无法剥开它的层层外壳,并暴露一些将信息从输入转换为输出的因果步骤链。这不是即插即用的数学领域,而是迭代优化和软决策的世界,用于以类似于人们学习的方式进行学习。

因此,深度学习代表了一种非常不同的软件构建理念。由于人工智能没有明确或可见的功能,我们无法知道产生其输出的内部结构。我们无法设计人工智能机器的内部结构来产生我们需要的输出。我们所能做的就是设置一个高级流程,该流程会迭代地尝试转动数十亿个旋钮,直到它产生我们(通常)期望的答案。

当今人工智能的创建方式是编程单个人工神经元,这些人工神经元是代码的互连单元,旨在模拟人脑中生物神经元的行为。生物神经元是我们的神经系统通过电信号和化学信号处理和传输信息的方式。大脑中的每个神经元都通过称为树突的结构接收来自其他神经元的信号。神经元将这些传入信号整合到它们的细胞体(细胞体)中,如果组合输入超过阈值,则会产生一个动作电位(电位的短暂变化)。动作电位沿轴突传播,轴突是神经元的长投影,将电脉冲从其主体传导出去。轴突是神经系统的主要传输线,负责将信号传输到其他神经元、肌肉等。

用较少的术语来说,这意味着人脑似乎通过使用大量互连的功能单元网络来处理信息,从而实现其认知,每个单元都根据其与相邻单元的交互来传输电信号。这就是启发深度学习的架构,其中功能单元是人工神经元,电信号的传输是以数值形式在神经元之间发送的信息,这些值表示激活水平和连接强度。

深度学习的参数不是像我们的线性回归示例那样,是斜率和截距之类的东西。深度学习中使用的参数(称为权重和偏差)有数十亿个,并且与神经元之间的连接强度以及每个神经元内允许的灵活性水平有关。虽然线性回归中的参数由于其整洁的数学形式而具有特定的含义,但深度学习模型中的参数只有在将网络视为一个整体时才有意义。

如何在没有明确数学表达式的情况下设置参数?如果它们的数量达到数十亿,如何找到它们的值?深度学习通过在系统中传递大量数据并调整参数值(最初设置为随机值)直到整个系统产生我们需要的输出来做到这一点。这是通过优化算法完成的,其中模型尝试最小化它预测的输出与所需的实际输出之间的差异。在面部识别中,所需的实际输出是面部的身份(例如,Bob),而预测的输出是任何时候的最佳猜测(例如,Bill?Susan?)。这意味着深度学习解决问题的方式不是通过有意的计算,而是通过缩小预测标签和实际标签之间的差距,直到它们大部分都一致。虽然并非所有形式的深度学习都使用标签,但基本方法是相同的:缩小模型最初认为的内容和实际内容之间的一些差距。

这是一个猜测和迭代的游戏,而不是有理由的计算。这种更全面的构建机器的方法与整个历史上软件和统计的工作方式从根本上不同。在深度学习中,我们通过走出感兴趣的系统并仅采用高级流程来承认认知不确定性,该流程自行收敛。这是一个关键的区别,因为它向我们展示了关于复杂系统如何创建的一个重要事实。我们无法通过将各个事物拼凑在一起并像内燃机一样连接起来来塑造复杂性。虽然神经网络架构是根据人工神经元的数量和排列来设计的,但网络内部参数的查找和设置过程已超出我们的掌控范围。

深度学习区分内部参数和外部参数。权重和偏差是直接影响模型使用和转换信息的内部参数。还有超参数,它们位于模型架构本身之外。这些可以被认为是控制训练过程的设置或配置。它们包括诸如学习率、批量大小、epochs数以及各种网络架构选择,例如每层中的层数和神经元数。

是由工程师配置的超参数,而不是内部模型参数,但正是内部模型参数必须设置为某种特定的配置才能使模型工作。这表明人工智能工程与人类以前构建的任何东西是多么的不同。在几乎所有其他情况下,人类都希望深入到系统的内部,并对能量和信息如何在系统中流动做出有意的选择。

人们很难理解确定性和非确定性过程之间的区别。单个的人工神经元是确定性的代码片段,因为相同的输入和权重将始终产生相同的输出。这使得它们与传统的、基于规则的计算机编程保持一致。然而,当这些神经元以聚合的方式一起工作时,神经网络的行为几乎不是确定性的,尤其是在训练阶段。这是在真正复杂的对象中发生的关键过渡。事物由什么组成的部分与其定义其结构和行为的属性之间存在深刻的脱节。

当信息通过多层人工神经元时,每一层都应用了自己的非线性部分,网络会学习从输入到输出的高度复杂和非线性映射。无论在小规模上使用什么确定性(基于规则的)代码,都会在大规模上带来非常不同的东西。这种复杂性释放了复杂对象的标志性能力,以比人类自己设计的能力更深入、更真实的方式反映自然世界。

这就是人工智能系统显示出真正复杂性迹象的原因,也是构建人工智能的方法与自然构建的方式一致的原因。许多小的确定性非线性累积成某种聚合非确定性,这就是我们在自然的湿滑、动态对象中看到的东西。这并不是说今天的人工智能可以与自然的解决方案相提并论,只是说它反映了自然复杂性的结构和行为,并且说明了当你采用从外部构建事物的方法时会发生什么。这是可以解决绝对难题的唯一方法。人们必须走出系统的内部运作,并允许它自行收敛,从而使内部结构自然稳定下来。

这就是为什么深度学习被认为是一种炼金术。这让许多人感到不舒服,尤其是那些思想更传统的工程师。目前正在努力尝试用数学方法解释人工智能,这让人想起与复杂性直接对立的还原论和确定论。我稍后会详细阐述这个问题。

深度学习模型是接近真正复杂性的对象,因为它们的功能依赖于我们从未放入系统中的属性。从某种意义上说,城市、金融市场和人工智能等事物根本没有被创造出来,而是从无数个较小的事物的互动中沉淀出来,这些事物看起来与它们导致的较大事物完全不同。

比人工智能系统是否真正复杂更重要的是,人工智能工程是我们人类在完全不同的范式下构建的最好例子。深度学习代表了人类首次有意识地尝试不以人类一直以来的方式进行构建。虽然电网、城市、市场和互联网的出现后来才被意识到,但深度学习从一开始就采用了根本不同的范式。深度学习之所以成为可能,是因为它并不试图指示计算机如何执行其任务。

今天的人工智能方法是否能实现真正的人工通用智能 (AGI) 并不是重点。深度学习是未来发展的征兆。深度学习代表了重新定义人类构建事物方式的工程类型。我们知道,我们无法使用我们祖先的确定性工程来解决我们最突出的挑战。

这不仅仅是构建方式的转变。它触及了我们的世界目前如何定义知识、技能以及个人为经济做出贡献的能力的核心。我们的世界依赖于设计,因为设计就是要深入到系统的内部,并利用我们所看到的来采取下一步行动。设计将建设者的努力映射到预先存在的结构上。这不是自然构建的方式。

全面重置

支撑当今经济以及人们为其做出贡献能力的整个基于设计的建筑,都需要进行大规模的改革。要拥抱在复杂性时代进行创造所需的非确定性,我们需要一种完全不同的方法。这种新方法必须根植于与我们目前期望的构建方式截然相反的立场。

复杂性的运作方式存在根本的方向性,它与学术叙事告诉我们的方向相反。不是基础导致了好事,而是混合、混乱和不确定性带来了我们最终在教科书中编纂的结构。简而言之,我们在项目开始时被告知要到位的地基、结构、设计直接与正确结构涌现所需的东西背道而驰。

重置我们构建事物的方式,定义正确的优点概念,以及构建符合所需转变的经济,需要揭开涌现的神秘面纱。这需要对涌现是什么进行概念上简洁的描述,该描述与已知的有关信息、计算和进化的科学特性相一致。

我还没有发现这样的阐述。尽管当今的科学家不断尝试解释涌现,但所有人都因同样的原因而失败(包括许多“复杂性科学家”所做的解释)。他们都试图在当前的科学范式内解释涌现。一方面,这不应该太令人惊讶,毕竟,否则怎么发表论文呢?但这也必然会导致与复杂性背道而驰的还原论。

复杂性需要一种不同的解释,不像在科学和工程的编年史中发现的那些。不是因果关系的解释,而是属性的解释。那种不会深入到系统内部,并将过时的平均值和重归一化概念应用于其各个部分的解释。这样的解释错误地表明,我们在高层观察到的只不过是我们在底层看到的模糊版本。这种尝试沉浸在过时的根本原因和路径概念中,试图将复杂性强行纳入简单系统的线性和确定性中。

相反,我们可以将复杂性视为物理系统通过自行稳定到有组织的配置中来解决其难题的必然结果。我们无需求助于通过严格的因果关系将物质聚集在一起的理论。我们也不必虚构一些定义不清的论点,试图用毫无意义的抽象描述来填补我们的知识空白。对某事物没有因果解释并不意味着无法解释它。可以揭示符合自然系统属性和约束的机制,而无需编造关于各个部分如何相互碰撞的童话故事。

在面对复杂性时,解决抽象进步所构成的障碍的第一步是显而易见的。人类一直从自然中寻找灵感。我们构建的大多数东西都与我们周围自然系统中发现的某些东西相对应。是自然让我们知道什么是可能的。但仅仅将自然作为我们的缪斯女神已经不够了。自然告诉我们的远不止什么是可能的。如果我们退一步,摆脱对还原论和确定论的依赖,并接受复杂性的本来面目,我们也可以学习自然如何产生其复杂的解决方案。我们可以学习像自然一样构建。

Go Back Print Chapter