按
作为神经网络现象学的试讲。
两种时间观
作为铺陈现象的外在时间
理工科知识分子的典型的时空观来自牛顿,它认为时空是物质运动的舞台,时间作为一个绝对的向前发展的箭头均匀的流动着,所有的物质运动都跟随这个绝对时间运动。时间是孤立的、外禀的、中心化的、同一的,它强力的介入每个物质并迫使它们向前运动。在这个基础上,时间是一切函数自变量的典范,它是所有运动的标准,是所有函数的最终自变量,不是任何变量的因变量。但是函数图像在纸面上总观性的呈现意味着函数时间是一种空间化的时间,因为从过去到未来的任意时刻的值铺展在同一张平面上被同时记录、访问、描绘。
注意区分空间化的时间和共时性,共时性指的是两件事在同时发生,是针对事件的,而空间化的时间则指的是函数时间那种允许总观的性质,即允许“同时”把握“不同时刻”的现象的性质。它实际上是一种回忆,即在现在总观所有过去,然而物理学追求匀质的外推,便把这种总观推广到未来,这实际上混淆了过去和未来,或者说过去和未来在这种时间观下仅仅是某种空间位置的平移变化,并不存在某种断裂的不对称性。显然函数时间的背后还有一个真正的时间,即那个允许使它们同时呈现的时间,因此函数时间的可共时性恰恰说明了它是空间化的时间,而不是它背后那个真正的时间。
作为表明不一致性的内在时间
外在时间作为普遍的参照系,只能是独立的、公共的,才能不偏不倚的度量所有物质运动。但这种观点无法解释时间的本质,即为什么会有时间,或者说为什么意识会意识到时间。现象学告诉我们,时间源于意识的断裂——一旦自我意识意识到它自己,它就与未被自我意识到以前的那个意识区分开来(当然那个未被自我意识到以前的那个意识也是自我意识回溯性生成的),而每一次自指都在将自我提升到一个新的时刻,正如自然数的冯·诺伊曼构造:
还有一种策梅洛构造,即
二者的区别在于下一时刻是否把之前所有时刻都作为自己的元素。如果我们把
视为一种自在存在,而 视为这种自在存在的自我意识,那么冯·诺伊曼构造将自我意识的每一个阶段囊括在意识中,而策梅洛构造则遗忘了它的全部历史,仅仅把抽象的自我指涉作为自我意识的唯一。
时间性从这种自我意识前后的不一致性中迸发出来,但是自我意识又同时把这种不一致性视为同一对象的内部性质,因此每个时刻才有可能沿着同一条直线排布起来,后来的时刻既是对前面的否定,又是对前面的发展。进一步的,意识注意到其他对象在意识中反映出的不一致性,并将其所认定的这种不一致性视为同一对象的内部性质,物质也便具有了时间性。于是,本原于自我意识的绝对时间观才建构起来,由此使得物质也纷纷皈依于那条直线,各安其位。因此从发生学上看,并不是先有绝对时间再有物质运动,或者说不是绝对时间的前进迫使物质运动,而是先有自我意识的不一致性以及物质在意识中反映出的不一致性,再产生了时间性。绝对时间只是这种不一致性的普遍化。正如不是货币使得产品有了价值,而是货币本身是产品价值的普遍化。
我们不再追问这种不一致性的成因,那超出了我们的论域。
神经网络中的时间
数据的时间性
带时间性的数据是序列数据。有两种经典神经网络专门负责建模序列,分别反映了上述两种时间观。
建模内在时间的自回归模型(循环神经网络)
循环神经网络的基本数学模型是自回归模型:
自回归模型中非线性函数
建模外在时间的位置编码(Transformer 网络)
Transformer 之于循环神经网络最大的进步在于其将训练过程的并行化。对于循环神经网络而言,
每个时刻的输出等于每个时刻的输入加上表示这个时刻的信息。也就是说,它预设了一种全局性的时间信号,表征某种外在的不同时刻之间的绝对差异。通过把序列中前后项这种内在的不一致性外在化为绝对时间的不同时刻间的差异,每个时刻的函数值就可以并行的计算出来,正如函数图像中所有自变量取值的函数值都同时的铺陈在纸面。
结构的时间性
以上我们讨论的时间性是建模作为输入数据的序列的时间性。我们把这种时间称为横向的时间。此外,神经网络的计算中还存在一种因神经网络层堆叠而产生的时间,我们称之为纵向时间。这种时间性实际上是前向传播和反向传播中的时间。在前向传播中,每一层的激活信号
显然,这些层的激活信号和梯度信号是无法同时计算的,也就是说作为神经网络层序的指标
训练的时间性
神经网络的训练方式是随机梯度下降法及其各种变体,在训练过程中,神经网络的参数按照以下规则迭代:
每一次迭代,数据都经历了一个批次,而神经网络的参数也进入一个新的状态。上一个状态与下一个状态之间有直接的因果依赖关系,因此无法同时计算。这种时间性既不来源于数据,也不来源于网络结构,而来源于训练(也来源于对数据的随机批次采样)。
案例分析
扩散模型:刻意构造的横向时间
扩散模型主要用于图像生成,它的目标是将一张随机生成的噪声图片恢复为数据中的图片。为此,它将这个生成任务划分为诸多小步,每一小步只负责除去图片中的一小部分噪声。反过来说,它首先从数据图片
在训练时,这种外在时间一方面参与噪声图像的构造,另一方面以位置编码的形式被注入以指导模型在给定时间步进行相应的去噪。
正规化流模型:刻意构造的纵向时间
正规化流模型也用于图像生成,它的目标是用一系列可逆函数实现从噪声图像到数据图像的变换。而这一系列可逆函数实际上是通过构造带有特殊结构的神经网络层的逐层前向传播实现的:
这里的可逆性,只是为了能够解析的计算似然函数,从而能够用最大化似然函数作为优化目标。
残差连接·超连接·梯度流设计:刻意破坏的纵向时间
残差连接
简单的层次化前馈神经网络有一个问题:即网络越深,反传的梯度信号越弱从而越难实现优化。残差网络引入了残差连接,用于改善这一问题:
这样每层只需要学会与上一层激活的差值即可,这种思想与扩散模型每个时间步只学习去除一点点噪声类似。我们可以用另一种观点看待这个连接的性质,即它破坏了层次化的结构时间——这里第
超连接
残差连接相应的会产生表征塌缩的问题,即上一层和下一层学到的表征过于相似,这是因为残差
首先每一层的表征
其中
显然,若取
类比自注意力作为一种连接权重与输入相关的前馈神经网络,我们也可以为超连接的三个权重矩阵引入对输入的动态依赖
其中
不同的超连接权重形状决定了神经网络层与层之间的连接方式,实现了某种宽度与深度均可调节的连接,因而破坏了前馈神经网络固定的层次化结构,从前向传播的角度来看丰富了时间信息,在 ResNeXt 中,这被称为神经网络的基数(cardinality)。
梯度流设计(GPA)
梯度流设计从反向传播的角度出发,观察到残差网络 ResNet 或者稠密网络 DenseNet 中从前向传播丰富性的角度设计的连接,从反向传播的角度看并未丰富梯度信号的信息,从而仍旧导致学到的表征相似,为此刻意将某些通道直传而另一些通道变换,实现不同时间性的混合。这也从另一种角度破坏了结构时间。
漂移模型:利用训练时间
扩散模型和正规化流模型都将生成任务中从源分布演变为目标分布的过程分拆成许多小步,前者利用横向时间而后者则利用纵向时间。扩散模型的路径是带有随机性的,而正规化流的路径并没有随机性。扩散模型的流匹配模型利用了横向时间,同时取消了路径中扩散的随机性。扩散模型的效果好,但由于利用横向时间,它的推理更加耗时;而正规化流模型由于使用了纵向时间,因此只需要一步推理,但也造成生成质量不佳。因此,是否有可能寻找一种新的对神经网络时间性的利用,来拆分从源分布到目标分布的过程,既能实现单步推理,又能达到良好的生成质量?
漂移模型给出了一种新思路,它把神经网络训练过程中每一步迭代的结果,视为生成过程的一小步,也就是说每个样本通过
我们知道扩散模型为了实现这一点,通过从一个数据样本出发,人为生成一条加噪路径,并在这个路径上取许多时间切片作为带噪样本供网络学习,往后的各种改进不是通过取时间切片的带噪样本,而是取路径上的得分函数(得分匹配)或流速场(流匹配)供网络学习。
与扩散模型相比,漂移模型放弃了寻找样本点之间的对应,而是考虑样本点如何在源分布和目标分布之间移动,而这种移动由这两个分布构建的向量场所确定。这里的向量场与静电场非常相似,源分布施加排斥力而目标分布施加吸引力。
每个时间步
即给定当前源分布
因此,漂移模型以场的距离而非样本的距离函数作为优化目标。理论上它应该优化:
但是关于一个分布作反向传播是非平凡的,为此考虑到平衡态时,漂移为 0,因此有不动点关系:
于是把优化目标改造为:
通过 stopgrad 算子将反向传播限定在函数