神经网络高斯过程

神经网络高斯过程（，简称) 是一种特殊的高斯过程，可以看作一类特定人工神经网络序列的极限。具体而言，当多种神经网络架构的宽度趋于无穷时，其函数分布会收敛到一个高斯过程。
背景.
贝叶斯网络是一种建模工具，它通过为事件分配概，来量化模型预测中的不确定性。深度学习和人工神经网络则是机器学习中的主流方法，用于构建能从训练样本中学习的计算模型。贝叶斯神经网络则将二者相融合，是一种参数与预测都具有概率性的神经网络。标准的神经网络常会对错误的预测赋予较高的置信度，而贝叶斯神经网络能够更准确地评估自身预测正确的可能性。
人工神经网络的计算可以表示成人工神经元构成的层序列，其中每一层的神经元数量称为层的宽度。当我们考察一个贝叶斯神经网络序列（见图），其所有层的宽度不断增加时，这个序列在函数分布上最终会收敛到一个神经网络高斯过程。这种无限宽度下的极限具有现实意义，因为在实践中更宽的网络通常会有更好的性能。同时，这一极限也为我们提供了一种评估网络性能的闭式方法。
除了作为贝叶斯神经网络的极限，神经网络高斯过程还出现在其他几种场景下：它描述了一个非贝叶斯宽人工神经网络在参数随机初始化之后、训练之前的输出函数分布；它可以作为神经正切核预测方程中的关键组成部分；它在深度信息传播中用以表征超参数和架构是否可以训练。它还与神经网络的其他大宽度极限有关。
适用范围.
关于神经网络与高斯过程的第一个对应关系，最早可以追溯到Radford M. Neal在其1995年博士论文中的结果，当时他的导师是多伦多大学教授杰弗里·辛顿。Neal表示他的研究灵感来源于从事贝叶斯学习研究的戴维·J·C·麦凯。
如今，这一对应关系已被证明适用于多种架构，如单隐藏层贝叶斯神经网络、层宽趋于无穷时的深度全连接网络、通道数趋于无穷时的卷积神经网络、注意头数量趋于无穷时的Transformer网络、单元数趋于无穷时的循环网络等。事实上，这种对应关系对几乎所有神经网络架构都成立。只要一个架构可以完全由矩阵乘法和逐坐标的非线性运算来表达，那么它就存在一个无限宽度下的高斯过程极限。这一定义涵盖了由多层感知器、循环神经网络（如LSTM和GRU）、（任意维度或图上的）卷积、池化、跳跃连接、注意力、批量归一化及层归一化组成的所有前馈或循环神经网络。
图解说明.
神经网络参数的每一组参数formula_1对应于由该网络所计算的特定函数。当我们指定网络参数的先验分布formula_2时，也就等同于在网络可能实现的所有函数上确定了一个先验分布。对于许多网络架构而言，当其宽度趋于无穷时，这个函数空间上的分布会收敛到一个高斯过程。
图中直观地展示了这一概念。对于一维输出的神经网络formula_3，该图的坐标轴表示网络对两个不同输入formula_4和formula_5的对应输出值。图中的每一个黑点都代表了一次随机采样：先从formula_2中随机抽取一组参数，然后再计算两个输入值对应的输出对formula_7和formula_8。而图中的红线则描绘了由formula_2得到的输出对的联合概率分布。这是参数空间中formula_2对应于函数空间中的分布。在无限宽的神经网络中，由于其函数分布是一个高斯过程，因此对任意有限的一组输入，其输出的联合分布必定是一个多元高斯分布。
讨论.
无限宽全连接网络.
本节针对全连接网络这一具体架构，讨论无限宽神经网络与高斯过程之间的对应关系。我们将提供了一个证明概要，旨在阐述这一对应关系成立的原因，并给出这一架构下神经网络高斯过程的具体函数形式。此处的证明概要主要遵循了Novak等人提出的方法。
网络架构.
考虑一个全连接人工神经网络，其中formula_4为输入，参数formula_1由每一层formula_13的权重formula_14和偏置formula_15组成，formula_16和formula_17则分别表示每一层的预激活值（非线性运算之前）和激活值（非线性运算之后），formula_18为逐点作用的非线性函数，formula_19为层宽。为简单起见，输出向量formula_20的宽度formula_21取为 1。假设网络的参数具有先验分布formula_2，其中每一个权重和偏置都独立地服从一个各向同性的高斯分布，而权重的方差与层宽成反比。该网络的结构如右图所示，并由以下方程组描述：
高斯过程formula_24.
首先，我们注意到预激活值formula_16可以被描述为一个以激活值formula_17为条件的高斯过程。这一结论即便在有限宽度的网络中也成立。每个预激活值formula_27是一系列高斯随机变量（权重formula_28和偏置formula_29）的加权和，而这一求和中每个高斯变量的系数都是之前的激活值formula_30。因为formula_27是零均值高斯随机变量的加权和，所以其本身也是零均值高斯随机变量。对于任意formula_17，formula_16服从联合高斯分布，因此其可以被定义为以formula_17为条件的高斯过程。该高斯过程的协方差（即核函数）取决于权重方差formula_35、偏置方差formula_36以及激活值formula_17的二阶矩矩阵formula_38：
其中权重方差formula_40的作用是缩放来自formula_38的贡献，而偏置由于是对所有输入共享的，因此formula_36使得formula_27更接近常数矩阵，即让不同输入数据点所对应的formula_27更相似。
高斯过程formula_45.
预激活值formula_16对formula_17的依赖仅取决于其二阶矩矩阵formula_38。正因如此，我们可以说formula_16是一个以formula_38为条件的高斯过程，而无需取决于整个激活向量formula_17：
层宽趋于无穷时formula_53的确定性.
如前所述，formula_38是激活值formula_17的二阶矩矩阵。由于formula_17是对预激活值formula_57应用非线性函数formula_58的结果，可以将其替换为formula_59，从而将formula_38（formula_61）的定义改写为
前文已证明formula_63是一个高斯过程。这意味着，上述formula_38定义中的求和项，实现上是formula_19个样本的平均，这些样本都是从基于formula_66为的高斯过程中采样得到的，即
随着层宽formula_19趋于无穷大，这formula_19个高斯过程样本的均值会收敛到一个高斯过程上的积分：
因此，在无限宽度极限下，输入对formula_4和formula_72的二阶矩矩阵formula_38可以通过一个关于二维高斯分布的积分来计算。对许多常见的激活函数formula_18，例如ReLU、ELU、GELU或误差函数等，这一积分都存在解析解。即使在没有解析解的情况下，由于它只是一个二维积分，通常也可以通过数值方法高效地计算。由于该积分是确定性的，formula_75也是确定性的。
为了方便表示，我们定义一个泛函formula_76，它代表了上述积分的计算过程，并将前一层的formula_66映射到当前层的formula_38：
神经网络高斯过程formula_80.
上节我们得到，formula_81时formula_53是确定性的。递归地应用这一结论，最后一层的formula_83可以写成输入层formula_84的确定性函数：
其中，formula_86表示将formula_76连续应用formula_88次。同时，输入层的二阶矩矩阵formula_89也是输入formula_4的确定性函数，加之我们已证明formula_91是一个高斯过程，最终我们可以将神经网络的输出表示为输入的高斯过程：
软件库.
Neural Tangents是一个由Google开发的免费开源Python库，可以用于计算和推断与各常见神经网络架构相对应的神经网络高斯过程和神经正切核。