【摘要】 很久前就已经证明,当网络宽度为无限宽时,具有独立同分布先验的参数的单隐层全连接神经网络等效于一个高斯过程。也就是说,通过计算相应的高斯过程,可以实现对无限宽神经网络回归任务的精确贝叶斯推断,或者反之,可以用趋近于无线宽的神经网络来实现近似的高斯过程。最近,人们已经开发出了多种用于模仿多层随机神经网络的核函数,但并未考虑贝叶斯框架。因此,之前的工作尚未确定上述核函数是否可用作高斯过程的协方差函数,也无法确定是否允许完全地使用深度神经网络来做贝叶斯预测。 本文推导出了无限宽 “深度” 神经网络和高斯过程之间的精确等价关系,并进一步开发了一个效率较高的计算管道,来计算高斯过程的协方差函数。我们使用生成的高斯过程对 MNIST 和 CIFAR-10 上的宽深度神经网络执行了贝叶斯推断,实验结果表明, 随着层宽的增加,训练后的神经网络精度趋近于相应的高斯过程,并且训练后神经网络预测的误差与高斯过程的不确定性密切相关。我们进一步发现, 随着有限宽度训练网络变得更宽和更类似于高斯过程,测试性能会有所提高,因此高斯过程预测通常优于有限宽神经网络的预测。最后,我们将这些高斯过程的性能与最近随机神经网络中的信号传播理论进行了联系。

【原 文】 Lee, J. et al. (2017) ‘Deep neural networks as gaussian processes’, arXiv preprint arXiv:1711.00165 [Preprint].

【代 码】 https://github.com/brain-research/nngp

1 概述

近年来,深度神经网络作为灵活的参数模型出现,可以拟合数据中的复杂模式。作为一种对比方法,高斯过程长期以来一直作为传统的非参数建模工具。 (Neal, 1994a [18]) 首次推导出了无限宽单隐层神经网络与高斯过程之间的等价性。 Neal (1994a [18]) 进一步指出,类似的对应关系可能适用于更深的神经网络。

现在考虑一个具有独立同分布随机参数的 深度 全连接神经网络。该网络的每个标量输出(即最终隐层的仿射变换)将会是若干独立同高斯分布项的和。正如将在下面详细讨论的那样: 在无限宽度极限下,中心极限定理表明神经网络函数是一个抽取自高斯过程(Gaussian Process, GP)的函数样本(注:高斯过程通常被理解为函数的分布,因此其样本为函数)。在单隐层网络的情况下,此类高斯过程的核形式参见((Neal,1994a [18]);(Williams,1997 [26]))

单隐层神经网络与高斯过程的这种对应关系意味着: 如果将无限宽神经网络这个类别作为假设空间,则权重和偏置等参数上的独立同分布先验(即权重视角)可以用相应函数空间上的高斯过程先验(即函数视角)代替。正如 (Williams, 1997 [26]) 所指出的,这种可替换性使神经网络可以对回归任务进行精确的贝叶斯推断(注:贝叶斯推断意味着给出的是一个概率分布,而不是确定的值)。根据高斯过程原理,实现计算需要在训练集和测试集上构建必要的协方差矩阵以及简单的线性代数。

鉴于近年神经网络的回潮,重新审视这方面工作非常有必要。本文描绘了 宽度和深度神经网络与高斯过程之间的对应关系,并将其用于神经网络在回归任务上的贝叶斯训练。

1.1 相关工作

我们的工作涉及高斯过程、贝叶斯学习、组合核等方面。

(1)高斯过程与神经网络的基础研究

  • 首次确认两者之间的等价关系:Neal (1994a [18];1994b [19]) 首次注意到无限宽神经网络和高斯过程之间的对应关系。
  • 推导出单隐层神经网络的解析高斯过程核:Williams (1997 [26]) 计算出了具有误差函数或非线性高斯的单隐层神经网络的解析高斯过程核,并注意到使用高斯过程先验进行回归的精确贝叶斯推断方法。
  • 深度高斯过程核的初步研究:Duvenaud 等 (2014 [7]) 讨论了几种构建深度高斯过程的方法,并观察了无限多次组合后的核退化形式(第 3.2 节 将做介绍),但其并没有推导出高斯过程核的形式。
  • 深度神经网络高斯过程等效核的初步研究:Hazan & Jaakkola (2015 [11]) 讨论了无限宽深度神经网络的等效核构建问题,但其讨论只局限在最多两个非线性隐藏层的神经网络。

(2)组合核方面的研究

相关工作也出现在组合核的构造中(注:在旧核基础上构造新核是一个研究领域):

  • 组合核的初步研究:Cho & Saul, 2009 [3] 推导出校正多项式的非线性组合核,其中包括 SignReLU 非线性,可用于高斯过程;尽管语境不同,但高斯过程研究领域构造核的方式与其是匹配的。
  • 神经网络组合核:Daniely 等(2016 [5]) 将组合核构建扩展到神经网络,其底层的有向无环图具有通用形式。他们还证明,采用 双激活 形式,“具有相同非线性全连接拓扑的组合核” 在经过无限次组合时会发生退化。
  • 递推组合核:在与组合核不同的领域中,Poole 等(2016[20])、Schoenholz 等 (2017 [25]) 针对全连接网络和有界非线性的特定情况,研究了同样的隐层递推关系。他们区分了超参数空间中具有不同不动点的区域和递推关系中的收敛行为。

