【对比学习】【论文翻译】Contrastive Multiview Coding

news2024/11/20 16:30:58

在这里插入图片描述
Contrastive Multiview Coding
ECCV 2020

0.论文摘要和作者信息

摘要

人类通过许多感官通道观察世界,例如,由左眼观察的长波长光通道,或由右耳听到的高频振动通道。每个视图都是嘈杂和不完整的,但重要的因素,如物理、几何和语义,往往在所有视图之间共享(例如,可以看到、听到和感觉到一只“狗”)。我们研究了一个经典的假设,即一个强大的表示是一个模型视图不变的因素。我们在多视图对比学习的框架下研究这一假设,在多视图对比学习的框架下,我们学习一种旨在最大化同一场景的不同视图之间的互信息的表示,但在其他方面是紧凑的。我们的方法可以扩展到任意数量的视图,并且是视图不可知的。我们分析了使其工作的方法的关键属性,发现对比损失优于基于交叉视图预测的流行替代方案,并且我们从更多的视图中学习,结果表示越好地捕捉潜在的场景语义。我们的方法在图像和视频无监督学习基准上实现了最先进的结果。

1.研究背景

编码理论中的一个基本思想是学习压缩的表示,但仍然可以用来重建原始数据。这种想法以自动编码器[65]和生成模型[40,24]的形式出现在当代表示学习中,它们试图尽可能无损地表示数据点或分布。然而,无损表示可能不是我们真正想要的,而且实现起来确实很简单——原始数据本身就是无损表示。相反,我们可能更喜欢保留“好的”信息(信号),扔掉其余的(噪音)。我们如何识别什么信息是信号,什么是噪声?

对于自动编码器或最大似然生成模型,位就是位。没有一个比另一个更好。我们在本文中的推测是,有些比特实际上比其他比特更好。一些比特编码重要的属性,如语义、物理和几何,而另一些比特编码我们可能认为不太重要的属性,如附带照明相机传感器中的条件或热噪声

我们重温了经典的假设,即好的部分是在世界的多种观点之间共享的,例如在视觉、声音和触觉等多种感官形态之间[70]。在这种观点下,“狗的存在”是好的信息,因为狗可以被看到、听到和感觉到,但“相机姿势”是坏的信息,因为相机姿势对成像场景的声学和触觉属性影响很小或没有影响。这个假设对应于一种归纳偏见,即你看待一个场景的方式不应该影响它的语义。认知科学和神经科学文献中有重要证据表明,这种视图不变的表征是由大脑编码的(例如[70,15,32])。在本文中,我们专门研究了不同视图是不同图像通道的设置,如亮度、色度、深度和光流。我们利用的基本监督信号是在自然数据中,同一场景的多个视图的共现。例如,我们将Lab颜色空间中的图像视为场景的两个视图(L视图和ab视图)共现的成对示例:{L,ab}。

因此,我们的目标是学习能够捕捉在多个感觉通道之间共享的信息,但在其他方面是紧凑的(即,丢弃通道特定的干扰因素)。为此,我们采用对比学习,其中我们学习特征嵌入,使得同一场景的视图映射到附近的点(用表示空间中的欧几里德距离测量),而不同场景的视图映射到相距较远的点。特别是,我们采用了最近提出的对比预测编码(CPC)[57]方法,只是我们简化了它——删除了递归网络——并对其进行了推广——展示了如何将其应用于图像通道的任意集合,而不仅仅是时间或空间预测。关于CPC,我们将我们的方法称为对比多视图编码(CMC),尽管我们注意到我们的公式可以说同样与实例区分相关[79]。我们公式中的对比目标,如CPC和实例区分,可以理解为试图最大化数据的多个视图的表示之间的互信息。

我们有意只对“好的比特”进行松散的定义,并将其定义视为一个经验问题。最终,证据就在布丁里:我们认为一个表示是好的,如果它能使人类感兴趣的任务的后续问题解决变得容易。例如,图像的一个有用的表示可能是一个特征空间,在这个空间中很容易学会识别对象。因此,我们通过测试学习到的表征是否能很好地转移到标准的语义识别任务来评估我们的方法。在几个基准任务上,与其他用于自我监督表征学习的方法相比,我们的方法取得了与现有技术相竞争的结果。我们还发现,表示的质量随着用于训练的视图数量的增加而提高。最后,我们将多视图学习的对比公式与最近流行的交叉视图预测方法进行了比较,发现在面对面的比较中,对比方法学习了更强的表示。

我们建立的核心思想:对比学习、互信息最大化和深度表征学习,并不新鲜,已经在表征和多视图学习的文献中探索了几十年[64,45,80,3]。我们的主要贡献是建立一个框架,将这些想法扩展到任何数量的视图,并在这个框架中实证研究导致成功的因素。第2节对相关文献进行了综述;并且图1给出了我们的框架的图示概览。我们的主要贡献是:

在这里插入图片描述
图1:给定一组感官视图,通过在嵌入空间中将同一场景的视图组合在一起,同时将不同场景的视图分开,来学习深度表示。在这里,我们展示了一个4视图数据集(NYU RGBD[53])及其学习表示的例子。每个视图的编码可以被连接以形成场景的完整表示。

