【摘 要】 深度神经网络擅长函数逼近,但通常针对每个新函数从头开始训练。而贝叶斯方法(如高斯过程)利用先验知识在测试时快速推断新的函数形状,但高斯过程的计算成本很高,而且很难设计出合适的先验。在本文中,我们提出了结合了两者优点的条件神经过程 (CNP)。条件神经过程受到高斯过程等随机过程灵活性的启发,但其结构却类似于神经网络,并可以通过梯度下降进行训练。条件神经过程在仅观测少数训练数据点后就能够做出准确预测,同时可以扩展到复杂函数和大型数据集。我们展示了该方法在一系列机器学习任务上的性能和多功能性,包括回归、分类和图像补全。

【原 文】 Garnelo, M. et al. (2018) ‘Conditional neural processes’, in J. Dy and A. Krause (eds) Proceedings of the 35th international conference on machine learning. PMLR (Proceedings of machine learning research), pp. 1704–1713. Available at: https://proceedings.mlr.press/v80/garnelo18a.html.

1 引言

深度神经网络近年来取得了显著的成功,但需要大型数据集才能进行有效训练(Lake 等,2017 年 [17];Garnelo 等,2016 年 [9])。缓解此问题的一种方法是将学习分为两个阶段:

  • 第一阶段,利用大型训练集学习通用领域的统计数据,但不致力于该领域内的特定学习任务。
  • 第二阶段,利用少量数据点来学习针对特定任务的函数,但使用已经学得的全域统计数据。

使用神经网络进行 元学习(Meta-Learning) 就是这种方法的一个例子(Wang 等,2016 年 [31];Reed 等,2017 年 [23])。

例如,考虑一个监督学习问题,很多此类问题的技术框架是:给定一组有限观测值的情况下进行进行函数逼近。考虑一个具有 nn 个输入 xiXx_i \in X 和输出 yiYy_i \in Y 的数据集 {(xi,yi)}i=0n1\{(x_i, y_i)\}^{n−1}_{i=0}。假设这些数据代表了对某个未知函数 f:XYf : X \rightarrow Y 的计算 yi=f(xi)y_i = f (x_i) (可能是固定的或某个随机函数的一次实现)。一个监督学习算法通常会返回一个近似函数 g:XYg : X \rightarrow Y 或此类函数的一个分布,目标是(在整个空间 XX 上)最小化 ffgg 之间的损失,但在实际工作中通常根据一组预留的观测值进行评估(即使这些观测值无标签化)。这些无标签的数据点通常被称为目标点(见 图(1) )。分类、回归、动力学建模和图像生成都可以在此框架中进行。

Fig01

图 1. 条件神经过程。 a) 数据描述 b) 传统监督深度学习模型的训练机制 c) 我们的模型。

传统方法:监督问题的一种常见方法,是为每个新任务重新随机初始化参数化的函数 gg,并将大量计算花费在代价高昂的拟合阶段。从业者可能拥有的有关 ff 的先验信息,一般是通过 gg 的架构、损失函数或训练细节进行指定的。此类方法基本涵盖了大部分深度监督学习任务。由于其能够表达的先验知识范围相对有限,因此不同任务之间难以共享学习,所需训练数据量也很大,深度学习方法在训练数据不丰富的情况下往往会失败。

监督问题的另一类方法,是采取概率视角并指定函数的分布,这被称为随机过程,高斯过程 (GP) 是其中一个例子(Rasmussen & Williams,2004 [22])。采用此视角,从业者关于 ff 的先验知识,可以用对先验随机过程的分布假设来捕获,学习对应于在函数空间中以观测为条件的贝叶斯推断。在高斯过程中,关于 ff 平滑度的假设由参数化的核函数先验捕获,而 gg 则被视为来自后验分布的随机函数。不幸的是,随着数据集或维度的增长,这种贝叶斯方法在计算上很快变得难以处理(Snelson & Ghahramani,2006 [28])。

在本文工作中,我们提出了一系列将神经网络与高斯过程特点相结合的模型,以及一种端到端的训练方法。我们将其称为 条件神经过程 (Conditional Neural Process,CNP),以表示其在给定一组观测值时,能够用于定义函数的条件分布。条件神经过程对观测的依赖性由神经网络进行参数化,该神经网络不受输入的排列顺序影响。我们专注于在测试时扩展性为 O(n+m)\mathcal{O}(n + m) 的架构,其中 nnmm 分别是观测数量和目标数量。在其最基本的形式中,条件神经过程会生成每个观测值的嵌入,然后将这些嵌入通过对称聚合器聚合为一个具有固定维度的新嵌入中(称之为聚合嵌入),并将聚合嵌入作为 gg 的条件,见 图(1c) 示意图。通过对随机数据集进行采样并遵循梯度步骤来训练条件神经过程,以在给定随机观测集的情况下最大化目标随机子集的条件似然。这使得条件神经过程在 nmn \ll mnmn \gg m 的各种应用场景中均表现良好。

