【论文笔记(5)ECCV2020】Graph convolutional networks for learning with few clean and many noisy labels

Abstract

在这项工作中,我们考虑了当给出几个干净的标签示例时,从噪声标签中学习分类器的问题。清洁和噪声数据的结构由每个类的图来建模,并使用图卷积网络(GCN)来预测噪声示例的类相关性。对于每一类,GCN被视为一个二元分类器,它使用加权的二元交叉熵损失函数来学习区分干净的和有噪音的示例。然后利用GCN推断的“干净”概率作为相关性度量。在学习结束任务的分类器时,每个噪声示例根据其相关性进行加权。我们在一个小样本学习问题的扩展版本上评估了我们的方法,在这个问题中,新类的几个干净的例子被额外的噪声数据补充。实验结果表明,与不清洗噪声数据和使用较少清洗实例的标准小样本分类方法相比,基于GCNs的清洗过程显著提高了分类精度。

Introduction

目前最先进的深度学习方法需要大量的人工标注数据。通过将表示学习从最终任务解耦并使用未标记、弱标记(带有噪声标记)或属于不同域或类的附加训练数据,可以减少对监督的需要。示例方法是转移学习[39]、无监督表示学习[39]、半监督学习[42]、从噪声标签学习[16]和小样本学习[33]。

然而,对于几个类,在表示学习阶段可能只有很少的、甚至没有干净的标签可用。小样本学习严重限制了结束任务上标记的样本数量,而表示是在不同类的大规模训练集上学习的[12,33,38]。然而,在许多情况下,更多带有噪声标签的数据可以被获取或容易地用于最终任务。

Douze et al等人的工作是小样本学习和额外的大规模数据的一个有趣的混合,其中标签从几个干净的标签示例传播到大规模集合。此集合没有标签,实际上包含的类比最终任务多得多。他们的方法总体上提高了分类精度,但需要额外的计算代价。这是一种转换的方法,即在推理时仍然需要大规模的收集,而不是学习参数分类器。
【论文笔记(5)ECCV2020】Graph convolutional networks for learning with few clean and many noisy labels
图一概述了我们对一个样本和噪声示例学习的清洁方法。我们使用类名Admiral从Web上抓取噪声图像,并基于视觉相似性创建邻接图。然后,我们使用图卷积网络(GCN)为每个噪声示例分配相关性分数。相关性分数显示在图像旁边。

在这项工作中,我们从几个干净的标记样本和附加的弱标记数据中学习一个分类器,而表示是在不同的类上学习的,类似于小样本学习。我们假设类名是已知的,并使用它们来搜索具有文本描述的图像集合。结果是一组具有新类别标签的图像,但可能是不正确的(噪声)。如图1所示,我们使用图形卷积网络(GCN)[17]清洗数据,该网络学习根据到干净图中图像的连接来预测每个图像的类相关性分数。然后用干净的和有噪声的图像来学习分类器,其中有噪声的例子按相关性加权。与大多数现有工作不同的是,我们的方法针对每个类独立运行,并且适用于每个类很少甚至只有一个干净的标签的情况。

贡献:

1.我们在一个大规模的弱标记集合上学习一个分类器,只有几个干净的标记示例。

2.使用GCN来清理噪声数据的:我们将GCN转换为学习区分干净和噪音数据的二元分类器,并将其推断的“干净”概率用作每个示例的相关性分数。

3.将方法应用于两个小样本的学习基准,在使用相同的没有标签的大规模数据集合下,并显示出在准确性方面的显著提高,优于Douze等人的方法。[5]

Related Wrok

带噪声标签的学习:
涉及估计或学习一个标签之间的转移矩阵[24,25,34]或知识图[19],并校正损失函数,这在我们的情况下不适用,因为噪声数据中的真实类别是未知的。最近关从大规模弱标记数据中学习的最新工作主要集中在通过度量学习[18,40]、自举[28]或蒸馏[19]来学习表示。然而,在我们的例子中,由于干净标签示例很少,我们需要保持表示大部分是固定的。
在基于损失的梯度[30]学习表示的同时,可以通过阈值处理[18]、离群值检测[40]或重新加权[20]来处理噪声。相反,我们提出的相对较浅的GCN有效地将重权重从表示学习和分类器学习中解耦出来。学习清洁噪声标签[36]通常假设有足够的人工验证的标签用于训练,这在本工作中也不是这种情况。