•我们将对比学习应用于多视图设置,试图最大化同一场景的不同视图之间的相互信息(特别是不同图像通道之间的相互信息)。
•我们扩展了框架,从两个以上的视图中学习,并表明学习到的表示的质量随着视图数量的增加而提高。我们的作品第一次明确展示了多种视图对表现质量的好处。
•我们进行对照实验,以测量互信息估计对表征质量的影响。我们的实验表明,互信息和视图之间的关系是微妙的。
•我们的表述可与流行基准的最先进技术相媲美。
•我们证明对比目标优于交叉视图预测。

2.相关工作

无监督表示学习是关于学习数据的转换,使随后的问题解决更容易[7]。这个领域有着悠久的历史,从具有成熟算法的经典方法开始,如主成分分析(PCA[37])和独立成分分析(ICA[33])。这些方法倾向于学习关注数据中低级变化的表示,从对象识别等下游任务的角度来看,这不是很有用。

更适合这些任务的表示已经使用深度神经网络学习,从开创性的技术开始,如玻尔兹曼机[71,65],自动编码器[30],变分自动编码器[40],生成对抗网络[24]和自回归模型[56]。还有许多其他的作品,综述见[7]。在“自我监督”学习的保护伞下收集了一个强大的无监督表征模型家族[64,35,85,84,78,60,83]。在这些模型中,模型的输入X被转换成输出 X ^ \hat{X} X^,它应该接近另一个信号Y(通常在欧几里得空间中),而另一个信号Y本身以某种有意义的方式与X相关。这种X/Y对的例子是:图像的亮度和色度颜色通道[85],来自单个图像的补丁[57],诸如视觉和声音的模态[58]或视频的帧[78]。显然,这样的例子在世界上数不胜数,并为我们提供了几乎无限量的训练数据:这是这种范式的吸引力之一。时间对比网络[68]使用三重损失框架从由不同摄像机拍摄的同一场景的对齐视频序列中学习表示。与自我监督学习密切相关的是多视图学习的思想,这是一个通用术语,涉及许多不同的方法,如共同训练[8],多核学习[13]和度量学习[6,87];有关综述,请参见[80,45]。几乎所有现有的作品都处理过一两种视图,如视频或图像/声音。然而,在许多情况下,更多的视图可用于为任何表示提供训练信号。

在上述许多方法中,用于训练基于深度学习的表示的目标函数或者是基于重建的损失函数,例如不同范数中的欧几里德损失,例如[34],除了表示之外还学习损失的对抗性损失函数[24],或者是利用多个视图的共现的对比损失,例如[26,81,72,25,31,57,3,29,36]。

一些与我们自己的工作最相似(并对我们有启发)的先前工作是对比预测编码(CPC)[57]、Deep InfoMax[31]和实例辨别[79]。这些方法和我们的方法一样,通过对比场景的一致和不一致表示来学习表示。CPC从两个角度学习——过去和未来,适用于空间或时间上的顺序数据。Deep Infomax[31]认为这两个视图是神经网络的输入和输出。实例辨别学习匹配同一图像的两个子裁剪。CPC和Deep InfoMax最近分别在[29]和[4]中进行了扩展。这些方法都有相似的数学目标,但视图的定义不同。我们的方法在以下方面与这些工作不同:我们将目标扩展到两个以上视图的情况,并且我们探索了一组不同的视图定义、架构和应用程序设置。此外,我们对这种表征学习范式进行了独特的实证研究。

对比学习的思想也开始传播到各种其他领域的许多其他任务中[74,86,61,76,48,38,75]。

3.方法

让V1和V2代表一个数据集的两个视图。例如,V1可能是特定图像的亮度,V2可能是色度。我们将预测学习设置定义为通过潜在变量z从v1到v2的深度非线性变换,如图2所示。

在这里插入图片描述

图2:预测学习与对比学习。交叉视图预测(Top)学习从一个视图预测另一个视图的潜在表示,在输出空间中测量损失。常见的预测损失,如L1和L2范数,是非结构化的,因为它们独立地惩罚每个输出维度,可能导致表示不能捕获视图之间的所有共享信息。在对比学习中(下图),通过对比一致和不一致的观点来学习表征,在表征空间中测量损失。红色虚线表示损失函数的应用位置。

形式上, z = f ( v 1 ) z = f(v_1) z=f(v1) v ^ 2 = g ( z ) \hat{v}_2 = g(z) v^2=g(z),其中f和g分别代表编码器和解码器,而 v ^ 2 \hat{v}_2 v^2是给定 v 1 v_1 v1 v 2 v_2 v2的预测值。然后使用目标函数训练编码器和解码器模型的参数,该目标函数试图使 v ^ 2 \hat{v}_2 v^2“接近” v 2 v_2 v2。这种目标的简单例子包括 L 1 \mathcal{L}_1 L1 L 2 \mathcal{L}_2 L2损失函数。注意,这些目标假定在给定 v 1 v_1 v1 v 2 v_2 v2的每个像素或元素之间是独立的,例如, p ( v 2 ∣ v 1 ) = ∏ i p ( v 2 i ∣ v 1 ) p(v_2|v_1) = \prod_ip(v_{2i}|v_1) p(v2v1)=ip(v2iv1),从而降低了它们对相关性或复杂结构建模的能力。预测方法已广泛用于表征学习,例如,彩色化[84,85]和从视觉预测声音[58]。