本文的结构如下:

  • 第 2 节中,介绍了条件神经过程,提出我们的实施方案,并描述了如何使用标准深度学习库有效地训练它们。
  • 第 3 节中,讨论相关工作,特别是贝叶斯和元学习方法。
  • 第 4 节中,我们将条件神经过程应用于多个领域,包括回归、分类和图像补全,并将其优势与经典方法进行比较。

我们强调,条件神经过程尽管与贝叶斯方法有一些相似之处,但并不直接实施贝叶斯推断,而且条件分布不一定与某些先验过程一致。不过,我们认为: “直接从训练数据中提取先验知识的能力” 和 “测试时的可扩展能力” 的结合应该更具重要性。

2 模型

2.1 随机过程

考虑由一组输入 xiXx_i \in X 和输出 yiYy_i \in Y 构成的数据集 O={(xi,yi)}i=0n1X×YO = \{(x_i, y_i)\}^{n−1}_{i=0} \subset X \times Y, 和另一个无标签点的集合 T={xi}i=nn+m1XT = \{x_i\}^{n+m−1}_{i=n} \subset X ,我们分别称之为 观测集目标集。 我们假设输出是如下过程的一个实现:令 PP 是函数 f:XYf : X \rightarrow Y 的概率分布( PP 的正式名称为随机过程),对于该过程的某个函数样本 fPf \sim P ,有 yi=f(xi)y_i = f(x_i)。也就是说,随机过程 PP 定义了函数值(被视为随机变量)上的联合分布 {f(xi)}i=0n+m1\{f (x_i)\}^{n+m-1}_{i=0} ,因此也有了条件分布 P(f(T)O,T)P(f(T) | O,T) (注:条件分布通常会被建模为某种参数化函数的形式,其约束条件可能是函数值服从某种概率分布)。我们的任务是:为给定 OO 时的每个 xTx \in T 预测输出值 f(x)f(x) (注:显然是某个概率分布的样本)。

作为一个启发性的示例,考虑一个定义在实数上的随机一维函数 fPf \sim P(即 X:=RX := RY:=RY := R)。 OO 将构成实数上不同位置 xix_iff 的函数值 yiy_inn 个观测。鉴于这些观测结果,我们感兴趣的是:预测 ff 在实数轴上任意新位置的函数值。对 PP 的一个经典假设是: ff 的所有有限函数值集都是联合高斯分布的,此随机函数类被称为高斯过程 (GP)。在这种情况下,其优点是预测分布 P(f(T)O,T)P(f (T) | O, T) 具有解析形式,可以用成对的相关性结构的先验假设来定义(即通过核函数和核矩阵来定义)。随机过程框架很有吸引力,因为贝叶斯规则允许人们在一组概率假设下,一致性地推断通过观测 OO 施加给 ff 的预测分布。这使模型具有较高的数据效率,而这是大多数深度学习模型不常见的特征。但是,在实际工作中很难设计出合适的先验(注:所谓设计出先验,主要指对核的设计),并且大多数随机过程的计算量大,与 nnmm 相关的扩展性很差。这其中包括可扩展特性为 O((n+m)3)\mathcal{O}((n + m)^3) 的高斯过程。

2.2 条件神经过程 (CNP)

作为替代方案,我们提出了条件神经过程 (CNP),该模型直接参数化条件随机过程,而非通过先验过程强加一致性(注:即不需要先验设置)。在已知 OO 的具有固定维度的分布式表示(即维度固定的嵌入)的情况下,条件神经过程参数化了 f(T)f(T) 的分布。这样做使我们放弃了与随机过程相关的数学保证,但取而代之的是功能灵活性和可扩展性。