小样本学习:
元学习[37]指的是两个层次的学习,即在适应更具体的任务之前获得一般知识。在小样本学习中,这转化为在一组基类上学习如何在不过拟合的情况下从一组不同新类中的几个示例中学习。例如,优化元学习[6,7,27]相当于学习一个很容易在几个步骤中微调的模型。在我们的工作中,我们研究了小样本学习的扩展,其中有更多新的类实例可用,降低了微调模型时过度拟合的风险。
Gidaris和Komodakis[9]在基类上学习更简单的基于余弦相似度的参数分类器,或者简单的余弦分类器,而不需要元学习。Qi.[26]已经独立地引入了相同的分类器,他们进一步微调了网络,假定可以访问基类训练集。最近的一项调查[3]证实了余弦分类器比包括元学习在内的以前工作的优越性[6]。我们在这项工作中使用余弦分类器,包括基类和新类。
直到最近,利用未标记数据在小样本学习中的探索还很少。Ren et al.[29]介绍了一种半监督的小样本分类任务,其中有些标签是未知的。Liu et al.[21]遵循相同的半监督设置,但使用基于图的标签传播(LP)[45]进行分类,并联合考虑所有测试图像。这些方法假设了一种元学习场景,在这种场景中,每个训练场景都只有小规模的数据可用;可以说,如此少量的数据限制了对未见数据的表示适应和泛化。Similarly, Rohrbach et al. [31] 在转换设置中在更大的范围内使用标签传播,假设所有示例都来自一组已知的类别。Douze et al. [5]扩展到更大的范围,在不使用额外文本信息的情况下利用图表中的100M未标记图像。我们关注的是使用相同100M数据集的后一种大规模场景。然而,我们通过文本过滤来获得有噪声的数据,并遵循归纳的方法,为新的类别训练分类器,这样在推理时就不需要100M的集合。

图神经网络:
图神经网络是卷积网络在非欧氏空间的推广[1]。早期的谱方法[2,14]已经被切比雪夫多项式逼近[4]所取代,避免了计算特征向量的高计算量。图卷积网络(GCN)[17]通过图滤波的一阶近似提供了进一步的简化,并被应用于半监督学习[17]以及随后的小样本习[8]。Kipf和Wling[17]将损失函数应用于已标记样本,以对未标记样本进行预测。同样,Garcia和Bruna[8]使用GCNS对新的类样本进行预测。Gidaris和Komodakis[10]使用图形神经网络作为去噪自动编码器,为新的类别生成类别权重。相比之下,我们将GCNS视为区分干净和噪声示例的二元分类器:我们对所有样本应用损失函数,然后使用推断的概率作为类相关性度量,有效地清理了数据。
我们把噪声例子都当作负例来对待,这一违反直觉的目标可以与在实例级区分中将每个实例作为不同的类进行比较,事实上,我们的损失函数类似于噪声对比估计(NCE)[11]。我们的实验表明,我们的基于GCN的分类器比用于类似目的的经典LP[45]的性能高出[31]。

Problem formulation

我们考虑示例空间X。示例集合Xc,每个示例在类的集合C中具有干净的(人工验证的)标签。我们假设在每个类中标签示例的数目为k,通常在{1,2,5,10,20}中。额外的实例集合Xn,每个在C中都有一组有噪声的标签。类C的扩展实例集合是X=Xc∪Xn。具有干净(噪声)标签的实例或实例集合也被称为干净(噪声)。目标是训练一个K-way分类器,使用额外的噪声集来提高精度,而不是只使用小的干净集。

我们假设我们有一个特征提取器gθ: X→Rd,将一个例子映射到一个d维向量。例如,当例子是图像时,特征提取器通常是一个卷积神经网络(CNN),而θ是所有层的参数。

在这项工作中,我们假设噪声集合Xn是通过网络爬行收集的。例如,图片伴随着自由形式的文字描述和/或来自社区照片收藏的用户标签。为了使用文本数据,我们假设给出了C中的类名。给定Xn中的一个例子类C中的标签c,如果其文本信息包含类c的名称;然后,它可能没有标签、一个或多个标签。通过这种方法,我们可以自动推断出Xn的标签,而不需要人为的努力,但这是有噪声的。

Cleaning with graph convolutional networks

在Xn( C )中,我们通过独立的对每个类c预测每个噪声例的类相关测度来进行清理。为了简化符号,在本小节中,我们尽可能的省略上标,X(Xc∪Xn)用{X1,…, Xk, Xk+1,, XN}表示,Xc用{X1,…, Xk},Xn为{Xk+1,, XN},这些例子的特征同样用矩阵表示V = [v1, . . . ,vk,vk+1, . . . ,vN](d * N),vi= gθ(xi)。

我们创建一个关联矩阵A(维度N*N),其中元素aij= [vi(T)vj],如果例子vi 和 vj在X中是倒数最近的邻居,否则为0。矩阵A的对角线为零,但在A被归一化之前添加了自连接A’ = D(−1)(A + I),D = diag((A + I)1) 是矩阵A + I和全1矩阵的度量矩阵。

图卷积网络(GCNs)[17]是由一系列层构成的。每一层是由一个函数fΘ:R(N×N)× R(l×N)→R(n×N)的形式:
【论文笔记(5)ECCV2020】Graph convolutional networks for learning with few clean and many noisy labelsZ(维度lN)代表着出入的特征,Θ (维度为lN)代表的这一层需要学习的参数,h是一个非线性**函数。函数fΘ将l维的输入特征向量,映射到n维的输出特征向量。