3.2两视图下的对比学习

对比学习背后的想法是学习从两个不同分布中分离(对比)样本的嵌入。给定由 { v 1 i , v 2 i } i = 1 N \{v^i_1, v^i_2\}^N_{i=1} {v1i,v2i}i=1N样本集合组成的 V 1 V_1 V1 V 2 V_2 V2数据集,我们考虑对比全等和不全等对,即来自联合分布 x ∼ p ( v 1 , v 2 ) x ∼ p(v_1, v_2) xp(v1,v2) x = { v 1 i , v 2 i } x = \{v^i_1, v^i_2\} x={v1i,v2i}的样本,我们称之为正,而来自边际乘积 y ∼ p ( v 1 ) p ( v 2 ) y ∼ p(v_1)p(v_2) yp(v1)p(v2) y = { v 1 j , v 2 j } y = \{v^j_1, v^j_2\} y={v1j,v2j}的样本,我们称之为负。

我们学习一个“critic”(一个判别函数) h θ ( ⋅ ) h_θ(·) hθ(),它被训练成对正对达到高值,对负对达到低值。类似于最近的对比学习设置[57,25,51],我们训练该函数从包含k个负样本的集合 S = { x , y 1 , y 2 , . . . , y k } S = \{x, y_1, y_2, ..., y_k\} S={x,y1,y2,...,yk}中正确地选择单个正样本x:

在这里插入图片描述
为了构造S,我们只需固定一个视图,并从另一个视图枚举正样本和负样本,这样我们就可以将目标重写为:

在这里插入图片描述
其中k是给定样本 v 1 1 v_1^1 v11的负样本数 v 2 j v^j_2 v2j。实际上,k可能非常大(例如,ImageNet中的120万),因此直接最小化等式2是不可行的。在第3.4节中,我们展示了两个允许易处理计算的近似值。

我们将critich h θ ( ⋅ ) h_θ(·) hθ()实现为一个神经网络。为了提取 v 1 v_1 v1 v 2 v_2 v2的紧致潜在表示,我们使用了两个编码器 f θ 1 ( ⋅ ) f_{θ_1}(·) fθ1() f θ 2 ( ⋅ ) f_{θ_2}(·) fθ2(),分别具有参数 θ 1 θ_1 θ1 θ 2 θ_2 θ2。潜在的表征被提取为 z 1 = f θ 1 ( v 1 ) z_1 = f_{θ_1}(v_1) z1=fθ1(v1) z 2 = f θ 2 ( v 2 ) z_2 = f_{θ_2}(v_2) z2=fθ2(v2)。我们计算它们的余弦相似度作为分数,并通过超参数 τ τ τ调整其动态范围:

在这里插入图片描述

等式2中的损失 L c o n t r a s t V 1 , V 2 \mathcal{L}^{V_1,V_2}_{contrast} LcontrastV1,V2将视图 V 1 V_1 V1视为锚点,并在 V 2 V_2 V2上枚举。对称地,我们可以通过锚定 V 2 V_2 V2得到 L c o n t r a s t V 2 , V 1 \mathcal{L}^{V_2,V_1}_{contrast} LcontrastV2,V1。我们把它们加起来作为我们的双视图损失:

在这里插入图片描述
在对比学习阶段之后,我们使用表示 z 1 z_1 z1 z 2 z_2 z2,或者两者的连接, [ z 1 , z 2 ] [z_1, z_2] [z1,z2],这取决于我们的范式。该过程在图1中可视化。

在这里插入图片描述
图1:给定一组感官视图,通过在嵌入空间中将同一场景的视图组合在一起,同时将不同场景的视图分开,来学习深度表示。在这里,我们展示了一个4视图数据集(NYU RGBD[53])及其学习表示的例子。每个视图的编码可以被连接以形成场景的完整表示。

与互信息相联系,最优critic h θ ∗ h^∗_θ hθ与联合分布 p ( z 1 , z 2 ) p(z_1, z_2) p(z1,z2)和边际 p ( z 1 ) p ( z 2 ) p(z_1)p(z_2) p(z1)p(z2)的乘积之间的密度比成正比(补充材料中提供了证明):

在这里插入图片描述这个量是等式2中的逐点互信息及其期望,产生与互信息相关的估计量。[57,62]给出了一个正式的证明,我们在补充中对其进行了概括,表明:

在这里插入图片描述