具体来说,给定一组观测 OO,条件神经过程本质上是一个条件随机过程 QθQ_{\theta},它定义了当输入为 xTx \in Tf(x)f(x) 的分布。θθ 是用于定义 QQ 的参数向量。继承随机过程的特性,我们假设 QθQ_{\theta} 对于 OOTT 的排列顺序具有不变性。也就是说,如果 OO', TT' 分别是 OOTT 的一种排列,则 Qθ(f(T)O,T)=Qθ(f(T)O,T)=Qθ(f(T)O,T)Q_{\theta}(f(T) | O, T) = Q_{\theta}(f(T') | O, T') = Q_{\theta}(f(T) | O', T)

在本文工作中,我们通过假设一个分解结构来强制执行关于 TT 的排列排列不变性。具体来说,我们考虑 QθQ_{\theta} 的如下分解形式: Qθ(f(T)O,T)=xTQθ(f(x)O,x)Q_{\theta}(f(T) | O, T ) = \prod_{x \in T} Q_{\theta}(f(x) | O, x)。在缺少对输出空间 YY 的假设时,这是确保随机过程有效的最简单方法。不过,此框架可以扩展到非因子化的分布,我们在实验部分考虑了这样一个模型。

条件神经过程的定义特点是:通过固定维度的嵌入来实现以 OO 为条件。具体来说,我们使用以下架构,

ri=hθ(xi,yi)(xi,yi)Or=r1r2rn1rnϕi=gθ(xi,r)(xi)T\begin{align*} r_i &= h_{\theta}(x_i, y_i) \qquad \forall (x_i, y_i) \in O \tag{1}\\ &\Downarrow\\ r &= r_1 \oplus r_2 \oplus \ldots r_{n−1} \oplus r_n \tag{2}\\ &\Downarrow\\ \phi_i &= g_{\theta}(x_i, r) \qquad \forall (x_i) \in T \tag{3} \end{align*}

其中 hθ:X×YRdh_{\theta} : X \times Y \rightarrow \mathbf{R}^dgθ:X×RdReg_{\theta} : X \times \mathbf{R}^d \rightarrow \mathbb{R}^e 均是神经网络;\oplus 是一个累积(或聚合)运算,它将 Rd\mathbf{R}^d 中的多个元素映射到 Rd\mathbf{R}^d 的单个元素;ϕi\phi_iQθ(f(xi)O,xi)=Q(f(xi)ϕi)Q_{\theta}(f (x_i ) | O, x_i) = Q(f (x_i) | \phi_i) 的参数。 根据任务,模型学习如何参数化不同的输出分布。该架构确保条件预测的排列不变性和 O(n+m)\mathcal{O}(n + m) 的扩展性能。我们提醒:因为 r1rnr_1 \oplus \ldots \oplus r_n 可以由 r1rn1r_1 \oplus \ldots \oplus r_{n−1}O(1)\mathcal{O}(1) 内计算出来, 所以该架构支持以最小的开销进行流式观测。

在回归任务中,对于每一个 xiTx_i \in T,我们使用 ϕi=(μi,σi2)\phi_i = (\mu_i, \sigma^2_i) 来参数化高斯分布 N(μi,σi2)\mathcal{N}(\mu_i, \sigma^2_i) 的均值和方差。

在分类任务中,我们用 ϕi\phi_i 来参数化类别分布的 cc 个类上的 logits pcp_c

在大多数实验中,我们选用均值运算 (a1++an)/n(a_1 +\ldots + a_n)/n 作为 a1ana_1 \oplus \ldots \oplus a_n

2.3 条件神经过程的训练

我们训练 QθQ_{\theta} 的方法是:让其以 OO 的某个随机选择的子集为条件,来预测完整的 OO。这为模型提供了有关不确定性的信号,表明在给定一组观测值的情况下,继承自分布 PPXX 空间上的不确定性。

更准确地说,设 fP,O={(xi,yi)}i=0n1f \sim P , O = \{(x_i, y_i)\}^{n−1}_{i=0} 是一组观测,Nuniform[0,,n1]N \sim \text{uniform}[0,\ldots, n-1]。我们以子集 ON={(xi,yi)}i=0NOO_N = \{(x_i, y_i)\}^{N}_{i=0} \subset O 为条件(即 OO 的前 NN 个元素),最小化负的对数条件概率:

L(θ)=EfP[EN[logQθ({yi}i=0n1ON,{xi}i=0n1)]](4)L(θ) = −\mathbb{E}_{f \sim P} [ \mathbb{E}_N [ \log Q_{\theta}(\{ y_i \}^{n−1}_{i=0} | O_N , \{ x_i \}^{n−1}_{i=0})]] \tag{4}

因此,其为 QθQ_{\theta} 评分的目标函数中,包括已观测值和未观测值。在实际工作中, 我们通过对 ffNN 采样,来对这种损失的梯度做蒙特卡洛估计

此方法将赋予模型先验知识的工作,从设定解析形式先验转移为利用经验数据,将实际工作者从为先验指定解析形式的负担中解放了出来。不过,我们强调 QθQ_{\theta} 不一定是所有观测集的一致条件集,并且训练程序也不能保证这一点。

总体来说,

(1)条件神经过程是经过训练的函数的条件分布,用于模拟函数 fPf \sim P 的经验条件分布。

(2)条件神经过程在 OOTT 上具有排列不变性。

(3)条件神经过程是可扩展的,在利用 nn 个观测进行 mm 次预测的任务上,能够实现 O(n+m)\mathcal{O}(n + m) 的计算复杂度。

在该模型中,仍有一些方面可以修改以满足特定要求。例如:hh 的确切实现可以适应不同的数据类型。对于低维数据,编码器可以实现为 MLP,而对于具有更大维度和空间相关性的输入,它还可以包括卷积。

最后,在所描述的设置中,模型无法生成任何连续样本,因为它仅学会了对均值和方差的建模,并没有考虑目标之间的相关性(协方差)。我们获得具有相关性样本的一种方法,是引入一个可以从中采样的隐变量。这个将在 第 4.2.3 节 中进行了一些概念验证实验。

注: 该作者在另一篇文献中重点介绍了这种方案,并将之定名为 神经过程

3 相关研究

3.1 高斯过程

我们研究的目标是将高斯过程推断的想法纳入 NN 训练机制,以克服两者的某些缺点。有许多论文解决了高斯过程框架内的一些相同问题。稀疏高斯过程已经解决了高斯过程的缩放问题 (Snelson & Ghahramani, 2006),而克服功能限制导致的有限表达是 Deep 高斯过程的动机 (Damianou & Lawrence, 2013; Salimbeni & Deisenroth, 2017)。 Deep Kernel learning(Wilson 等,2016 年)的作者也结合了 DL 和高斯过程的想法。然而,他们的模型仍然更接近高斯过程,因为神经网络用于学习更具表现力的核,然后在高斯过程中使用

3.2 元学习

深度学习模型通常更具可扩展性,并且在直接从数据中学习特征和先验知识方面非常成功。然而,它们在输入大小和顺序方面往往不太灵活。此外,一般来说,它们只近似一个函数,而不是函数上的分布。元学习方法解决了后者并分享了我们的核心动机。最近,元学习已应用于广泛的任务,如 RL(Wang 等,2016 年;Finn 等,2017 年)或程序归纳(Devlin 等,2017 年)。

通常,元学习算法被实现为深度生成模型,这些模型学习对数据的底层密度进行少量估计。实现这一目标的一种方法是更新现有模型,如 PixelCNN(van den Oord 等,2016 年)并使用注意力机制(Reed 等,2017 年)增强它们,或在 VAE 模型中包含一个记忆单元(Bornschein 等,2016 年)。 , 2017).另一种成功的潜在变量方法是在推断过程中明确地以某些背景为条件 (J. Rezende 等,2016)。鉴于这些模型的生成性质,它们通常应用于图像生成任务,但包含条件类变量的模型也可用于分类。

分类本身是元学习中的另一个常见任务。 Few-shot 分类算法通常依赖于特征空间中的一些距离度量来将目标图像与提供的观测结果进行比较 (Koch 等,2015),(Santoro 等,2016)。匹配网络 (Vinyals 等,2016; Bartunov & Vetrov, 2016) 与条件神经过程密切相关。在他们的案例中,使用注意力核将样本特征与目标特征进行比较。在更高层次上,可以将此模型解释为条件神经过程,其中聚合器只是所有输入样本的串联,而解码器 g 包含一个明确定义的距离核。从这个意义上说,匹配网络更接近于高斯过程而不是条件神经过程,因为它们需要条件神经过程从数据中学习的距离核的规范。此外,当 MN 执行 allto-all 比较时,它们的比例为 O(n×m)\mathcal{O}(n \times m),尽管它们可以修改为具有与条件神经过程相同的 O(n+m)\mathcal{O}(n + m) 复杂性(Snell 等,2017)。

概念上与条件神经过程(尤其是潜在变量版本)非常相似的模型是“神经统计学家”论文(Edwards & Storkey,2016 年)和相关的变分同源编码器(Hewitt 等,2018 年)。与其他生成模型一样,神经统计学家学习估计观测数据的密度,但不允许在我们称为输入位置 xix_i 的位置进行有针对性的采样。相反,一个人只能生成独立同分布。来自估计密度的样本。最后,条件神经过程的潜在变体也可以看作是贝叶斯 DL 的近似摊销版本(Gal & Ghahramani, 2016; Blundell 等,2015; Louizos 等,2017; Louizos & Welling, 2017)

4 实验结果

4.1 函数回归

作为第一个实验,我们在经典的 1D 回归任务上测试条件神经过程,该任务用作高斯过程的公共基线。我们生成了两个不同的数据集,这些数据集由具有指数核的高斯过程生成的函数组成。在第一个数据集中,我们使用了具有固定参数的核,而在第二个数据集中,来自使用了不同核参数的函数样本,在实线上的某个随机点处切换。

在每个训练步骤中,我们从高斯过程中采样一条曲线,选择 nn 个点 (xi,yi)(x_i, y_i) 的子集作为观测,并选择 (xt,yt)(x_t, y_t) 的子集作为目标点。使用 图(1) 中描述的模型,观测点使用具有 128 维输出表示 rir_i 的三层 MLP 编码器 hh 进行编码。这些表示被聚合成一个单一表示 r=1nrir = \frac{1}{n} \sum r_irrxtx_t 连接后,传递给由五层 MLP 组成的解码器 gg。解码器输出目标输出 yty_t 的高斯均值和方差。我们使用 Adam 优化器训练模型以最大化目标点的对数似然 (Kingma & Ba, 2014 [13])

图(2) 显示了为两个数据集获得的回归结果。我们将模型与具有正确超参数的高斯过程生成的预测(这构成了我们性能的上限)进行比较。尽管高斯过程生成的预测在均值和方差方面都比条件神经过程的预测更平滑,但该模型能够学习从固定核和切换核的几个背景点进行回归。随着背景点数量增加,模型准确性提高,模型的近似不确定性降低。至关重要的是,模型学会了根据观测输出非常准确地估计其自身的不确定性。并且它提供了一个很好的近似值,可以随着背景点数量的增加而提高准确性。

此外,该模型在切换核任务上也取得了类似的良好性能。这种类型的回归任务对于高斯过程来说并不简单,而在本例中,我们只需要更改用于训练的数据集。

Fig02

图 2 : 一维回归。使用 55 个(左列)和 5050 个(右列)背景点(黑点),在一维曲线(黑线)上的回归结果。前两行显示了高斯过程(红色)和 条件神经过程(蓝色)在单个核情况下回归的预测均值和方差。底行显示了切换不同核参数情况下,条件神经过程对曲线的预测。

4.2 图像补全

我们将图像补全视为对灰度图像的 f:[0,1]2[0,1]f:[0, 1]^2 \rightarrow [0, 1] 或 RGB 图像的 f:[0,1]2[0,1]3f:[0, 1]^2 \rightarrow [0, 1]^3 的函数回归任务。输入 xx 是归一化为 [0,1]2[0, 1]^2 的二维像素坐标,输出 yy 是灰度强度或相应像素的 RGB 强度向量。对于这个补全任务,我们使用与 1D 函数回归完全相同的模型架构(除了为 RGB 制作最后一层 3 维)。

我们在两个不同的数据集上测试条件神经过程:一是 MNIST 手写数字数据库 (LeCun 等,1998 [18]),二是大规模 CelebFaces Attributes (CelebA) 数据集 (Liu 等,2015 [19])。两者的模型和训练过程是相同的:在每一步中,我们从数据集中选择一个图像,并选择一个像素子集作为观测。以此为条件,模型被训练为预测图像中所有像素的值(包括作为条件的像素)。与一维回归一样,该模型为每个像素输出高斯均值和方差,并针对地面实况图像的对数似然进行优化。需要指出的是,我们选择图像作为数据集是因为它们构成了一个复杂的二维函数,易于进行视觉评估,而不是为了与生成模型基准进行对比。

4.2.1 MNIST

我们首先在 MNIST 数据集上测试了条件神经过程,并使用测试集评估其性能。如 图(3a) 所示,该模型学会了对基础数字做出良好的预测,即使对于少量背景点也是如此。至关重要的是,当仅以一个非信息性的背景点(例如边缘上的黑色像素)为条件时,模型的预测对应于所有 MNIST 数字的均值。随着背景点数量的增加,预测变得与基本事实更加相似。这证明了模型提取数据集特定先验知识的能力。值得一提的是,即使有完整的观测集,模型也无法实现像素的完美重建,因为我们在表示环节存在一个瓶颈。

由于条件神经过程的这种实现返回了因子化的输出,它可以在给定有限背景信息的情况下产生的最佳预测,是对与背景一致的所有可能预测进行平均。另一种方法是在模型中添加隐变量,以便可以根据背景对它们进行采样,进而在数据分布中产生具有高概率的预测。我们稍后将在 第 4.2.3 节 中考虑这个模型。

该模型的一个重要方面是它能够估计预测的不确定性。如 图(3a) 的底行所示,随着我们更多观测,方差从几乎均匀分布在数字位置转变为局限在特定于底层数字的区域周围,特别是其边缘。能够在给定某些背景点的情况下对不确定性进行建模,对许多任务都有帮助。一个例子是主动探索,模型可以选择在哪里观测。我们可以通过比较根据不确定性(即每一步方差最大的像素)与随机像素( 图(3b) )选择观测值时条件神经过程的预测来测试这一点。这种方法是一种非常简单的主动探索方法,但它已经产生了比随机选择条件点更好的预测结果。

Fig3

图 3. MNIST 上的逐像素图像回归。左图:两个具有不同观测值的图像回归示例。我们为模型提供 114040200200728728 个背景点(顶行)并查询整个图像。为每个背景图像显示每个像素位置的结果均值(中间行)和方差(底行)。右图:随机选择(蓝色)或通过选择具有最高方差的像素(红色)来增加观测值的模型精度

4.2.2 Celeb

我们还将条件神经过程应用于名人脸部图像数据集 CelebA,并报告在测试集上获得的性能。如 图(4) 所示,我们的模型能够捕获此数据集的复杂形状和颜色,并以不到 10%10\% 的像素已经接近真实情况为条件进行预测。和以前一样,给定很少的背景点,模型对所有可能的脸部进行平均,但是随着背景对数量的增加,预测会捕获特定于图像的细节,例如面部方向和面部表情。此外,随着背景点数量的增加,方差向图像的边缘移动。

图(5) 中展示的条件神经过程的一个重要方面是它的灵活性,不仅在它接收的观测和目标的数量方面,而且在它们的输入值方面。一方面将此属性与高斯过程进行比较,另一方面将其与经过训练的生成模型进行比较(van den Oord 等,2016 年 [29];Gregor 等,2015 年 [10])。

当以模型在训练期间未遇到的子集为条件时,可以看到第一种类型的灵活性。例如,考虑以图像的一半为条件。这迫使模型不仅根据图像的某些平稳平滑属性预测像素值,而且根据全局空间性质,例如对称性和面部不同部位的相对位置。如图的第一行所示,条件神经过程能够捕获这些性质。具有固定核的高斯过程无法捕捉到这一点,并且在没有观测的情况下,会恢复到其均值(均值本身可能是非固定的,但通常这不足以捕捉到有趣的性质)。

此外,该模型在目标输入值方面是灵活的。这意味着,我们可以在训练期间未见过的分辨率下查询模型。我们采用仅使用特定分辨率的像素坐标进行训练的模型,并在测试时预测原始坐标之间目标的子像素值。如 图(5) 所示,通过一次前向传递,我们可以查询不同分辨率的模型。虽然高斯过程也表现出这种灵活性,但经过训练的生成模型并非如此,它只能预测训练它们的像素坐标的值。从这个意义上说,条件神经过程兼具两全其美:它在条件和预测任务方面非常灵活,并且能够从训练集中提取领域知识。

我们将条件神经过程与两个相关模型进行定量比较:kNN高斯过程。如 表 1 所示,当背景点的数量较少时(根据经验,当图像的一半或更少作为背景提供时)条件神经过程优于后者。当大部分图像作为背景给出时,高斯过程 和 kNN 这样的精确方法会表现得更好。

从表中我们还可以看出,提供背景点的顺序对于条件神经过程来说不太重要,因为按照从上到下的顺序提供背景点仍然可以获得良好的性能。这两种见解都指出这样一个事实,即条件神经过程学习特定于数据的“先验”,即使背景点的数量非常少,它也会生成良好的样本

Fig04

图 4. CelebA 上的逐像素图像补全。具有不同观测值的 CelebA 图像回归的两个示例。我们为模型提供 11101010010010001000 个背景点(顶行)并查询整个图像。为每个背景图像显示每个像素位置的结果均值(中间行)和方差(底行)。

Fig05

图 5. 灵活的图像补全。与标准条件模型相比,条件神经过程可以直接以任意模式观测到的像素为条件,甚至是训练集中从未见过的像素。同样,该模型可以预测从未包含在训练集中的像素坐标值,例如不同分辨率下的子像素值。为清楚起见,在生成后添加了白色虚线。

Table01

表 1. CelebA 数据集图像补全任务中所有像素的像素均方误差,上下文点数量不断增加(10、100、1000)。上下文点随机选择或从左上角到右下角排序。在上下文点较少的情况下,CNP 优于 kNN 和 GP。此外,无论上下文点的顺序如何,CNP 都表现良好,而 GP 和 kNN 在上下文有序时表现更差。

4.2.3 隐变量模型

我们在本文中使用的主要模型是一个因子模型,它预测目标输出的均值和方差。尽管我们已经证明均值本身就是一个有用的预测,并且方差是捕捉不确定性的好方法,但这种因式分解模型会阻止我们在多个目标上获得一致的样本。

考虑 图(3) 中的 MNIST 实验,该实验以少量观测为条件。有时我们需要一个模型,而不是仅预测所有数字的平均值,该模型可用于对以观测为条件的所有可能数字的不同相干图像进行采样。

GPs 可以做到这一点,因为它们包含一个参数核,可以预测观测和目标中所有点之间的协方差。这形成了一个多元高斯分布,可用于连贯地绘制样本。为了在经过训练的模型中保持此属性,一种方法是训练模型以预测高斯过程核(Wilson 等,2016 年[32])。然而,困难在于需要通过涉及大矩阵求逆(或它的某种近似)的采样进行反向传播。

相比之下,我们使用的方法是简单地将潜在变量 zz 添加到我们的解码器 gg 中,从而使我们的模型能够捕获全局不确定性。为了生成连贯的样本,我们从观测中计算表示 rr,它参数化了潜在 zz 上的高斯分布。然后对 zz 进行一次采样并用于生成所有目标的预测。为了获得不同的连贯样本,我们从潜在 zz 中提取一个新样本,并对所有目标再次运行解码器。与标准 VAE(Kingma & Welling,2013 [14];Rezende 等,2014 [24])类似,我们通过优化对数似然的变分下界来训练该模型,使用条件高斯先验 p(zO)p(z|O) 以观测结果,以及同样以目标点为条件的高斯后验 p(zO,T)p(z|O, T)

我们将此模型应用于 MNIST 和 CelebA( 图(6) )。我们使用与之前相同的模型,但我们将表示 rr 连接到大小为 64 的潜在变量 zz 的向量(对于 CelebA,我们使用更大的模型,其中 rrzz 的大小分别为 10241024128128)。对于先验模型和后验模型,我们使用三层 MLP 并对它们的输出进行平均。我们强调先验和后验之间的区别在于先验只看到观测到的像素,而后验看到观测到的像素和目标像素。当使用少量观测到的像素从该模型中采样时,我们得到了连贯的样本,并且我们看到捕获了数据集的可变性。随着模型以越来越多的观测为条件,样本的变异性下降,最终收敛到一种可能性。

Fig06

图 6. 使用潜在变量模型完成图像。潜在变量捕获全局不确定性,允许对符合观测结果的不同相干图像进行采样。随着观测次数的增加,不确定性会降低,样本会收敛到一个估计值。

4.3 分类

最后,我们使用 Omniglot 数据集(Lake 等,2015 年)将该模型应用于一次性分类(有关任务的概述,请参见 图(7) )。该数据集包含来自 5050 个不同字母表的 1,6231,623 类字符。每个类只有 2020 个示例,因此该数据集特别适合小样本学习算法。与 (Vinyals 等,2016) 一样,我们使用 1,2001,200 个随机选择的类作为我们的训练集,其余的作为我们的测试数据集。此外,我们按照 (Santoro 等,2016 [26]) 中描述的协议扩充数据集。这包括将图像从 32×3232 \times 32 裁剪为 28×2828 \times 28,对输入应用小的随机平移和旋转,以及通过将每个字符旋转 9090 度并将其定义为新类来增加类的数量。我们通过在每个训练步骤选择 NN 个随机类别并任意分配标签 0,,N10,\ldots , N − 1 来为 NN 路分类任务生成标签。

鉴于输入点是图像,我们修改了编码器 hh 的架构以包括第 2 节中提到的卷积层。此外,我们仅通过使用输入标签提供的信息来聚合同一类的输入。然后将聚合的特定于类的表示连接起来形成最终表示。鉴于类特定表示的大小和类的数量都是常数,最终表示的大小仍然是常数,因此 O(n+m)\mathcal{O}(n + m) 运行时间仍然成立。

表 2 总结了分类结果。条件神经过程比明显更复杂的模型(如 MANN)具有更高的准确性。虽然条件神经过程在一次性分类方面没有击败最先进的技术,但我们的准确度值具有可比性。至关重要的是,我们使用明显更简单的架构(编码器的三个卷积层和解码器的三层 MLP)和在测试时的运行时间 O(n+m)\mathcal{O}(n + m)O(nm)\mathcal{O}(nm) 更低。

Fig07

图 7.一次性 Omniglot 分类。在测试时,模型会为每个类提供一个带标签的示例,并输出一个新的无标签示例的分类概率。当新示例来自未观测到的类时,模型不确定性会增加。

Table02

表 2. Omniglot 上的分类结果。 MANN (Santoro 等, 2016)、匹配网络 (MN) (Vinyals 等, 2016) 和条件神经过程在相同任务上的结果。

5 讨论

在本文中,我们介绍了条件神经过程,这是一种在测试时既灵活又能够从训练数据中提取先验知识的模型。我们已经展示了它执行各种任务的能力,包括回归、分类和图像补全。我们一方面将条件神经过程与高斯过程进行了比较,另一方面将深度学习方法进行了比较,还讨论了与元学习和少样本学习的关系。

重要的是要注意,此处描述的特定条件神经过程实现只是简单的概念验证,可以进行实质性扩展,例如通过包括符合现代深度学习进步的更精细的架构。

总而言之,本文工作可以看作是学习高级抽象的一步,这是当代机器学习的重大挑战之一。大多数传统深度学习模型学习的函数在训练的任何阶段都与特定的、受限的统计背景相关联。经过训练的条件神经过程更通用,因为它封装了一系列函数的高级统计信息。因此,它构成了一个可以重用于多个任务的高级抽象。在未来的工作中,我们将探索这些模型能在多大程度上帮助解决许多似乎取决于抽象的关键机器学习问题,例如迁移学习、元学习和数据效率。

参考文献

  • [1] Bartunov, S. and Vetrov, D. P. Fast adaptation in generative models with generative matching networks. arXiv preprint arXiv:1612.02192, 2016.
  • [2] Blundell, C., Cornebise, J., Kavukcuoglu, K., and Wierstra, D. Weight uncertainty in neural networks. arXiv preprint arXiv:1505.05424, 2015.
  • [3] Bornschein, J., Mnih, A., Zoran, D., and J. Rezende, D. Variational memory addressing in generative models. In Advances in Neural Information Processing Systems, pp. 3923–3932, 2017.
  • [4] Damianou, A. and Lawrence, N. Deep gaussian processes. In Artificial Intelligence and Statistics, pp. 207–215, 2013.
  • [5] Devlin, J., Bunel, R. R., Singh, R., Hausknecht, M., and Kohli, P. Neural program meta-induction. In Advances in Neural Information Processing Systems, pp. 2077–2085, 2017.
  • [6] Edwards, H. and Storkey, A. Towards a neural statistician. 2016.
  • [7] Finn, C., Abbeel, P., and Levine, S. Model-agnostic metalearning for fast adaptation of deep networks. arXiv preprint arXiv:1703.03400, 2017.
  • [8] Gal, Y. and Ghahramani, Z. Dropout as a bayesian approximation: Representing model uncertainty in deep learning. In international conference on machine learning, pp. 1050–1059, 2016.
  • [9] Garnelo, M., Arulkumaran, K., and Shanahan, M. Towards deep symbolic reinforcement learning. arXiv preprint arXiv:1609.05518, 2016.
  • [10] Gregor, K., Danihelka, I., Graves, A., Rezende, D. J., and Wierstra, D. Draw: A recurrent neural network for image generation. arXiv preprint arXiv:1502.04623, 2015.
  • [11] Hewitt, L., Gane, A., Jaakkola, T., and Tenenbaum, J. B. The variational homoencoder: Learning to infer high-capacity generative models from few examples. 2018.
  • [12] J. Rezende, D., Danihelka, I., Gregor, K., Wierstra, D., et al. One-shot generalization in deep generative models. In International Conference on Machine Learning, pp. 1521–1529, 2016.
  • [13] Kingma, D. P. and Ba, J. Adam: A method for stochastic optimization. arXiv preprint arXiv:1412.6980, 2014.
  • [14] Kingma, D. P. and Welling, M. Auto-encoding variational bayes. arXiv preprint arXiv:1312.6114, 2013.
  • [15] Koch, G., Zemel, R., and Salakhutdinov, R. Siamese neural networks for one-shot image recognition. In ICML Deep Learning Workshop, volume 2, 2015.
  • [16] Lake, B. M., Salakhutdinov, R., and Tenenbaum, J. B. Human-level concept learning through probabilistic program induction. Science, 350(6266):1332–1338, 2015.
  • [17] Lake, B. M., Ullman, T. D., Tenenbaum, J. B., and Gershman, S. J. Building machines that learn and think like people. Behavioral and Brain Sciences, 40, 2017.
  • [18] LeCun, Y., Bottou, L., Bengio, Y., and Haffner, P. Gradientbased learning applied to document recognition. Proceedings of the IEEE, 86(11):2278–2324, 1998.
  • [19] Liu, Z., Luo, P., Wang, X., and Tang, X. Deep learning face attributes in the wild. In Proceedings of International Conference on Computer Vision (ICCV), December 2015.
  • [20] Louizos, C. and Welling, M. Multiplicative normalizing flows for variational bayesian neural networks. arXiv preprint arXiv:1703.01961, 2017.
  • [21] Louizos, C., Ullrich, K., and Welling, M. Bayesian compression for deep learning. In Advances in Neural Information Processing Systems, pp. 3290–3300, 2017.
  • [22] Rasmussen, C. E. and Williams, C. K. Gaussian processes in machine learning. In Advanced lectures on machine learning, pp. 63–71. Springer, 2004.
  • [23] Reed, S., Chen, Y., Paine, T., Oord, A. v. d., Eslami, S., J. Rezende, D., Vinyals, O., and de Freitas, N. Few-shot autoregressive density estimation: Towards learning to learn distributions. 2017.
  • [24] Rezende, D. J., Mohamed, S., and Wierstra, D. Stochastic backpropagation and approximate inference in deep generative models. arXiv preprint arXiv:1401.4082, 2014.
  • [25] Salimbeni, H. and Deisenroth, M. Doubly stochastic variational inference for deep gaussian processes. In Advances in Neural Information Processing Systems, pp. 4591–4602, 2017.
  • [26] Santoro, A., Bartunov, S., Botvinick, M., Wierstra, D., and Lillicrap, T. One-shot learning with memory-augmented neural networks. arXiv preprint arXiv:1605.06065, 2016.
  • [27] Snell, J., Swersky, K., and Zemel, R. Prototypical networks for few-shot learning. In Advances in Neural Information Processing Systems, pp. 4080–4090, 2017.
  • [28] Snelson, E. and Ghahramani, Z. Sparse gaussian processes using pseudo-inputs. In Advances in neural information processing systems, pp. 1257–1264, 2006.
  • [29] van den Oord, A., Kalchbrenner, N., Espeholt, L., Vinyals, O., Graves, A., et al. Conditional image generation with pixelcnn decoders. In Advances in Neural Information Processing Systems, pp. 4790–4798, 2016.
  • [30] Vinyals, O., Blundell, C., Lillicrap, T., Wierstra, D., et al. Matching networks for one shot learning. In Advances in Neural Information Processing Systems, pp. 3630–3638, 2016.
  • [31] Wang, J. X., Kurth-Nelson, Z., Tirumala, D., Soyer, H., Leibo, J. Z., Munos, R., Blundell, C., Kumaran, D., and Botvinick, M. Learning to reinforcement learn. arXiv preprint arXiv:1611.05763, 2016.
  • [32] Wilson, A. G., Hu, Z., Salakhutdinov, R., and Xing, E. P. Deep kernel learning. In Artificial Intelligence and Statistics, pp. 370–378, 2016.