# Representation Learning with Contrastive Predictive Coding

Representation Learning with Contrastive Predictive Coding

尽管监督学习在许多应用中取得了巨大进展,但无监督学习尚未得到如此广泛的采用,仍然是人工智能的重要和具有挑战性的努力。在这项工作中,我们提出了一种通用的无监督学习方法来从高维数据中提取有用的表示,我们称之为对比预测编码。

我们模型的关键见解是通过使用强大的自回归模型在潜空间中预测未来来学习这种表征。我们使用一个probabilistic contrastive loss ,诱导latent space捕捉对预测未来样本有最大作用的信息。

它还通过使用负抽样使模型具有可操作性。虽然大多数先前的工作都集中在评估某一特定模式的表征上,但我们证明了我们的方法能够学习有用的表征,在四个不同的领域取得强大的性能:语音、图像、文本和三维环境的强化学习。

1 Introduction

无监督学习还没有看到类似于有监督学习的突破:从原始观察中建立高层次的表征模型仍然难以实现。此外,理想的表征是什么并不总是很清楚,以及是否有可能在没有额外监督或专门针对特定数据模式的情况下学习这样的表征。

无监督学习最常见的策略之一是预测未来、缺失或情境信息。这种预测编码的思想[5,6]是用于数据压缩的信号处理中最古老的技术之一。在神经科学中,预测编码理论认为大脑在不同抽象水平上预测观察结果[7,8]。最近在无监督学习方面的研究成功地使用了这些思想,通过预测相邻的单词[9]来学习单词的表示。

对于图像,从灰度或image patches的相对位置预测颜色也被证明是有用的[10, 11]。我们假设这些方法是富有成效的,部分原因是我们预测相关值的背景往往有条件地依赖于相同的共享的高层次latent information。而通过将其作为一个预测问题,我们可以自动推断出这些对表征学习感兴趣的特征。

在本文中,我们提出以下建议:首先,我们将高维数据压缩到一个更紧凑的潜伏嵌入空间,在这个空间中,条件预测更容易建模。其次,我们在这个潜伏空间中使用强大的自回归模型来进行未来多个steps的预测。

最后,我们使用噪声对比估计[12]作为损失函数,其方法类似于在自然语言模型中学习单词嵌入的方法,允许整个模型端到端进行训练。我们将得到的模型——对比预测编码(CPC)应用于不同的数据模式、图像、语音、自然语言和强化学习,结果表明,相同的机制可以在每个领域学习有趣的高级信息,优于其他方法。

2 Contrastive Predicting Coding

我们从激励和给出我们方法背后的直觉开始这一部分。其次,我们介绍了对比预测编码(CPC)的体系结构。然后我们解释了基于噪声对比估计的损耗函数。最后,讨论了CPC的相关工作。

2.1 Motivation and Intuitions

我们的模型背后的主要直觉是学习编码(高维)信号的不同部分之间的基本共享信息的表征。同时,它摒弃了低层次的信息和更局部的噪音。在时间序列和高维建模中,使用下一步预测的方法利用了信号的局部平稳性。当进一步预测未来时,共享信息量变得更低,模型需要推断出更多的全局结构。这些跨越许多时间步骤的’慢速特征’[13]往往更有趣(例如,语音中的音素和语调,图像中的物体,或书籍中的故事线。)

预测高维数据的挑战之一是,均方误差和交叉熵等单模损失不是很有用,通常需要强大的条件生成模型,需要重建数据中的每个细节。但是这些模型的计算量很大,而且在对数据x中的复杂关系进行建模时浪费了能力,往往忽略了context c。

例如,图像可能包含数千比特的信息,而高层次的latent variables,如类别标签所包含的信息要少得多(10比特用于1,024个类别)。这表明,直接对p(x|c)进行建模对于提取x和c之间的共享信息来说可能不是最佳选择。

当预测未来信息时,我们将目标x(未来)和context c(现在)编码为一个紧凑的distributed vector representations(通过非线性学习映射),其方式是最大限度地保留原始信号x和c的互信息,定义如下

在这里插入图片描述

通过最大化编码表征之间的互信息(以输入信号之间的MI为界),我们提取输入latent variables的共同点。

2.2 Contrastive Predictive Coding

在这里插入图片描述

图1:对比预测编码概述,提出的表示学习方法。虽然这个图显示音频作为输入,但我们对图像、文本和强化学习使用相同的设置。

图1显示了Contrastive Predictive Coding models的结构。首先,一个非线性编码器 g e n c g_{enc} genc将输入的观察序列 x t x_t xt映射到一串latent representations z t = g e n c ( x t ) z_t = g_{enc}(x_t) zt=genc(xt),可能具有较低的时间分辨率。接下来,一个自回归模型 g a r g_{ar} gar总结了 latent space中的所有 z ≤ t z_{≤t} zt,并产生一个context latent representation c t = g a r ( z ≤ t ) c_t = g_{ar}(z_{≤t}) ct=gar(zt)