其中,如上所述,k是样本集S中负样本的数量。因此,最小化目标 L \mathcal{L} L最大化了互信息 I ( z i ; z j ) I(z_i; z_j) I(zi;zj),其在上面由 I ( v i ; v j ) I(v_i; v_j) I(vi;vj)通过数据处理不等式。对k的依赖也表明使用更多的负样本可以导致改进的表示;我们证明情况确实如此(见附录)。我们注意到最近的工作[47]表明等式6中的界限可以很弱;寻找更好的互信息估计器是一个重要的公开问题。

3.3 多视图对比学习

我们给出了等式2的更一般的公式,它可以处理任意数量的视图。我们称之为“核心视图”和“全图”范例,它们在效率和有效性之间提供了不同的权衡。这些公式在图3中可视化。

在这里插入图片描述
图3:与核心视图和完整图形范例相关联的图形模型和信息图[1],对于4个视图的情况,总共给出了6个学习目标。区域内的数字显示了总损失对每个信息分区的“权重”(即该分区对6个目标中的多少有贡献)。没有数字的区域对应于0权重。例如,在完整图的情况下,所有4个视图之间的互信息在所有6个目标中被考虑,因此用数字6标记。

假设我们有一个M视图的集合 V 1 , . . . , V M V_1, . . . , V_M V1,...,VM。“核心视图”公式将我们想要优化的一个视图分开,比如说 V 1 V_1 V1,并通过优化一组成对目标的总和,在 V 1 V_1 V1和其他视图 V j , j > 1 V_j, j > 1 Vj,j>1之间构建成对表示:

在这里插入图片描述
第二个更一般的公式是“全图”,其中我们考虑所有对 ( i , j ) (i, j) (i,j) i ≠ j i \neq j i=j,并在所有对中建立 ( n 2 ) \left( \begin{array}{c} n\\2 \end{array} \right) (n2)个关系。通过涉及所有对,我们优化的目标函数是:

在这里插入图片描述
这两种表述的效果都是,信息的优先级与共享该信息的视图数量成比例。这可以在图3中可视化的信息图中看到。图中每个分区中的数字表示该分区贡献了多少成对目标 L ( V i , V j ) \mathcal{L}(V_i, V_j) L(Vi,Vj)。在核心视图和全图目标下,所有视图共有的因素(如“狗的存在”)将优于影响较少视图的因素(如“深度传感器噪声”)。

全图公式中二元评分函数的计算成本在视图数量上是组合的。然而,从图3可以清楚地看出,这使得完整的图形公式能够捕获不同视图之间的更多信息,这对于下游任务可能是有用的。例如,在核心视图范例中, V 2 V_2 V2 V 3 V_3 V3 V 2 V_2 V2 V 4 V_4 V4之间的互信息被完全忽略(如信息图中的0计数所示)。全图公式的另一个好处是,它可以以自然的方式处理缺失的信息(例如,缺失的视图)。

3.4 实现对比损失

在方程2中使用 L c o n t r a s t V 1 , V 2 \mathcal{L}^{V_1,V_2}_{contrast} LcontrastV1,V2的更好的表示是通过使用许多负样本来学习的。在极端情况下,我们将每个数据样本都包含在给定数据集的分母中。然而,对于ImageNet这样的大型数据集来说,计算完整的softmax损失非常昂贵。近似这种完整的softmax分布以及减轻计算负荷的一种方法是使用噪声对比估计[25,79](见补充)。我们在这里也采用的另一种解决方案是随机采样m个负样本,并进行简单的(m+1)路softmax分类。[4,29,27]中也使用了这种策略,并且可以追溯到[72]。

记忆银行。根据[79],我们维护一个记忆库来存储每个训练样本的潜在特征。因此,我们可以有效地从内存缓冲区中检索m个负样本,以与每个正样本配对,而无需重新计算它们的特征。用动态计算的特征动态地更新存储器库。内存库的好处是允许与更多的负对进行对比,代价是稍微陈旧的特征。

4.实验

在[84]之后,我们通过在不同层之上训练1000路线性分类器来评估学习表示的任务泛化。这是一个标准基准,已被文献中的许多论文采用。

4.1.1 设置

给定RGB图像的数据集,我们将它们转换到Lab图像颜色空间,并将每个图像分成L和ab通道,正如最初在SplitBrain autoencoders[85]中提出的那样。在对比学习过程中,来自同一图像的L和ab被视为正对,来自其他随机选择的图像的ab通道被视为负对(对于给定的L)。每个分割代表原始图像的视图,并通过单独的编码器传递。与SplitBrain一样,我们通过将给定的深度网络(如AlexNet[43])平均分割成跨信道维度的子网络来设计这两个编码器。通过逐层连接来自这两个编码器的表示,我们实现了输入图像的最终表示。如先前文献[57,31,3,87,79]所提出的,通过冻结编码器的权重并在每层顶部训练线性分类器来评估这种表示的质量。

4.1.2 实现

除非另有说明,我们使用PyTorch[59]默认数据扩充。根据[79],我们将温度 τ τ τ设置为0.07,并使用动量0.5进行内存更新。我们用了16384张负样本。补充材料提供了关于超参数设置的更多细节。

4.1.3 CMC with AlexNet