在这个工作中,我们考虑一个两层的GCN,每个例子都有一个标量输出。
网络是由FΘ组成的,
【论文笔记(5)ECCV2020】Graph convolutional networks for learning with few clean and many noisy labelsΘ = {Θ1, Θ2},Θ1(维度 dm)Θ2(维度m1),[]+是 positive part或ReLU函数[23],σ(a) 是Sigmoid函数,函数FΘ通过关联矩阵执行特征传播,类似于用于分类或搜索的经典的基于图的传播方法[45]或[46]。

FΘ(˜A, V )是长度为N的向量,每一个值是[0,1]代表相关示例Xi属于类c相关度。为了学习参数Θ,我们将GCN看作一个二元分类器,其中目标输出1对应于干净示例,0对应于有噪示例。我们最小化损失函数:
【论文笔记(5)ECCV2020】Graph convolutional networks for learning with few clean and many noisy labels这是一个二元的交叉熵损失函数,其中有噪声的例子是一个权重加权λ,给定最近邻图上的传播,并根据第二项的相对重要性λ,强连接到干净示例的噪声示例仍有望获得较高的类相关性,而与当前类无关的噪声示例有望获得接近于零的类相关性。

参数λ的影响在第6节得到了验证,我们在其中说明了可用的干净图像越少(k越小),重要性权重就应该越小。正如分类[17]中GCNS的标准实践,训练是以大小为N的批次进行的,即整个特征集。

图2显示了干净图像、相应的噪声图像和预测相关性的示例。利用与干净图像的视觉相似性,我们可以使用相关性来解决多义现象,例如黑寡妇(蜘蛛)对黑寡妇(超级英雄),或者菠萝对菠萝汁。

【论文笔记(5)ECCV2020】Graph convolutional networks for learning with few clean and many noisy labels
1分类的小样本ImageNet基准(左)中的干净图像示例、噪声图像(中)和代表性噪声图像(右)的预测相关性的累积直方图(按相关性降序排列),相关值报告如下。使用类原型(5)在没有和有附加数据的情况下测试准确性显示在类名旁边。

讨论:损失函数(3)类似于We[43]等人使用的噪声对比估计(NCE)[11]来进行实例级识别,而我们从有噪声的例子中区分干净的例子。GCNs[17]的半监督学习设置使用了一个损失函数,该函数只适用于带标记的示例,并对未带标记的示例进行离散预测。在我们的例子中,所有的例子都导致了损失,但重要性不同,因为我们推断了实值类相关性的噪声例子,用于后续学习。

函数FΘ在(2)减少了多层感知器(MLP)当关联矩阵为零,在这种情况下,所有的例子都断开连接。使用MLP执行清理将独立地考虑每个示例,而GCN将示例集合视为一个整体。通过最小化(3),MLP的训练与GCN的训练是一致的。我们在实验中比较了这两种方法。

Learning a classifier with few clean and many noisy examples

我们的清洗过程适用于干净的标签示例很少的情况,但假设特征提取器gθ。也就是说,表示学习、标签清洗和分类器学习是解耦的。我们按照第4节所述执行基于GCN的清理,并根据类相关性对示例进行加权来学习分类器。下面描述训练分类器的过程。

Cosine-similarity based classifier

我们使用基于余弦相似度的分类器[9,26],或简称为余弦分类器。每一个类别c都可以用一个可学习的参数wc∈ Rd来表示 ,x预测为类c最大的余弦相似度,W = [w1, . . . ,wK] (维度维d*k)
【论文笔记(5)ECCV2020】Graph convolutional networks for learning with few clean and many noisy labels

Classifier learning

目标是学习用于未出现数据的K-way分类器,不同于典型的小样本学习任务,每个类包含一些干净的例子和许多嘈杂的例子。

在学习分类器之前,将训练例Xi∈X 与类c的相关性r(xi)进行加权。对于一个有噪声的例子Xi∈Xn,我们定义r (xi) = FΘ(˜A,V),其中,FΘ(˜A,V)是GCN的输出向量,对于一个干净的例子,r (xi) = 1,注意优化(3)并不能对每一个属于Xc的干净例子保证FΘ(˜A,V) = 1。

我们首先假设给定的特征提取器是固定的,并考虑两种不同的分类器,即类原型和基于余弦相似度的分类器。然后,去掉这个假设,通过对整个网络进行微调,共同学习分类器和特征表示。

类的原型。对于每个类c,我们定义原型Wc:
【论文笔记(5)ECCV2020】Graph convolutional networks for learning with few clean and many noisy labels原型是固定的向量,而不是可学习的参数。将它们集合到矩阵W = [w1,…,wk] (维度为d*K),K-way预测采用分类器,分类器为(4)

余弦函数分类器学习:给定X,我们学习了参数W = [w1,…Wk] (维度d*K)的参数余弦分类器,通过最小化加权交叉熵损失L:
【论文笔记(5)ECCV2020】Graph convolutional networks for learning with few clean and many noisy labels深层网络微调。另一种选择是放弃假设特性提取器是固定的。在这种情况下,我们共同学习参数θ的特征提取器和W k路余弦分类器通过最小化(6)的右手边。这需要访问Xe例子,而对于前两个分类器,获得特征gθ(x)就足够了。请注意,由于在少数可用的例子上过度拟合,这样的学习通常是在少量的学习设置中避免的。