正如上一节所论证的,我们不直接用生成模型 p k ( x t + k ∣ c t ) p_k(x_{t+k}|c_t) pk(xt+kct)来预测未来的观测值 x t + k x_{t+k} xt+k。相反,我们建立了一个 密度比的模型(we model a density ratio),它保留了 x t + k 和 c t x_{t+k}和c_t xt+kct之间的互信息(公式1),具体如下(进一步的细节见下一小节)。

在这里插入图片描述

∝表示“与……成比例”(即与乘性常数成比例)。注意,density ratio f可以非归一化(不必积分为1)。尽管这里可以使用任何positive real score,但我们使用一个简单的log-bilinear model:

在这里插入图片描述

在我们的实验中,线性变换 W k T c t W^T_k c_t WkTct用于预测,对于不同的step k, W k W_k Wk不同。或者,可以使用非线性网络或递归神经网络。

通过使用density ratio f ( x t + k , c t ) f(x_{t+k}, c_t) f(xt+k,ct)和用编码器推断出 z t + k z_{t+k} zt+k,我们将模型从对高维分布 x t k x_{t_k} xtk的建模中解脱出来。虽然我们不能直接评估p(x)或p(x|c),但我们可以使用这些分布的样本,允许我们使用诸如噪声对比估计[12, 14, 15]和重要性抽样[16]等技术,这些技术是基于将目标值与随机抽样的负值相比较。

在所提出的模型中, z t 和 c t z_t和c_t ztct中的任何一个都可以作为下游任务的表示。如果过去的extra context是有用的,可以使用自回归模型的输出 c t c_t ct。其中一个例子是语音识别, z t z_t zt的receptive field可能不包含足够的信息来捕捉语音内容。

在其他情况下,如果不需要额外的背景, z t z_t zt可能反而更好。如果下游任务需要一种对整个序列的representation,例如图像分类,那么可以将来自zt或ct的representation集合到所有位置。(one can pool the representations from either z t z_t zt or c t c_t ct over all locations.)

最后,请注意,任何类型的编码器和自回归模型都可以用在所提出的框架中。为了简单起见,我们选择了标准的架构,如编码器用resnet块的strided convolutional层,自回归模型用GRU[17]。最近在自回归模型方面取得的更多进展,如masked convolutional architectures[18, 19]或self-attention networks[20],可以帮助进一步改善结果。

2.3 InfoNCE Loss and Mutual Information Estimation

编码器和自回归模型都被训练来共同优化基于NCE的损失,我们将其称为InfoNCE。给定 X = { x 1 , . . . x N } X=\{x_1, ... x_N \} X={ x1,...xN}的N个随机样本,包含来自 p ( x t + k ∣ c t ) p(x_{t+k}|c_t) p(xt+kct)的一个正样本和来自’proposal’ 分布 p ( x t + k ) p(x_{t+k}) p(xt+k)的N-1个负样本,我们优化:

在这里插入图片描述

优化这一损失将导致 f k ( x t + k , c t ) f_k(x_{t+k}, c_t) fk(xt+k,ct)估计公式2中的density ratio。这可以如下所示。

方程4中的损失是对正样本进行正确分类的分类交叉熵, f k Σ X f k \frac{f_k}{\Sigma_Xf_k} ΣXfkfk是模型的预测值。让我们把这个损失的最佳概率写成 p ( d = i ∣ X , c t ) p(d = i|X, c_t) p(d=iX,ct),[d = i]是样本 x i x_i xi是 "positive"样本的指标。样本 x i x_i xi是从条件分布 p ( x t + k ∣ c t ) p(x_{t+k}|c_t) p(xt+kct)而不是建议分布 p ( x t + k ) p(x_{t+k}) p(xt+k)中抽取的概率可以推导为:

在这里插入图片描述

可以看出,式4中 f ( x t + k , c t ) f(x_{t+k}, c_t) f(xt+k,ct)的最优值与 p ( x t + k ∣ c t ) p ( x t + k ) \frac{p(x_{t+k}|c_t)}{p(x_{t+k})} p(xt+k)p(xt+kct)成正比,且与负样本数N−1的选择无关。

虽然训练不需要,但我们可以对变量ct与 x t + k x_{t+k} xt+k之间的互信息进行如下计算:

在这里插入图片描述

随着N变大,它变得更紧。还可以观察到,最小化InfoNCE损失 L N \mathcal L_N LN会使互信息的下界最大化。更多细节见附录。

https://arxiv.org/pdf/1807.03748.pdf

Guess you like

Origin blog.csdn.net/weixin_37958272/article/details/121331955