由于许多以前的无监督方法是在ImageNet[16,42,17,84,54,18,85,55,22,11,83]上用AlexNet[43]评估的,我们也包括了使用该网络的CMC的结果。由于篇幅有限,我们在补充材料中介绍了这一比较。

4.1.4 CMC with ResNets

我们用ResNets等大型网络验证了CMC的有效性[28]。我们在两个色彩空间 { L , a b } \{L,ab\} {Lab} { Y , D b D r } \{Y,DbDr\} {YDbDr}中进行了从亮度和色度视图中学习的实验(参见第4.4节以验证此选择),并且我们为每个视图改变ResNet编码器的宽度。我们使用全局池化层后的特征来训练线性分类器,结果如表1所示。 { L , a b } \{L,ab\} {Lab}对于每个视图使用ResNet50x2实现了68.3%的top-1单裁剪准确度,切换到 { Y , D b D r } \{Y,DbDr\} {YDbDr}进一步带来了0.7%的改进。最重要的是,使用RandAugment[14]加强数据扩充会产生比其他最先进的方法更好或相当的结果[41,79,87,27,49,19,29,4]。

在这里插入图片描述
表1 ImageNet上使用监督逻辑回归分类器的Top-1 / Top-5 单一crop分类准确度(%)。我们使用具有不同宽度的ResNet50作为两个视图(例如L和ab)的编码器来评估CMC。“RA”代表随机增加[14]。

4.2 CMC on videos

我们通过从双流假说[67,23]中汲取洞察力,将CMC应用于视频,该假说假设人类视觉皮层由两个不同的处理流组成:执行物体识别的腹侧流和处理运动的背侧流。在我们的公式中,给定一个图像 i t i_t it是以时间t为中心的帧,腹侧流将其与相邻帧 i t + k i_{t+k} it+k相关联,而背侧流将其连接到以t为中心的光流 f t f_t ft。因此,我们从两个模态中提取 i t i_t it i t + k i_{t+k} it+k f t f_t ft作为一个视频的三个视图;对于光流,我们使用TV-L1算法[82]。在腹侧流 ( i t , i t + k ) (i_t,i_{t+k}) itit+k和背侧流 ( i t , f t ) (i_t, f_t) (it,ft)中建立了两个独立的对比学习目标。对于腹侧流,从另一个随机选择的视频中选择其负样本作为随机帧;对于背侧流,它的负样本被选择为对应于另一个随机选择的视频中的随机帧的流。

4.2.1 预训练

我们在UCF101[73]上训练CMC,并使用两个CaffeNets[43]分别从图像和光流中提取特征。在我们的实现中, f t f_t ft代表以t为中心的10个连续流帧。我们使用128的批量大小,并将每个正样本对与127个负样本对进行对比。

4.2.2 动作识别

我们将学习的表征应用于动作识别的任务。[69]中的空间网络是用于评估动作识别任务的预训练RGB网络的成熟范例。我们遵循同样的精神,在UCF101和HMDB51数据集上评估我们的RGB CaffeNet的可转移性。我们使用来自预训练的RGB CaffeNet的权重将动作识别CaffeNet初始化到conv5。三次分割的平均精度如表2所示。在预训练期间统一腹侧和背侧流比仅使用单个流产生更高的下游识别准确性。将数据视图的数量从2个增加到3个(使用两个流而不是一个流)为UCF-101提供了动力。

在这里插入图片描述
表2:评估任务可转移性的UCF-101和评估任务和数据集可转移性的HMDB-51的测试准确性(%)。大多数方法要么使用单一的RGB视图,要么使用额外的光流视图,而VGAN将声音作为第二视图。*表示不同的网络体系结构。

4.3 将CMC扩展到更多视图

我们进一步将我们的CMC学习框架扩展到多视图场景。我们在由1449幅标记图像组成的NYU-Depth-V2[53]数据集上进行实验。我们专注于更深入地了解CMC的行为和有效性。我们考虑的视图有:亮度(L通道)、色度(ab通道)、深度、表面法线[20]和语义标签。

设置。为了从每个视图中提取特征,我们使用具有5个卷积层和2个完全连接层的神经网络。由于数据集的规模相对较小,我们采用基于子图块的对比目标(见附录)来增加负样本的数量。从原始图像中随机裁剪尺寸为128 × 128的图块,用于对比学习(从尺寸为480 × 640的图像中)。对于下游任务,我们丢弃全连接层,并使用卷积层作为表示进行评估。

4.3.1 表示质量是否随着视图数量的增加而提高?

为了测量学习表征的质量,我们考虑从L的表征预测语义标签的任务。我们遵循核心视图范式,并使用L作为核心视图,从而通过将不同视图与L进行对比来学习一组表示。UNet风格的架构[63]用于执行分割任务。对比训练是在上述相当于UNet编码器的架构上进行的。在对比训练完成后,我们从L编码器(它们是等价的架构)初始化UNet的编码器权重,并保持它们冻结。在这个微调阶段,只有解码器被训练。