上述工作的重点是更好地理解深度网络的表达能力和可训练性。

(3)与深度神经网络相关的研究

  • 深度高斯过程(DGP):还有一系列工作考虑了各种堆叠高斯过程的方法,例如深度高斯过程 (Lawrence & Moore, 2007 [16]); (Damianou & Lawrence ,2013 [4]); (Hensman & Lawrence ,2014 [12]); (Duvenaud 等,2014 [7]); (Bui 等,2016 [2]),这可以产生比高斯过程更丰富的概率模型。深度高斯过程与本文工作形成了对比:我们研究的重点是与 无限宽深度神经网络 直接对应的高斯过程。
  • 深度组合核:Krauth 等(2016 [15])使用了可扩展的近似实现,来探索了具有深度核(Cho & Saul, 2009 [3])的高斯过程性能。但他们没有讨论深度神经网络和具有组合核的高斯过程之间的等价性,而这却正是我们工作的概念性贡献。此外,我们工作中的高斯过程核在两个方面比 Cho& Saul (2009 [3]) 中概述的组合核更通用:首先我们并不限于校正多项式形式,而是可以处理通用的非线性函数;其次我们考虑了核中的两个额外超参数,它们分别对应于神经网络中的权重和偏差参数方差。
  • MC Dropout:Gal & Ghahramani (2016 [8]) 将深度神经网络中的 Dropout 与深度高斯过程中的近似贝叶斯推断联系起来。
  • 深度核学习(DKL):最近的另一系列工作被称为深度核学习(Deep Kernel Learning, DKL)(Wilson 等,2016b [29];2016a [28]);Al-Shedivat 等 2017 [1])。该方法利用具有基核的高斯过程,接收由深度多层神经网络映射生成的非线性(或线性)特征,并能够训练出端到端模型。我们的工作与其不同之处在于:我们的高斯过程对应于一个多层神经网络,而不是仅在最后一层设置高斯过程。此外,我们的高斯过程核具有更少的参数,这些参数对应于等效的神经网络超参数。

1.2 主要贡献

【成果一】:我们定义了一种高斯过程的神经网络形式: 高斯过程对应于一个根据核递归和确定性计算定义的深度无限宽神经网络,以下称为 神经网络高斯过程(NNGP)。该模型适用于在全连接前馈神经网络中进行逐点非线性计算。

【成果二】:我们开发了一种高效的计算方法(第 2.5 节),能够计算与深度神经网络(具有固定超参数)相对应的高斯过程核(协方差函数)。

【在贝叶斯推断方面的实证比较】:我们重点关注回归任务的精确贝叶斯推断,而将分类视为类标签上的回归任务。我们采用了分类表现良好的最小二乘法(Rifkin 等,2003 年 [24]),这允许我们在经过充分研究的任务(MNIST 和 CIFAR-10 分类)上,对 “高斯过程精确推断作出的预测” 与 “已训练神经网络的预测” 进行充分对比。需要说明的是,其实可以将高斯过程进一步扩展到具有交叉熵损失的 softmax 分类(Williams & Barber (1998); Rasmussen & Williams (2006)),不过在本文中并未覆盖。我们开展了对 MNIST 和 CIFAR-10(第 3 节)数据集做贝叶斯预测的实验,并与使用标准梯度方法训练的神经网络进行了比较。实验探索了贝叶斯训练的不同超参数设置,包括网络深度、非线性、训练集大小(最多并包括由数万张图像组成的完整数据集)以及权重和偏差方差。 实验结果表明:

  • 最佳 NNGP 性能始终与使用基于梯度技术训练的神经网络竞争,并且在超参数中选择的最佳 NNGP 设置通常优于传统训练(表 1)。
  • 随着神经网络宽度的增加,基于梯度训练的神经网络性能逐步接近 NNGP 计算的性能,并且高斯过程不确定性与预测误差密切相关。
  • NNGP 的性能取决于核的结构,这可以与最近关于具有随机参数的神经网络中信号传播的工作相关联(Schoenholz 等,2017 [25])。

2 深度无限宽神经网络与高斯过程的关系

本节首先定义高斯过程与深度无限宽神经网络之间的对应关系,这在很大程度上取决于中心极限定理的应用。在转向深层案例(第 2.3 节)之前,我们先回顾单隐藏层的情况(第 2.2 节)。

2.1 符号表示

我们重点考虑一个隐藏层数量为 LL 、隐藏层宽度为 NlN_l(对于特定层 ll)、逐点非线性运算为 ϕ\phi 的全连接神经网络。令 xRdinx \in \mathbb{R}^{d_{in}} 表示神经网络的输入,zLRdoutz^L \in \mathbb{R}^{d_{out}} 表示神经网络的输出。

ll 层的第 ii 个激活分量在 激活后激活前(即在非线性变换之后和在仿射变换之后)的值分别被表示为 xilx^l_izilz^l_i,我们分别将其简称为 激活后(Post-activation)激活前(Pre-activation)。不过输入层比较特殊:我们会去掉阿拉伯数字上标用 xixi0x_i \equiv x^0_i 来表示第 00 层的神经网络输入,并且使用希腊字母上标 xαx^{\alpha} 来表示某个特定的输入 αα