由于我们使用基于patch的对比损失,在1视图设置的情况下,CMC与DIM重合[31]。2-4个视图案例将L与ab进行对比,然后依次添加深度和表面法线。如图4所示,通过所有类别的平均IoU和像素精度来测量语义标记结果。我们看到,随着新视图的添加,性能稳步提高。我们测试了添加视图的不同顺序,它们都遵循相似的模式。

在这里插入图片描述
图4:我们显示了NYU-Depth-V2数据集的并集交集(IoU)(左)和像素精度(右),因为CMC使用从1到4的越来越多的视图进行训练。随着更多视图的添加,这两个指标都在稳步增长。视图为(按包含顺序):L、ab、深度和表面法线。

我们还将CMC与两个基线进行了比较。首先,我们随机初始化并冻结编码器,我们称之为随机基线;它作为质量的下限,因为表示只是一个随机投影。而不是冻结随机初始化的编码器,我们可以与解码器一起训练它。这个端到端监督基线作为上限。结果如表3所示,它显示了我们的CMC生成了高质量的特征图,即使它不知道下游的任务。

在这里插入图片描述
表3:从L通道表示预测语义标签的任务的结果,L通道表示是使用基于patch的对比损失和所有4个视图学习的。我们将CMC与随机基线和监督基线进行比较,随机基线和监督基线分别作为下限和上限。核心视图范例参考图3(a)和图3(b)的全视图。

4.3.2 CMC是否在改善所有视图?

在多个视图或模态上操作的理想的无监督表示学习算法应该提高所有视图的表示质量。因此,我们研究了L通道以外的CMC框架。为了公平地对待所有视图,我们按照全图范式训练这些编码器,其中每个视图都与所有其他视图进行对比。

我们通过仅从v的表示预测语义标签来评估每个视图v的表示,其中v是L、ab、深度或表面法线。这使用了全图范例。与上一节一样,我们将CMC与随机基线和监督基线进行比较。如表4所示,CMC使用全图学习的表示的性能显著优于随机投影表示的性能,并且接近完全监督表示的性能。此外,全图表示提供了一个很好的表示为所有视图学习,显示跨视图捕获不同类型的互信息的重要性。

在这里插入图片描述

表4:使用单视图v预测语义标签的任务性能,其中v可以是L、ab、深度或表面法线。对于所研究的所有视图,我们的CMC框架将无监督表示的质量提高到有监督表示的质量。这使用图3(b)的全图范例。

4.3.3 预测学习与对比学习

虽然第4.1节中的实验表明,在实验室色彩空间的背景下,对比学习优于预测学习[85],但尚不清楚这种优势是否是由于任务本身的自然归纳偏差。为了进一步理解这一点,我们超越了色度(ab),并试图在几何或语义标签存在的情况下回答这个问题。

我们考虑NYU深度数据集上的三个视图对:(1)L和深度,(2)L和表面法线,以及(3)L和分割图。对于它们中的每一个,我们为L训练两个相同的编码器,一个使用对比学习,另一个使用预测学习。然后,我们通过在STL-10数据集上的这些编码器上训练线性分类器来评估表示质量。

比较结果如表5所示,它表明在任务和数据集都未知的情况下,对比学习始终优于预测学习。我们还包括类似于前几节的“随机”和“监督”基线。虽然在无监督阶段,我们只使用来自与目标数据集STL-10大不相同的数据集的1.3 k图像,目标识别精度接近监督方法,监督方法使用直接在STL-10上训练的端到端深度网络。

给定数据的两个视图 V 1 V_1 V1 V 2 V_2 V2,预测学习方法近似建模p(v2v1)。此外,通常用于预测学习的损失,如逐像素重建损失,通常会对建模施加独立性假设: p ( v 2 ∣ v 1 ) = ∏ i p ( v 2 i ∣ v 1 ) p(v_2|v_1) = \prod_ip(v_{2i}|v_1) p(v2v1)=ip(v2iv1)。另一方面,通过构建的对比学习方法并不假设跨 v 2 v_2 v2维度的条件独立性。此外,视图之间的随机抖动和裁剪的使用允许对比学习方法除了跨视图的对比之外,还受益于空间共现(空间中的对比)。我们推测这是对比学习方法优于预测学习的两个原因。

4.4 互信息如何影响表示质量?

给定一组固定的视图,CMC的目标是最大化这些视图的表示之间的互信息。我们已经发现,以这种方式最大化信息确实会产生强表征,但推断信息最大化(infomax)是良好表征学习的关键是不正确的。事实上,本文提出了恰恰相反的观点:交叉视图表示学习是有效的,因为它导致了一种信息最小化,丢弃了视图之间不共享的讨厌因素。

解决这个明显困境的方法是,我们希望在我们的表征中最大化“好”信息——信号,同时最小化“坏”信息——噪音。CMC背后的想法是,这可以通过在共享信号但具有独立噪声的两个视图上进行infomax学习来实现。这暗示了一个“金发姑娘原则”[39]:一个好的观点集合是共享一些信息但不太多的观点。在这里,我们在两个领域测试这个假设:学习形成两种视图的不同色彩空间的图像的表示;以及学习从图像中提取的由变化的空间距离分开的成对斑块的表示。

在patch实验中,我们从同一幅图像中随机裁剪两个大小为64x64的RGB patch,并将这些patch用作两个视图。它们的相对位置是固定的。也就是说,这两个patch总是从位置(x,y)和(x+d,y+d)开始,随机采样(x,y)。当改变距离d时,我们从64开始以避免重叠。存在一种可能的偏差,即对于相对较小尺寸(例如,512x512)的图像,大的d(例如,384)将总是围绕边界推动这两个patch。为了最小化这种偏差,我们使用来自DIV2K[2]数据集的高分辨率图像(例如2k)。

图5示出了这些实验的结果。左图显示了在不同色彩空间上学习表示的结果(将每个色彩空间分成两个视图,如(L,ab),(R,GB)等)。然后,我们使用MINE估计器[5]来估计视图之间的互信息。我们通过在STL-10数据集上对学习的表示训练线性分类器来测量表示质量[12]。这些图清楚地表明,使用具有最小互信息的色彩空间给出了最好的下游精度(对于该图中的异常HSV,我们推测表示质量受到H的周期性的损害。).另一方面,对于在彼此不同偏移的面片之间学习的表示,故事更加微妙(图5,右)。这里我们看到MI太少或太多的视图表现更差;中间存在一个最佳代表点。存在这样一个甜蜜点应该是预期。如果两个视图不共享任何信息,那么原则上,CMC就没有学习任何东西的动力。如果两个视图共享它们的所有信息,就不会丢弃任何麻烦,我们会回到类似于自动编码器或生成模型的东西,它只是试图表示多视图数据中的所有位。

这些实验表明,互信息与表征质量之间的关系是有意义的,但不是直接的。选择共享相关信号的最佳视图可能是未来研究的一个富有成效的方向。

5.总结

我们提出了一个对比学习框架,它能够从数据集的多个视图中学习无监督的表示。互信息最大化的原则使得强大的表示的学习成为可能。大量实证结果表明,与预测学习相比,我们的框架表现良好,并与视图数量成比例。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1636460.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【linux-1-Ubuntu常用命令-vim编辑器-Vscode链接ubuntu远程开发】

目录 1. 安装虚拟机Vmare和在虚拟机上安装Ubuntu系统:2. 常用的Ubuntu常识和常用命令2.1 文件系统结构2.2 常用命令2.3 vim编辑器 3. Ubuntu能联网但是ping不通电脑:4. Windows上安装VScode链接ubuntu系统,进行远程开发: 1. 安装虚…

Meltdown 以及Linux KPTI技术简介

文章目录 前言一、Introduction二、 Background2.1 Out-of-order execution2.2 Address Spaces2.3 Cache Attacks 三、A Toy Example四、Building Blocks of the Attack4.1 Executing Transient Instructions4.2 Building a Covert Channel 五、Meltdown5.1 Attack Description…

如何使用Spring Boot导出数据到Excel表格

在开发应用程序时,经常会遇到将数据导出到Excel表格的需求。Spring Boot提供了简单而有效的方法来实现这个功能。本文将介绍如何使用Spring Boot和Apache POI库将数据导出到Excel表格,并提供一个示例代码来演示该过程。 1. 准备工作 首先,确…

ARM学习(27)链接库依赖学习(二)dlopen failed:library xxxx.so

笔者继续学习一下链接的依赖库。 1、起因 Android下面需要需要一个日志解码库,所以笔者就编译了一个parse.so来进行解码, 编译器:Clang,基于llvm后端的编译器平台:交叉编译,linux -> aarch64 linux An…

es环境安装及php对接使用

Elasticsearch Elasticsearch 是一个分布式、高扩展、高实时的搜索与数据分析引擎。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。Elasticsearch是用Java语言开发的,并作为Apache许可条款下的开放源码发布,是一种流行的…

【LeetCode】拓扑排序——课程表 I II

拓扑排序&#xff1a; AOV网&#xff1a;若用DAG图&#xff08;有向无环图&#xff09;表示一个工程&#xff0c;其顶点表示活动&#xff0c;用有向边<Vi, Vj>表示活动Vi必须先于活动Vj进行的这样一种关系&#xff0c;则将这种有向图称为顶点表示活动的网络&#xff0c;…

餐后血糖波动?学会在米饭里加两物

米饭里加两物&#xff0c;帮你平稳餐后血糖&#xff0c;餐后血糖稳稳的&#xff0c;别让你碗里的米饭太单调&#xff0c;搭着吃对血糖好。今天呢我教大家一招&#xff0c;在蒸米饭的时候&#xff0c;加上两种食材&#xff0c;能够改善餐后血糖。 第一就是在煮米饭的时候加点糙米…

C++多态(全)

多态 概念 调用函数的多种形态&#xff0c; 多态构成条件 1&#xff09;父子类完成虚函数的重写&#xff08;三同&#xff1a;函数名&#xff0c;参数&#xff0c;返回值相同&#xff09; 2&#xff09;父类的指针或者引用调用虚函数 虚函数 被virtual修饰的类成员函数 …