注: Neal 的原始论文仅探讨了单隐层神经网络,该神经网络由由输入层 xx、(含非线性激活的全连接)隐藏层 hh 和(全连接)输出层 ff 组成,输入经过仿射变换和激活后生成激活层 hh,激活层而后通过仿射变换生成输出层 ff
单隐藏层神经网络
Neal 原文的图 1.1。一个多层感知器,有四个输入单元、五个隐藏单元和两个输出单元。底部的输入单位固定为特定情况下的值,先计算隐藏单元的值,然后计算输出单元的值。

本文将单隐层结构扩展到了 LL 个隐藏层,但为了表述方便,在描述架构时做了一些改动,见下图。每一个层都由 “激活后 + 激活前” 两个子层组成;第 00 个层中的激活后为输入 xx,激活前为 z(0)z^{(0)};以后第 ll 个隐藏层将上一个神经网络的激活前 z(l1)z^{(l-1)} 视为输入,完成一次非线性激活后生成本层的激活后 xl=ϕ(z(l1))x^l = \phi(z^{(l-1)}),而后通过仿射变换生成本层的激活前 z(l)=Wlx(l)+blz^{(l)}=W_l x^{(l)} + b_l。按照这样的结构,整个神经网络由 L+1L+1 个层构成,而神经网络的输入被视为第 00 个层的激活后,神经网络的最终输出被视为第 LL 个层的激活前。

多隐藏层神经网络

ll 层神经网络的权重矩阵和偏差向量由元素 WijlW^l_{ij}bilb^l_i 构成,我们假设这些参数相互独立,且服从均值为 00 的高斯分布,其中权重和偏差的方差分别表示为 σw2/Nl\sigma^2_w/N_lσb2\sigma^2_b(注:根据符号可以看出,层宽可以被视为调节权重方差的一种机制,层宽越大则权重方差越小)。

符号 GP(μ,K)\mathcal{GP}(μ, K) 表示一个高斯过程,其均值函数和协方差函数分别为 μ()μ(·), K(,)K(·,·)

2.2 高斯过程和单隐层神经网络回顾

我们简要回顾一下单隐层神经网络和高斯过程之间的对应关系(Neal (1994a [18];1994b [19]);Williams (1997 [26]))。网络输出的第 ii 个分量 zilz^l_i 计算为,

Output Layer:zi1(x)=bi1+j=1N1Wij1xj1(x)Hidden Layer:xj1(x)=ϕ(bj0+k=1dinWjk0xk)\begin{align*} \text{Output Layer:} \quad z^1_i (x) &= b^1_i+ \sum^{N_1}_{j=1} W^1_{ij} x^1_j(x)\\ \text{Hidden Layer:} \quad x^1_j(x) &= \phi \left( b^0_j+ \sum^{d_{in}}_{k=1} W^{0}_{jk} x_k \right) \tag{1} \end{align*}

我们强调了对输入 xx 的依赖。因为权重和偏差参数被认为是独立同分布的, 对于任意 jjj \neq j',隐藏层(激活后)的 xj1x^1_j, xj1x^{1}_{j'} 相互独立。进一步地,由于输出层(激活前)的 zi1(x)z^1_i (x)N1N_1 个独立同分布项之和,根据中心极限定理可知,在无限宽 N1N_1 \rightarrow \infty 的极限下,zi1(x)z^1_i (x) 也将服从高斯分布。类似地,根据多维中心极限定理,任意有限个输入实例对应的神经网络输出 {zi1(xα=1),,zi1(xα=k)}\{ z^1_i(x^{\alpha=1}), \ldots, z^1_i(x^{\alpha=k}) \} 也都将服从联合多元高斯分布,而这正符合高斯分布的定义。

因此我们得出结论:无线宽单隐层神经网络是一个均值为 μ1μ^1 、协方差为 K1K^1 的高斯过程,即 zi1GP(μ1,K1)z^1_i \sim \mathcal{GP}(μ^1, K^1),而均值和协方差本身与 ii 无关。

由于参数都服从均值为零的高斯分布,且相互独立,因此神经网络对应的均值函数和协方差(核)分别为:

μ1(x)=E[zi1(x)]=0K1(x,x)E[zi1(x)zi1(x)]=σb2+σw2E[xi1(x)xi1(x)]σb2+σw2C(xx)\begin{align*} \mu^1(x) &= \mathbb{E}[z^1_i (x)] = 0 \\ K^1(x, x') &≡ \mathbb{E}[z^1_i(x) z^1_i(x')] = \sigma^2_b + \sigma^2_w \mathbb{E}[x^1_i(x) x^1_i (x')] ≡ \sigma^2_b + \sigma^2_w C(x,x') \tag{2} \end{align*}

在这里,我们引入了隐藏层(激活后)的协方差矩阵符号 C(x,x)=E[xi1(x)xi1(x)]C(x, x') = \mathbb{E}[x^1_i(x) x^1_i (x')];它可以通过对 式(1)W0W^0, b0b^0 的分布进行积分得到。请注意,对于任意 iji \neq jzi1z^1_izj1z^1_j 都服从联合高斯分布且协方差为零,也就是说,即便使用了隐藏层产生的同一特征,两者之间也是相互独立的。

此部分详情参考 Neal 的论文 (1994a [18]) 。

2.3 高斯过程和多层神经网络

(1)单层网络核的推导

上一节的论证可以扩展到更深的层次。为了进一步讨论,我们将隐藏层宽度相继取为(N1N_1 \rightarrow \inftyN2,N_2 \rightarrow \infty,\ldots ),以确保待考虑的每一层的输入都受高斯过程控制。