Systemback Ubuntu14.04 制作自定义系统ISO镜像

工作需要&#xff0c;要基于ubuntu自定义一些编译环境并将自己配置好的ubuntu做成镜像。 硬件准备 ​ 为保证能够顺利完成系统iso镜像的制作与系统还原&#xff0c;推荐准备一个较大容量的U盘或者移动固态硬盘&#xff0c;同时确保自己的Ubuntu系统还有比较大的可用空间。 1 S…

Maven入门:1.简介与环境搭建

一.简介与环境搭建 1.Maven&#xff1a;用于自动化构建项目&#xff08;按照企业主流模板构建完善的项目结构&#xff09;和管理项目依赖&#xff08;依赖就是项目的jar包&#xff0c;通过配置的方式进行添加和管理&#xff0c;自动下载和导入&#xff09;的工具。即更加方便构…

监视器和显示器的区别,普通硬盘和监控硬盘的区别

监视器与显示器的区别&#xff0c;你真的知道吗&#xff1f; 中小型视频监控系统中&#xff0c;显示系统是最能展现效果的一个重要环节&#xff0c;显示系统的优劣将直接影响视频监控系统的用户体验满意度。 中小型视频监控系统中&#xff0c;显示系统是最能展现效果的一个重要…

CSS 伪类、伪元素的应用实例:电池充电、高能进度条

一、目的 本文通过 CSS 伪类、伪元素&#xff0c;结合动画 animation 和 Vue 动态样式属性&#xff08;通过 CSS 变量&#xff09;的写法&#xff0c;来实现电池充电、高能进度条的效果&#xff0c;如下图所示。 二、基础知识 1、CSS 伪类、伪元素 简单概括成以下 4 点&#x…

JavaScript转换和校验数字

本节我们使用的案例还是继续之前的银行家应用程序&#xff0c;只不过我们呢增加了两个账号&#xff0c;代码如下&#xff1a; const account1 {owner: Jonas Schmedtmann,movements: [200, 455.23, -306.5, 25000, -642.21, -133.9, 79.97, 1300],interestRate: 1.2, // %pin…

Macos安装OrbStack

什么是OrbStack OrbStack 是一种在 macOS 上运行容器和 Linux 机器的快速、轻便和简单方法。它是 Docker Desktop 和 WSL 的超强替代品&#xff0c;所有这些都在一个易于使用的应用程序中。 在Macos M系列芯片上&#xff0c;经常遇到docker镜像不兼容的问题&#xff0c;此时使…

Git客户端(TortoiseGit)使用详解

1.概述 使用TortoiseGit比直接使用git 客户端和命令实现代码版本管理更为方便&#xff0c;本文根据实际使用情况作一些记录&#xff0c;特别是对于解决冲突的处理。 2.Git安装与配置 下载 Git - Downloads&#xff0c; 可参考Git安装步骤完成Git的安装与配置。 3.TortoiseG…

【最大公约数 排序】2344. 使数组可以被整除的最少删除次数

本文涉及知识点 最大公约数 排序 LeetCode2344. 使数组可以被整除的最少删除次数 给你两个正整数数组 nums 和 numsDivide 。你可以从 nums 中删除任意数目的元素。 请你返回使 nums 中 最小 元素可以整除 numsDivide 中所有元素的 最少 删除次数。如果无法得到这样的元素&a…

Java设计模式 _结构型模式_组合模式

一、组合模式 1、组合模式 组合模式&#xff08;Composite Pattern&#xff09;是这一种结构型设计模式。又叫部分整体模式。组合模式依据树形结构来组合对象&#xff0c;用来表示部分以及整体层次关系。即&#xff1a;创建了一个包含自己对象组的类&#xff0c;该类提供了修改…

校园二手|基于SprinBoot+vue的微信小程序的校园二手平台(源码+数据库+文档)

校园二手平目录 目录 基于SprinBootvue的微信小程序的校园二手平台 一、前言 二、系统设计 三、系统功能设计 1搜索功能、分类功能测试 2商品购买功能测试 3用户注册功能测试 4商品信息管理功能测试 四、数据库设计 五、核心代码 六、论文参考 七、最新计算机毕设…

【网站项目】木里风景文化管理平台

&#x1f64a;作者简介&#xff1a;拥有多年开发工作经验&#xff0c;分享技术代码帮助学生学习&#xff0c;独立完成自己的项目或者毕业设计。 代码可以私聊博主获取。&#x1f339;赠送计算机毕业设计600个选题excel文件&#xff0c;帮助大学选题。赠送开题报告模板&#xff…

电脑装了两个Win10系统,怎么修改其名称方便识别?

前言 有小伙伴在上一期的双系统教程上留言说怎么修改双系统引导时候显示的名称 不然看起来两个系统好像都没啥分别&#xff0c;如果是Windows10Windows11的方案还好说&#xff0c;但如果是两个Windows10或者是两个Windows11&#xff0c;有时候还真的很不好分辨。 万一想要启动…