附录 C 中,我们利用中间层的贝叶斯边缘化方法,提供了另一种与极限顺序无关的推导。而 Matthews 等(2018 [6])的同步研究,则进一步推导出了当所有层同时采用无限宽时,神经网络向高斯过程收敛的速率。

假设 zjl1z^{l-1}_j 是一个高斯过程,其对于每个 jj 都是独立同分布的(因此其非线性激活 xjl(x)x^l_j(x) 也是独立且同分布的)。在第 l1l − 1 步之后,第 ll 层神经网络的输出为:

zil(x)=bil+j=1NlWijlxjl(x)xjl(x)=ϕ(zjl1(x))\begin{align*} z^l_i(x) &= b^l_i+ \sum^{N_l}_{j=1} W^{l}_{ij} x^l_j(x)\\ x^l_j (x) &= \phi(z^{l-1}_j (x)) \tag{3} \end{align*}

第 2.2 节 一样,zil(x)z^l_i(x) 也是独立同分布的随机项之和,从而使得当 NlN_l \rightarrow \infty 时,任何有限集合 {zil(xα=1),,zil(xα=k)}\{ z^l_i (x^{\alpha=1}), \ldots, z^l_i (x^{\alpha=k}) \} 都服从联合的多元高斯分布,即 zilGP(0,Kl)z^l_i \sim \mathcal{GP}(0, K^l)。其相应的协方差为:

Kl(x,x)E[zil(x)zil(x)]=σb2+σw2Ezil1GP(0,Kl1)[ϕ(zil1(x))ϕ(zil1(x))](4)K^{l}(x, x') ≡ \mathbb{E} [z^l_i (x) z^l_i (x')] = \sigma^2_b + \sigma^2_w \mathbb{E}_{z^{l−1}_i \sim \mathcal{GP}(0,K^{l−1})} [\phi(z^{l-1}_{i} (x)) \phi(z^{l-1}_{i} (x'))] \tag{4}

式 4 中的期望受上一层高斯过程 zil1z^{l-1}_{i} 的控制,这等价于对 zil1(x)z^{l-1}_{i} (x)zil1(x)z^{l-1}_{i} (x') 的联合分布进行积分。该联合分布为零均值的二维高斯,其协方差矩阵由三类不同的元素构成: Kl1(x,x)K^{l−1}(x, x')Kl1(x,x)K^{l−1}(x, x)Kl1(x,x)K^{l−1}(x', x')。因此,我们可以将 第 ll 层的协方差简写三者的某种函数:

Kl(x,x)=σb2+σw2Fϕ(Kl1(x,x),Kl1(x,x),Kl1(x,x))(5)K^{l}(x, x') = \sigma^2_b + \sigma^2_w F_{\phi} (K^{l−1}(x, x'), K^{l−1}(x, x), K^{l−1}(x', x')) \tag{5}

上式通过一个确定性函数 FF 定义了两个相邻层的核 KlK^{l}Kl1K^{l−1} 之间的递归关系,而该函数的形式仅取决于非线性函数 ϕ\phi

(2)多层神经网络输出的核

式(5) 给出了一系列迭代计算,可以通过这些迭代计算,获得神经网络最终输出的高斯过程的协方差 KLK^L

对于基情况 K0K^0,假设 Wij0N(0,σw2/din)W^{0}_{ij} \sim \mathcal{N}(0, \sigma^2_w/d_{in}), bj0N(0,σb2)b^0_j \sim \mathcal{N}(0,\sigma^2_b);我们可以利用与 K1K^1K0K^0 相关的递归进行计算,其中

K0(x,x)=E[zj0(x)zj0(x)]=σb2+σw2(xxdin)(6)K^0(x, x') = \mathbb{E} [z^{0}_{j} (x)z^{0}_{j} (x')] = \sigma^2_b + \sigma^2_w (\frac{x·x'}{d_{in}}) \tag{6}

事实上,这些递归关系在其他领域中也出现过。它们正是全连接随机神经网络中信号传播平均场理论中推导的关系(Poole 等 (2016 [20]); Schoenholz 等 (2017 [25])),也出现在组合核的相关文献中(Cho & Saul (2009 [3]);Daniely 等 (2016 [5]))。对于特定激活函数,可以解析地计算 式 5(Cho & Saul (2009 [3]);Daniely 等 (2016 [5]))。在 ReLU 非线性的情况下,它会产生众所周知的反余弦核 (Cho & Saul (2009 [3])),我们在 附录 B 中重现了它的形式。当不存在解析形式时,它可以有效地进行数值计算,如第 2.5 节 所述。

神经网络高斯过程的示意图。其中绿色神经元代表输入,橙色和红色神经元代表输出,蓝色神经元代表隐藏层。随着层宽趋近于无穷大,整个多隐层神经网络趋近于一个等效的高斯过程。

2.4 使用高斯过程先验实现神经网络的贝叶斯训练

在这里,我们先简要回顾一下如何使用高斯过程先验函数进行贝叶斯推断;参见例如(Rasmussen & Williams, 2006) 对高斯过程的全面回顾。给定一个由 输入-目标对 (x,t)(x, t) 组成的数据集 D={(x1,t1),,(xn,tn)}D = \{(x^1, t^1), \ldots, (x^n, t^n)\},我们希望通过函数 z(x)z(x) 上的分布,来为测试点 xx^* 作出贝叶斯预测。该高斯过程(函数上的分布)被约束为在训练输入 x(x1,,xn)x ≡ (x^1,\ldots , x^n) 上取值为 z(z1,,zn)z ≡ (z^1,\ldots , z^n) 并且,

P(zD,x)=dzP(zz,x,x)P(zD)=1P(t)dzP(z,zx,x)P(xz)(7)P(z^*|\mathcal{D}, x^*) = \int d \mathbf{z} P(z^*|\mathbf{z,x}, x^*) P(\mathbf{z}| \mathcal{D}) = \frac{1}{P(t)} \int d \mathbf{z} P(z^*, \mathbf{z} | x^*, \mathbf{x}) P(\mathbf{x|z})\tag{7}

其中 t=(t1,,tn)T\mathbf{t} = (t^1,\ldots , t^n)^T 是训练集上的目标,P(tz)P(\mathbf{t|z}) 对应于含噪声观测。我们将假设噪声模型是一个以 zz 值为中心、方差为 σ2\sigma^2 的高斯分布。

如果 第 2.2 节第 2.3 节 的条件适用,我们对高斯过程先验(函数上的先验)的选择应当符合: z1,,zn,zz^1,\ldots , z^n, z^* 是从高斯过程中抽取的 n+1n + 1 个样本,并且 z,zx,xN(0,K)z^*, \mathbf{z}|x^*,\mathbf{x} \sim \mathcal{N}(\mathbf{0,K}) 是联合多元高斯分布,其协方差矩阵 K\mathbf{K} 应当具有以下形式:

K=[KD,DKx,DTKx,DKx,x]\mathbf{K}= \left[ \begin{array}{ll} &K_{\mathcal{D,D}} &K^T_{x^*,\mathcal{D}}\\ &K_{x^*,\mathcal{D}} &K_{x^*,x^*} \end{array}\right]

其中块结构对应于训练集和测试点之间的划分。也就是说,KD,DK_{\mathcal{D,D}} 是一个 n×nn × n 矩阵,其第 (i,j)(i, j) 个元素是 K(xi,xj)K(x^i, x^j),其中 xi,xjDx^i, x^j \in \mathcal{D},而 Kx,DK_{x^*,\mathcal{D}} 的第 ii 个元素是 K(x,xi),xiDK(x^*, x^i), x^i \in \mathcal{D},其他符号类似。按照高斯过程原理,可以精确地完成 式 7 中的积分,得到 zD,xN(μˉ,Kˉ)z^*| \mathcal{D}, x^* \sim \mathcal{N}(\bar{μ},\bar{K}) ,其中:

μˉ=Kx,D(KD,D+σϵ2In)1tKˉ=Kx,xKx,D(KD,D+σϵ2In)1Kx,DT\begin{align*} \bar{μ} &= K_{x^*,\mathcal{D}} (K_{\mathcal{D,D}} + \sigma^2_\epsilon \mathbb{I}_n)^{−1} \mathbf{t} \tag{8} \\ \bar{K} &= K_{x^*,x^*} − K_{x^*,\mathcal{D}} (K_{\mathcal{D,D}} + \sigma^2_\epsilon \mathbb{I}_n)^{−1} K^T_{x^*,\mathcal{D}} \tag{9} \end{align*}

式中 In\mathbb{I}_nn×nn × n 单位矩阵。因此,zD,xz^*|\mathcal{D}, x^* 的预测分布可以由矩阵运算得到,但仍然对应于深度神经网络的完全贝叶斯训练。其中使用的协方差函数具体形式由高斯过程先验(即神经网络模型类别)的选择决定,取决于神经网络的深度、非线性函数选择、权重和偏差参数的方差等。

我们在后文中将继续在符号 K\mathbf{K} 中放置上标 LL,以强调组合核的深度。

利用等价高斯过程的预测分布来计算神经网络的预测分布,使神经网络具备不确定性量化能力。

2.5 高斯过程核的高效计算方法

根据 第 2.3 节,对于一个具有固定超参数的 LL 层深度神经网络,为其等效的高斯过程构造协方差矩阵 KL\mathbf{K}^{L},需要计算 式(4) 中所有 “训练点-训练点” 和 “训练点-测试点” 点对的高斯积分,并且每一个层都需要递归计算。对于某些非线性激活函数而言,例如 ReLU,这种积分可以解析实现;但要计算任意非线性核的高斯积分,则需要使用更通用的数值积分方法。

最原始的数值算法是通过对二维高斯分布进行采样,利用样本独立地为每对数据点和每一层计算积分,但这代价太高,成本为 O(ng2L(ntrain2+ntrainntest))\mathcal{O}(n_g^2 L(n^2_{train} + n_{train} n_{test})),其中 ng2n_g^2 为二维积分中高斯分布的采样密度,ntrainn_{train}ntestn_{test} 分别是训练集和测试集的大小。

不过,通过优化运算 pipeline ,并对所有输入做等范数的预处理,我们可以将该成本减少至 O(ng2nvnc+L(ntrain2+ntrainntest))\mathcal{O}(n_g^2 n_v n_c + L(n^2_{train} + n_{train} n_{test})),其中 nvn_vncn_c 分别方差和相关性的网格采样密度(如下面所述)。为了实现这一点,我们将 pipline 分为几个步骤:

(1) 生成网格

生成激活前、方差和相关性的均匀网格:

  • 激活前: u=[umax,,umax]u = [−u_{max}, \ldots, u_{max}] 由在 umax−u_{max}umaxu_{max} 之间线性间隔的 ngn_g 个元素组成;
  • 方差: s=[0,,smax]s = [0, \ldots , s_{max}]nvn_v 个线性间隔的元素,其中 smax<umax2s_{max} < u^2_{max}
  • 相关性: c=(1,,1)c = (−1, \ldots, 1)ncn_c 个线性间隔的元素。

请注意,我们使用固定而非自适应的采样网格,以允许跨数据点和层的并行计算和重用。

(2)填充查找表矩阵

式(5) 中的函数 FϕF_{\phi} 填充一个包含查找表的矩阵 FF。这涉及在数值上根据边缘方差 ss 和相关性 cc 计算近似高斯积分。为了保证每个数据点的边缘方差相同,我们在输入层将所有数据点预处理为具有相同范数,因此查找表矩阵中元素的数量只需要 nv×ncn_v \times n_c。这些查找表元素采用下式计算:

Fij=abϕ(ua)ϕ(ub)exp(12[uaub]T[sisicjsicjsi]1[uaub])abexp(12[uaub]T[sisicjsicjsi]1[uaub])(10)F_{i j}=\frac{\sum_{a b} \phi\left(u_a\right) \phi\left(u_b\right) \exp \left(-\frac{1}{2}\left[\begin{array}{l} u_a \\ u_b \end{array}\right]^T\left[\begin{array}{cc} s_i & s_i c_j \\ s_i c_j & s_i \end{array}\right]^{-1}\left[\begin{array}{l} u_a \\ u_b \end{array}\right]\right)}{\sum_{a b} \exp \left(-\frac{1}{2}\left[\begin{array}{l} u_a \\ u_b \end{array}\right]^T\left[\begin{array}{cc} s_i & s_i c_j \\ s_i c_j & s_i \end{array}\right]^{-1}\left[\begin{array}{l} u_a \\ u_b \end{array}\right]\right)} \tag{10}

(3) 计算协方差

对于第 ll 层中的每一对数据点 xxxx',使用 式(5) 计算 Kl(x,x)K^{l} (x, x')。可以通过对 步骤 2 中矩阵 FF 的双线性插值,来近似函数 Fϕ(Kl1(x,x);Kl1(x,x);Kl1(x,x))F_\phi ( K^{l−1}(x, x'); K^{l−1}(x, x) ; K^{l−1}(x', x')),其中使用 Kl1(x,x)K^{l−1}(x, x) 插值 ss,使用 (Kl1)(x,x)/Kl1(x,x))(K^{l−1})(x, x')/K^{l−1}(x, x)) 插值 cc。注意:由于数据预处理时保证了常量范数,所以有 Kl1(x,x)=Kl1(x,x)K^{l−1}(x, x) = K^{l−1}(x', x')

(4) 逐层迭代

对所有层递归重复前面的三个步骤。双线性插值具有恒定成本,因此成本为 O(L(ntrain2+ntrainntest))\mathcal{O}(L(n^2_{train} + n_{train} n_{test}))

上述计算方法允许我们计算与任何非线性 ϕ\phi 相对应的 NNGP 的协方差矩阵,并且所有计算步骤都可以用张量运算来加速。采用此方法,协方差矩阵 KL\mathbf{K}^{L} 的计算通常比求解 式(8-9) 中的线性方程组更快。图 6 说明了采用非线性 ReLU 激活时,数值计算方法和解析计算方法得出的核函数之间存在紧密一致性。它同时还说明了核的角度依赖及其随神经网络深度增加而发生的演变。

Fig06

图 6:核的角度结构及其随深度的演变。该图同时说明了使用第 2.5 节(蓝色,星号)的方法计算的核与相应解析形式(红色)之间的良好一致性。 KlK^l 中的深度 lll=0,,9l = 0, \ldots, 9(随着 ll 增加逐步压平了曲线), (σw2,σb2)=(1.6,0.1)(σ^2_w, σ^2_b ) = (1.6, 0.1)。注: 图中两种颜色的曲线基本重合,不宜发觉区别。

最后,请注意完整的 pipeline 是 确定性的可微分的。深度网络核的形状和性质完全由深度神经网络的超参数决定。由于高斯过程给出了精确的边缘似然估计,因此这种核构造可能允许原理性的超参数选择或非线性设计,例如关于超参数优化对数似然的梯度上升方法。虽然这并不是目前工作的重点,但我们希望在后续工作中讨论这个话题。

该算法的开源实现可从 https://github.com/brain-research/nngp 获得。

3 实验结果

图 1:NNGP 通常优于有限宽度网络,神经网络性能随着宽度的增加更接近 NNGP 性能。图中显示了 MNIST 和 CIFAR-10 数据集上的测试精度和均方误差,对应于给定网络宽度时表现最佳的 NNGP 和 SGD 训练的神经网络。 “NN-best” 表示在所有宽度和试验中表现最好的(在验证集上)神经网络。通常这是宽度最大的神经网络。

Fig2

图 2:具有可变宽度的 5-隐层全连接神经网络的泛化 gap,分别对应 CIFAR-10 数据集上的 ReLU 和 Tanh 非线性激活。训练使用了随机优化和超参数初始化,并滤除了具有 100%100\% 分类训练准确率的那部分神经网络,最后共产生 125125 个 Tanh 和 5555 个 ReLU 网络。无论非线性,最终结果均表明:最好的泛化网络始终是最宽的那个。

Fig3

图 3:NNGP 的贝叶斯性质允许它为每个测试点赋予预测不确定性。这种预测不确定性与测试点上的经验误差高度相关。xx 轴显示测试点的预测 MSE,而 yy 轴显示了实现的 MSE。为了比较均方误差,每个标绘点都是 100100 个测试点的均值,由预测的 MSE 分箱生成。 NNGP 的超参数为 depth=3depth= 3σw2=2.0σ^2_w = 2.0σb2=0.2σ^2_b = 0.2。有关训练集大小的依赖性,请参见 图 8

Fig08

图 8:较少训练点的预测不确定性。实现细节与图 3 相同。

表 1:NNGP 通常优于有限宽度网络。在 MNIST 和 CIFAR10 数据集上测试准确性。报告的 NNGP 结果对应于验证集上表现最佳的 depthdepthσw2σ^2_wσb2σ^2_b 值。传统的 NN 结果对应于性能最佳的深度、宽度和优化超参数。给定训练集大小的最佳模型是 ( depthwidthσw2σb2depth-width-σ^2_w-σ^2_b ) 的神经网络和 (depthσw2σb2depth–σ^2_w-σ^2_b ) 的高斯过程。更多结果见 表 2

Table1

表 2:表 1 的完善。报告的 NNGP 结果对应于验证集上表现最佳的 depthdepthσw2σ^2_wσb2σ^2_b 值。传统的 NN 结果对应于性能最佳的深度、宽度和优化超参数。给定训练集大小的最佳模型是 ( depthwidthσw2σb2depth-width-σ^2_w-σ^2_b ) 的神经网络和 (depthσw2σb2depth–σ^2_w-σ^2_b ) 的高斯过程。。

Table2

Fig4

图 4:表现最好的 NNGP 超参数与深度信号传播预测的结果一致。在 σw2\sigma^2_wσb2\sigma^2_b 值的网格上计算的 NNGP 的测试集精度热图。(a)、(b) 中的右侧是遵循 Schoenholz 等 (2017) 方法的非线性理论相图。我们观察到:沿着临界线(虚线)时 NNGP 性能最好。其他深度的表现见 图 9

Fig9

图 9:针对不同深度的 σw2σ^2_wσb2σ^2_b 网格计算的 NNGP 测试集精度热图。行对应于 Tanh 和 ReLU 非线性,列对应于变化的深度。

Fig10

图 10:性能最佳的 NNGP 分布在临界线附近。显示了具有给定训练集大小的 NNGP 的 25 次最佳性能运行的权重和偏差方差分布

4 结论与讨论

通过利用无限宽极限,我们指定了深度神经网络的先验与高斯过程之间的对应关系,其核函数是以组合的、确定的、可微的方式构建的。使用函数上的高斯过程先验,可以使用矩阵计算实现对神经网络回归的精确贝叶斯推断,我们无需基于随机梯度的训练,就能够从深度神经网络中获得预测和不确定性估计。NNGP 的性能与在类似超参数设置下训练的最佳神经网络(在指定类别的全连接模型内)之间具有竞争力。

虽然我们能够对较大的数据集(大小为 50k50k)进行实验,但我们计划研究更大学习任务的可扩展性,可能会利用到可扩展高斯过程的最新进展(Quinonero-Candela& Rasmussen(2005 [21]);Hensman 等(2013 [13]) )。

本文主要论点在于:

  • 理想的无限宽多隐藏层全连接神经网络,等价于一个高斯过程,因此可以用等价的高斯过程来生成其预测分布;
  • 该高斯过程的协方差矩阵只与神经网络的深度、非线性函数选择、权重和偏差等参数的方差有关;
  • 该高斯过程的协方差矩阵可以从第 00 层开始递归计算,作者为此开发了专门的计算方法;
  • 试验结果表明: NNGP 的预测结果能够作为多隐层全连接神经网络的理想预测分布,而且层宽越宽,结果越逼近。
  • 高斯过程本身的可扩展性受 O(n3)\mathcal{O}(n^3) 限制,因此可以进一步结合可扩展的高斯过程方法(如:近似似然、降秩、稀疏化等)。

在实验中,我们观察到:经过优化的神经网络性能似乎随着宽度增加而接近高斯过程计算的性能。基于梯度的随机优化是否能够实现近似贝叶斯推断是一个有趣的问题(Mandt 等,2017 [17])。需要进一步调查以确定:在实践中通常采用的 SGD 是否能够近似地实现贝叶斯推断?

此外,NNGP 提供了对不确定性的明确估计。这可能有助于预测深度学习关键应用中的模型失败,或用于主动学习任务,在这些任务中它可用于识别最佳数据点以手动标记。

参考文献

  • [1] Maruan Al-Shedivat, Andrew Gordon Wilson, Yunus Saatchi, Zhiting Hu, and Eric P Xing. Learning scalable deep kernels with recurrent structure. Journal of Machine Learning Research, 18(82): 1–37, 2017.
  • [2] Thang Bui, Daniel Hern ́ andez-Lobato, Jose Hernandez-Lobato, Yingzhen Li, and Richard Turner. Deep gaussian processes for regression using approximate expectation propagation. In International Conference on Machine Learning, pp. 1472–1481, 2016.
  • [3] Youngmin Cho, Lawrence K Saul. Kernel methods for deep learning. In Advances in neural information processing systems, pp. 342–350, 2009.
  • [4] Andreas Damianou, Neil Lawrence. Deep gaussian processes. In Artificial Intelligence and Statistics, pp. 207–215, 2013.
  • [5] Amit Daniely, Roy Frostig, and Yoram Singer. Toward deeper understanding of neural networks: The power of initialization and a dual view on expressivity. In Advances In Neural Information Processing Systems, pp. 2253–2261, 2016.
  • [6] Alexander G. de G. Matthews, Jiri Hron, Mark Rowland, Richard E. Turner, and Zoubin Ghahramani. Gaussian process behaviour in wide deep neural networks. In International Conference on Learning Representations, 2018.
  • [7] David Duvenaud, Oren Rippel, Ryan Adams, and Zoubin Ghahramani. Avoiding pathologies in very deep networks. In Artificial Intelligence and Statistics, pp. 202–210, 2014.
  • [8] Yarin Gal. Uncertainty in deep learning. PhD thesis, PhD thesis, University of Cambridge, 2016a.
  • [9] Yarin Gal, Zoubin Ghahramani. Dropout as a bayesian approximation: Representing model uncertainty in deep learning. In international conference on machine learning, pp. 1050–1059, 2016.
  • [10] Daniel Golovin, Benjamin Solnik, Subhodeep Moitra, Greg Kochanski, John Karro, and D Sculley. Google vizier: A service for black-box optimization. In Proceedings of the 23rd ACM SIGKDD International Conference on Knowledge Discovery and Data Mining, pp. 1487–1495. ACM, 2017.
  • [11] Tamir Hazan, Tommi Jaakkola. Steps toward deep kernel methods from infinite neural networks. arXiv preprint arXiv:1508.05133, 2015.
  • [12] James Hensman, Neil D Lawrence. Nested variational compression in deep gaussian processes. arXiv preprint arXiv:1412.1370, 2014.
  • [13] James Hensman, Nicolo Fusi, and Neil D Lawrence. Gaussian processes for big data. arXiv preprint arXiv:1309.6835, 2013.
  • [14] Diederik Kingma, Jimmy Ba. Adam: A method for stochastic optimization. arXiv preprint arXiv:1412.6980, 2014.
  • [15] Karl Krauth, Edwin V Bonilla, Kurt Cutajar, and Maurizio Filippone. Autogp: Exploring the capabilities and limitations of gaussian process models. arXiv preprint arXiv:1610.05392, 2016.
  • [16] Neil D Lawrence, Andrew J Moore. Hierarchical gaussian process latent variable models. In Proceedings of the 24th international conference on Machine learning, pp. 481–488. ACM, 2007.
  • [17] Stephan Mandt, Matthew D Hoffman, and David M Blei. Stochastic gradient descent as approximate bayesian inference. arXiv preprint arXiv:1704.04289, 2017.
  • [18] Radford M. Neal. Priors for infinite networks (tech. rep. no. crg-tr-94-1). University of Toronto, 1994a.
  • [19] Radford M. Neal. Bayesian Learning for Neural Networks. PhD thesis, University of Toronto, Dept. of Computer Science, 1994b.
  • [20] Ben Poole, Subhaneil Lahiri, Maithra Raghu, Jascha Sohl-Dickstein, and Surya Ganguli. Exponential expressivity in deep neural networks through transient chaos. In Advances In Neural Information Processing Systems, pp. 3360–3368, 2016.
  • [21] Joaquin Quinonero-Candela, Carl Edward Rasmussen. A unifying view of sparse approximate gaussian process regression. Journal of Machine Learning Research, 6(Dec):1939–1959, 2005.
  • [22] Carl Edward Rasmussen, Christopher KI Williams. Gaussian processes for machine learning, volume 1. MIT press Cambridge, 2006.
  • [23] Ryan Rifkin, Aldebaro Klautau. In defense of one-vs-all classification. Journal of machine learning research, 5(Jan):101–141, 2004.
  • [24] Ryan Rifkin, Gene Yeo, Tomaso Poggio, et al. Regularized least-squares classification. Nato Science Series Sub Series III Computer and Systems Sciences, 190:131–154, 2003.
  • [25] Samuel S Schoenholz, Justin Gilmer, Surya Ganguli, and Jascha Sohl-Dickstein. Deep information propagation. ICLR, 2017.
  • [26] Christopher KI Williams. Computing with infinite networks. In Advances in neural information processing systems, pp. 295–301, 1997.
  • [27] Christopher KI Williams, David Barber. Bayesian classification with gaussian processes. IEEE Transactions on Pattern Analysis and Machine Intelligence, 20(12):1342–1351, 1998.
  • [28] Andrew G Wilson, Zhiting Hu, Ruslan R Salakhutdinov, and Eric P Xing. Stochastic variational deep kernel learning. In Advances in Neural Information Processing Systems, pp. 2586–2594, 2016a.
  • [29] Andrew Gordon Wilson, Zhiting Hu, Ruslan Salakhutdinov, and Eric P Xing. Deep kernel learning. In Artificial Intelligence and Statistics, pp. 370–378, 2016b.